~ruther/guix-local

71977101218d1fd5d7f5016cbbcb8710be057d49 — Ludovic Courtès 4 years ago c879354
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.
2 files changed, 15 insertions(+), 1 deletions(-)

M guix/scripts/shell.scm
M tests/guix-shell.sh
M guix/scripts/shell.scm => guix/scripts/shell.scm +1 -1
@@ 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)))

M tests/guix-shell.sh => tests/guix-shell.sh +14 -0
@@ 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.