summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/package-management.scm2
-rw-r--r--guix/self.scm14
2 files changed, 13 insertions, 3 deletions
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index ef38a6f61a..c52f5e3699 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -356,7 +356,7 @@ the Nix package manager.")
                (let ((out (assoc-ref outputs "out")))
                  (substitute* (find-files (string-append out "/libexec"))
                    (("exec \".*/bin/guix\"")
-                    "exec /var/guix/profiles/per-user/root/current-guix/bin/guix"))
+                    "exec \"${GUIX:-/var/guix/profiles/per-user/root/current-guix/bin/guix}\""))
                  #t)))
            (delete 'wrap-program)))))))
 
diff --git a/guix/self.scm b/guix/self.scm
index 68f5641fec..a45470a0a6 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -460,17 +460,27 @@ load path."
 the modules (under share/guile/site and lib/guile), and DEPENDENCIES, a list
 of packages depended on.  COMMAND is the 'guix' program to use; INFO is the
 Info manual."
+  (define (wrap daemon)
+    (program-file "guix-daemon"
+                  #~(begin
+                      (setenv "GUIX" #$command)
+                      (apply execl #$(file-append daemon "/bin/guix-daemon")
+                             "guix-daemon" (cdr (command-line))))))
+
   (computed-file name
                  (with-imported-modules '((guix build utils))
                    #~(begin
                        (use-modules (guix build utils))
 
+                       (define daemon
+                         #$(and daemon (wrap daemon)))
+
                        (mkdir-p (string-append #$output "/bin"))
                        (symlink #$command
                                 (string-append #$output "/bin/guix"))
 
-                       (when #$daemon
-                         (symlink (string-append #$daemon "/bin/guix-daemon")
+                       (when daemon
+                         (symlink daemon
                                   (string-append #$output "/bin/guix-daemon")))
 
                        (let ((share (string-append #$output "/share"))