summary refs log tree commit diff
diff options
context:
space:
mode:
-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)