gnu: polkit: Remove dependency on (guix build syscalls).
Having a dependency on (guix build syscalls) this deep in the stack would make it much harder to change syscalls.scm. * gnu/packages/polkit.scm (polkit)[arguments]: Remove #:imported-modules. Remove (guix build syscalls) from #:modules. Rewrite ‘check’ phase to reap processes from the build process. [native-inputs]: Remove TINI.
This commit is contained in:
parent
4eda89248d
commit
8e3d710f4c
1 changed files with 15 additions and 20 deletions
|
@ -95,10 +95,7 @@ (define-public polkit
|
|||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:imported-modules `(,@%meson-build-system-modules
|
||||
(guix build syscalls))
|
||||
#:modules '((guix build meson-build-system)
|
||||
(guix build syscalls)
|
||||
(guix build utils)
|
||||
(ice-9 match))
|
||||
#:configure-flags
|
||||
|
@ -130,24 +127,23 @@ (define-public polkit
|
|||
(replace 'check
|
||||
(lambda* (#:key tests? test-options #:allow-other-keys)
|
||||
(when tests?
|
||||
;; Run the test suite through tini to ensure signals are
|
||||
;; properly handled and zombie processes reaped.
|
||||
(match (primitive-fork)
|
||||
(0 ;child process
|
||||
(set-child-subreaper!)
|
||||
;; Use tini so that signals are properly handled and
|
||||
;; doubly-forked processes get reaped; otherwise,
|
||||
;; python-dbusmock would waste time polling for the dbus
|
||||
;; processes it spawns to be reaped, in vain.
|
||||
(apply execlp "tini" "--"
|
||||
"meson" "--" "test" "-t" "0" "--print-errorlogs"
|
||||
(apply execlp "meson" "meson"
|
||||
"test" "-t" "0" "--print-errorlogs"
|
||||
test-options))
|
||||
(pid
|
||||
(match (waitpid pid)
|
||||
((_ . status)
|
||||
(unless (zero? status)
|
||||
(error "`meson test' exited with status"
|
||||
status))))))))))))
|
||||
(meson-pid
|
||||
;; Reap child processes; otherwise, python-dbusmock would
|
||||
;; waste time polling for the dbus processes it spawns to
|
||||
;; be reaped, in vain.
|
||||
(let loop ()
|
||||
(match (waitpid WAIT_ANY)
|
||||
((pid . status)
|
||||
(if (= pid meson-pid)
|
||||
(unless (zero? status)
|
||||
(error "`meson test' exited with status"
|
||||
status))
|
||||
(loop)))))))))))))
|
||||
(inputs
|
||||
(list duktape expat elogind linux-pam nspr))
|
||||
(propagated-inputs
|
||||
|
@ -162,8 +158,7 @@ (define-public polkit
|
|||
perl
|
||||
pkg-config
|
||||
python
|
||||
python-dbusmock
|
||||
tini))
|
||||
python-dbusmock))
|
||||
(home-page "https://www.freedesktop.org/wiki/Software/polkit/")
|
||||
(synopsis "Authorization API for privilege management")
|
||||
(description "Polkit is an application-level toolkit for defining and
|
||||
|
|
Loading…
Reference in a new issue