~ruther/guix-local

80736cdf200105cb15872130cf1bb266c588505c — Ludovic Courtès 13 years ago 8dcb0c5
download: Adjust to `http-get*' deprecation.

* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
  using Guile 2.0.8+.
1 files changed, 17 insertions(+), 8 deletions(-)

M guix/build/download.scm
M guix/build/download.scm => guix/build/download.scm +17 -8
@@ 178,17 178,26 @@ which is not available during bootstrap."
(define (http-fetch uri file)
  "Fetch data from URI and write it to FILE.  Return FILE on success."

  (define post-2.0.7?
    (or (string>? (major-version) "2")
        (string>? (minor-version) "0")
        (string>? (micro-version) "7")
        (string>? (version) "2.0.7")))

  (let*-values (((connection)
                 (open-connection-for-uri uri))
                ((resp bv-or-port)
                 ;; XXX: `http-get*' was introduced in 2.0.7.  We know
                 ;; we're using it within the chroot, but
                 ;; `guix-download' might be using a different version.
                 ;; So keep this compatibility hack for now.
                 (if (module-defined? (resolve-interface '(web client))
                                      'http-get*)
                     (http-get* uri #:port connection #:decode-body? #f)
                     (http-get uri #:port connection #:decode-body? #f)))
                 ;; XXX: `http-get*' was introduced in 2.0.7, and replaced by
                 ;; #:streaming? in 2.0.8.  We know we're using it within the
                 ;; chroot, but `guix-download' might be using a different
                 ;; version.  So keep this compatibility hack for now.
                 (if post-2.0.7?
                     (http-get uri #:port connection #:decode-body? #f
                               #:streaming? #t)
                     (if (module-defined? (resolve-interface '(web client))
                                          'http-get*)
                         (http-get* uri #:port connection #:decode-body? #f)
                         (http-get uri #:port connection #:decode-body? #f))))
                ((code)
                 (response-code resp))
                ((size)