~ruther/guix-local

09d809db6a37502b8cb2fb71748cc8bf500e117f — Ludovic Courtès 11 years ago 47c66da
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.
4 files changed, 11 insertions(+), 37 deletions(-)

M guix/scripts/authenticate.scm
M guix/scripts/substitute.scm
M guix/serialization.scm
M guix/ui.scm
M guix/scripts/authenticate.scm => guix/scripts/authenticate.scm +1 -7
@@ 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

M guix/scripts/substitute.scm => guix/scripts/substitute.scm +4 -15
@@ 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 ()

M guix/serialization.scm => guix/serialization.scm +5 -11
@@ 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)

M guix/ui.scm => guix/ui.scm +1 -4
@@ 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)