~ruther/guix-local

993fb66dd2f3087fef12c3f3f31e42485dfeb1bf — Ludovic Courtès 13 years ago 3be9f72
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>.
2 files changed, 15 insertions(+), 2 deletions(-)

M guix/gnu-maintenance.scm
M guix/scripts/package.scm
M guix/gnu-maintenance.scm => guix/gnu-maintenance.scm +14 -1
@@ 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))))))

M guix/scripts/package.scm => guix/scripts/package.scm +1 -1
@@ 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)