aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-01-16 10:57:19 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-16 18:30:57 +0100
commit84c5da08dda4fa8fd0e0f1e6a8a115190005f84a (patch)
treef9a553a07bb500e6ebc763ec5342c53445e13a0d
parent4fe01b09ea0b304b963b7fd9f168439ddfb515c1 (diff)
downloadguix-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.scm8
-rw-r--r--tests/packages.scm11
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) "/"