guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/06: build: Require Guile >= 2.0.9.


From: Ludovic Courtès
Subject: 04/06: build: Require Guile >= 2.0.9.
Date: Fri, 17 Mar 2017 19:42:31 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 36626c556ed75219bce196ac93d148f6b9af984c
Author: Ludovic Courtès <address@hidden>
Date:   Fri Mar 17 23:07:01 2017 +0100

    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.
---
 README                  |  2 +-
 build-aux/download.scm  |  5 -----
 configure.ac            |  2 +-
 doc/guix.texi           |  2 +-
 guix/build/download.scm | 29 +++--------------------------
 guix/http-client.scm    | 15 +++------------
 guix/serialization.scm  |  3 +--
 tests/nar.scm           | 12 +-----------
 8 files changed, 11 insertions(+), 59 deletions(-)

diff --git a/README b/README
index 5829320..4921f25 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 8f41f33..18b820a 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 3bf2bf1..76f52e0 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 0a09bba..944e1fa 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
address@hidden @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.7 or
address@hidden @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 e7a7afe..d956a9f 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 78d39a0..855ae95 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 4cab591..4a8cd20 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 28ead8b..61646db 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")
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]