Subject: bug#72135: Debian ‘guix’ package lacks zstd support

From: Ludovic Courtès <[email-masked]>
Date: Tue, 16 Jul 2024 10:41:29 +0200

Hello Vagrant and all,

We’ve been recommending the Debian package as one of the easy way to get
Guix installed.  However, it currently lacks zstd support (with
guile-zstd):

  https://packages.debian.org/bullseye/guix

The consequence is that it guix-daemon crashes badly when talking to
substitute servers where nothing but zstd is enabled, such as
https://guix.bordeaux.inria.fr:

--8<---------------cut here---------------start------------->8---
$ guix build pastix
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://guix.bordeaux.inria.fr'... 100.0%
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 17 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In unknown file:
substitute:           16 (apply-smob/0 #<thunk 735d7f915300>)
substitute: In ice-9/boot-9.scm:
substitute:     724:2 15 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
substitute: In ice-9/eval.scm:
substitute:     619:8 14 (_ #(#(#<directory (guile-user) 735d7f918c80>)))
substitute: In guix/ui.scm:
substitute:    2275:7 13 (run-guix . _)
substitute:   2238:10 12 (run-guix-command _ . _)
substitute: In ice-9/boot-9.scm:
substitute:   1752:10 11 (with-exception-handler _ _ #:unwind? _ # _)
substitute:   1752:10 10 (with-exception-handler _ _ #:unwind? _ # _)
substitute: In guix/scripts/substitute.scm:
substitute:    842:18  9 (_)
substitute:     352:7  8 (process-query #<output: file 4> _ #:cache-urls _ #:acl _)
substitute: In srfi/srfi-1.scm:
substitute:     634:9  7 (for-each #<procedure 735d7c38df80 at guix/scripts/sub…> …)
substitute: In guix/scripts/substitute.scm:
substitute:    297:13  6 (_ #<<narinfo> path: "/gnu/store/y4qhgdhgy7np5v1lnsqvm1…>)
substitute: In guix/narinfo.scm:
substitute:     346:2  5 (narinfo-best-uri _ #:fast-decompression? _)
substitute: In ice-9/boot-9.scm:
substitute:   1685:16  4 (raise-exception _ #:continuable? _)
substitute:   1685:16  3 (raise-exception _ #:continuable? _)
substitute:   1780:13  2 (_ #<&compound-exception components: (#<&error> #<&orig…>)
substitute:   1685:16  1 (raise-exception _ #:continuable? _)
substitute:   1685:16  0 (raise-exception _ #:continuable? _)
substitute: 
substitute: ice-9/boot-9.scm:1685:16: In procedure raise-exception:
substitute: Throw to key `match-error' with args `("match" "no matching pattern" ())'.
guix build: error: `/usr/bin/guix substitute' died unexpectedly
--8<---------------cut here---------------end--------------->8---

Would it be possible to add guile-zstd as a dependency of the Debian
‘guix’ package?  This alone would noticeably improve user experience.

(I know this should be a Debian bug report, but I’m sorta acting as a
proxy.  :-))

Thanks,
Ludo’.