diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-12-10 12:26:29 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-12-10 15:32:44 +0100 |
commit | 71977101218d1fd5d7f5016cbbcb8710be057d49 (patch) | |
tree | 1748634f97058e9b754df205ab2eaee0ebc041c9 | |
parent | c879354003df61703c4b6c874650608bf569d77d (diff) | |
download | guix-71977101218d1fd5d7f5016cbbcb8710be057d49.tar.gz |
shell: When using '-D -f', '-D' has no effect on remaining packages.
Fixes <https://issues.guix.gnu.org/52093>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/shell.scm (%options): In "--file" handler, add call to 'ensure-ad-hoc'. * tests/guix-shell.sh: Add test.
-rw-r--r-- | guix/scripts/shell.scm | 2 | ||||
-rw-r--r-- | tests/guix-shell.sh | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 7cd7ce78e1..546639818f 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -115,7 +115,7 @@ interactive shell in that environment.\n")) (option '(#\f "file") #t #f (lambda (opt name arg result) (alist-cons 'load (tag-package-arg result arg) - result))) + (ensure-ad-hoc result)))) (option '(#\q) #f #f (lambda (opt name arg result) (alist-cons 'explicit-loading? #t result))) diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh index 3bdf625189..d8cae9d614 100644 --- a/tests/guix-shell.sh +++ b/tests/guix-shell.sh @@ -73,6 +73,20 @@ echo "Broken manifest." > "$tmpdir/manifest.scm" (cd "$tmpdir"; SHELL="$(realpath fake-shell.sh)" guix shell --bootstrap -q) rm "$tmpdir/manifest.scm" +# Make sure '-D' affects only the immediately following '-f', and not packages +# that appear later: <https://issues.guix.gnu.org/52093>. +cat > "$tmpdir/empty-package.scm" <<EOF +(use-modules (guix) (guix tests) + (guix build-system trivial)) + +(dummy-package "empty-package" + (build-system trivial-build-system)) ;zero inputs +EOF + +guix shell --bootstrap --pure -D -f "$tmpdir/empty-package.scm" \ + guile-bootstrap -- guile --version +rm "$tmpdir/empty-package.scm" + if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null then # Compute the build environment for the initial GNU Make. |