summaryrefslogtreecommitdiff
path: root/guix/scripts
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-03-30 23:34:48 +0200
committerLudovic Courtès <ludo@gnu.org>2020-03-31 00:06:36 +0200
commita357849f5b1314c2a35efeee237645b9b08c39f5 (patch)
tree847d1d851d8c28d26deb6295634d296fe83aa80a /guix/scripts
parentb9c79cae53f5f828e078ac5aafc2d80fa3204aae (diff)
guix package: Do not misdiagnose upgrades when there are propagated inputs.
Fixes <https://bugs.gnu.org/35872>. Reported by Andy Tai <atai@atai.org>. * guix/profiles.scm (list=?, manifest-entry=?): New procedures. * guix/scripts/package.scm (transaction-upgrade-entry): In the '=' case, use 'manifest-entry=?' to determine whether it's an upgrade. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades, propagated inputs"): New test.
Diffstat (limited to 'guix/scripts')
-rw-r--r--guix/scripts/package.scm11
1 files changed, 3 insertions, 8 deletions
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index cafa62c3f3..badb1dcd38 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -240,14 +240,9 @@ non-zero relevance score."
;; displaying the list of packages to install/upgrade
;; upfront. Thus, if lowering NEW triggers a build (due
;; to grafts), assume NEW differs from ENTRY.
-
- ;; XXX: When there are propagated inputs, assume we need to
- ;; upgrade the whole entry.
- (if (and (with-build-handler (const #f)
- (string=? (manifest-entry-item
- (lower-manifest-entry* new))
- (manifest-entry-item entry)))
- (null? (package-propagated-inputs pkg)))
+ (if (with-build-handler (const #f)
+ (manifest-entry=? (lower-manifest-entry* new)
+ entry))
transaction
(manifest-transaction-install-entry
new transaction)))))))))