diff options
| author | John Kehayias <john.kehayias@protonmail.com> | 2023-01-05 16:06:19 -0500 | 
|---|---|---|
| committer | John Kehayias <john.kehayias@protonmail.com> | 2023-01-15 17:54:14 -0500 | 
| commit | 3bfbfa2946aebb7f68c8027ae80f272f6915c94f (patch) | |
| tree | c89947b4f18fbba364749153e90155589196c7c6 /guix/scripts/environment.scm | |
| parent | a5b914156eda876000ecab29ebe855080f8d8ff6 (diff) | |
environment: Fix '--emulate-fhs' option overriding $PATH.
Fixes <https://issues.guix.gnu.org/60566> where even if "--preserve='^PATH$'"
was passed to 'guix shell' it would be replaced by just the FHS directories
when '--emulate-fhs' was also set.
* gnu/scripts/environment.scm (launch-environment): Add the FHS directories to
$PATH rather than overriding $PATH completely.
* tests/guix-environment-container.sh: Test that FHS directories are in $PATH
in the container and that $PATH can be preserved.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'guix/scripts/environment.scm')
| -rw-r--r-- | guix/scripts/environment.scm | 11 | 
1 files changed, 7 insertions, 4 deletions
| diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index c7fd8fd340..46435ae48e 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -1,8 +1,8 @@  ;;; GNU Guix --- Functional package management for GNU  ;;; Copyright © 2014, 2015, 2018 David Thompson <davet@gnu.org> -;;; Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015-2023 Ludovic Courtès <ludo@gnu.org>  ;;; Copyright © 2018 Mike Gerwitz <mtg@gnu.org> -;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>  ;;;  ;;; This file is part of GNU Guix.  ;;; @@ -475,10 +475,13 @@ cache."       (catch 'system-error         (lambda ()           (when emulate-fhs? -           ;; When running in a container with EMULATE-FHS?, override $PATH +           ;; When running in a container with EMULATE-FHS?, augment $PATH             ;; (optional, but to better match FHS expectations), and generate             ;; /etc/ld.so.cache. -           (setenv "PATH" "/bin:/usr/bin:/sbin:/usr/sbin") +           (setenv "PATH" (string-append "/bin:/usr/bin:/sbin:/usr/sbin" +                                         (if (getenv "PATH") +                                             (string-append ":" (getenv "PATH")) +                                             "")))             (invoke "ldconfig" "-X"))           (apply execlp program program args))         (lambda _ | 
