Purpose: Reproducible XMMS 1.x for Hyper Linux qualification.
Pinned package: XMMS 1.2.11 via nix/xmms.nix (glib 1.2.10 → gtk+ 1.2.10 → xmms 1.2.11).
Guest architecture: aarch64-linux (primary); x86_64-linux via Rosetta when available.
| Artifact | Version | Upstream | Nix hash |
|---|---|---|---|
| glib | 1.2.10 | https://download.gnome.org/sources/glib/1.2/glib-1.2.10.tar.gz | sha256-bhzn7trnE7EduC8RQ01FXYoTefeDp5gSzS4F/AJKjZ8= |
| gtk+ | 1.2.10 | https://download.gnome.org/sources/gtk+/1.2/gtk+-1.2.10.tar.gz | sha256-P7hD6mccibkJ/RRfoJ/SJ2rzMS5Yy6sp7RyTtGIQjDQ= |
| xmms | 1.2.11 | https://fossies.org/linux/misc/old/xmms-1.2.11.tar.gz | sha256-NllznOVlIo3VYl1gwCx30tkyces89SY5Quz+jsPDZD8= |
make check
make build-sysroot
make check-sysroot
HL=../hyper-linux/_build/hl make smoke-xmmsSee USAGE.md for the interactive X11/audio qualification.
- Loader: glibc
ld-linux-aarch64.so.1fromxmms-sysroot(lib/). - Required shared libs: libxmms, gtk-1.2, gdk-1.2, glib-1.2, X11 stack from sysroot.
- Output plugin used for smoke: OSS (
libOSS.so/ OSS output module). - Input plugin for smoke: WAV (uncompressed) — avoids decoder confusion with OSS path.
- Interactive demo input plugin: MPEG Layer 1/2/3 (
libmpg123.so).
- XMMS: GPL-2.0-or-later (historical XMMS license).
- glib/gtk 1.2: LGPL-2.0-or-later.
- Fixture media under
media/is generated sine PCM (CC0 / public domain). - Interactive media is fetched from SoundHelix with 17 fixed-output hashes; the files come from the official SoundHelix audio examples page. This repository does not assert that the SoundHelix software license applies to those generated MP3 outputs.
- Repository-authored Nix expressions and scripts: Apache-2.0 (zw3rk pte. ltd.).
The package carries three narrowly scoped compatibility patches:
- GTK 1.2 treats asynchronous
BadWindowerrors as nonfatal; - XMMS reapplies saved window positions after mapping under AppKit/rootless X;
- XMMS joins the playback worker before teardown.
All three patch files are shipped under nix/patches/ and remain subject to
their respective upstream licenses.
| File | Description | SHA-256 |
|---|---|---|
media/smoke-440-660.wav |
0.25s stereo S16_LE 44.1 kHz; L=440 Hz, R=660 Hz | see media/smoke-440-660.wav.sha256 |
Verify:
shasum -a 256 -c fixtures/xmms/media/smoke-440-660.wav.sha256
# or: make verify-mediaThe interactive demo-media flake package fetches
SoundHelix-Song-{1..17}.mp3 and generates demo.m3u in numeric order. The
files are Nix store outputs, not Git blobs.
- Start XQuartz: open
/Applications/Utilities/XQuartz.appor/opt/X11/bin/Xquartz. - DISPLAY:
echo $DISPLAY(typically:0under XQuartz). - Launch with tracing (see REPRO.md).
- Select OSS plugin in XMMS preferences → Audio I/O → Output → OSS Driver.
- Chooser open: File → Play File → navigate to bound Music / fixture WAV.
- Argv open: pass WAV path as argv after xmms binary.
- Playlist save: Playlist → Save; observe create path resolution.
- Pause / seek / close: exercise transport controls.
Historical pre-fix baseline (when VFS/OSS were missing in hl):
baseline/README.md.