summary refs log tree commit diff
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.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) "/"