diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-15 16:57:12 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-15 16:57:12 +0200 |
commit | 4aea820f0954fce4d076718072faf211f62f3f9d (patch) | |
tree | e1f6952bfe18778da074657a6745093e06c8d07f | |
parent | cbd059d1017bc22723f1e5293cc8f20dea640fff (diff) | |
download | guix-4aea820f0954fce4d076718072faf211f62f3f9d.tar.gz guix-4aea820f0954fce4d076718072faf211f62f3f9d.zip |
guix build: Fix relative file name canonicalization for '--root'.
Fixes <https://bugs.gnu.org/35271>.
Reported by rendaw <7e9wc56emjakcm@s.rendaw.me>.
* guix/scripts/build.scm (register-root): When ROOT is a relative file
name, append the basename of ROOT, not ROOT itself.
* tests/guix-build.sh: Add test.
-rw-r--r-- | guix/scripts/build.scm | 2 | ||||
-rw-r--r-- | tests/guix-build.sh | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 28864435df..fc0c0e2ad3 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -119,7 +119,7 @@ found. Return #f if no build log was found." (let* ((root (if (string-prefix? "/" root) root (string-append (canonicalize-path (dirname root)) - "/" root)))) + "/" (basename root))))) (catch 'system-error (lambda () (match paths diff --git a/tests/guix-build.sh b/tests/guix-build.sh index 66bf6be8d0..d479296ef1 100644 --- a/tests/guix-build.sh +++ b/tests/guix-build.sh @@ -183,6 +183,13 @@ then false; else true; fi rm -f "$result" +# Check relative file name canonicalization: <https://bugs.gnu.org/35271>. +mkdir "$result" +guix build -r "$result/x" -e '(@@ (gnu packages bootstrap) %bootstrap-guile)' +test -x "$result/x/bin/guile" +rm "$result/x" +rmdir "$result" + # Cross building. guix build coreutils --target=mips64el-linux-gnu --dry-run --no-substitutes |