gnu: guix-daemon: Run 'guix' from /var/guix/profiles/per-user/root.

Fixes <https://bugs.gnu.org/32183>.
Reported by Pjotr Prins <pjotr.public12@thebird.nl>
and Konrad Hinsen <konrad.hinsen@fastmail.net>.

* gnu/packages/package-management.scm (guix-daemon)[arguments]: Execute
/var/guix/profiles/per-user/root/current-guix/bin/guix instead of ~root/….
This commit is contained in:
Ludovic Courtès 2018-10-11 18:27:21 +02:00
parent 795d430d90
commit ed9d7cb4d9
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -347,12 +347,14 @@ (define-public guix-daemon
"install-nodist_pkglibexecSCRIPTS")
;; We need to tell 'guix-daemon' which 'guix' command to use.
;; Here we use a questionable hack where we hard-code
;; "~root/.config", which could be wrong (XXX).
;; Here we use a questionable hack where we hard-code root's
;; current guix, which could be wrong (XXX). Note that scripts
;; like 'guix perform-download' do not run as root so we assume
;; that they have access to /var/guix/profiles/per-user/root.
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files (string-append out "/libexec"))
(("exec \".*/bin/guix\"")
"exec ~root/.config/guix/current/bin/guix"))
"exec /var/guix/profiles/per-user/root/current-guix/bin/guix"))
#t)))
(delete 'wrap-program)))))))