GNU bug report logs - #77189
[PATCH 0/3] Socket activation for guix-daemon

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Sat, 22 Mar 2025 18:14:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 77189 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 77189 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: [PATCH 2/3] services: guix: Streamline the default ‘start’ case.
Date: Sat, 22 Mar 2025 19:23:35 +0100
* gnu/services/base.scm (guix-shepherd-service): In ‘start’ method, use
‘fork+exec-command’ in the default case.

Change-Id: Id04d3d2651f89fbcdb2f17f027df91e132ff9ed1
---
 gnu/services/base.scm | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 6793822666..c7abc9b422 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -2137,23 +2137,20 @@ (define (guix-shepherd-service config)
                          (gid (if group (group:gid (getgrnam group)) -1)))
                     (chown "/var/guix/daemon-socket" uid gid))
 
-                  ;; Start the guix-daemon from a container, when supported,
-                  ;; to solve an installation issue. See the comment below for
-                  ;; more details.
-                  (fork+exec-command/container
-                   daemon-command
-
-                   ;; When running the installer, we need guix-daemon to
-                   ;; operate from within the same MNT namespace as the
-                   ;; installation container. In that case only, enter the
-                   ;; namespace of the process PID passed as start argument.
-                   ;; Otherwise, for symmetry purposes enter the caller
-                   ;; namespaces which is a no-op.
-                   #:pid (match args
-                           ((pid) (string->number pid))
-                           (else (getpid)))
-                   #:environment-variables environment-variables
-                   #:log-file #$log-file))))
+                  (match args
+                    (((= string->number (? integer? pid)))
+                     ;; Start the guix-daemon in the same mnt namespace as
+                     ;; PID.  This is necessary when running the installer.
+                     (fork+exec-command/container
+                      daemon-command
+                      #:pid pid
+                      #:environment-variables environment-variables
+                      #:log-file #$log-file))
+                    (()
+                     (fork+exec-command daemon-command
+                                        #:environment-variables
+                                        environment-variables
+                                        #:log-file #$log-file))))))
            (stop #~(make-kill-destructor))))))
 
 (define (guix-accounts config)
-- 
2.48.1





This bug report was last modified 101 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.