AtlatestRepositorysigil-app

sigil-app / tree / guixrun-wayland-game.scm

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"))