[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#34060] [PATCH 02/10] guix package: Avoid 'find-newest-available-pac
From: |
Ludovic Courtès |
Subject: |
[bug#34060] [PATCH 02/10] guix package: Avoid 'find-newest-available-packages'. |
Date: |
Sun, 13 Jan 2019 16:47:25 +0100 |
* guix/scripts/package.scm (transaction-upgrade-entry): Use
'find-best-packages-by-name' instead of
'find-newest-available-packages'.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades")
("transaction-upgrade-entry, one upgrade")
("transaction-upgrade-entry, superseded package"): Adjust accordingly.
---
guix/scripts/package.scm | 51 ++++++++++++++++++++--------------------
tests/packages.scm | 14 +++++------
2 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 7ff6bfd6d8..872a7303fc 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -220,31 +220,32 @@ of relevance scores."
('dismiss
transaction)
(($ <manifest-entry> name version output (? string? path))
- (match (vhash-assoc name (find-newest-available-packages))
- ((_ candidate-version pkg . rest)
- (match (package-superseded pkg)
- ((? package? new)
- (supersede entry new))
- (#f
- (case (version-compare candidate-version version)
- ((>)
- (manifest-transaction-install-entry
- (package->manifest-entry* pkg output)
- transaction))
- ((<)
- transaction)
- ((=)
- (let ((candidate-path (derivation->output-path
- (package-derivation (%store) pkg))))
- ;; XXX: When there are propagated inputs, assume we need to
- ;; upgrade the whole entry.
- (if (and (string=? path candidate-path)
- (null? (package-propagated-inputs pkg)))
- transaction
- (manifest-transaction-install-entry
- (package->manifest-entry* pkg output)
- transaction))))))))
- (#f
+ (match (find-best-packages-by-name name #f)
+ ((pkg . rest)
+ (let ((candidate-version (package-version pkg)))
+ (match (package-superseded pkg)
+ ((? package? new)
+ (supersede entry new))
+ (#f
+ (case (version-compare candidate-version version)
+ ((>)
+ (manifest-transaction-install-entry
+ (package->manifest-entry* pkg output)
+ transaction))
+ ((<)
+ transaction)
+ ((=)
+ (let ((candidate-path (derivation->output-path
+ (package-derivation (%store) pkg))))
+ ;; XXX: When there are propagated inputs, assume we need to
+ ;; upgrade the whole entry.
+ (if (and (string=? path candidate-path)
+ (null? (package-propagated-inputs pkg)))
+ transaction
+ (manifest-transaction-install-entry
+ (package->manifest-entry* pkg output)
+ transaction)))))))))
+ (()
(warning (G_ "package '~a' no longer exists~%") name)
transaction)))))
diff --git a/tests/packages.scm b/tests/packages.scm
index 237feb7aba..eb8ede3207 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 Ludovic Courtès
<address@hidden>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès
<address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -96,8 +96,8 @@
(test-assert "transaction-upgrade-entry, zero upgrades"
(let* ((old (dummy-package "foo" (version "1")))
- (tx (mock ((gnu packages) find-newest-available-packages
- (const vlist-null))
+ (tx (mock ((gnu packages) find-best-packages-by-name
+ (const '()))
((@@ (guix scripts package) transaction-upgrade-entry)
(manifest-entry
(inherit (package->manifest-entry old))
@@ -109,8 +109,8 @@
(test-assert "transaction-upgrade-entry, one upgrade"
(let* ((old (dummy-package "foo" (version "1")))
(new (dummy-package "foo" (version "2")))
- (tx (mock ((gnu packages) find-newest-available-packages
- (const (vhash-cons "foo" (list "2" new) vlist-null)))
+ (tx (mock ((gnu packages) find-best-packages-by-name
+ (const (list new)))
((@@ (guix scripts package) transaction-upgrade-entry)
(manifest-entry
(inherit (package->manifest-entry old))
@@ -126,8 +126,8 @@
(let* ((old (dummy-package "foo" (version "1")))
(new (dummy-package "bar" (version "2")))
(dep (deprecated-package "foo" new))
- (tx (mock ((gnu packages) find-newest-available-packages
- (const (vhash-cons "foo" (list "2" dep) vlist-null)))
+ (tx (mock ((gnu packages) find-best-packages-by-name
+ (const (list dep)))
((@@ (guix scripts package) transaction-upgrade-entry)
(manifest-entry
(inherit (package->manifest-entry old))
--
2.20.1
- [bug#34060] [PATCH 00/10] Add a cache for package lookups, Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 01/10] profiling: Add a "gc" profiling component., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 03/10] packages: Remove 'find-newest-available-packages'., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 04/10] inferior: Add 'gexp->derivation-in-inferior'., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 02/10] guix package: Avoid 'find-newest-available-packages'.,
Ludovic Courtès <=
- [bug#34060] [PATCH 10/10] status: Distinguish 'package-cache' profile hook., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 05/10] discovery: Add 'fold-module-public-variables*'., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 06/10] pull: Build profile with 'channel-instances->derivation'., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 08/10] edit: Use 'specification->location' to read information from the cache., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 09/10] guix package: '--list-available' can use data from the cache., Ludovic Courtès, 2019/01/13
- [bug#34060] [PATCH 07/10] channels: Compute a package cache and use it., Ludovic Courtès, 2019/01/13
- bug#34060: [PATCH 00/10] Add a cache for package lookups, Ludovic Courtès, 2019/01/15