unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
@ 2023-10-13 15:45 Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
                   ` (8 more replies)
  0 siblings, 9 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:45 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès, Efraim Flashner, Maxim Cournoyer

Hello!

This patch series removes (guix build syscalls) from the dependencies
of several packages where having that dependency would effectively
prevent us from changing syscalls.scm due to the high number of
dependents (and it turns out that removing that dependency was easy).

This change involves a rebuild of ~3,912 packages.  I plan to create
a branch and have it built by ci.guix (I suppose qa.guix will skip it
by default?).  I can do that any time (the build farm is currently idle!)
but since ‘rust-team’ is fully built, I thought we might want to merge
it first; Efraim?  I’ll also send a proper “request for merging”.

Besides I have not forgotten about the underlying bug, reported
at <https://issues.guix.gnu.org/30948>, and I plan to propose another
fix there.

Thoughts?

Ludo’.

Ludovic Courtès (7):
  gnu: mutter: Remove dependency on (guix build syscalls).
  gnu: python-ipykernel: Remove dependency on (guix build syscalls).
  gnu: python-dbusmock: Remove dependency on (guix build syscalls).
  gnu: python-dbusmock: Rewrite phases as a gexp.
  gnu: python-dbusmock: Use ‘search-input-file’.
  gnu: polkit: Remove dependency on (guix build syscalls).
  gnu: public-inbox: Remove dependency on (guix build syscalls).

 gnu/packages/gnome.scm      | 25 +++++-----
 gnu/packages/mail.scm       | 33 ++++++-------
 gnu/packages/polkit.scm     | 35 ++++++-------
 gnu/packages/python-xyz.scm | 99 ++++++++++++++++++-------------------
 4 files changed, 89 insertions(+), 103 deletions(-)


base-commit: 5a3fb306535c2ec0a118f2f0bc8f6a162b85c7d6
-- 
2.41.0





^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 16:49   ` Liliana Marie Prikler
                     ` (2 more replies)
  2023-10-13 15:47 ` [bug#66525] [PATCH 2/7] gnu: python-ipykernel: Remove dependency " Ludovic Courtès
                   ` (7 subsequent siblings)
  8 siblings, 3 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Liliana Marie Prikler, Maxim Cournoyer,
	Raghav Gururajan

* gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-modules.
Remove (guix build syscalls) from #:modules.
Rewrite ‘check’ phase to reap processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/gnome.scm | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 908b5782b5..a4993b7aa9 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7831,10 +7831,7 @@ (define-public mutter
     (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))
       #:glib-or-gtk? #t
@@ -7928,22 +7925,23 @@ (define-public mutter
                             "1"))
                 (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" "--"
-                          "dbus-run-session" "--"
+                   (apply execlp "dbus-run-session" "dbus-run-session"
                           "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
                           "meson" "test" "-t" "0" "--print-errorlogs"
                           test-options))
-                  (pid
-                   (match (waitpid pid)
-                     ((_ . status)
-                      (unless (zero? status)
-                        (error "`meson test' exited with status"
-                               status))))))))))))
+                  (dbus-pid
+                   (let loop ()
+                     (match (waitpid WAIT_ANY)
+                       ((pid . status)
+                        (if (= pid dbus-pid)
+                            (unless (zero? status)
+                              (error "`meson test' exited with status"
+                                     status))
+                            (loop)))))))))))))
     (native-inputs
      (list desktop-file-utils           ;for update-desktop-database
            `(,glib "bin")               ;for glib-compile-schemas, etc.
@@ -7964,8 +7962,7 @@ (define-public mutter
            pipewire
            python
            python-dbus
-           python-dbusmock
-           tini))                       ;acting as init (zombie reaper)
+           python-dbusmock))
     (propagated-inputs
      (list gsettings-desktop-schemas-next ;required by libmutter.pc
            gtk+                           ;required by libmutter.pc
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 2/7] gnu: python-ipykernel: Remove dependency on (guix build syscalls).
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 3/7] gnu: python-dbusmock: " Ludovic Courtès
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-ipykernel)[arguments]:
Remove #:imported-modules.  Remove (guix build syscalls) from #:modules.
Rewrite ‘check’ phase to reap child processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/python-xyz.scm | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a45ff44be1..07984adb8e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10644,10 +10644,7 @@ (define-public python-ipykernel
     (build-system pyproject-build-system)
     (arguments
      (list
-      #:imported-modules `(,@%pyproject-build-system-modules
-                           (guix build syscalls))
       #:modules '((guix build pyproject-build-system)
-                  (guix build syscalls)
                   (guix build utils)
                   (ice-9 match))
       #:phases
@@ -10666,20 +10663,19 @@ (define-public python-ipykernel
               (when tests?
                 (match (primitive-fork)
                   (0                    ;child process
-                   (set-child-subreaper!)
-                   ;; XXX: Tini provides proper PID1-like signal handling that
-                   ;; reaps zombie processes, necessary for the
-                   ;; 'test_shutdown_subprocesses' test to pass.
-
-                   ;; TODO: Complete https://issues.guix.gnu.org/30948.
                    (setenv "HOME" "/tmp")
-                   (execlp "tini" "--" "pytest" "-vv"))
-                  (pid
-                   (match (waitpid pid)
-                     ((_ . status)
-                      (unless (zero? status)
-                        (error "`pytest' exited with status"
-                               status)))))))))
+                   (execlp "pytest" "pytest" "-vv"))
+                  (pytest-pid
+                   ;; Reap zombie processes, necessary for the
+                   ;; 'test_shutdown_subprocesses' test to pass.
+                   (let loop ()
+                     (match (waitpid WAIT_ANY)
+                       ((pid . status)
+                        (if (= pid pytest-pid)
+                            (unless (zero? status)
+                              (error "`pytest' exited with status"
+                                     status))
+                            (loop))))))))))
           (add-after 'install 'set-python-file-name
             (lambda* (#:key inputs #:allow-other-keys)
               ;; Record the absolute file name of the 'python' executable in
@@ -10708,8 +10704,7 @@ (define-public python-ipykernel
            ;; and causes deprecation warnings.  Using the bootstrap variant
            ;; avoids that.
            python-pytest-bootstrap
-           python-pytest-timeout
-           tini))
+           python-pytest-timeout))
     (home-page "https://ipython.org")
     (synopsis "IPython Kernel for Jupyter")
     (description "This package provides the IPython kernel for Jupyter.")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 3/7] gnu: python-dbusmock: Remove dependency on (guix build syscalls).
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 2/7] gnu: python-ipykernel: Remove dependency " Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 4/7] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

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.
---
 gnu/packages/python-xyz.scm | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 07984adb8e..e871951def 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27156,12 +27156,10 @@ (define-public python-dbusmock
          "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
@@ -27177,20 +27175,20 @@ (define-public python-dbusmock
              (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))))))))))))
+                  (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 tini which))
+     (list dbus python-pytest which))
     (inputs
      (list dbus))
     (propagated-inputs
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 4/7] gnu: python-dbusmock: Rewrite phases as a gexp.
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (2 preceding siblings ...)
  2023-10-13 15:47 ` [bug#66525] [PATCH 3/7] gnu: python-dbusmock: " Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 5/7] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-dbusmock)[arguments]: Use gexps.
---
 gnu/packages/python-xyz.scm | 62 +++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e871951def..d6747a55c0 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27156,37 +27156,39 @@ (define-public python-dbusmock
          "1nwl0gzzds2g1w1gfxfzlgrkb5hr1rrdyn619ml25c6b1rjyfk3g"))))
     (build-system python-build-system)
     (arguments
-     `(#:modules ((guix build python-build-system)
-                  (guix build utils)
-                  (ice-9 match))
+     (list #:modules `((guix build python-build-system)
+                       (guix build utils)
+                       (ice-9 match))
 
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "tests/test_code.py"
-               (("/bin/bash") (which "bash")))
-             (substitute* "dbusmock/testcase.py"
-               (("'dbus-daemon'")
-                (string-append "'" (assoc-ref inputs "dbus")
-                               "/bin/dbus-daemon'")))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (match (primitive-fork)
-                 (0                     ;child process
-                  (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)))))))))))))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "tests/test_code.py"
+                     (("/bin/bash")
+                      (which "bash")))
+                   (substitute* "dbusmock/testcase.py"
+                     (("'dbus-daemon'")
+                      (string-append "'" (assoc-ref inputs "dbus")
+                                     "/bin/dbus-daemon'")))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (match (primitive-fork)
+                       (0 ;child process
+                        (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
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 5/7] gnu: python-dbusmock: Use ‘search-input-file’.
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (3 preceding siblings ...)
  2023-10-13 15:47 ` [bug#66525] [PATCH 4/7] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 6/7] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-dbusmock)[arguments]: In
‘patch-paths’ phase, use ‘search-input-file’ instead of ‘assoc-ref’.
---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index d6747a55c0..c70ea6eea5 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27169,8 +27169,8 @@ (define-public python-dbusmock
                       (which "bash")))
                    (substitute* "dbusmock/testcase.py"
                      (("'dbus-daemon'")
-                      (string-append "'" (assoc-ref inputs "dbus")
-                                     "/bin/dbus-daemon'")))))
+                      (object->string
+                       (search-input-file inputs "/bin/dbus-daemon"))))))
                (replace 'check
                  (lambda* (#:key tests? #:allow-other-keys)
                    (when tests?
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 6/7] gnu: polkit: Remove dependency on (guix build syscalls).
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (4 preceding siblings ...)
  2023-10-13 15:47 ` [bug#66525] [PATCH 5/7] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-13 15:47 ` [bug#66525] [PATCH 7/7] gnu: public-inbox: " Ludovic Courtès
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

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.
---
 gnu/packages/polkit.scm | 35 +++++++++++++++--------------------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 6fe7824a57..2f733dd703 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -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
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 7/7] gnu: public-inbox: Remove dependency on (guix build syscalls).
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (5 preceding siblings ...)
  2023-10-13 15:47 ` [bug#66525] [PATCH 6/7] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
@ 2023-10-13 15:47 ` Ludovic Courtès
  2023-10-14 12:56 ` [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
  2023-10-17  8:56 ` Efraim Flashner
  8 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-13 15:47 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

* gnu/packages/mail.scm (public-inbox)[arguments]: Remove #:imported-modules.
Remove (guix build syscalls) from #:modules.  Rewrite ‘check’ phase to
reap processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/mail.scm | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index be458a2d92..fc5cde38ce 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2021, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
@@ -4242,10 +4242,7 @@ (define-public public-inbox
              (file-name (git-file-name name version))))
     (build-system perl-build-system)
     (arguments
-     `(#:imported-modules (,@%perl-build-system-modules
-                           (guix build syscalls))
-       #:modules ((guix build perl-build-system)
-                  (guix build syscalls)
+     `(#:modules ((guix build perl-build-system)
                   (guix build utils)
                   (ice-9 match))
        #:phases
@@ -4282,18 +4279,20 @@ (define-public public-inbox
                     (setenv "TMP" "/tmp")
                     (setenv "TMPDIR" "/tmp")
 
-                    ;; Use tini so that signals are properly handled and
-                    ;; doubly-forked processes get reaped; otherwise,
-                    ;; lei-daemon is kept as a zombie and the testsuite
-                    ;; fails thinking that it didn't quit as it should.
-                    (set-child-subreaper!)
-                    (apply execlp "tini" "--"
+                    (apply execlp "make"
                            "make" "check" test-flags))
-                   (pid
-                    (match (waitpid pid)
-                      ((_ . status)
-                       (unless (zero? status)
-                         (error "`make check' exited with status" status))))))
+                   (make-pid
+                    ;; Reap child processes; otherwise, lei-daemon is kept as
+                    ;; a zombie and the testsuite fails thinking that it
+                    ;; didn't quit as it should.
+                    (let loop ()
+                      (match (waitpid WAIT_ANY)
+                        ((pid . status)
+                         (if (= pid make-pid)
+                             (unless (zero? status)
+                               (error "`make check' exited with status"
+                                      status))
+                             (loop)))))))
                  (format #t "test suite not run~%"))))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4313,7 +4312,7 @@ (define-public public-inbox
                 (find-files (string-append out "/bin")))))))))
     (native-inputs
      (list ;; For testing.
-           lsof openssl tini))
+           lsof openssl))
     (inputs
      (append
       (if (not (target-64bit?))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
@ 2023-10-13 16:49   ` Liliana Marie Prikler
  2023-10-14 12:53     ` Maxim Cournoyer
  2023-10-13 17:05   ` Bruno Victal
  2023-10-14 12:52   ` Maxim Cournoyer
  2 siblings, 1 reply; 34+ messages in thread
From: Liliana Marie Prikler @ 2023-10-13 16:49 UTC (permalink / raw)
  To: Ludovic Courtès, 66525; +Cc: Raghav Gururajan, Maxim Cournoyer

Am Freitag, dem 13.10.2023 um 17:47 +0200 schrieb Ludovic Courtès:
> * gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-
> modules.
> Remove (guix build syscalls) from #:modules.
> Rewrite ‘check’ phase to reap processes from the build process.
> [native-inputs]: Remove TINI.
> ---
LGTM, but where would this go?




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
  2023-10-13 16:49   ` Liliana Marie Prikler
@ 2023-10-13 17:05   ` Bruno Victal
  2023-10-14 17:48     ` Ludovic Courtès
  2023-10-14 12:52   ` Maxim Cournoyer
  2 siblings, 1 reply; 34+ messages in thread
From: Bruno Victal @ 2023-10-13 17:05 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: 66525, Liliana Marie Prikler, Maxim Cournoyer, Raghav Gururajan

Hi Ludovic,

On 2023-10-13 16:47, Ludovic Courtès wrote:
> [native-inputs]: Remove TINI.

[…]

>                  (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" "--"
> -                          "dbus-run-session" "--"
> +                   (apply execlp "dbus-run-session" "dbus-run-session"
>                            "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")

Looks like this comment could be removed as well?

-- 
Furthermore, I consider that nonfree software must be eradicated.

Cheers,
Bruno.





^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
  2023-10-13 16:49   ` Liliana Marie Prikler
  2023-10-13 17:05   ` Bruno Victal
@ 2023-10-14 12:52   ` Maxim Cournoyer
  2023-10-14 17:50     ` Ludovic Courtès
  2 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-14 12:52 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Hi Ludo,

Ludovic Courtès <ludo@gnu.org> writes:

> * gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-modules.
> Remove (guix build syscalls) from #:modules.
> Rewrite ‘check’ phase to reap processes from the build process.
> [native-inputs]: Remove TINI.
> ---
>  gnu/packages/gnome.scm | 25 +++++++++++--------------
>  1 file changed, 11 insertions(+), 14 deletions(-)
>
> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 908b5782b5..a4993b7aa9 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -7831,10 +7831,7 @@ (define-public mutter
>      (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))
>        #:glib-or-gtk? #t
> @@ -7928,22 +7925,23 @@ (define-public mutter
>                              "1"))
>                  (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.

As Bruno mentioned, the comment above has gone stale.

> -                   (apply execlp "tini" "--"
> -                          "dbus-run-session" "--"
> +                   (apply execlp "dbus-run-session" "dbus-run-session"
>                            "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
>                            "meson" "test" "-t" "0" "--print-errorlogs"
>                            test-options))
> -                  (pid
> -                   (match (waitpid pid)
> -                     ((_ . status)
> -                      (unless (zero? status)
> -                        (error "`meson test' exited with status"
> -                               status))))))))))))
> +                  (dbus-pid
> +                   (let loop ()
> +                     (match (waitpid WAIT_ANY)
> +                       ((pid . status)
> +                        (if (= pid dbus-pid)
> +                            (unless (zero? status)
> +                              (error "`meson test' exited with status"
> +                                     status))
> +                            (loop)))))))))))))

Interesting simplification!  I obviously wasn't aware this could work
instead of the more intricate set-child-subreaper! + fake init (tini).
I guess it solves a very narrow subset signal handling behavior compared
to a real init, but that it is sufficient here.

LGTM with comments from Bruno taken into account.

I think it could go to core-updates since we're already prepping the
branch.  It may give some respite to the berlin aarch64 workers, which
have been working non-stop for days or weeks.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 16:49   ` Liliana Marie Prikler
@ 2023-10-14 12:53     ` Maxim Cournoyer
  2023-10-14 17:48       ` Ludovic Courtès
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-14 12:53 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 66525, Ludovic Courtès, Raghav Gururajan

Hi Liliana,
z
Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

> Am Freitag, dem 13.10.2023 um 17:47 +0200 schrieb Ludovic Courtès:
>> * gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-
>> modules.
>> Remove (guix build syscalls) from #:modules.
>> Rewrite ‘check’ phase to reap processes from the build process.
>> [native-inputs]: Remove TINI.
>> ---
> LGTM, but where would this go?

I think it could go to core-updates.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (6 preceding siblings ...)
  2023-10-13 15:47 ` [bug#66525] [PATCH 7/7] gnu: public-inbox: " Ludovic Courtès
@ 2023-10-14 12:56 ` Maxim Cournoyer
  2023-10-17  8:56 ` Efraim Flashner
  8 siblings, 0 replies; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-14 12:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525, Efraim Flashner

Hi Ludovic,

Ludovic Courtès <ludo@gnu.org> writes:

[...]

> Besides I have not forgotten about the underlying bug, reported
> at <https://issues.guix.gnu.org/30948>, and I plan to propose another
> fix there.

I'm looking forward to how you'll approach the problem.

[...]

> Ludovic Courtès (7):
>   gnu: mutter: Remove dependency on (guix build syscalls).
>   gnu: python-ipykernel: Remove dependency on (guix build syscalls).
>   gnu: python-dbusmock: Remove dependency on (guix build syscalls).
>   gnu: python-dbusmock: Rewrite phases as a gexp.
>   gnu: python-dbusmock: Use ‘search-input-file’.
>   gnu: polkit: Remove dependency on (guix build syscalls).
>   gnu: public-inbox: Remove dependency on (guix build syscalls).

This series LGTM, with the comment about Mirai to drop a stale comment
in path #1 addressed.

Thanks for working on it!

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-14 12:53     ` Maxim Cournoyer
@ 2023-10-14 17:48       ` Ludovic Courtès
  0 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-14 17:48 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> Liliana Marie Prikler <liliana.prikler@gmail.com> writes:
>
>> Am Freitag, dem 13.10.2023 um 17:47 +0200 schrieb Ludovic Courtès:
>>> * gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-
>>> modules.
>>> Remove (guix build syscalls) from #:modules.
>>> Rewrite ‘check’ phase to reap processes from the build process.
>>> [native-inputs]: Remove TINI.
>>> ---
>> LGTM, but where would this go?
>
> I think it could go to core-updates.

I proposed a dedicated branch, in line with the branching policy that
was discussed back in February during and after the Guix Days:

  https://issues.guix.gnu.org/66525#0

Ludo’.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-13 17:05   ` Bruno Victal
@ 2023-10-14 17:48     ` Ludovic Courtès
  0 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-14 17:48 UTC (permalink / raw)
  To: Bruno Victal
  Cc: 66525, Liliana Marie Prikler, Maxim Cournoyer, Raghav Gururajan

Bruno Victal <mirai@makinata.eu> skribis:

>>                  (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" "--"
>> -                          "dbus-run-session" "--"
>> +                   (apply execlp "dbus-run-session" "dbus-run-session"
>>                            "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
>
> Looks like this comment could be removed as well?

Oops, noted (waiting for other comments before sending a new version).

Ludo’.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-14 12:52   ` Maxim Cournoyer
@ 2023-10-14 17:50     ` Ludovic Courtès
  2023-10-15 19:54       ` Maxim Cournoyer
  0 siblings, 1 reply; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-14 17:50 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> I think it could go to core-updates since we're already prepping the
> branch.  It may give some respite to the berlin aarch64 workers, which
> have been working non-stop for days or weeks.

Yeah, it’s a tempting option in terms of resource usage, but less in
terms of legibility of the whole process.  Dunno.

Ludo’.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-14 17:50     ` Ludovic Courtès
@ 2023-10-15 19:54       ` Maxim Cournoyer
  2023-10-16 15:16         ` Ludovic Courtès
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-15 19:54 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Hi,

Ludovic Courtès <ludo@gnu.org> writes:

> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> I think it could go to core-updates since we're already prepping the
>> branch.  It may give some respite to the berlin aarch64 workers, which
>> have been working non-stop for days or weeks.
>
> Yeah, it’s a tempting option in terms of resource usage, but less in
> terms of legibility of the whole process.  Dunno.

Yeah, for resource usage, bundling this to core-updates makes sense,
especially since it should only affect running the test suite of the
packages touched, not their output.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-15 19:54       ` Maxim Cournoyer
@ 2023-10-16 15:16         ` Ludovic Courtès
  2023-10-16 16:19           ` Maxim Cournoyer
  0 siblings, 1 reply; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-16 15:16 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>
>>> I think it could go to core-updates since we're already prepping the
>>> branch.  It may give some respite to the berlin aarch64 workers, which
>>> have been working non-stop for days or weeks.
>>
>> Yeah, it’s a tempting option in terms of resource usage, but less in
>> terms of legibility of the whole process.  Dunno.
>
> Yeah, for resource usage, bundling this to core-updates makes sense,
> especially since it should only affect running the test suite of the
> packages touched, not their output.

OTOH, my initial motivation was to apply patches to syscalls.scm that
have been queued for quite a while already:

  https://issues.guix.gnu.org/66055
  https://issues.guix.gnu.org/66054
  https://issues.guix.gnu.org/65546

I fear that bundling it with ‘core-updates’ would delay it by several
more months.

Resource usage is a concern due to the low AArch64 build power, but it’s
not too bad lately, even with ‘rust-team’ and ‘gnome-team’ updates:

  https://ci.guix.gnu.org/metrics

So overall, I think I have a preference for making a dedicated branch
and queueing a branch merge request.  (I think it’s also good to use
that process more widely.)

WDYT?

Ludo’.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-16 15:16         ` Ludovic Courtès
@ 2023-10-16 16:19           ` Maxim Cournoyer
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
  0 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-16 16:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525, Liliana Marie Prikler, Raghav Gururajan

Hi Ludo,

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>
>>> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>>>
>>>> I think it could go to core-updates since we're already prepping the
>>>> branch.  It may give some respite to the berlin aarch64 workers, which
>>>> have been working non-stop for days or weeks.
>>>
>>> Yeah, it’s a tempting option in terms of resource usage, but less in
>>> terms of legibility of the whole process.  Dunno.
>>
>> Yeah, for resource usage, bundling this to core-updates makes sense,
>> especially since it should only affect running the test suite of the
>> packages touched, not their output.
>
> OTOH, my initial motivation was to apply patches to syscalls.scm that
> have been queued for quite a while already:
>
>   https://issues.guix.gnu.org/66055
>   https://issues.guix.gnu.org/66054
>   https://issues.guix.gnu.org/65546
>
> I fear that bundling it with ‘core-updates’ would delay it by several
> more months.
>
> Resource usage is a concern due to the low AArch64 build power, but it’s
> not too bad lately, even with ‘rust-team’ and ‘gnome-team’ updates:
>
>   https://ci.guix.gnu.org/metrics
>
> So overall, I think I have a preference for making a dedicated branch
> and queueing a branch merge request.  (I think it’s also good to use
> that process more widely.)
>
> WDYT?

Go for it!  I'm confident core-updates won't take several months, but
who knows :-)

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
                   ` (7 preceding siblings ...)
  2023-10-14 12:56 ` [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
@ 2023-10-17  8:56 ` Efraim Flashner
  8 siblings, 0 replies; 34+ messages in thread
From: Efraim Flashner @ 2023-10-17  8:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: maxim.cournoyer, 66525

[-- Attachment #1: Type: text/plain, Size: 2161 bytes --]

On Fri, Oct 13, 2023 at 05:45:32PM +0200, Ludovic Courtès wrote:
> Hello!
> 
> This patch series removes (guix build syscalls) from the dependencies
> of several packages where having that dependency would effectively
> prevent us from changing syscalls.scm due to the high number of
> dependents (and it turns out that removing that dependency was easy).
> 
> This change involves a rebuild of ~3,912 packages.  I plan to create
> a branch and have it built by ci.guix (I suppose qa.guix will skip it
> by default?).  I can do that any time (the build farm is currently idle!)
> but since ‘rust-team’ is fully built, I thought we might want to merge
> it first; Efraim?  I’ll also send a proper “request for merging”.

That would be nice. I'm currently waiting for aarch64 to catch up and
then I need to rebase on master since the qt-team branch got merged and
then it should be ready.

> Besides I have not forgotten about the underlying bug, reported
> at <https://issues.guix.gnu.org/30948>, and I plan to propose another
> fix there.
> 
> Thoughts?
> 
> Ludo’.
> 
> Ludovic Courtès (7):
>   gnu: mutter: Remove dependency on (guix build syscalls).
>   gnu: python-ipykernel: Remove dependency on (guix build syscalls).
>   gnu: python-dbusmock: Remove dependency on (guix build syscalls).
>   gnu: python-dbusmock: Rewrite phases as a gexp.
>   gnu: python-dbusmock: Use ‘search-input-file’.
>   gnu: polkit: Remove dependency on (guix build syscalls).
>   gnu: public-inbox: Remove dependency on (guix build syscalls).
> 
>  gnu/packages/gnome.scm      | 25 +++++-----
>  gnu/packages/mail.scm       | 33 ++++++-------
>  gnu/packages/polkit.scm     | 35 ++++++-------
>  gnu/packages/python-xyz.scm | 99 ++++++++++++++++++-------------------
>  4 files changed, 89 insertions(+), 103 deletions(-)
> 
> 
> base-commit: 5a3fb306535c2ec0a118f2f0bc8f6a162b85c7d6
> -- 
> 2.41.0
> 

-- 
Efraim Flashner   <efraim@flashner.co.il>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-16 16:19           ` Maxim Cournoyer
@ 2023-10-22 13:43             ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 01/10] gnu: mutter: Remove dependency " Ludovic Courtès
                                 ` (10 more replies)
  0 siblings, 11 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

Hello!

Here’s an updated version of this patch set; changes compared to v1:

  • Update outdated comment in one of the packages;

  • Remove dependency on (guix build syscalls) of the following build
    systems: ant, dub, android-ndk.

I’ve pushed this as ‘wip-syscall-update’ and got ci.guix to build it:

  https://ci.guix.gnu.org/jobset/syscall-update

As discussed earlier, I’ll send a merge request.

Ludo’.

Ludovic Courtès (10):
  gnu: mutter: Remove dependency on (guix build syscalls).
  gnu: python-ipykernel: Remove dependency on (guix build syscalls).
  gnu: python-dbusmock: Remove dependency on (guix build syscalls).
  gnu: python-dbusmock: Rewrite phases as a gexp.
  gnu: python-dbusmock: Use ‘search-input-file’.
  gnu: polkit: Remove dependency on (guix build syscalls).
  gnu: public-inbox: Remove dependency on (guix build syscalls).
  build-system/ant: Remove dependency on (guix build syscalls).
  build-system/android-ndk: Remove dependency on (guix build syscalls).
  build-system/dub: Remove dependency on (guix build syscalls).

 gnu/packages/gnome.scm            | 32 +++++-----
 gnu/packages/mail.scm             | 33 +++++------
 gnu/packages/polkit.scm           | 35 +++++------
 gnu/packages/python-xyz.scm       | 99 +++++++++++++++----------------
 guix/build-system/android-ndk.scm |  1 -
 guix/build-system/ant.scm         |  1 -
 guix/build-system/dub.scm         |  1 -
 7 files changed, 92 insertions(+), 110 deletions(-)


base-commit: 8ca7ccbf0dad63d75637ffdc6a5105eb9a4a4673
-- 
2.41.0





^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 01/10] gnu: mutter: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 02/10] gnu: python-ipykernel: " Ludovic Courtès
                                 ` (9 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Liliana Marie Prikler, Maxim Cournoyer,
	Raghav Gururajan

* gnu/packages/gnome.scm (mutter)[arguments]: Remove #:imported-modules.
Remove (guix build syscalls) from #:modules.
Rewrite ‘check’ phase to reap processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/gnome.scm | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 2ffe8dfef2..ac3035e07d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7831,10 +7831,7 @@ (define-public mutter
     (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))
       #:glib-or-gtk? #t
@@ -7928,22 +7925,22 @@ (define-public mutter
                             "1"))
                 (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" "--"
-                          "dbus-run-session" "--"
+                   (apply execlp "dbus-run-session" "dbus-run-session"
                           "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
                           "meson" "test" "-t" "0" "--print-errorlogs"
                           test-options))
-                  (pid
-                   (match (waitpid pid)
-                     ((_ . status)
-                      (unless (zero? status)
-                        (error "`meson test' exited with status"
-                               status))))))))))))
+                  (dbus-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 dbus-pid)
+                            (unless (zero? status)
+                              (error "`meson test' exited with status"
+                                     status))
+                            (loop)))))))))))))
     (native-inputs
      (list desktop-file-utils           ;for update-desktop-database
            `(,glib "bin")               ;for glib-compile-schemas, etc.
@@ -7964,8 +7961,7 @@ (define-public mutter
            pipewire
            python
            python-dbus
-           python-dbusmock
-           tini))                       ;acting as init (zombie reaper)
+           python-dbusmock))
     (propagated-inputs
      (list gsettings-desktop-schemas-next ;required by libmutter.pc
            gtk+                           ;required by libmutter.pc
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 02/10] gnu: python-ipykernel: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 01/10] gnu: mutter: Remove dependency " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 03/10] gnu: python-dbusmock: " Ludovic Courtès
                                 ` (8 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-ipykernel)[arguments]:
Remove #:imported-modules.  Remove (guix build syscalls) from #:modules.
Rewrite ‘check’ phase to reap child processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/python-xyz.scm | 31 +++++++++++++------------------
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 29ac11df95..d094c6e451 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -10660,10 +10660,7 @@ (define-public python-ipykernel
     (build-system pyproject-build-system)
     (arguments
      (list
-      #:imported-modules `(,@%pyproject-build-system-modules
-                           (guix build syscalls))
       #:modules '((guix build pyproject-build-system)
-                  (guix build syscalls)
                   (guix build utils)
                   (ice-9 match))
       #:phases
@@ -10682,20 +10679,19 @@ (define-public python-ipykernel
               (when tests?
                 (match (primitive-fork)
                   (0                    ;child process
-                   (set-child-subreaper!)
-                   ;; XXX: Tini provides proper PID1-like signal handling that
-                   ;; reaps zombie processes, necessary for the
-                   ;; 'test_shutdown_subprocesses' test to pass.
-
-                   ;; TODO: Complete https://issues.guix.gnu.org/30948.
                    (setenv "HOME" "/tmp")
-                   (execlp "tini" "--" "pytest" "-vv"))
-                  (pid
-                   (match (waitpid pid)
-                     ((_ . status)
-                      (unless (zero? status)
-                        (error "`pytest' exited with status"
-                               status)))))))))
+                   (execlp "pytest" "pytest" "-vv"))
+                  (pytest-pid
+                   ;; Reap zombie processes, necessary for the
+                   ;; 'test_shutdown_subprocesses' test to pass.
+                   (let loop ()
+                     (match (waitpid WAIT_ANY)
+                       ((pid . status)
+                        (if (= pid pytest-pid)
+                            (unless (zero? status)
+                              (error "`pytest' exited with status"
+                                     status))
+                            (loop))))))))))
           (add-after 'install 'set-python-file-name
             (lambda* (#:key inputs #:allow-other-keys)
               ;; Record the absolute file name of the 'python' executable in
@@ -10724,8 +10720,7 @@ (define-public python-ipykernel
            ;; and causes deprecation warnings.  Using the bootstrap variant
            ;; avoids that.
            python-pytest-bootstrap
-           python-pytest-timeout
-           tini))
+           python-pytest-timeout))
     (home-page "https://ipython.org")
     (synopsis "IPython Kernel for Jupyter")
     (description "This package provides the IPython kernel for Jupyter.")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 03/10] gnu: python-dbusmock: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 01/10] gnu: mutter: Remove dependency " Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 02/10] gnu: python-ipykernel: " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 04/10] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
                                 ` (7 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

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.
---
 gnu/packages/python-xyz.scm | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 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 @@ (define-public python-dbusmock
          "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 @@ (define-public python-dbusmock
              (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))))))))))))
+                  (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 tini which))
+     (list dbus python-pytest which))
     (inputs
      (list dbus))
     (propagated-inputs
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 04/10] gnu: python-dbusmock: Rewrite phases as a gexp.
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (2 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 03/10] gnu: python-dbusmock: " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 05/10] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
                                 ` (6 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-dbusmock)[arguments]: Use gexps.
---
 gnu/packages/python-xyz.scm | 62 +++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 782d1fae6f..4929c6dcc7 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27165,37 +27165,39 @@ (define-public python-dbusmock
          "1nwl0gzzds2g1w1gfxfzlgrkb5hr1rrdyn619ml25c6b1rjyfk3g"))))
     (build-system python-build-system)
     (arguments
-     `(#:modules ((guix build python-build-system)
-                  (guix build utils)
-                  (ice-9 match))
+     (list #:modules `((guix build python-build-system)
+                       (guix build utils)
+                       (ice-9 match))
 
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-paths
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "tests/test_code.py"
-               (("/bin/bash") (which "bash")))
-             (substitute* "dbusmock/testcase.py"
-               (("'dbus-daemon'")
-                (string-append "'" (assoc-ref inputs "dbus")
-                               "/bin/dbus-daemon'")))))
-         (replace 'check
-           (lambda* (#:key tests? #:allow-other-keys)
-             (when tests?
-               (match (primitive-fork)
-                 (0                     ;child process
-                  (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)))))))))))))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'patch-paths
+                 (lambda* (#:key inputs #:allow-other-keys)
+                   (substitute* "tests/test_code.py"
+                     (("/bin/bash")
+                      (which "bash")))
+                   (substitute* "dbusmock/testcase.py"
+                     (("'dbus-daemon'")
+                      (string-append "'" (assoc-ref inputs "dbus")
+                                     "/bin/dbus-daemon'")))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (match (primitive-fork)
+                       (0 ;child process
+                        (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
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 05/10] gnu: python-dbusmock: Use ‘search-input-file’.
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (3 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 04/10] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 06/10] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
                                 ` (5 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525
  Cc: Ludovic Courtès, Lars-Dominik Braun, Marius Bakke,
	Munyoki Kilyungi, jgart

* gnu/packages/python-xyz.scm (python-dbusmock)[arguments]: In
‘patch-paths’ phase, use ‘search-input-file’ instead of ‘assoc-ref’.
---
 gnu/packages/python-xyz.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 4929c6dcc7..65c23cb318 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27178,8 +27178,8 @@ (define-public python-dbusmock
                       (which "bash")))
                    (substitute* "dbusmock/testcase.py"
                      (("'dbus-daemon'")
-                      (string-append "'" (assoc-ref inputs "dbus")
-                                     "/bin/dbus-daemon'")))))
+                      (object->string
+                       (search-input-file inputs "/bin/dbus-daemon"))))))
                (replace 'check
                  (lambda* (#:key tests? #:allow-other-keys)
                    (when tests?
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 06/10] gnu: polkit: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (4 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 05/10] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 07/10] gnu: public-inbox: " Ludovic Courtès
                                 ` (4 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

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.
---
 gnu/packages/polkit.scm | 35 +++++++++++++++--------------------
 1 file changed, 15 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 6fe7824a57..2f733dd703 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -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
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 07/10] gnu: public-inbox: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (5 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 06/10] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 08/10] build-system/ant: " Ludovic Courtès
                                 ` (3 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

* gnu/packages/mail.scm (public-inbox)[arguments]: Remove #:imported-modules.
Remove (guix build syscalls) from #:modules.  Rewrite ‘check’ phase to
reap processes from the build process.
[native-inputs]: Remove TINI.
---
 gnu/packages/mail.scm | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index be458a2d92..fc5cde38ce 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2021, 2023 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
 ;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
@@ -4242,10 +4242,7 @@ (define-public public-inbox
              (file-name (git-file-name name version))))
     (build-system perl-build-system)
     (arguments
-     `(#:imported-modules (,@%perl-build-system-modules
-                           (guix build syscalls))
-       #:modules ((guix build perl-build-system)
-                  (guix build syscalls)
+     `(#:modules ((guix build perl-build-system)
                   (guix build utils)
                   (ice-9 match))
        #:phases
@@ -4282,18 +4279,20 @@ (define-public public-inbox
                     (setenv "TMP" "/tmp")
                     (setenv "TMPDIR" "/tmp")
 
-                    ;; Use tini so that signals are properly handled and
-                    ;; doubly-forked processes get reaped; otherwise,
-                    ;; lei-daemon is kept as a zombie and the testsuite
-                    ;; fails thinking that it didn't quit as it should.
-                    (set-child-subreaper!)
-                    (apply execlp "tini" "--"
+                    (apply execlp "make"
                            "make" "check" test-flags))
-                   (pid
-                    (match (waitpid pid)
-                      ((_ . status)
-                       (unless (zero? status)
-                         (error "`make check' exited with status" status))))))
+                   (make-pid
+                    ;; Reap child processes; otherwise, lei-daemon is kept as
+                    ;; a zombie and the testsuite fails thinking that it
+                    ;; didn't quit as it should.
+                    (let loop ()
+                      (match (waitpid WAIT_ANY)
+                        ((pid . status)
+                         (if (= pid make-pid)
+                             (unless (zero? status)
+                               (error "`make check' exited with status"
+                                      status))
+                             (loop)))))))
                  (format #t "test suite not run~%"))))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4313,7 +4312,7 @@ (define-public public-inbox
                 (find-files (string-append out "/bin")))))))))
     (native-inputs
      (list ;; For testing.
-           lsof openssl tini))
+           lsof openssl))
     (inputs
      (append
       (if (not (target-64bit?))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 08/10] build-system/ant: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (6 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 07/10] gnu: public-inbox: " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 09/10] build-system/android-ndk: " Ludovic Courtès
                                 ` (2 subsequent siblings)
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès, Björn Höfling, Julien Lepiller

The module has been unused since
a6343af22161b21ddbc4143a2b6a60d1ee860eb0.

* guix/build-system/ant.scm (%ant-build-system-modules): Remove (guix
build syscalls).
---
 guix/build-system/ant.scm | 1 -
 1 file changed, 1 deletion(-)

diff --git a/guix/build-system/ant.scm b/guix/build-system/ant.scm
index cfb033f6a5..e191fd3c99 100644
--- a/guix/build-system/ant.scm
+++ b/guix/build-system/ant.scm
@@ -43,7 +43,6 @@ (define %ant-build-system-modules
     (guix build maven plugin)
     (guix build maven pom)
     (guix build java-utils)
-    (guix build syscalls)
     ,@%gnu-build-system-modules))
 
 (define (default-jdk)
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 09/10] build-system/android-ndk: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (7 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 08/10] build-system/ant: " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 10/10] build-system/dub: " Ludovic Courtès
  2023-10-23  1:54               ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

The (guix build syscalls) module was unused.

* guix/build-system/android-ndk.scm (%android-ndk-build-system-modules):
Remove (guix build syscalls).
---
 guix/build-system/android-ndk.scm | 1 -
 1 file changed, 1 deletion(-)

diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm
index 047f884b19..aa7cc06279 100644
--- a/guix/build-system/android-ndk.scm
+++ b/guix/build-system/android-ndk.scm
@@ -31,7 +31,6 @@ (define-module (guix build-system android-ndk)
 (define %android-ndk-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build android-ndk-build-system)
-    (guix build syscalls)
     ,@%gnu-build-system-modules))
 
 (define* (android-ndk-build name inputs
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 10/10] build-system/dub: Remove dependency on (guix build syscalls).
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (8 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 09/10] build-system/android-ndk: " Ludovic Courtès
@ 2023-10-22 13:43               ` Ludovic Courtès
  2023-10-23  1:54               ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
  10 siblings, 0 replies; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-22 13:43 UTC (permalink / raw)
  To: 66525; +Cc: Ludovic Courtès

The (guix build syscalls) module was unused.

* guix/build-system/dub.scm (%dub-build-system-modules): Remove (guix
build syscalls).
---
 guix/build-system/dub.scm | 1 -
 1 file changed, 1 deletion(-)

diff --git a/guix/build-system/dub.scm b/guix/build-system/dub.scm
index b4011cdb83..951c084398 100644
--- a/guix/build-system/dub.scm
+++ b/guix/build-system/dub.scm
@@ -59,7 +59,6 @@ (define (default-ld-gold-wrapper)
 (define %dub-build-system-modules
   ;; Build-side modules imported by default.
   `((guix build dub-build-system)
-    (guix build syscalls)
     ,@%gnu-build-system-modules))
 
 (define* (dub-build name inputs
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
                                 ` (9 preceding siblings ...)
  2023-10-22 13:43               ` [bug#66525] [PATCH v2 10/10] build-system/dub: " Ludovic Courtès
@ 2023-10-23  1:54               ` Maxim Cournoyer
  2023-10-23 10:09                 ` Ludovic Courtès
  10 siblings, 1 reply; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-23  1:54 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525

Hi Ludovic,

Ludovic Courtès <ludo@gnu.org> writes:

> Hello!
>
> Here’s an updated version of this patch set; changes compared to v1:
>
>   • Update outdated comment in one of the packages;
>
>   • Remove dependency on (guix build syscalls) of the following build
>     systems: ant, dub, android-ndk.
>
> I’ve pushed this as ‘wip-syscall-update’ and got ci.guix to build it:
>
>   https://ci.guix.gnu.org/jobset/syscall-update
>
> As discussed earlier, I’ll send a merge request.

OK.  It seems the branch was already mostly built (72% vs 73% for
master), so it should be good.

I'd still like to have something like bug#65595 implemented in Cuirass
so that it'd be easy to list all regressions that have to do with a
topic branch.  Currently failed builds are all grouped in the outputs,
whether it's for already or newly failing packages, which is less useful
in the context of feature branches.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-23  1:54               ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
@ 2023-10-23 10:09                 ` Ludovic Courtès
  2023-10-23 15:12                   ` Maxim Cournoyer
  0 siblings, 1 reply; 34+ messages in thread
From: Ludovic Courtès @ 2023-10-23 10:09 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: 66525

Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

>> I’ve pushed this as ‘wip-syscall-update’ and got ci.guix to build it:
>>
>>   https://ci.guix.gnu.org/jobset/syscall-update
>>
>> As discussed earlier, I’ll send a merge request.
>
> OK.  It seems the branch was already mostly built (72% vs 73% for
> master), so it should be good.

Yes.  (For the record, that’s almost 14K builds in 18 hours; the
x86_64/i686 builds were most likely completed in half of that time.)

Now merged as 48c1a74b2461d42dc0df202d8353640b3b64ac62!

> I'd still like to have something like bug#65595 implemented in Cuirass
> so that it'd be easy to list all regressions that have to do with a
> topic branch.  Currently failed builds are all grouped in the outputs,
> whether it's for already or newly failing packages, which is less useful
> in the context of feature branches.

It’s something where the Data Service really shines because it knows the
derivations of each package of each revision, and it can compare
substitute availability.

Perhaps what we need is closer integration and/or user interface
improvement.  For example, it’s not trivial from
<https://data.qa.guix.gnu.org/repository/1/branch/issue-66525> to get to
a comparison against the ‘master’ branch.

Ludo’.




^ permalink raw reply	[flat|nested] 34+ messages in thread

* [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls)
  2023-10-23 10:09                 ` Ludovic Courtès
@ 2023-10-23 15:12                   ` Maxim Cournoyer
  0 siblings, 0 replies; 34+ messages in thread
From: Maxim Cournoyer @ 2023-10-23 15:12 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 66525

Hey Ludo,

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>>> I’ve pushed this as ‘wip-syscall-update’ and got ci.guix to build it:
>>>
>>>   https://ci.guix.gnu.org/jobset/syscall-update
>>>
>>> As discussed earlier, I’ll send a merge request.
>>
>> OK.  It seems the branch was already mostly built (72% vs 73% for
>> master), so it should be good.
>
> Yes.  (For the record, that’s almost 14K builds in 18 hours; the
> x86_64/i686 builds were most likely completed in half of that time.)
>
> Now merged as 48c1a74b2461d42dc0df202d8353640b3b64ac62!

I'm surprised even the ARM machines managed to build so many packages
that fast!  Great :-).

>> I'd still like to have something like bug#65595 implemented in Cuirass
>> so that it'd be easy to list all regressions that have to do with a
>> topic branch.  Currently failed builds are all grouped in the outputs,
>> whether it's for already or newly failing packages, which is less useful
>> in the context of feature branches.
>
> It’s something where the Data Service really shines because it knows the
> derivations of each package of each revision, and it can compare
> substitute availability.

There doesn't seem to be a technical limitation in allowing to filter on
'newly broken' packages; we can already see in the shared bag of 'failed
builds' that some are new failures (they have a down arrow icon), so
Cuirass already has that data; it's just not possibly to query it precisely,
unless I'm missing something.

-- 
Thanks,
Maxim




^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2023-10-23 15:12 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-13 15:45 [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. on (guix build syscalls) Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 1/7] gnu: mutter: Remove dependency " Ludovic Courtès
2023-10-13 16:49   ` Liliana Marie Prikler
2023-10-14 12:53     ` Maxim Cournoyer
2023-10-14 17:48       ` Ludovic Courtès
2023-10-13 17:05   ` Bruno Victal
2023-10-14 17:48     ` Ludovic Courtès
2023-10-14 12:52   ` Maxim Cournoyer
2023-10-14 17:50     ` Ludovic Courtès
2023-10-15 19:54       ` Maxim Cournoyer
2023-10-16 15:16         ` Ludovic Courtès
2023-10-16 16:19           ` Maxim Cournoyer
2023-10-22 13:43             ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 01/10] gnu: mutter: Remove dependency " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 02/10] gnu: python-ipykernel: " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 03/10] gnu: python-dbusmock: " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 04/10] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 05/10] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 06/10] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 07/10] gnu: public-inbox: " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 08/10] build-system/ant: " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 09/10] build-system/android-ndk: " Ludovic Courtès
2023-10-22 13:43               ` [bug#66525] [PATCH v2 10/10] build-system/dub: " Ludovic Courtès
2023-10-23  1:54               ` [bug#66525] [PATCH v2 00/10] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
2023-10-23 10:09                 ` Ludovic Courtès
2023-10-23 15:12                   ` Maxim Cournoyer
2023-10-13 15:47 ` [bug#66525] [PATCH 2/7] gnu: python-ipykernel: Remove dependency " Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 3/7] gnu: python-dbusmock: " Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 4/7] gnu: python-dbusmock: Rewrite phases as a gexp Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 5/7] gnu: python-dbusmock: Use ‘search-input-file’ Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 6/7] gnu: polkit: Remove dependency on (guix build syscalls) Ludovic Courtès
2023-10-13 15:47 ` [bug#66525] [PATCH 7/7] gnu: public-inbox: " Ludovic Courtès
2023-10-14 12:56 ` [bug#66525] [PATCH 0/7] Remove dependency of polkit, python-dbusmock, etc. " Maxim Cournoyer
2023-10-17  8:56 ` Efraim Flashner

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).