aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-11-22 23:17:04 +0100
committerLudovic Courtès <ludo@gnu.org>2023-11-22 23:55:12 +0100
commit5283d24062be62f59ff9f14fa7095ebcfcb7a9a4 (patch)
tree38b702fc64c2242ef70bcf94178c0f35db8b60aa
parent762be400984e2e537ecb205acace1d7d541d5f8a (diff)
downloadguix-5283d24062be62f59ff9f14fa7095ebcfcb7a9a4.tar.gz
guix-5283d24062be62f59ff9f14fa7095ebcfcb7a9a4.zip
shell: Disable caching for ‘guix shell -f guix.scm’.
Fixes <https://issues.guix.gnu.org/64858>. * guix/scripts/shell.scm (profile-cached-gc-root): Distinguish the two ‘load’ cases; return #f and #f for (load ad-hoc-package _). Reported-by: Pierre-Henry Fröhring <phfrohring@deeplinks.com>. Change-Id: I00282fbd41aeed09fb927690945cf65e1f9efe4d
-rw-r--r--guix/scripts/shell.scm9
1 files changed, 8 insertions, 1 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm
index ef22cd60e6..0584a7e018 100644
--- a/guix/scripts/shell.scm
+++ b/guix/scripts/shell.scm
@@ -398,10 +398,17 @@ return #f and #f."
(values #f #f)))
((('nesting? . #t) . rest)
(loop rest system file (append specs '("nested guix"))))
- ((('load . (_ candidate)) . rest)
+ ((('load . ('package candidate)) . rest)
+ ;; This is 'guix shell -D -f guix.scm'.
(if (and (not file) (null? specs))
(loop rest system candidate specs)
(values #f #f)))
+ ((('load . ('ad-hoc-package candidate)) . rest)
+ ;; When running 'guix shell -f guix.scm', one typically expects
+ ;; 'guix.scm' to be evaluated every time because it may contain
+ ;; references like (local-file "." #:recursive? #t). Thus, disable
+ ;; caching.
+ (values #f #f))
((('manifest . candidate) . rest)
(if (and (not file) (null? specs))
(loop rest system candidate specs)