From 3bfbfa2946aebb7f68c8027ae80f272f6915c94f Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Thu, 5 Jan 2023 16:06:19 -0500 Subject: environment: Fix '--emulate-fhs' option overriding $PATH. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes 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 --- guix/scripts/environment.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'guix') 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 -;;; Copyright © 2015-2022 Ludovic Courtès +;;; Copyright © 2015-2023 Ludovic Courtès ;;; Copyright © 2018 Mike Gerwitz -;;; Copyright © 2022 John Kehayias +;;; Copyright © 2022, 2023 John Kehayias ;;; ;;; This file is part of GNU Guix. ;;; @@ -475,10 +475,13 @@ (define* (launch-environment command profile manifest (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 _ -- cgit v1.2.3