diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-05-06 10:31:11 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-05-06 10:31:11 +0200 |
commit | 7623848343e02dc7505478aa5cc0ec2244e968c2 (patch) | |
tree | 3a25ad4075955890e48741ebfd698a13ee6e9494 /guix/scripts | |
parent | c822fb8e3467c86f47a93710761fff1a30e7195b (diff) | |
download | gnu-guix-7623848343e02dc7505478aa5cc0ec2244e968c2.tar gnu-guix-7623848343e02dc7505478aa5cc0ec2244e968c2.tar.gz |
download: Work around Guile small-receive-buffer bug.
Previously, code using directly (guix build download) was still affected
by <http://bugs.gnu.org/15368>. This includes source derivations, the
'guix download' command, and (guix gnu-maintenance).
'guix substitute' was unaffected since it used (guix http-client), which
already had the fix.
* guix/http-client.scm (open-socket-for-uri): Remove.
(http-fetch): Remove #:buffered? argument to 'open-socket-for-uri';
use 'setvbuf' instead.
* guix/scripts/substitute.scm (fetch): Likewise.
* guix/build/download.scm (open-socket-for-uri): New procedure, taken
from guix/http-client.scm, but without the #:buffered? parameter.
Diffstat (limited to 'guix/scripts')
-rwxr-xr-x | guix/scripts/substitute.scm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm index ae97f74d26..31559b7966 100755 --- a/guix/scripts/substitute.scm +++ b/guix/scripts/substitute.scm @@ -182,7 +182,9 @@ to the caller without emitting an error message." (close-port port)))) (begin (when (or (not port) (port-closed? port)) - (set! port (open-socket-for-uri uri #:buffered? buffered?))) + (set! port (open-socket-for-uri uri)) + (unless buffered? + (setvbuf port _IONBF))) (http-fetch uri #:text? #f #:port port)))))))) (define-record-type <cache> |