summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-07-15 12:45:32 +0200
committerLudovic Courtès <ludo@gnu.org>2022-07-15 17:36:57 +0200
commit30915a7419d48c6a5dcfdc3a1547268ac406a9ef (patch)
tree5e4a2a81a500a708995a9bbfa6af1de34953c0f7
parent4eb33b370624a39d91aca550c38615821da3f377 (diff)
downloadguix-30915a7419d48c6a5dcfdc3a1547268ac406a9ef.tar.gz
shell: Ignore cached profiles when using '--export-manifest'.
Fixes <https://issues.guix.gnu.org/56539>.

Fixes a bug where "guix shell -D pkg --export-manifest" would provide
the expansion of PKG's dependencies instead of a call to
'package-development-manifest' if that profile happened to be cached.

* guix/scripts/shell.scm (profile-cached-gc-root): Add clause for 'export-manifest?.
-rw-r--r--guix/scripts/shell.scm5
1 files changed, 5 insertions, 0 deletions
diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm
index 004ed7af2e..c115a00320 100644
--- a/guix/scripts/shell.scm
+++ b/guix/scripts/shell.scm
@@ -390,6 +390,11 @@ return #f and #f."
        ;; If the user already specified a profile, there's nothing more to
        ;; cache.
        (values #f #f))
+      ((('export-manifest? . #t) . _)
+       ;; When exporting a manifest, compute it anew so that '-D' packages
+       ;; lead to 'package-development-manifest' expressions rather than an
+       ;; expanded list of inputs.
+       (values #f #f))
       ((('system . system) . rest)
        (loop rest system file specs))
       ((_ . rest) (loop rest system file specs)))))