summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-02-20 22:59:35 +0100
committerLudovic Courtès <ludo@gnu.org>2013-02-20 22:59:35 +0100
commit80736cdf200105cb15872130cf1bb266c588505c (patch)
tree7af03f3cabc34c6e509be11ff3b017a86ad41daf
parent8dcb0c55ab90c5e994f5adf1dfc68180197489bc (diff)
downloadguix-80736cdf200105cb15872130cf1bb266c588505c.tar.gz
download: Adjust to `http-get*' deprecation.
* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
  using Guile 2.0.8+.
-rw-r--r--guix/build/download.scm25
1 files changed, 17 insertions, 8 deletions
diff --git a/guix/build/download.scm b/guix/build/download.scm
index cda715993e..6c2e8235d0 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -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)