aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-03-16 00:59:19 +0100
committerLudovic Courtès <ludo@gnu.org>2013-03-16 00:59:19 +0100
commit993fb66dd2f3087fef12c3f3f31e42485dfeb1bf (patch)
treec5da80be7c7262bd57c5990b42cff33288f59e92
parent3be9f724f58b0e0ec3a905de3a29d0b54bcb7628 (diff)
downloadpatches-993fb66dd2f3087fef12c3f3f31e42485dfeb1bf.tar
patches-993fb66dd2f3087fef12c3f3f31e42485dfeb1bf.tar.gz
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>.
-rw-r--r--guix/gnu-maintenance.scm15
-rw-r--r--guix/scripts/package.scm2
2 files changed, 15 insertions, 2 deletions
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index cde31aaa7b..89a01741ec 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -56,7 +56,20 @@
(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))))))
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index a9ed79184e..f14677c519 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -288,7 +288,7 @@ it."
(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)