Browse Source

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>.
wip-grafts
Ludovic Courtès 9 years ago
parent
commit
993fb66dd2
  1. 15
      guix/gnu-maintenance.scm
  2. 2
      guix/scripts/package.scm

15
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))))))

2
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)

Loading…
Cancel
Save