summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-03-02 11:58:51 +0100
committerLudovic Courtès <ludo@gnu.org>2022-03-02 19:26:15 +0100
commitee6275c9744f8649bccc8cfa7c52d100044d7570 (patch)
tree2a05adecfe550b4012c3eedb51971b35a52b59d3
parent209a3274f8702acd32fa2a489667048ca4ad304b (diff)
downloadguix-patches-ee6275c9744f8649bccc8cfa7c52d100044d7570.tar
guix-patches-ee6275c9744f8649bccc8cfa7c52d100044d7570.tar.gz
shell: Disable caching when '-p' is passed.
Fixes <https://issues.guix.gnu.org/53658>. Reported by Guillaume Le Vaillant <glv@posteo.net>. Previously we would wrongfully cache things, by adding a new (profile . _) pair to the option alist, when the user runs: guix shell -p /path/to/profile -q * guix/scripts/shell.scm (profile-cached-gc-root): Add ('profile . _) case.
-rw-r--r--guix/scripts/shell.scm4
1 files changed, 4 insertions, 0 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm
index a92932cbc9..1eab05d737 100644
--- a/guix/scripts/shell.scm
+++ b/guix/scripts/shell.scm
@@ -372,6 +372,10 @@ return #f and #f."
;; least depending on external state (with-source, with-commit, etc.),
;; so do not cache anything when they're used.
(values #f #f))
+ ((('profile . _) . _)
+ ;; If the user already specified a profile, there's nothing more to
+ ;; cache.
+ (values #f #f))
((('system . system) . rest)
(loop rest system file specs))
((_ . rest) (loop rest system file specs)))))