ffmpeg-v4l2-request-fourier (debian): drop --enable-libxml2 (runner SONAME skew) #78

Merged
marfrit merged 1 commits from claude-noether/marfrit-packages:noether/ffmpeg-fourier-drop-libxml2 into main 2026-05-21 21:24:08 +00:00
Owner

Bug: The Gitea debian-aarch64 runner has been upgraded past Debian trixie and now ships libxml2 ≥ 2.14 (SONAME 16) while higgs (and any other trixie target) still has libxml2 2.12 (SONAME 2). PR #76 + #77's -5 .deb built cleanly, but on higgs the daedalus-v4l2 daemon's dlopen of libavformat.so.62 fails:

dlopen(libavformat.so.62): libxml2.so.16: cannot open shared object file: No such file or directory
ffmpeg_loader_init failed

Higher-level fallout: the daedalus-v4l2 daemon service exits with status 1, leaving /dev/daedalus-v4l2 with nobody on the other end — Firefox VAAPI playback stops working entirely. Higgs reverted to the cached -4 to keep video alive.

Fix: Drop --enable-libxml2 from the Debian ./configure invocation; remove the libxml2 entry from Depends; remove libxml2-dev from the CI build-deps. FFmpeg's libxml2-backed DASH demuxer is unused on the Fourier fleet:

  • daedalus-v4l2 daemon — feeds AVPackets straight to avcodec_send_packet (no demux at all)
  • mpv-fourier — uses ytdlp + mpv's own stream code for DASH/HLS
  • firefox-fourier — uses gecko-media's DASH demux

Dropping --enable-libxml2 is feature-neutral for our consumers and removes the runner/target ABI skew entirely. Mirrors the established libva trixie/runner ABI-skew workaround pattern (PR #62).

Bumps PKGREL 5 → 6. No source code or substitution-patch change — the H.264 IDCT 4×4 daedalus-fourier substitution from PR #76 stays as-is.

Arch PKGBUILD unaffected — Arch runner + Arch consumers both rolling, libxml2 SONAMEs match.

Post-merge deploy on higgs:

sudo apt update && sudo apt install -y ffmpeg-v4l2-request-fourier
sudo systemctl restart daedalus-v4l2

Refs

  • PR #76 (H.264 IDCT 4×4 substitution): #76
  • PR #77 (PKGREL bump past orphan -4): #77
  • PR #62 (libva runner ABI skew precedent — same pattern)
**Bug**: The Gitea `debian-aarch64` runner has been upgraded past Debian trixie and now ships libxml2 ≥ 2.14 (SONAME 16) while higgs (and any other trixie target) still has libxml2 2.12 (SONAME 2). PR #76 + #77's `-5` .deb built cleanly, but on higgs the daedalus-v4l2 daemon's dlopen of libavformat.so.62 fails: ``` dlopen(libavformat.so.62): libxml2.so.16: cannot open shared object file: No such file or directory ffmpeg_loader_init failed ``` Higher-level fallout: the daedalus-v4l2 daemon service exits with status 1, leaving /dev/daedalus-v4l2 with nobody on the other end — Firefox VAAPI playback stops working entirely. Higgs reverted to the cached `-4` to keep video alive. **Fix**: Drop `--enable-libxml2` from the Debian `./configure` invocation; remove the `libxml2` entry from Depends; remove `libxml2-dev` from the CI build-deps. FFmpeg's libxml2-backed DASH demuxer is unused on the Fourier fleet: - **daedalus-v4l2 daemon** — feeds AVPackets straight to `avcodec_send_packet` (no demux at all) - **mpv-fourier** — uses ytdlp + mpv's own stream code for DASH/HLS - **firefox-fourier** — uses gecko-media's DASH demux Dropping `--enable-libxml2` is feature-neutral for our consumers and removes the runner/target ABI skew entirely. Mirrors the established libva trixie/runner ABI-skew workaround pattern (PR #62). Bumps PKGREL 5 → 6. No source code or substitution-patch change — the H.264 IDCT 4×4 daedalus-fourier substitution from PR #76 stays as-is. **Arch PKGBUILD unaffected** — Arch runner + Arch consumers both rolling, libxml2 SONAMEs match. **Post-merge deploy on higgs**: ``` sudo apt update && sudo apt install -y ffmpeg-v4l2-request-fourier sudo systemctl restart daedalus-v4l2 ``` ## Refs - PR #76 (H.264 IDCT 4×4 substitution): https://git.reauktion.de/marfrit/marfrit-packages/pulls/76 - PR #77 (PKGREL bump past orphan -4): https://git.reauktion.de/marfrit/marfrit-packages/pulls/77 - PR #62 (libva runner ABI skew precedent — same pattern)
marfrit added 1 commit 2026-05-21 21:18:23 +00:00
The Gitea debian-aarch64 runner has been upgraded past Debian trixie
and now ships libxml2 ≥ 2.14 (SONAME 16) while higgs (and any other
trixie target) still has libxml2 2.12 (SONAME 2).  -5 built cleanly,
but on higgs the daedalus-v4l2 daemon's dlopen of libavformat.so.62
fails:

    dlopen(libavformat.so.62): libxml2.so.16:
    cannot open shared object file: No such file or directory

Drop --enable-libxml2 from the Debian configure invocation; remove
the libxml2 entry from Depends; remove libxml2-dev from the CI
build-deps.  FFmpeg's libxml2-backed DASH demuxer is unused on the
Fourier fleet — daedalus-v4l2 daemon feeds AVPackets straight to
avcodec_send_packet (no demux); mpv-fourier uses ytdlp + mpv's own
stream code; firefox-fourier uses gecko-media's DASH demux.

Bumps PKGREL 5 → 6.  No source code or substitution-patch change.
Mirrors the libva trixie/runner ABI-skew workaround pattern
(marfrit-packages PR #62).

Arch PKGBUILD unaffected — Arch runner + Arch consumers both
rolling, libxml2 SONAMEs match.

After this lands, re-deploy on higgs via:
    sudo apt update && sudo apt install -y ffmpeg-v4l2-request-fourier
    sudo systemctl restart daedalus-v4l2
marfrit merged commit 62b6b0a700 into main 2026-05-21 21:24:08 +00:00
marfrit deleted branch noether/ffmpeg-fourier-drop-libxml2 2026-05-21 21:24:08 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marfrit/marfrit-packages#78