Skip to content

Latest commit

 

History

History
83 lines (62 loc) · 3.49 KB

File metadata and controls

83 lines (62 loc) · 3.49 KB

XMMS fixture pin

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 sources (SHA-256 of upstream tarballs)

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=

Build and validation commands

make check
make build-sysroot
make check-sysroot
HL=../hyper-linux/_build/hl make smoke-xmms

See USAGE.md for the interactive X11/audio qualification.

Dynamic loader / libraries / plugins

  • Loader: glibc ld-linux-aarch64.so.1 from xmms-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).

License / redistribution

  • 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 BadWindow errors 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.

Smoke media

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-media

The 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.

Reproduction notes

  1. Start XQuartz: open /Applications/Utilities/XQuartz.app or /opt/X11/bin/Xquartz.
  2. DISPLAY: echo $DISPLAY (typically :0 under XQuartz).
  3. Launch with tracing (see REPRO.md).
  4. Select OSS plugin in XMMS preferences → Audio I/O → Output → OSS Driver.
  5. Chooser open: File → Play File → navigate to bound Music / fixture WAV.
  6. Argv open: pass WAV path as argv after xmms binary.
  7. Playlist save: Playlist → Save; observe create path resolution.
  8. Pause / seek / close: exercise transport controls.

Historical pre-fix baseline (when VFS/OSS were missing in hl): baseline/README.md.