~ruther/guix-local

8e3d710f4c31886ebcbfedfcea315388ea7202ee — Ludovic Courtès 2 years ago 4eda892
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.
1 files changed, 15 insertions(+), 20 deletions(-)

M gnu/packages/polkit.scm
M gnu/packages/polkit.scm => gnu/packages/polkit.scm +15 -20
@@ 95,10 95,7 @@
    (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 @@
          (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 @@
           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