diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-01-16 10:57:19 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-01-16 18:30:57 +0100 |
commit | 84c5da08dda4fa8fd0e0f1e6a8a115190005f84a (patch) | |
tree | f9a553a07bb500e6ebc763ec5342c53445e13a0d | |
parent | 4fe01b09ea0b304b963b7fd9f168439ddfb515c1 (diff) | |
download | guix-84c5da08dda4fa8fd0e0f1e6a8a115190005f84a.tar guix-84c5da08dda4fa8fd0e0f1e6a8a115190005f84a.tar.gz |
guix package: Export 'transaction-upgrade-entry'.
* guix/scripts/package.scm (transaction-upgrade-entry): Add 'store'
parameter and use it instead of (%store). Export.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades")
("transaction-upgrade-entry, one upgrade")
("transaction-upgrade-entry, superseded package"): Adjust accordingly.
-rw-r--r-- | guix/scripts/package.scm | 8 | ||||
-rw-r--r-- | tests/packages.scm | 11 |
2 files changed, 12 insertions, 7 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 0fe25aee6f..f4d92a649e 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -63,6 +63,8 @@ delete-matching-generations guix-package + transaction-upgrade-entry ;mostly for testing + (%options . %package-options) (%default-options . %package-default-options) guix-package*)) @@ -205,7 +207,7 @@ non-zero relevance score." (package-full-name package2)) (> score1 score2)))))))))) -(define (transaction-upgrade-entry entry transaction) +(define (transaction-upgrade-entry store entry transaction) "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a <manifest-entry>." (define (supersede old new) @@ -242,7 +244,7 @@ non-zero relevance score." transaction) ((=) (let ((candidate-path (derivation->output-path - (package-derivation (%store) pkg)))) + (package-derivation store pkg)))) ;; XXX: When there are propagated inputs, assume we need to ;; upgrade the whole entry. (if (and (string=? path candidate-path) @@ -600,7 +602,7 @@ and upgrades." (define upgraded (fold (lambda (entry transaction) (if (upgrade? (manifest-entry-name entry)) - (transaction-upgrade-entry entry transaction) + (transaction-upgrade-entry (%store) entry transaction) transaction)) transaction (manifest-entries manifest))) diff --git a/tests/packages.scm b/tests/packages.scm index 423c5061aa..1ff35ec9c4 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -100,7 +100,8 @@ (let* ((old (dummy-package "foo" (version "1"))) (tx (mock ((gnu packages) find-best-packages-by-name (const '())) - ((@@ (guix scripts package) transaction-upgrade-entry) + (transaction-upgrade-entry + #f ;no store access needed (manifest-entry (inherit (package->manifest-entry old)) (item (string-append (%store-prefix) "/" @@ -113,7 +114,8 @@ (new (dummy-package "foo" (version "2"))) (tx (mock ((gnu packages) find-best-packages-by-name (const (list new))) - ((@@ (guix scripts package) transaction-upgrade-entry) + (transaction-upgrade-entry + #f ;no store access needed (manifest-entry (inherit (package->manifest-entry old)) (item (string-append (%store-prefix) "/" @@ -130,7 +132,8 @@ (dep (deprecated-package "foo" new)) (tx (mock ((gnu packages) find-best-packages-by-name (const (list dep))) - ((@@ (guix scripts package) transaction-upgrade-entry) + (transaction-upgrade-entry + #f ;no store access needed (manifest-entry (inherit (package->manifest-entry old)) (item (string-append (%store-prefix) "/" |