Commit022e0ca7Recorded20 Sep 2026Repositorysigil-app
Add guix/run-wayland-game.scm: the run manifest for a game with sound
Changed
guix/run-wayland-game.scm | 28 ++++++++++++++++++++++++++++
guix/run-wayland.scm | 9 ++++-----
2 files changed, 32 insertions(+), 5 deletions(-)Diff
guix/run-wayland-game.scmadded
@@ -0,0 +1,28 @@
+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 audio+7
;; backend library miniaudio loads first on Linux:+8
;;+9
;; pulseaudio libpulse.so.0, the client library; on a PipeWire desktop+10
;; the server is pipewire-pulse, PULSE_SINK picks the sink,+11
;; and no configuration file is needed. Adds 187 MiB to the+12
;; closure (`guix size`: 747.5 MiB against 560.1 MiB).+13
;;+14
;; The smaller alternative is alsa-lib (libasound.so.2, 3 MiB more): the+15
;; ALSA backend then goes through the machine's ALSA configuration, which+16
;; on a PipeWire desktop means the pipewire ALSA plugin and its+17
;; /etc/alsa/conf.d entries, not something a pure shell brings along; a+18
;; misconfigured ALSA route can also open a hardware device directly and+19
;; 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.4+22
;; and sigil-audio 0.12.2 is libm, libc and the loader, so nothing else is+23
;; resolved before main.+24
(specifications->manifest+25
'("mesa"+26
"wayland"+27
"libxkbcommon"+28
"pulseaudio"))guix/run-wayland.scmmodified
@@ -16,11 +16,10 @@
16
;; mesa is built without glvnd, and a vendorless libGLX.so.0 on the path 17
;; makes GLFW's GLX fail with "No GLXFBConfigs returned"). 18
;;−19
;; With sigil-graphics 0.11.4 (GL loaded through sigil-desktop) a game's−20
;; NEEDED list is libm and libc plus whatever sigil-audio links; until−21
;; sigil-audio stops linking libasound, add alsa-lib here and set−22
;; LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib for that one library (NEEDED−23
;; entries are resolved before main and the dlopen fallback cannot help).+19
;; With sigil-graphics 0.11.4 (GL loaded through sigil-desktop) and+20
;; sigil-audio 0.12.2 (miniaudio, backends loaded at run time) a game's+21
;; NEEDED list is libm, libc and the loader; a game with sound adds the+22
;; audio backend library, see run-wayland-game.scm. 23
(specifications->manifest 24
'("mesa" 25
"wayland"