aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-17 23:07:01 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-18 00:39:49 +0100
commit36626c556ed75219bce196ac93d148f6b9af984c (patch)
tree518c887e6bf45c647e3793534f4ab87b77ddfad8
parent5461115e8fd9a3181506307b6090716a0d5c202c (diff)
downloadgnu-guix-36626c556ed75219bce196ac93d148f6b9af984c.tar
gnu-guix-36626c556ed75219bce196ac93d148f6b9af984c.tar.gz
build: Require Guile >= 2.0.9.
* configure.ac: Bump requirement to 2.0.9. * doc/guix.texi (Requirements): Adjust accordingly. * README (Requirements): Likewise. * build-aux/download.scm: Remove workaround for <http://bugs.gnu.org/13095>. * guix/build/download.scm: Likewise. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/http-client.scm: Remove workaround for <http://bugs.gnu.org/13095>. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/serialization.scm (read-latin1-string): Remove mention of 2.0.9. * tests/nar.scm: Use (ice-9 control). (let/ec): Remove.
-rw-r--r--README2
-rw-r--r--build-aux/download.scm5
-rw-r--r--configure.ac2
-rw-r--r--doc/guix.texi2
-rw-r--r--guix/build/download.scm29
-rw-r--r--guix/http-client.scm15
-rw-r--r--guix/serialization.scm3
-rw-r--r--tests/nar.scm12
8 files changed, 11 insertions, 59 deletions
diff --git a/README b/README
index 5829320dc7..4921f255da 100644
--- a/README
+++ b/README
@@ -20,7 +20,7 @@ Guix is based on the [[http://nixos.org/nix/][Nix]] package manager.
GNU Guix currently depends on the following packages:
- - [[http://gnu.org/software/guile/][GNU Guile 2.0.x]], version 2.0.7 or later
+ - [[http://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.9 or later
- [[http://gnupg.org/][GNU libgcrypt]]
- [[http://www.gnu.org/software/make/][GNU Make]]
- optionally [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command
diff --git a/build-aux/download.scm b/build-aux/download.scm
index 8f41f33b14..18b820a153 100644
--- a/build-aux/download.scm
+++ b/build-aux/download.scm
@@ -36,11 +36,6 @@
;;"http://www.fdn.fr/~lcourtes/software/guix/packages"
)
-;; XXX: Work around <http://bugs.gnu.org/13095>, present in Guile
-;; up to 2.0.7.
-(module-define! (resolve-module '(web client))
- 'shutdown (const #f))
-
(define (file-name->uri file)
"Return the URI for FILE."
(match (string-tokenize file (char-set-complement (char-set #\/)))
diff --git a/configure.ac b/configure.ac
index 3bf2bf1610..76f52e0ec3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -82,7 +82,7 @@ if test "x$GUILD" = "x"; then
fi
if test "x$GUILE_EFFECTIVE_VERSION" = "x2.0"; then
- PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.7])
+ PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.9])
fi
dnl Installation directory for .scm and .go files.
diff --git a/doc/guix.texi b/doc/guix.texi
index 0a09bba06f..944e1fad1b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -552,7 +552,7 @@ in the Guix source tree for additional details.
GNU Guix depends on the following packages:
@itemize
-@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.7 or
+@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.9 or
later, including 2.2.x;
@item @url{http://gnupg.org/, GNU libgcrypt};
@item
diff --git a/guix/build/download.scm b/guix/build/download.scm
index e7a7afecd1..d956a9f33e 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -512,12 +512,6 @@ port if PORT is a TLS session record port."
'set-port-encoding!
(lambda (p e) #f))
-;; XXX: Work around <http://bugs.gnu.org/13095>, present in Guile
-;; up to 2.0.7.
-(module-define! (resolve-module '(web client))
- 'shutdown (const #f))
-
-
;; XXX: Work around <http://bugs.gnu.org/23421>, fixed in Guile commit
;; 16050431f29d56f80c4a8253506fc851b8441840. Guile's date validation
;; procedure rejects dates in which the hour is not padded with a zero but
@@ -682,12 +676,6 @@ the connection could not be established in less than TIMEOUT seconds. Return
FILE on success. When VERIFY-CERTIFICATE? is true, verify HTTPS
certificates; otherwise simply ignore them."
- (define post-2.0.7?
- (or (> (string->number (major-version)) 2)
- (> (string->number (minor-version)) 0)
- (> (string->number (micro-version)) 7)
- (string>? (version) "2.0.7")))
-
(define headers
`(;; Some web sites, such as http://dist.schmorp.de, would block you if
;; there's no 'User-Agent' header, presumably on the assumption that
@@ -712,20 +700,9 @@ certificates; otherwise simply ignore them."
#:verify-certificate?
verify-certificate?))
((resp bv-or-port)
- ;; 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
- #:headers headers)
- (if (module-defined? (resolve-interface '(web client))
- 'http-get*)
- (http-get* uri #:port connection #:decode-body? #f
- #:headers headers)
- (http-get uri #:port connection #:decode-body? #f
- #:extra-headers headers))))
+ (http-get uri #:port connection #:decode-body? #f
+ #:streaming? #t
+ #:headers headers))
((code)
(response-code resp))
((size)
diff --git a/guix/http-client.scm b/guix/http-client.scm
index 78d39a0208..855ae95a43 100644
--- a/guix/http-client.scm
+++ b/guix/http-client.scm
@@ -217,10 +217,6 @@ or if EOF is reached."
(when (module-variable %web-http 'read-line*)
(module-set! %web-http 'read-line* read-header-line))))
-;; XXX: Work around <http://bugs.gnu.org/13095>, present in Guile
-;; up to 2.0.7.
-(module-define! (resolve-module '(web client))
- 'shutdown (const #f))
(define* (http-fetch uri #:key port (text? #f) (buffered? #t)
keep-alive? (verify-certificate? #t)
@@ -252,14 +248,9 @@ Raise an '&http-get-error' condition if downloading fails."
(unless (or buffered? (not (file-port? port)))
(setvbuf port _IONBF))
(let*-values (((resp data)
- ;; Try hard to use the API du jour to get an input port.
- (if (guile-version>? "2.0.7")
- (http-get uri #:streaming? #t #:port port
- #:keep-alive? #t
- #:headers headers) ; 2.0.9+
- (http-get* uri #:decode-body? text? ; 2.0.7
- #:keep-alive? #t
- #:port port #:headers headers)))
+ (http-get uri #:streaming? #t #:port port
+ #:keep-alive? #t
+ #:headers headers))
((code)
(response-code resp)))
(case code
diff --git a/guix/serialization.scm b/guix/serialization.scm
index 4cab5910f7..4a8cd2086e 100644
--- a/guix/serialization.scm
+++ b/guix/serialization.scm
@@ -130,8 +130,7 @@
;; <http://bugs.gnu.org/19621>. See <http://bugs.gnu.org/19610> for
;; a discussion.
(let ((bv (read-byte-string p)))
- ;; XXX: Rewrite using (ice-9 iconv) when the minimum requirement is
- ;; upgraded to Guile >= 2.0.9.
+ ;; XXX: Rewrite using (ice-9 iconv).
(list->string (map integer->char (bytevector->u8-list bv)))))
(define (read-maybe-utf8-string p)
diff --git a/tests/nar.scm b/tests/nar.scm
index 28ead8b783..61646db964 100644
--- a/tests/nar.scm
+++ b/tests/nar.scm
@@ -35,6 +35,7 @@
#:use-module (srfi srfi-64)
#:use-module (ice-9 ftw)
#:use-module (ice-9 regex)
+ #:use-module ((ice-9 control) #:select (let/ec))
#:use-module (ice-9 match))
;; Test the (guix nar) module.
@@ -148,17 +149,6 @@
(string-append (dirname (search-path %load-path "pre-inst-env"))
"/test-nar-" (number->string (getpid))))
-(define-syntax-rule (let/ec k exp...)
- ;; This one appeared in Guile 2.0.9, so provide a copy here.
- (let ((tag (make-prompt-tag)))
- (call-with-prompt tag
- (lambda ()
- (let ((k (lambda args
- (apply abort-to-prompt tag args))))
- exp...))
- (lambda (_ . args)
- (apply values args)))))
-
(test-begin "nar")