diff options
author | JOULAUD François <Francois.JOULAUD@radiofrance.com> | 2021-01-18 08:26:02 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-01-19 17:45:38 +0100 |
commit | 4d79f072cc7b502fc25486d514c9200ba684a596 (patch) | |
tree | 57d1ec4803e1381ac79bf916d9ad87307a4da821 | |
parent | f97ee7741883cc69be90947c7e699bd8435f065f (diff) | |
download | guix-4d79f072cc7b502fc25486d514c9200ba684a596.tar.gz guix-4d79f072cc7b502fc25486d514c9200ba684a596.zip |
environment: Fix '--root' option with relative file name.
The path normalization of `--root` option of `guix environment` was
buggy as it appended full argument after normalized directory. This
patch fixes it.
* guix/scripts/environment.scm (register-gc-root): Fix gc-root path
normalization.
* tests/guix-environment.sh: Add test.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | guix/scripts/environment.scm | 2 | ||||
-rw-r--r-- | tests/guix-environment.sh | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index fbc202c658..f4d12f89bf 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -675,7 +675,7 @@ message if any test fails." (let* ((root (if (string-prefix? "/" root) root (string-append (canonicalize-path (dirname root)) - "/" root)))) + "/" (basename root))))) (catch 'system-error (lambda () (symlink target root) diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh index f8be48f0c0..afadcbe195 100644 --- a/tests/guix-environment.sh +++ b/tests/guix-environment.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -121,6 +121,12 @@ guix environment --bootstrap -r "$gcroot" --ad-hoc guile-bootstrap \ test `readlink "$gcroot"` = "$expected" rm "$gcroot" +# Try '-r' with a relative file name. +(cd "$tmpdir"; mkdir "gc-root"; + guix environment --bootstrap -r "gc-root/r" --ad-hoc guile-bootstrap \ + -- guile -c 1; + rm "gc-root/r"; rmdir "gc-root") + # Same with an absolute file name. guix environment --bootstrap -r "$PWD/$gcroot" --ad-hoc guile-bootstrap \ -- guile -c 1 |