From 4aea820f0954fce4d076718072faf211f62f3f9d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 15 Apr 2019 16:57:12 +0200 Subject: guix build: Fix relative file name canonicalization for '--root'. Fixes . 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. --- guix/scripts/build.scm | 2 +- tests/guix-build.sh | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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: . +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 -- cgit 1.4.1