~ruther/guix-local

9c513303156b418567b9d2cde9f8df66190051ac — Ludovic Courtès 3 years ago ae92d98
shell: Really take system into account in the cache key.

Fixes <https://issues.guix.gnu.org/63230>.

Previously, when running "guix shell -s X ...", OPTS would contain
something like '((system . "X") ... (system . "DEFAULT")).  Thus, since
'profile-cached-gc-root' would iterate over it in this order, "DEFAULT"
would be passed to 'profile-file-cache-key' and 'profile-spec-cache-key'
instead of "X".

* guix/scripts/shell.scm (profile-cached-gc-root): Reverse OPTS before
entering 'loop'.
1 files changed, 3 insertions(+), 1 deletions(-)

M guix/scripts/shell.scm
M guix/scripts/shell.scm => guix/scripts/shell.scm +3 -1
@@ 374,7 374,9 @@ return #f and #f."
  (define (key->file key)
    (string-append (%profile-cache-directory) "/" key))

  (let loop ((opts opts)
  ;; A given key such as 'system might appear more than once in OPTS, so
  ;; process it backwards so the last occurrence "wins".
  (let loop ((opts (reverse opts))
             (system (%current-system))
             (file #f)
             (specs '()))