From b0fad8a2d45a47138e202644c542adbd6d5ee684 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 3 Jul 2013 01:17:11 +0200 Subject: [PATCH] Use `port-sha256' and `open-sha256-port'. * guix/derivations.scm (derivation-hash): Add comment as to why we keep the plain `sha256' call. * guix/scripts/download.scm (guix-download): Use `port-sha256' instead of (compose sha256 get-bytevector-all). * guix/scripts/refresh.scm (update-package): Likewise. --- guix/derivations.scm | 4 ++++ guix/scripts/download.scm | 2 +- guix/scripts/refresh.scm | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/guix/derivations.scm b/guix/derivations.scm index b7ab07c061..8ddef117d4 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -469,6 +469,10 @@ in SIZE bytes." inputs)) (drv (make-derivation outputs inputs sources system builder args env-vars))) + + ;; XXX: At this point this remains faster than `port-sha256', because + ;; the SHA256 port's `write' method gets called for every single + ;; character. (sha256 (with-fluids ((%default-port-encoding "UTF-8")) (string->utf8 (call-with-output-string diff --git a/guix/scripts/download.scm b/guix/scripts/download.scm index 3fbda034f5..87b420405c 100644 --- a/guix/scripts/download.scm +++ b/guix/scripts/download.scm @@ -116,7 +116,7 @@ Supported formats: 'nix-base32' (default), 'base32', and 'base16' (or path (leave (_ "~a: download failed~%") arg)) - (compose sha256 get-bytevector-all))) + port-sha256)) (fmt (assq-ref opts 'format))) (format #t "~a~%~a~%" path (fmt hash)) #t))) diff --git a/guix/scripts/refresh.scm b/guix/scripts/refresh.scm index aa74d6306b..c75ec4f091 100644 --- a/guix/scripts/refresh.scm +++ b/guix/scripts/refresh.scm @@ -137,7 +137,7 @@ values: 'interactive' (default), 'always', and 'never'." (package-name package) (package-version package) version) (let ((hash (call-with-input-file tarball - (compose sha256 get-bytevector-all)))) + port-sha256))) (update-package-source package version hash))) (warning (_ "~a: version ~a could not be \ downloaded and authenticated; not updating")