diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-09-09 10:33:42 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-09-10 00:34:40 +0200 |
commit | 7c101c4c175b7abcb43279d1c66b41a91b9c64bc (patch) | |
tree | c56a10016cec1a9010fd1e7e420c76c96648b3ce | |
parent | 36eef80d45ae754ba42a761ffc97e38cc7253bd0 (diff) | |
download | guix-7c101c4c175b7abcb43279d1c66b41a91b9c64bc.tar guix-7c101c4c175b7abcb43279d1c66b41a91b9c64bc.tar.gz |
refresh: Distinguish between "no updater" and "failing updater".
Previously, something like "guix refresh texmacs" would report "no
updater". Now, it reports that the 'gnu-ftp' updater failed to list
releases.
* guix/upstream.scm (lookup-updater): Use 'find' instead of 'any' to
return the <upstream-updater>.
(package-latest-release): Adjust accordingly.
* guix/scripts/refresh.scm (check-for-package-update): When
'package-latest-release' returns #f, distinguish between "no updater"
and "failing updater".
-rw-r--r-- | guix/scripts/refresh.scm | 12 | ||||
-rw-r--r-- | guix/upstream.scm | 12 |
2 files changed, 16 insertions, 8 deletions
diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index 4591d0f308..daf6fcf947 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -368,8 +368,16 @@ the latest known version of ~a (~a)~%") (upstream-source-version source))))))) (#f (when warn? - (warn-no-updater package))))) - + ;; Distinguish between "no updater" and "failing updater." + (match (lookup-updater package updaters) + ((? upstream-updater? updater) + (warning (package-location package) + (G_ "'~a' updater failed to determine available \ +releases for ~a~%") + (upstream-updater-name updater) + (package-name package))) + (#f + (warn-no-updater package))))))) ;;; diff --git a/guix/upstream.scm b/guix/upstream.scm index d4f9c5bb45..aa47dab4b4 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -245,18 +245,18 @@ correspond to the same version." (define (lookup-updater package updaters) "Return an updater among UPDATERS that matches PACKAGE, or #f if none of them matches." - (any (match-lambda - (($ <upstream-updater> name description pred latest) - (and (pred package) latest))) - updaters)) + (find (match-lambda + (($ <upstream-updater> name description pred latest) + (pred package))) + updaters)) (define (package-latest-release package updaters) "Return an upstream source to update PACKAGE, a <package> object, or #f if none of UPDATERS matches PACKAGE. It is the caller's responsibility to ensure that the returned source is newer than the current one." (match (lookup-updater package updaters) - ((? procedure? latest-release) - (latest-release package)) + ((? upstream-updater? updater) + ((upstream-updater-latest updater) package)) (_ #f))) (define (package-latest-release* package updaters) |