Browse Source

Remove assorted Guile 2.0.5 workarounds.

* guix/scripts/authenticate.scm (%default-port-conversion-strategy):
  Remove.
* guix/scripts/substitute.scm (fetch): Remove 2.0.5 special cases.
* guix/serialization.scm (write-file): Remove 'scandir' workaround.
* guix/ui.scm (command-files): Likewise.
version-0.8.3
Ludovic Courtès 7 years ago
parent
commit
09d809db6a
  1. 8
      guix/scripts/authenticate.scm
  2. 19
      guix/scripts/substitute.scm
  3. 16
      guix/serialization.scm
  4. 5
      guix/ui.scm

8
guix/scripts/authenticate.scm

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -82,12 +82,6 @@ to stdout upon success."
(leave (_ "error: corrupt signature data: ~a~%")
(canonical-sexp->string signature)))))
(define %default-port-conversion-strategy
;; This fluid is in Guile > 2.0.5.
(if (defined? '%default-port-conversion-strategy)
(@ (guile) %default-port-conversion-strategy)
(make-fluid #f)))
;;;
;;; Entry point with 'openssl'-compatible interface. We support this

19
guix/scripts/substitute.scm

@ -157,15 +157,12 @@ to the caller without emitting an error message."
(leave (_ "download from '~a' failed: ~a, ~s~%")
(uri->string (http-get-error-uri c))
code (http-get-error-reason c))))))
;; On Guile 2.0.5, `http-fetch' fetches the whole thing at once. So
;; honor TIMEOUT? to disable the timeout when fetching a nar.
;;
;; Test this with:
;; sudo tc qdisc add dev eth0 root netem delay 1500ms
;; and then cancel with:
;; sudo tc qdisc del dev eth0 root
(let ((port #f))
(with-timeout (if (or timeout? (guile-version>? "2.0.5"))
(with-timeout (if timeout?
%fetch-timeout
0)
(begin
@ -649,17 +646,9 @@ PORT. REPORT-PROGRESS is a two-argument procedure such as that returned by
;; XXX: We're not in control, so we always return anyway.
n))
;; Since `http-fetch' in Guile 2.0.5 returns all the data once it's done,
;; don't pretend to report any progress in that case.
(if (guile-version>? "2.0.5")
(make-custom-binary-input-port "progress-port-proc"
read! #f #f
(cut close-port port))
(begin
(format (current-error-port) (_ "Downloading, please wait...~%"))
(format (current-error-port)
(_ "(Please consider upgrading Guile to get proper progress report.)~%"))
port)))
(make-custom-binary-input-port "progress-port-proc"
read! #f #f
(cut close-port port)))
(define-syntax with-networking
(syntax-rules ()

16
guix/serialization.scm

@ -279,17 +279,11 @@ sub-directories of FILE as needed."
(write-string "type" p)
(write-string "directory" p)
(let ((entries
;; NOTE: Guile 2.0.5's 'scandir' returns all subdirectories
;; unconditionally, including "." and "..", regardless of the
;; 'select?' predicate passed to it, so we have to filter
;; those out externally.
(filter (negate (cut member <> '("." "..")))
;; 'scandir' defaults to 'string-locale<?' to sort
;; files, but this happens to be case-insensitive (at
;; least in 'en_US' locale on libc 2.18.) Conversely,
;; we want files to be sorted in a case-sensitive
;; fashion.
(scandir f (const #t) string<?))))
;; 'scandir' defaults to 'string-locale<?' to sort files, but
;; this happens to be case-insensitive (at least in 'en_US'
;; locale on libc 2.18.) Conversely, we want files to be
;; sorted in a case-sensitive fashion.
(scandir f (negate (cut member <> '("." ".."))) string<?)))
(for-each (lambda (e)
(let ((f (string-append f "/" e)))
(write-string "entry" p)

5
guix/ui.scm

@ -852,11 +852,8 @@ parameter of 'args-fold'."
(define dot-scm?
(cut string-suffix? ".scm" <>))
;; In Guile 2.0.5 `scandir' would return "." and ".." regardless even though
;; they don't match `dot-scm?'. Work around it by doing additional
;; filtering.
(if directory
(filter dot-scm? (scandir directory dot-scm?))
(scandir directory dot-scm?)
'()))
(define (commands)

Loading…
Cancel
Save