Browse Source

profiles: Report "pseudo-upgrades" as upgrades, not downgrades.

Reported by Andreas Enge <andreas@enge.fr>
at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19764#19>.

* guix/profiles.scm (manifest-transaction-effects): Use 'version>=?'
  instead of 'version>?'.
* tests/profiles.scm ("manifest-transaction-effects and
  pseudo-upgrades"): New test.
gn-latest-20200428
Ludovic Courtès 7 years ago
parent
commit
3bea13bb1f
  1. 4
      guix/profiles.scm
  2. 8
      tests/profiles.scm

4
guix/profiles.scm

@ -331,8 +331,8 @@ replace it."
(let* ((pattern (manifest-entry->pattern entry))
(previous (manifest-lookup manifest pattern))
(newer? (and previous
(version>? (manifest-entry-version entry)
(manifest-entry-version previous)))))
(version>=? (manifest-entry-version entry)
(manifest-entry-version previous)))))
(loop rest
(if previous install (cons entry install))
(if (and previous newer?)

8
tests/profiles.scm

@ -169,6 +169,14 @@
(and (null? remove) (null? install) (null? upgrade)
(equal? (list (cons guile-2.0.9 guile-1.8.8)) downgrade)))))
(test-assert "manifest-transaction-effects and pseudo-upgrades"
(let* ((m0 (manifest (list guile-2.0.9)))
(t (manifest-transaction (install (list guile-2.0.9)))))
(let-values (((remove install upgrade downgrade)
(manifest-transaction-effects m0 t)))
(and (null? remove) (null? install) (null? downgrade)
(equal? (list (cons guile-2.0.9 guile-2.0.9)) upgrade)))))
(test-assertm "profile-derivation"
(mlet* %store-monad
((entry -> (package->manifest-entry %bootstrap-guile))

Loading…
Cancel
Save