guix package: Gracefully handle `official-gnu-packages' failure.

* guix/gnu-maintenance.scm (http-fetch): Error out when DATA is #f.
* guix/scripts/package.scm (check-package-freshness): Wrap
  `gnu-package?' call in `false-if-exception'.
  Reported by Cyril Roelandt <tipecaml@gmail.com>.
This commit is contained in:
Ludovic Courtès 2013-03-16 00:59:19 +01:00
parent 3be9f724f5
commit 993fb66dd2
2 changed files with 15 additions and 2 deletions

View file

@ -56,7 +56,20 @@ (define (http-fetch uri)
(response-code resp)))
(case code
((200)
data)
(if data
data
(begin
;; XXX: Guile 2.0.5 and earlier did not support chunked transfer
;; encoding, which is required when fetching %PACKAGE-LIST-URL
;; (see <http://lists.gnu.org/archive/html/guile-devel/2011-09/msg00089.html>).
;; Since users may still be using these versions, warn them and
;; bail out.
(format (current-error-port)
"warning: using Guile ~a, which does not support HTTP ~s encoding~%"
(version)
(response-transfer-encoding resp))
(error "download failed; use a newer Guile"
uri resp))))
(else
(error "download failed:" uri code
(response-reason-phrase resp))))))

View file

@ -288,7 +288,7 @@ (define (check-package-freshness package)
(catch #t
(lambda ()
(when (gnu-package? package)
(when (false-if-exception (gnu-package? package))
(let ((name (package-name package))
(full-name (package-full-name package)))
(match (waiting (latest-release name)