summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-15 23:01:26 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-15 23:49:24 +0200
commit53b9c27aa59bebf955f0aa24fef60a101480ef5c (patch)
tree4c1c3b2aefbf5adab54139714f532b7fe9c620d7
parent5c06eedf08f0ab75746f0475909087aeb46f24f1 (diff)
downloadguix-patches-53b9c27aa59bebf955f0aa24fef60a101480ef5c.tar
guix-patches-53b9c27aa59bebf955f0aa24fef60a101480ef5c.tar.gz
upstream: 'package-update' reports "unknown upstream releases" errors.
Fixes <https://issues.guix.gnu.org/55987>. Reported by John Kehayias <john.kehayias@protonmail.com>. * guix/upstream.scm (package-update): Instead of calling 'package-latest-release*', call 'package-latest-release' and distinguish between "up-to-date" and "unknown upstream releases". Raise an error in the latter case.
-rw-r--r--guix/upstream.scm46
1 files changed, 26 insertions, 20 deletions
diff --git a/guix/upstream.scm b/guix/upstream.scm
index b0f77fb7d0..dac8153905 100644
--- a/guix/upstream.scm
+++ b/guix/upstream.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2019, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
@@ -488,30 +488,36 @@ SOURCE, an <upstream-source>."
#:optional (updaters (force %updaters))
#:key (key-download 'interactive))
"Return the new version, the file name of the new version tarball, and input
-changes for PACKAGE; return #f (three values) when PACKAGE is up-to-date.
+changes for PACKAGE; return #f (three values) when PACKAGE is up-to-date;
+raise an error when the updater could not determine available releases.
KEY-DOWNLOAD specifies a download policy for missing OpenPGP keys; allowed
values: 'always', 'never', and 'interactive' (default)."
- (match (package-latest-release* package updaters)
+ (match (package-latest-release package updaters)
((? upstream-source? source)
- (let ((method (match (package-source package)
- ((? origin? origin)
- (origin-method origin))
- (_
- #f))))
- (match (assq method %method-updates)
- (#f
- (raise (make-compound-condition
- (formatted-message (G_ "cannot download for \
+ (if (version>? (upstream-source-version source)
+ (package-version package))
+ (let ((method (match (package-source package)
+ ((? origin? origin)
+ (origin-method origin))
+ (_
+ #f))))
+ (match (assq method %method-updates)
+ (#f
+ (raise (make-compound-condition
+ (formatted-message (G_ "cannot download for \
this method: ~s")
- method)
- (condition
- (&error-location
- (location (package-location package)))))))
- ((_ . update)
- (update store package source
- #:key-download key-download)))))
+ method)
+ (condition
+ (&error-location
+ (location (package-location package)))))))
+ ((_ . update)
+ (update store package source
+ #:key-download key-download))))
+ (values #f #f #f)))
(#f
- (values #f #f #f))))
+ (raise (formatted-message
+ (G_ "updater failed to determine available releases for ~a~%")
+ (package-name package))))))
(define* (update-package-source package source hash)
"Modify the source file that defines PACKAGE to refer to SOURCE, an