diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-10-13 16:25:02 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-10-23 11:56:53 +0200 |
commit | 9a23dd54ee413f9faa887db3e84ec127a4c083b6 (patch) | |
tree | 54b45ae2590b9d97b2a7106612de2d16221ca161 | |
parent | 5a3b712ad751b829847340d5f1c7a9619d8e774d (diff) |
gnu: python-dbusmock: 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/python-xyz.scm (python-dbusmock)[native-inputs]: Remove TINY.
[arguments]: Remove #:imported-modules, and remove (guix build syscalls)
from #:modules. Rewrite ‘check’ phase to reap processes from the build
process itself.
-rw-r--r-- | gnu/packages/python-xyz.scm | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d094c6e451..782d1fae6f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -27165,12 +27165,10 @@ for YAML and JSON.") "1nwl0gzzds2g1w1gfxfzlgrkb5hr1rrdyn619ml25c6b1rjyfk3g")))) (build-system python-build-system) (arguments - `(#:imported-modules (,@%python-build-system-modules - (guix build syscalls)) - #:modules ((guix build python-build-system) - (guix build syscalls) + `(#:modules ((guix build python-build-system) (guix build utils) (ice-9 match)) + #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-paths @@ -27186,20 +27184,20 @@ for YAML and JSON.") (when tests? (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. - (execlp "tini" "--" "pytest" "-vv")) - (pid - (match (waitpid pid) - ((_ . status) - (unless (zero? status) - (error "`pytest' exited with status" - status)))))))))))) - (native-inputs - (list dbus python-pytest tini which)) + (execlp "pytest" "pytest" "-vv")) + (pytest-pid + (let loop () + ;; Reap child processes; otherwise, python-dbusmock would + ;; waste time polling for the dbus processes it spawns to + ;; be reaped, in vain. + (match (waitpid WAIT_ANY) + ((pid . status) + (if (= pid pytest-pid) + (unless (zero? status) + (error "`pytest' exited with status" status)) + (loop))))))))))))) + (native-inputs + (list dbus python-pytest which)) (inputs (list dbus)) (propagated-inputs |