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 /tests | |
parent | a5b914156eda876000ecab29ebe855080f8d8ff6 (diff) | |
download | guix-3bfbfa2946aebb7f68c8027ae80f272f6915c94f.tar guix-3bfbfa2946aebb7f68c8027ae80f272f6915c94f.tar.gz |
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 'tests')
-rw-r--r-- | tests/guix-environment-container.sh | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/guix-environment-container.sh b/tests/guix-environment-container.sh index 0306fc1744..0475405a89 100644 --- a/tests/guix-environment-container.sh +++ b/tests/guix-environment-container.sh @@ -1,6 +1,7 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2015 David Thompson <davet@gnu.org> -# Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> +# Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com> +# Copyright © 2023 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -242,6 +243,16 @@ guix shell -CF --bootstrap guile-bootstrap glibc \ 0 1))' +# Test that $PATH inside the container includes the FHS directories. +guix shell -CF coreutils -- env | grep ^PATH=/bin:/usr/bin:/sbin:/usr/sbin.* + +# Make sure '--preserve' is honored for $PATH, which the '--emulate-fhs' +# option modifies. We can't (easily) check the whole $PATH as it will differ +# inside and outside the container, so just check our test $PATH is still +# present. See <https://issues.guix.gnu.org/60566>. +PATH=/foo $(type -P guix) shell -CF -E ^PATH$ coreutils \ + -- env | grep ^PATH=.*:/foo + # '--symlink' works. echo "TESTING SYMLINK IN CONTAINER" guix shell --bootstrap guile-bootstrap --container \ |