This problem happens on Fedora 27, which uses Guile 2.0.14. $ guix package -i hello The following package will be installed: hello 2.10 /gnu/store/pa4w02b89d6sq33840dxfl5vbqbwz5iy-hello-2.10
substitute: Backtrace: substitute: In ice-9/boot-9.scm: substitute: 160: 9 [catch #t #<catch-closure 55ef08139900> ...] substitute: In unknown file: substitute: ?: 8 [apply-smob/1 #<catch-closure 55ef08139900>] substitute: In ice-9/boot-9.scm: substitute: 66: 7 [call-with-prompt prompt0 ...] substitute: In ice-9/eval.scm: substitute: 432: 6 [eval # #] substitute: In ice-9/boot-9.scm: substitute: 2412: 5 [save-module-excursion #<procedure 55ef08159900 at ice-9/boot-9.scm:4084:3 ()>] substitute: 4089: 4 [#<procedure 55ef08159900 at ice-9/boot-9.scm:4084:3 ()>] substitute: 1734: 3 [%start-stack load-stack ...] substitute: 1739: 2 [#<procedure 55ef0816dbd0 ()>] substitute: In unknown file: substitute: ?: 1 [primitive-load "/usr/bin/guix"] substitute: In guix/ui.scm: substitute: 1452: 0 [run-guix-command substitute "--query"] substitute: substitute: guix/ui.scm:1452:12: In procedure run-guix-command: substitute: guix/ui.scm:1452:12: In procedure setvbuf: Wrong type argument in position 1 (expecting port that supports 'setvbuf'): #<input-output: gnutls-session-port 55ef0902fc30> guix package: error: corrupt input while restoring archive from socket If I revert commit 866f37f, this problem can be avoided. The commit (download: Improve efficiency of 'write-request' over TLS.) added the following code to guix/build/download.scm: (cond-expand (guile-2.0 #f) (else (setvbuf record 'line))) The info page of guile doesn't list 'guile-2.0' feature. I know there is a feature called 'guile-2.2', but I cannot find 'guile-2.0'.