~ruther/guix-local

2535635f182d6a2aca5689adb5551fdd7c7e2d0a — Ludovic Courtès 9 years ago 4bb54cc
Use (ice-9 binary-ports) instead of (rnrs io ports).

This reduces the closure of (guix ui) from 123 to 106 modules.

* guix/derivations.scm: Use (ice-9 binary-ports) instead of (rnrs io
ports).
(map-derivation)[substitute-file]: Use 'read-string' instead of
'get-string-all'.
* guix/ftp-client.scm: Likewise.
* guix/hash.scm: Likewise.
* guix/http-client.scm: Likewise.
* guix/pki.scm (ensure-acl, current-acl): Likewise.
* guix/scripts/archive.scm (authorize-key)[read-key]: Likewise.
* guix/scripts/authenticate.scm (read-canonical-sexp)
(read-hash-data): Likewise.
* guix/scripts/download.scm: Likewise.
* guix/scripts/offload.scm (register-gc-root, remove-gc-roots)
(send-files): Likewise.
* guix/scripts/publish.scm (lazy-read-file-sexp): Likewise.
* guix/scripts/refresh.scm: Likewise.
* guix/scripts/substitute.scm (check-acl-initialized): Likewise.
* guix/serialization.scm (read-maybe-utf8-string): Likewise.
* guix/scripts/hash.scm (guix-hash): Use 'force-output' instead of
'flush-output-port'.
* guix/store.scm (process-stderr): Likewise.
* guix/tests.scm: Likewise.
* guix/utils.scm: Use (ice-9 binary-ports) and autoload (rnrs io ports)
for 'make-custom-binary-input-port'.
M guix/derivations.scm => guix/derivations.scm +2 -2
@@ 23,7 23,7 @@
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (rnrs bytevectors)
  #:use-module (ice-9 match)
  #:use-module (ice-9 rdelim)


@@ 885,7 885,7 @@ recursively."
  (define (substitute-file file initial replacements)
    (define contents
      (with-fluids ((%default-port-encoding #f))
        (call-with-input-file file get-string-all)))
        (call-with-input-file file read-string)))

    (let ((updated (substitute contents initial replacements)))
      (if (string=? updated contents)

M guix/ftp-client.scm => guix/ftp-client.scm +2 -2
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,7 22,7 @@
  #:use-module (srfi srfi-11)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-31)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (rnrs bytevectors)
  #:use-module (ice-9 match)
  #:use-module (ice-9 regex)

M guix/hash.scm => guix/hash.scm +2 -2
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 19,7 19,7 @@
(define-module (guix hash)
  #:use-module (guix gcrypt)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (system foreign)
  #:use-module ((guix build utils) #:select (dump-port))
  #:use-module (srfi srfi-11)

M guix/http-client.scm => guix/http-client.scm +1 -1
@@ 28,7 28,7 @@
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)
  #:use-module (ice-9 match)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (rnrs bytevectors)
  #:use-module (guix ui)
  #:use-module (guix utils)

M guix/pki.scm => guix/pki.scm +5 -4
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,7 22,8 @@
  #:use-module ((guix utils) #:select (with-atomic-file-output))
  #:use-module ((guix build utils) #:select (mkdir-p))
  #:use-module (ice-9 match)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 rdelim)
  #:use-module (ice-9 binary-ports)
  #:export (%public-key-file
            %private-key-file
            %acl-file


@@ 80,7 81,7 @@ element in KEYS must be a canonical sexp with type 'public-key'."
    (when (file-exists? %public-key-file)
      (let ((public-key (call-with-input-file %public-key-file
                          (compose string->canonical-sexp
                                   get-string-all))))
                                   read-string))))
        (mkdir-p (dirname %acl-file))
        (with-atomic-file-output %acl-file
          (lambda (port)


@@ 99,7 100,7 @@ element in KEYS must be a canonical sexp with type 'public-key'."
      (call-with-input-file %acl-file
        (compose canonical-sexp->sexp
                 string->canonical-sexp
                 get-string-all))
                 read-string))
      (public-keys->acl '())))                    ; the empty ACL

(define (acl->public-keys acl)

M guix/scripts/archive.scm => guix/scripts/archive.scm +2 -2
@@ 40,7 40,7 @@
  #:use-module (srfi srfi-11)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-37)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:export (guix-archive))




@@ 290,7 290,7 @@ the input port."
  (define (read-key)
    (catch 'gcry-error
      (lambda ()
        (string->canonical-sexp (get-string-all (current-input-port))))
        (string->canonical-sexp (read-string (current-input-port))))
      (lambda (key proc err)
        (leave (_ "failed to read public key: ~a: ~a~%")
               (error-source err) (error-string err)))))

M guix/scripts/authenticate.scm => guix/scripts/authenticate.scm +5 -4
@@ 1,5 1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 22,7 22,8 @@
  #:use-module (guix pk-crypto)
  #:use-module (guix pki)
  #:use-module (guix ui)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (ice-9 rdelim)
  #:use-module (ice-9 match)
  #:export (guix-authenticate))



@@ 36,12 37,12 @@

(define read-canonical-sexp
  ;; Read a gcrypt sexp from a port and return it.
  (compose string->canonical-sexp get-string-all))
  (compose string->canonical-sexp read-string))

(define (read-hash-data port key-type)
  "Read sha256 hash data from PORT and return it as a gcrypt sexp.  KEY-TYPE
is a symbol representing the type of public key algo being used."
  (let* ((hex (get-string-all port))
  (let* ((hex (read-string port))
         (bv  (base16-string->bytevector (string-trim-both hex))))
    (bytevector->hash-data bv #:key-type key-type)))


M guix/scripts/download.scm => guix/scripts/download.scm +1 -1
@@ 31,7 31,7 @@
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-37)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:export (guix-download))



M guix/scripts/hash.scm => guix/scripts/hash.scm +2 -2
@@ 25,7 25,7 @@
  #:use-module (guix ui)
  #:use-module (guix scripts)
  #:use-module (guix utils)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (rnrs files)
  #:use-module (ice-9 match)
  #:use-module (srfi srfi-1)


@@ 137,7 137,7 @@ and 'hexadecimal' can be used as well).\n"))
        (if (assoc-ref opts 'recursive?)
            (let-values (((port get-hash) (open-sha256-port)))
              (write-file file port #:select? select?)
              (flush-output-port port)
              (force-output port)
              (get-hash))
            (call-with-input-file file port-sha256))))


M guix/scripts/offload.scm => guix/scripts/offload.scm +6 -5
@@ 21,7 21,8 @@
  #:use-module (guix records)
  #:use-module (guix store)
  #:use-module (guix derivations)
  #:use-module (guix serialization)
  #:use-module ((guix serialization)
                #:select (nar-error? nar-error-file))
  #:use-module (guix nar)
  #:use-module (guix utils)
  #:use-module ((guix build syscalls) #:select (fcntl-flock))


@@ 37,7 38,7 @@
  #:use-module (ice-9 match)
  #:use-module (ice-9 regex)
  #:use-module (ice-9 format)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:export (build-machine
            build-requirements
            guix-offload))


@@ 336,7 337,7 @@ hook."

  (let ((pipe (remote-pipe machine OPEN_READ
                           `("guile" "-c" ,(object->string script)))))
    (get-string-all pipe)
    (read-string pipe)
    (let ((status (close-pipe pipe)))
      (unless (zero? status)
        ;; Better be safe than sorry: if we ignore the error here, then FILE


@@ 368,7 369,7 @@ hook."

  (let ((pipe (remote-pipe machine OPEN_READ
                           `("guile" "-c" ,(object->string script)))))
    (get-string-all pipe)
    (read-string pipe)
    (close-pipe pipe)))

(define* (offload drv machine


@@ 462,7 463,7 @@ success, #f otherwise."
                                  '("guix" "archive" "--missing")))
                    (open-input-string files)))
                  ((result)
                   (get-string-all missing)))
                   (read-string missing)))
      (for-each waitpid pids)
      (string-tokenize result)))


M guix/scripts/publish.scm => guix/scripts/publish.scm +3 -3
@@ 23,7 23,7 @@
  #:use-module (ice-9 format)
  #:use-module (ice-9 match)
  #:use-module (ice-9 regex)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 rdelim)
  #:use-module (rnrs bytevectors)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-2)


@@ 46,7 46,7 @@
  #:use-module (guix pki)
  #:use-module (guix pk-crypto)
  #:use-module (guix store)
  #:use-module (guix serialization)
  #:use-module ((guix serialization) #:select (write-file))
  #:use-module (guix zlib)
  #:use-module (guix ui)
  #:use-module (guix scripts)


@@ 167,7 167,7 @@ compression disabled~%"))
  (delay
    (call-with-input-file file
      (compose string->canonical-sexp
               get-string-all))))
               read-string))))

(define %private-key
  (lazy-read-file-sexp %private-key-file))

M guix/scripts/refresh.scm => guix/scripts/refresh.scm +1 -1
@@ 50,7 50,7 @@
  #:use-module (srfi srfi-11)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-37)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:export (guix-refresh
            %updaters))


M guix/scripts/substitute.scm => guix/scripts/substitute.scm +2 -3
@@ 24,7 24,7 @@
  #:use-module (guix combinators)
  #:use-module (guix config)
  #:use-module (guix records)
  #:use-module (guix serialization)
  #:use-module ((guix serialization) #:select (restore-file))
  #:use-module (guix hash)
  #:use-module (guix base32)
  #:use-module (guix base64)


@@ 43,7 43,6 @@
  #:use-module (ice-9 format)
  #:use-module (ice-9 ftw)
  #:use-module (ice-9 binary-ports)
  #:use-module (rnrs io ports)
  #:use-module (rnrs bytevectors)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-9)


@@ 938,7 937,7 @@ DESTINATION as a nar file.  Verify the substitute against ACL."
    (and (file-exists? %public-key-file)
         (let ((key (call-with-input-file %public-key-file
                      (compose string->canonical-sexp
                               get-string-all))))
                               read-string))))
           (match acl
             ((thing)
              (equal? (canonical-sexp->string thing)

M guix/serialization.scm => guix/serialization.scm +3 -2
@@ 19,11 19,12 @@
(define-module (guix serialization)
  #:use-module (guix combinators)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-34)
  #:use-module (srfi srfi-35)
  #:use-module (ice-9 binary-ports)
  #:use-module ((ice-9 rdelim) #:prefix rdelim:)
  #:use-module (ice-9 match)
  #:use-module (ice-9 ftw)
  #:export (write-int read-int


@@ 143,7 144,7 @@ substitute invalid byte sequences with question marks.  This is a
         (port (open-bytevector-input-port bv)))
    (set-port-encoding! port "UTF-8")
    (set-port-conversion-strategy! port 'substitute)
    (get-string-all port)))
    (rdelim:read-string port)))

(define (write-string-list l p)
  (write-int (length l) p)

M guix/store.scm => guix/store.scm +2 -2
@@ 25,7 25,7 @@
  #:autoload   (guix base32) (bytevector->base32-string)
  #:autoload   (guix build syscalls) (terminal-columns)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-9)
  #:use-module (srfi srfi-9 gnu)


@@ 481,7 481,7 @@ encoding conversion errors."
           (let ((s (read-maybe-utf8-string p)))
             (display s (current-build-output-port))
             (when (string-any %newlines s)
               (flush-output-port (current-build-output-port)))
               (force-output (current-build-output-port)))
             #f))
          ((= k %stderr-error)
           ;; Report an error.

M guix/tests.scm => guix/tests.scm +1 -1
@@ 27,7 27,7 @@
  #:use-module (gnu packages bootstrap)
  #:use-module (srfi srfi-34)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:use-module (web uri)
  #:export (open-connection-for-tests
            random-text

M guix/utils.scm => guix/utils.scm +2 -1
@@ 30,7 30,8 @@
  #:use-module (srfi srfi-39)
  #:use-module (srfi srfi-60)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports)
  #:use-module (ice-9 binary-ports)
  #:autoload   (rnrs io ports) (make-custom-binary-input-port)
  #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
  #:use-module (guix combinators)
  #:use-module ((guix build utils) #:select (dump-port))