diff --git a/guix/scripts/substitute-binary.scm b/guix/scripts/substitute-binary.scm index 0fdec456f6bfe36a2772314cd94b9a2c4f2d8017..4a013fe277186099356a2045e5fd669fc97d4f14 100755 --- a/guix/scripts/substitute-binary.scm +++ b/guix/scripts/substitute-binary.scm @@ -143,9 +143,8 @@ (define* (fetch uri #:key (buffered? #t) (timeout? #t)) provide." (case (uri-scheme uri) ((file) - (let ((port (open-input-file (uri-path uri)))) - (unless buffered? - (setvbuf port _IONBF)) + (let ((port (open-file (uri-path uri) + (if buffered? "rb" "r0b")))) (values port (stat:size (stat port))))) ((http) ;; On Guile 2.0.5, `http-fetch' fetches the whole thing at once. So diff --git a/tests/utils.scm b/tests/utils.scm index e8549204d0729a35b45b169b28227a376e6a5925..3be60e443d3fad7d5aac8c036739e6c1d9ebe91c 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -103,7 +103,7 @@ (define-module (test-utils) (test-assert "filtered-port, file" (let* ((file (search-path %load-path "guix.scm")) - (input (open-file file "r0"))) + (input (open-file file "r0b"))) (let*-values (((compressed pids1) (filtered-port `(,%gzip "-c" "--fast") input)) ((decompressed pids2)