AtlatestRepositorysigil-app
1
;; Runtime packages for a game with sound (sigil-desktop + sigil-graphics +2
;; sigil-audio) as a native Wayland client on Guix:3
;;4
;; guix shell --pure -m guix/run-wayland-game.scm -- ./build/release/bin/<game>5
;;6
;; run-wayland.scm's three (mesa, wayland, libxkbcommon) plus the audio7
;; backend library miniaudio loads first on Linux:8
;;9
;; pulseaudio libpulse.so.0, the client library; on a PipeWire desktop10
;; the server is pipewire-pulse, PULSE_SINK picks the sink,11
;; and no configuration file is needed. Adds 187 MiB to the12
;; closure (`guix size`: 747.5 MiB against 560.1 MiB).13
;;14
;; The smaller alternative is alsa-lib (libasound.so.2, 3 MiB more): the15
;; ALSA backend then goes through the machine's ALSA configuration, which16
;; on a PipeWire desktop means the pipewire ALSA plugin and its17
;; /etc/alsa/conf.d entries, not something a pure shell brings along; a18
;; misconfigured ALSA route can also open a hardware device directly and19
;; bypass PULSE_SINK. Measured here with pulseaudio only (Crash The Stack,20
;; 2026-09-20: window on a headless sway, stream on the worker-null sink,21
;; LD_LIBRARY_PATH empty). A game's NEEDED list with sigil-graphics 0.11.422
;; and sigil-audio 0.12.2 is libm, libc and the loader, so nothing else is23
;; resolved before main.24
(specifications->manifest25
'("mesa"26
"wayland"27
"libxkbcommon"28
"pulseaudio"))