upstream: Do not update to same version.

Previously, 'guix refresh --update' would do actually rewrite the file with
the same version/hash information when the target version was the same as the
current version:

  guix refresh --update idutils=4.6
  idutils.scm: warning: downgrading 'idutils' from 4.6 to 4.6
  [...]
  idutils.scm: idutils: updating from version 4.6 to version 4.6...

This changes handles this case so that it does and prints nothing.

* guix/upstream.scm (package-update): Use `version-compare' to distinguish the
equal versions case.

Change-Id: I079e030d573f5968725ef13b3f626e2f8d02cb2f
Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
Maxim Cournoyer 2025-04-11 15:00:53 +01:00 committed by Christopher Baines
parent d383463146
commit a369932d04
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
2 changed files with 43 additions and 29 deletions

View file

@ -44,6 +44,15 @@ case "$(guix refresh -t test idutils 2>&1)" in
*"$idutils_version"*"already the latest version"*) true;;
*) false;;
esac
# No-op when updating to same version.
case "$(guix refresh -t test -u idutils \
--target-version=$idutils_version 2>&1)" in
*downgrading*) false;;
*updating*) false;;
*) true;;
esac
guix refresh -t test libreoffice # XXX: should return non-zero?
case "$(guix refresh -t test libreoffice 2>&1)" in
*"greater than the latest known version"*"1.0"*) true;;