diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index dd93e7d3e7..5add64d8e8 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -253,15 +253,32 @@ downloaded and authenticated; not updating~%") WARN? is true and no updater exists for PACKAGE, print a warning." (match (package-latest-release package updaters) ((? upstream-source? source) - (when (version>? (upstream-source-version source) - (package-version package)) - (let ((loc (or (package-field-location package 'version) - (package-location package)))) - (format (current-error-port) - (G_ "~a: ~a would be upgraded from ~a to ~a~%") - (location->string loc) - (package-name package) (package-version package) - (upstream-source-version source))))) + (let ((loc (or (package-field-location package 'version) + (package-location package)))) + (case (version-compare (upstream-source-version source) + (package-version package)) + ((>) + (format (current-error-port) + (G_ "~a: ~a would be upgraded from ~a to ~a~%") + (location->string loc) + (package-name package) (package-version package) + (upstream-source-version source))) + ((=) + (when warn? + (format (current-error-port) + (G_ "~a: info: ~a is already the latest version of ~a~%") + (location->string loc) + (package-version package) + (package-name package)))) + (else + (when warn? + (format (current-error-port) + (G_ "~a: warning: ~a is greater than \ +the latest known version of ~a (~a)~%") + (location->string loc) + (package-version package) + (package-name package) + (upstream-source-version source))))))) (#f (when warn? (warn-no-updater package)))))