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'.
parent
ae92d98b93
commit
9c51330315
|
@ -374,7 +374,9 @@ return #f and #f."
|
||||||
(define (key->file key)
|
(define (key->file key)
|
||||||
(string-append (%profile-cache-directory) "/" 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))
|
(system (%current-system))
|
||||||
(file #f)
|
(file #f)
|
||||||
(specs '()))
|
(specs '()))
|
||||||
|
|
Reference in New Issue