Commit Graph

293 Commits

Author SHA1 Message Date
claude-noether 6a417fcc9d libva-v4l2-request-fourier-debian: route to debian-aarch64-bohr runner (#45)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 3s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 4s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 21m49s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 4s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 1m59s
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
Two follow-ups to PR #44 (which landed the libva-dev ABI pin):

- `051da5e` switch runs-on from arch-aarch64 → debian-aarch64-bohr
- `5feab57` fix runner label: actrunner-debian-aarch64-bohr (label name mismatch in 051da5e)

**Squash on merge** to keep main history clean.

Co-authored-by: Markus Fritsche <mfritsche@reauktion.de>
Reviewed-on: #45
Co-authored-by: Claude (noether) <claude@reauktion.de>
Co-committed-by: Claude (noether) <claude@reauktion.de>
2026-05-20 13:08:30 +00:00
marfrit 1c77b05f68 Merge pull request 'libva-v4l2-request-fourier-debian: pin trixie libva-dev for ABI' (#44) from claude-noether/marfrit-packages:noether/libva-trixie-abi-pin into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 3s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
Reviewed-on: #44
2026-05-20 12:59:40 +00:00
marfrit 051da5e8dc libva-v4l2-request-fourier-debian: switch to debian-aarch64-bohr runner
Per @marfrit on PR #44 review: a native Debian trixie aarch64 runner
(debian-aarch64-bohr) is available — use it instead of the sysroot
hack from the previous commit.

The sysroot approach worked but was a workaround for not having the
right runner.  Native trixie runner is much cleaner:

  - libva-dev installs via apt-get directly from trixie's archive
    (2.22.0-3) — pkg-config returns trixie headers, driver compiles
    in __vaDriverInit_1_22 naturally.
  - No need to symlink libva.so.2 -> libva.so or rewrite .pc prefixes.
  - No bsdtar/ar/dpkg-deb juggling on an Arch runner that doesn't
    natively have dpkg.

Changes from PR v1:

  - .gitea/workflows/build.yml: libva-v4l2-request-fourier-debian
    runs-on: debian-aarch64-bohr (was arch-aarch64).  Build-deps
    installed via apt-get instead of pacman -Syu.

  - build-deb.sh: drop the sysroot download / pkgconfig rewrite /
    symlink block.  Keep the post-build ABI sanity check (nm -D |
    grep __vaDriverInit_1_22) — same defensive role as before, with
    an updated error message that points to the expected runner.

  - debian/.../changelog: -2 entry rewritten to describe the runner
    move instead of the sysroot.

Tested approach on boltzmann (aarch64): meson build against trixie
sysroot produces __vaDriverInit_1_22 (proves the source compiles
correctly with VA-API 1.22 headers).  Native runner build will
follow the same path, just without the explicit sysroot setup.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 14:58:37 +02:00
marfrit a1ff6de652 libva-v4l2-request-fourier-debian: pin trixie libva-dev for ABI
The libva-v4l2-request-fourier .deb shipped with the wrong VA-API
symbol export because the CI runner is Arch (libva 2.23 = VA-API
1.23) while the install target is Debian trixie (libva 2.22 = VA-API
1.22).  At compile time, <va/va.h>'s VA_MAJOR/VA_MINOR macros are
baked into the driver's __vaDriverInit_<MAJOR>_<MINOR> symbol name.
trixie's libva runtime looks up __vaDriverInit_1_22, our driver only
exported __vaDriverInit_1_23, so dlsym() returned NULL and libva
fell back to its sentinel error "has no function __vaDriverInit_1_0".
Result: ffmpeg -hwaccel vaapi fails on startup, vainfo fails the
same way, on every Pi 5 / CM5 that installed the package.

The driver itself doesn't link libva.so (no NEEDED entry — confirmed
via readelf on higgs), so the only thing that matters is the symbol
NAME the compiler bakes in.  Fix is small: in build-deb.sh, download
trixie's libva-dev / libva2 / libva-drm2 .deb from deb.debian.org,
extract to a sysroot, rewrite the .pc prefixes, and set
PKG_CONFIG_PATH so pkg-config returns trixie headers regardless of
what the runner has installed.  The link step still resolves -lva
against the sysroot's libva.so.2, but the resulting .so has no
NEEDED entry for it.

Added a hard sanity check at the end of build-deb.sh: fail the build
if the produced .so doesn't export __vaDriverInit_1_22.  This makes
future ABI-skew failures loud at CI time instead of silent install-
then-refuse-to-load on the target.

Tested on boltzmann (aarch64): sysroot build produces a .so exporting
__vaDriverInit_1_22 (verified via nm -D).  Source unchanged from
c332d34; only the build env differs.

pkgver/upstream unchanged.  PKGREL bumped 1 -> 2 (rebuild against
pinned trixie libva-dev) so apt picks up the new .deb on higgs.

This is the LIBVA-2 unblocker — the runtime-libva-bind failure was
masking whether the LIBVA-1 per-codec dispatch actually works on
higgs.  Once -2 lands on packages.reauktion.de, apt upgrade on higgs
and the daedalus daemon log + rpi-hevc-dec dispatch can be validated
end-to-end.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 14:31:40 +02:00
marfrit b471847b1c Merge pull request 'libva-v4l2-request-fourier: de27e95 -> c332d34 (LIBVA-1 close)' (#43) from claude-noether/marfrit-packages:noether/libva-bump-c332d34 into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 3s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 3s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 21s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 21m51s
build and publish packages / daedalus-v4l2-debian (push) Successful in 3s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 21s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 1m51s
Reviewed-on: #43
2026-05-20 11:58:54 +00:00
marfrit 3abfdff943 libva-v4l2-request-fourier: de27e95 -> c332d34 (LIBVA-1 close)
Bumps both Arch (PKGBUILD) and Debian (build-deb.sh + changelog)
pins to upstream c332d34 — the merged LIBVA-1 PR.

Effect: Pi 5 / CM5 mixed deployment (higgs) now opens BOTH
rpi-hevc-dec and daedalus_v4l2 from one libva session and routes
per-codec — HEVC to rpi-hevc-dec ('p'), VP9 / AV1 / H.264 to the
daedalus daemon (new 'd' kind).  Before c332d34, find_codec_device
picked rpi-hevc-dec by known_decoder_drivers[] order and the
daedalus slot stayed -1, so VP9/AV1/H.264 frames failed S_FMT.

Also closes a small fd leak in RequestTerminate (daedalus pair —
caught while reviewing the alt-driver expansion).

Both packages: pkgver bumped 1.0.0.r378.c332d34, pkgrel reset to 1
(new upstream pin).  Backward-compatible on RK3399/3588 — new
branches gated by HAVE_DAEDALUS_V4L2 *and* video_fd_daedalus >= 0,
both false in those deployments.

Companion: daedalus-v4l2{,-dkms} bump 481279c landed in PR #39
(systemd unit + auto-enable).  Together they close the Pi 5 stack:
boot → modules-load.d loads daedalus_v4l2 → daedalus-v4l2.service
starts daemon → libva opens both decoders → ffmpeg -hwaccel vaapi
routes by codec.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 13:58:05 +02:00
marfrit fce33b02a2 Merge pull request 'libva-v4l2-request-fourier: restore epoch=1' (#42) from epoch-bump/libva-v4l2-request-fourier-2026-05-20 into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 4s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 5s
build and publish packages / lmcp-any (push) Successful in 5s
build and publish packages / lmcp-debian (push) Successful in 4s
build and publish packages / claude-his-any (push) Successful in 5s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 4s
build and publish packages / claude-his-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 37s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 27m50s
build and publish packages / daedalus-v4l2-debian (push) Successful in 4s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 20s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 3s
build and publish packages / mpv-fourier-debian (push) Successful in 1m51s
Reviewed-on: #42
2026-05-20 10:58:26 +00:00
marfrit da60fa7c49 libva-v4l2-request-fourier: restore epoch=1
Installed systems carry 1:1.0.0.r361.cf8cd9d-1 from an earlier build
that had epoch=1. Current PKGBUILD ships 1.0.0.r376.de27e95-1 without
epoch, which pacman vercmp ranks BELOW the installed version, so
ohm refuses to upgrade with:

  warning: libva-v4l2-request-fourier: local (1:1.0.0.r361.cf8cd9d-1) is
  newer than marfrit (1.0.0.r376.de27e95-1)

Restoring epoch=1 fixes the monotonic version chain.
2026-05-20 12:13:32 +02:00
marfrit 20161d231f Merge pull request 'ci: skip jobs when their package version is already published' (#41) from claude-noether/marfrit-packages:claude-noether/rebuild-guard-2026-05-20 into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 7s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 3s
build and publish packages / lmcp-any (push) Successful in 5s
build and publish packages / lmcp-debian (push) Successful in 3s
build and publish packages / claude-his-any (push) Successful in 3s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 3s
build and publish packages / claude-his-debian (push) Successful in 3s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 4s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 29m29s
build and publish packages / daedalus-v4l2-debian (push) Successful in 4s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 7s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 39s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 4s
build and publish packages / mpv-fourier-debian (push) Has been cancelled
Reviewed-on: #41
2026-05-20 10:05:40 +00:00
claude-noether c7bb14f369 ci: skip jobs when package already published
Wire .gitea/scripts/check-already-published.sh into every job in
build.yml. New step `skip if already published` (id: skip-check) lands
right after actions/checkout@v4 and runs the helper against the job's
recipe-dir. Subsequent steps gain `if: steps.skip-check.outputs.skip
!= '1'`, except `wipe secrets` which keeps its existing
`if: always()`.

Recipe-dir per job is taken from each job's existing `cp -r arch/...`
or `cd debian/...` line — no guessing.

Effect: on push where only e.g. firefox-fourier changed, 13 jobs HEAD
the pool, see 200, and short-circuit; only firefox-fourier rebuilds.
Verified live against packages.reauktion.de — current branch tip
would skip 10/14 jobs.

Patch is text-based (no PyYAML round-trip) so comments and blank
lines stay where they were. Diff is 190 lines added, 0 removed.
2026-05-20 11:48:46 +02:00
claude-noether f8d1257d35 ci: add check-already-published helper script
CI currently rebuilds every recipe on every push. distcc-avahi hasn't
changed in weeks but still burns runner-time. Add a small bash helper
that takes a recipe dir (arch/<n> or debian/<n>), resolves the expected
pool URL on packages.reauktion.de, and prints `skip=1` or `skip=0`.

Live-tested against all 14 recipes. Sources PKGBUILDs in a sandboxed
subshell so epoch=, ${_pkgver/-/}, and pkgname=() arrays resolve
correctly. For debian/*, extracts top-level PKGVER/PKGREL lines with
an awk guard that rejects command-subst and embedded-command
assignments (avoids false-positive matches against HEREDOC-quoted
dkms.conf content).

Wiring into build.yml lands in the next commit.
2026-05-20 11:47:24 +02:00
marfrit f3b1087ac7 Merge pull request 'mesa-panvk-bifrost: new package — Vulkan-compositor Brave for Bifrost SBCs' (#40) from claude-noether/marfrit-packages:noether/mesa-panvk-bifrost into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m15s
build and publish packages / mesa-panvk-bifrost-aarch64 (push) Successful in 7m18s
build and publish packages / lmcp-any (push) Successful in 13s
build and publish packages / lmcp-debian (push) Successful in 6s
build and publish packages / claude-his-any (push) Successful in 29s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Failing after 36s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Has been skipped
build and publish packages / mpv-fourier-aarch64 (push) Has been skipped
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been skipped
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been skipped
build and publish packages / mpv-fourier-debian (push) Has been skipped
build and publish packages / claude-his-debian (push) Failing after 36s
build and publish packages / daedalus-v4l2-debian (push) Has been skipped
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been skipped
Reviewed-on: #40
2026-05-20 09:08:17 +00:00
claude-noether 2299d7a02f Revert "linux-pinetab2-danctnix-besser: pkgrel=6 (per-series reconstruction, kernel-agent#29 done proper)"
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m16s
build and publish packages / lmcp-any (push) Successful in 14s
build and publish packages / lmcp-debian (push) Successful in 12s
build and publish packages / claude-his-any (push) Successful in 13s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Has been cancelled
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / claude-his-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
This reverts commit 31da35a549.
2026-05-20 11:05:43 +02:00
marfrit 489d6e3862 mesa-panvk-bifrost: new package — Vulkan-compositor Brave for Bifrost SBCs
iter9 of the panvk-bifrost campaign — operator-confirmed Vulkan output
on PineTab2 (Mali-G52 r1 MC1) 2026-05-20.

Patches Mesa 26.0.6's PanVk Vulkan driver:
  - VK_KHR/EXT_robustness2 + nullDescriptor exposed for PAN_ARCH 6/7
  - has_vk1_1 / has_vk1_2 = true on Bifrost
Patches applied via sed in PKGBUILD prepare() (cleaner than maintaining
a Mesa fork for two two-line tweaks; upstream context drifts between
Mesa releases would make a literal .patch brittle).

Co-installs at /usr/lib/panvk-bifrost/ — stock mesa untouched. Stock
libvulkan_panfrost.so and its ICD JSON keep working for everyone not
opting into the patched driver.

Ships /usr/bin/brave-vulkan that wires up:
  VK_ICD_FILENAMES=/usr/lib/panvk-bifrost/icd.json
  PAN_I_WANT_A_BROKEN_VULKAN_DRIVER=1
  MESA_VK_VERSION_OVERRIDE=1.2     # ANGLE needs apiVersion>=1.1; the
                                   # has_vk1_x flags don't move it, so
                                   # the env-var override carries that
  brave --use-gl=disabled --enable-features=Vulkan --use-vulkan=native
        --ozone-platform=x11 --no-sandbox --disable-gpu-sandbox
        --ignore-gpu-blocklist "$@"

Side-steps the stock "GLES3 is unsupported / GPU process exits" failure
documented in panvk-bifrost/README's "Consumer-side benefit" section.

Known limitation: WebGL/WebGL2 in-page won't work — ANGLE needs GLES3
which needs VK_EXT_transform_feedback, which PanVk-Bifrost doesn't
currently support. Browser chrome + standard page rendering work fine.

Gitea Actions job mesa-panvk-bifrost-aarch64 added to build.yml,
patterned on libva-v4l2-request-fourier-aarch64. Mesa build is slow
(~30-60min on actrunner-aarch64). Standalone (no needs:),
continue-on-error so it doesn't block other jobs.

Campaign artifacts: ~/src/panvk-bifrost/{README.md, phase8_iteration9_close.md,
phase0_evidence/iter9_brave_vulkan_breakthrough.txt}.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:03:59 +02:00
marfrit 265bf669c8 Merge pull request 'daedalus-v4l2{,-dkms}: Linux 6.18 compat + systemd unit + auto-enable' (#39) from claude-noether/marfrit-packages:noether/daedalus-v4l2-kernel-6.18-compat into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m20s
build and publish packages / lmcp-any (push) Successful in 13s
build and publish packages / lmcp-debian (push) Successful in 8s
build and publish packages / claude-his-any (push) Successful in 14s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Has been cancelled
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / claude-his-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Has been cancelled
Reviewed-on: #39
2026-05-20 08:54:28 +00:00
marfrit df09c1c55d daedalus-v4l2{,-dkms}: f0cd29a -> 481279c — systemd unit + auto-enable
481279c adds packaging/systemd/{daedalus-v4l2.service,modules-load} to
the upstream tree.  This commit wires those into both the Arch
(PKGBUILD + .install) and Debian (build-deb.sh + postinst/prerm/postrm)
package layouts so that a fresh install of daedalus-v4l2 + daedalus-
v4l2-dkms on a Pi 5 leaves the kernel module loaded at next boot AND
the userspace broker daemon enabled — no manual modprobe / systemctl
enable dance needed.

  arch/daedalus-v4l2:
    * pkgver 0.1.0.r18.481279c, pkgrel reset to 1 (new upstream pin).
    * Dropped 'systemd-libs' from depends — daemon doesn't link
      libsystemd (no sd_notify); the .service unit is consumed by
      systemd-the-init, no link-time dep required.
    * package() now installs the .service to
      /usr/lib/systemd/system/daedalus-v4l2.service and the modules-
      load drop-in to /usr/lib/modules-load.d/daedalus-v4l2.conf.
    * New .install file: post_install/post_upgrade run daemon-reload +
      enable + systemd-modules-load + try-restart on upgrade; pre/post
      remove tear down cleanly.  No auto-start — operator decides.

  arch/daedalus-v4l2-dkms:
    * pkgver bump to 481279c, pkgrel reset to 1.  Kernel module itself
      is bit-identical to f0cd29a (commit only touches packaging/) but
      bumping in lockstep keeps DKMS source-tree pkgver matched to the
      userspace pkgver so /etc/modules-load.d points at a module that
      actually exists.

  debian/daedalus-v4l2:
    * Same bump 481279c, PKGREL=1.
    * build-deb.sh stages /lib/systemd/system/ + /usr/lib/modules-load.d/
      and installs both files.
    * Generates DEBIAN/postinst that runs daemon-reload, enables the
      service, triggers systemd-modules-load, and conditionally starts
      the service iff /dev/daedalus-v4l2 is already present (uses the
      same ConditionPathExists= guard as the unit file so apt install
      doesn't fail loudly on a host where dkms hasn't built yet).
    * Generates DEBIAN/prerm (stop + disable on remove) and
      DEBIAN/postrm (daemon-reload).

  debian/daedalus-v4l2-dkms:
    * Lockstep version bump, PKGREL=1.  Postinst (loud-warn-on-missing-
      headers) unchanged.

Verified the SHA via local rev-parse against ~/src/daedalus-v4l2 —
481279c is the "packaging/systemd: ship daedalus-v4l2.service +
modules-load drop-in" commit on main.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 10:34:55 +02:00
marfrit e8a5490d44 Merge pull request 'daedalus-v4l2{,-dkms}: f55b2cd -> f0cd29a — Linux 6.18 compat' (#38) from claude-noether/marfrit-packages:noether/daedalus-v4l2-kernel-6.18-compat into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m17s
build and publish packages / lmcp-any (push) Successful in 14s
build and publish packages / lmcp-debian (push) Successful in 8s
build and publish packages / claude-his-any (push) Successful in 13s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 12m16s
build and publish packages / claude-his-debian (push) Successful in 8s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 26s
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
Reviewed-on: #38
2026-05-20 08:24:19 +00:00
marfrit ff9db4e273 daedalus-v4l2{,-dkms}: f55b2cd -> f0cd29a — Linux 6.18 compat
DKMS build for daedalus_v4l2 fails against kernel 6.18+ with:

  daedalus_v4l2_main.c:1049: error: too few arguments to function
                            'v4l2_fh_add'
  v4l2-fh.h:97: void v4l2_fh_add(struct v4l2_fh *fh, struct file *filp);

(same for v4l2_fh_del).  Signature changed exactly at v6.18 — verified
v6.13–v6.17 still use the one-arg form via raw.githubusercontent.com
tag walk.

Upstream commit f0cd29a wraps the calls with LINUX_VERSION_CODE so the
module keeps building against:
  * 6.12 LTS / RPi 6.12.75 (one-arg)        — hertz
  * 6.12.88+deb13-arm64 (one-arg)
  * 6.18.29+rpt-rpi-2712 (file* arg)        — higgs running kernel

Higgs (Pi CM5) was hitting this: daedalus-v4l2-dkms 0.1.0+r16+gf55b2cd
showed 'installed' in dpkg but DKMS autoinstall failed for the running
6.18.29 kernel.  Re-running 'dkms autoinstall' after this bump succeeds
+ /dev/daedalus-v4l2 appears.

Also widens debian/daedalus-v4l2-dkms Recommends from
  linux-headers-generic | linux-headers
to
  linux-headers-rpi-2712 | linux-headers-rpi | linux-headers-generic | linux-headers
so apt pulls the right metapackage on Raspberry Pi OS / RPi-2712
kernels by default.

Userspace pkgver bumps in lockstep (no userspace change in f0cd29a, but
keeps daedalus-v4l2 + daedalus-v4l2-dkms versions matching for
LIBVA_DRIVER_NAME selection sanity).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 10:21:13 +02:00
marfrit 108a3dabe6 firefox-fourier: ship .desktop launcher (pkgrel=7)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m38s
build and publish packages / lmcp-any (push) Successful in 16s
build and publish packages / lmcp-debian (push) Successful in 9s
build and publish packages / claude-his-any (push) Successful in 14s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 13m9s
build and publish packages / claude-his-debian (push) Successful in 9s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 25s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 29m16s
build and publish packages / daedalus-v4l2-debian (push) Successful in 13s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 1m46s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 31s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 7s
build and publish packages / mpv-fourier-debian (push) Successful in 2m31s
Stock firefox.desktop disappears when our 'provides=firefox' replaces stock
firefox-arch, so installing firefox-fourier left the user without a Plasma/GNOME
start-menu entry. Add firefox-fourier.desktop with Categories=Network;WebBrowser;
(routes under Internet on KDE Plasma 6), MIME types for the usual web schemes,
new-window / private-window actions, and the 128px icon from the package's
internal browser/chrome/icons tree.

Reported on ohm (PineTab2 / Plasma 6) — manual /usr/share/applications shim
proved the file works; this commits it to the recipe so future installs Just Work.
2026-05-20 00:09:31 +02:00
claude-noether 31da35a549 linux-pinetab2-danctnix-besser: pkgrel=6 (per-series reconstruction, kernel-agent#29 done proper)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m20s
build and publish packages / lmcp-any (push) Successful in 13s
build and publish packages / lmcp-debian (push) Successful in 7s
build and publish packages / claude-his-any (push) Successful in 13s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 12m39s
build and publish packages / claude-his-debian (push) Successful in 8s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 27s
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-debian (push) Has been cancelled
build and publish packages / mpv-fourier-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-debian (push) Has been cancelled
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been cancelled
build and publish packages / ffmpeg-v4l2-request-debian (push) Has been cancelled
Bumps pkgrel from 5 to 6. Cumulative regenerated from the redone
per-series reconstruction in kernel-agent (replacing the broken
PR #33 attempt with a proper rebase onto v7.0-danctnix1 baseline).

  cumulative.patch: 162 716 -> 279 554 bytes
  b2sum:            50397711a6a3... -> eb179c03f35a...
  manifest.lock:    32 resolved patches (was 4 — c5x interim collapsed
                    the bes2600 driver scope into one cumulative blob;
                    per-series properly tracks each fix)
  bes2600 series-dirs in kernel-agent: now 25 individual series-dirs
                    (one per cleanups commit + Patch H), each with the
                    proper in-tree drivers/staging/bes2600/* paths

Built + installed on ohm 2026-05-19 23:39. Functional verification:
  uname:       7.0.0-danctnix1-6-pinetab2-danctnix-besser
  srcversion:  1A919EED0E6DC2478559B17 (differs from pkgrel=5's
               BEB625FA7443171EA8D55F7 — not byte-equivalent;
               functional equivalence verified: wlan0 associates,
               bes2600_btuart loads, Pattern A 0, no WARN/BUG)

Per-fix revertability now real: removing an include from
fleet/ohm.yaml drops that fix from the cumulative. Bisecting on
kernel-agent side becomes practical.
2026-05-19 23:44:47 +02:00
marfrit b4d1a47d6b Merge pull request 'daedalus-v4l2{,-dkms}: fix hallucinated upstream commit SHA' (#37) from noether/daedalus-sha-fix into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m40s
build and publish packages / lmcp-any (push) Successful in 22s
build and publish packages / lmcp-debian (push) Successful in 11s
build and publish packages / claude-his-any (push) Successful in 22s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 45m44s
build and publish packages / claude-his-debian (push) Successful in 31s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 44s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 47m30s
build and publish packages / daedalus-v4l2-debian (push) Successful in 20s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m0s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 33s
build and publish packages / daedalus-v4l2-dkms-debian (push) Successful in 10s
build and publish packages / mpv-fourier-debian (push) Successful in 3m8s
Reviewed-on: #37
2026-05-19 10:06:13 +00:00
test0r 3548a761a5 daedalus-v4l2{,-dkms}: fix hallucinated upstream commit SHA
The recipes pinned `f55b2cdab8a8c0bc04e8c1bb1d0b6ca85e7d96d2` as the
"Phase 8.13: byte-exact end-to-end via libva" commit, but that SHA
does not exist in git.reauktion.de/reauktion/daedalus-v4l2.

The actual `main` tip (per gitea's for-each-ref) is
`f55b2cd002afdfd08f3c093627317f92e4929074` — same 7-char prefix
(`f55b2cd`), different full hash.  Likely a manually-constructed SHA
based on a short prefix from a working copy that was never pushed.

git archive --format=tar.gz on the bad SHA fails with
  fatal: not a tree object: f55b2cdab8a8...
which surfaces as 500 from Gitea's archive endpoint, which curl in
the CI build-deb.sh sees as `curl: (22) ... error: 500`.

Diagnosed by tailing gitea.log during a fresh archive request from
the CI runner; the underlying `git archive` command in the gitea
container is logged with the full failing SHA + error.

Fixed in all four recipes (arch + debian, daedalus-v4l2 + dkms).
pkgrel bumped to signal new build (PKGVER short-prefix `gf55b2cd`
stays the same — both bad and good SHA share that prefix).
2026-05-19 12:03:39 +02:00
marfrit 6f65462ec4 Merge pull request 'fourier-debian: Path A — ffmpeg into /opt/fourier prefix (no more KDE cascade)' (#36) from noether/fourier-private-prefix into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 2m10s
build and publish packages / lmcp-any (push) Successful in 26s
build and publish packages / lmcp-debian (push) Successful in 12s
build and publish packages / claude-his-any (push) Successful in 25s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 45m37s
build and publish packages / claude-his-debian (push) Successful in 12s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 40s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 49m0s
build and publish packages / daedalus-v4l2-debian (push) Failing after 12s
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been skipped
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m22s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 42s
build and publish packages / mpv-fourier-debian (push) Successful in 3m55s
Reviewed-on: #36
2026-05-19 08:15:25 +00:00
test0r a0e0d123b2 fourier-debian: Path A — ffmpeg into /opt/fourier prefix
Stock Debian trixie ships FFmpeg 7.1 (libavcodec.so.61), our fork
ships FFmpeg 8.1 (libavcodec.so.62) — different SONAMEs, NOT a
drop-in for trixie's libavcodec61-consuming desktop.  Previous
Conflicts: libavcodec61, libavformat61, ... triggered apt to remove
~50 packages (kde-plasma-desktop, vlc, dolphin, ...) when a user
just wanted ffmpeg-v4l2-request-fourier installed alongside.

This commit:

1. ffmpeg-v4l2-request-fourier (pkgrel=2):
   - --prefix=/opt/fourier (instead of /usr)
   - --extra-ldexeflags / --extra-ldsoflags: -Wl,-rpath,/opt/fourier/lib
     so /opt/fourier/bin/ffmpeg finds its own libs without external help
   - Ship /etc/ld.so.conf.d/fourier.conf with /opt/fourier/lib + ldconfig
     in postinst/postrm.  dlopen-by-SONAME consumers (firefox, daedalus)
     find libavcodec.so.62 via ld.so cache without LD_LIBRARY_PATH.
   - Drop ALL Conflicts/Replaces/Provides for libav* / libpostproc /
     libsw* — no SONAME clash with stock libavcodec61, no reason to
     evict anything.
   - /usr/bin/ffmpeg-fourier + ffprobe-fourier convenience symlinks.

2. daedalus-v4l2 (pkgrel=2):
   - Depends: ffmpeg-v4l2-request-fourier (>= 2:8.1+rfourier)
     instead of stock 'ffmpeg (>= 7.1)'.  The daedalus binary was
     linked against libavcodec.so.62 at build time (CI runner had
     marfrit/ffmpeg-v4l2-request-fourier installed); at runtime it
     needs the .so.62 that only the fourier pkg provides.

Not touched:
  - libva-v4l2-request-fourier: ships only v4l2_request_drv_video.so
    at /usr/lib/<triplet>/dri/ which libva dlopens by file pattern.
    Path A would break the lookup unless every consumer launcher sets
    LIBVA_DRIVERS_PATH.  Driver name is unique; no conflict.  STAY.
  - mpv-fourier: Depends already correctly bound to fourier ffmpeg.
    Will receive libavcodec.so.62 via the ld.so.cache mechanism
    above without recipe changes.
2026-05-19 10:12:36 +02:00
marfrit f22f8f03ac fourier-debian: fix mpv Conflicts + daedalus ffmpeg conflict (#35)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 2m10s
build and publish packages / lmcp-any (push) Successful in 22s
build and publish packages / lmcp-debian (push) Successful in 11s
build and publish packages / claude-his-any (push) Successful in 22s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 12m44s
build and publish packages / claude-his-debian (push) Successful in 12s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 36s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 47m44s
build and publish packages / daedalus-v4l2-debian (push) Failing after 27s
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been skipped
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m22s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 42s
build and publish packages / mpv-fourier-debian (push) Successful in 3m58s
2026-05-19 06:42:30 +00:00
test0r e236ec1f42 fourier-debian: fix mpv Conflicts: + daedalus ffmpeg conflict
Two deterministic CI failures from run 115 (PR #34 wiring):

mpv-fourier-debian (task 566): dpkg-deb refuses `Conflicts: pkg1 |
pkg2` — Debian policy doesn't allow alternatives in Conflicts.
Split into separate entries.

daedalus-v4l2-debian (task 563): pacman -Syu pulled stock arch
ffmpeg which conflicts with the already-installed
ffmpeg-v4l2-request-fourier left behind by the earlier
mpv-fourier-aarch64 job (it configures [marfrit] + pre-installs
the fourier ffmpeg).  Drop 'ffmpeg' from the pacman line; mirror
the [marfrit]+pre-install step from mpv-fourier-debian.  Daedalus
only needs libavcodec/libavformat headers which the fourier
package supplies.
2026-05-19 08:42:01 +02:00
marfrit 57e6bac3d4 Merge pull request 'firefox-fourier: explicit CC/CXX=distcc in mozconfig' (#33) from noether/firefox-fourier-moz-distcc into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 2m7s
build and publish packages / lmcp-any (push) Successful in 22s
build and publish packages / lmcp-debian (push) Successful in 14s
build and publish packages / claude-his-any (push) Successful in 22s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 44m13s
build and publish packages / claude-his-debian (push) Successful in 12s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 1m31s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 37m41s
build and publish packages / daedalus-v4l2-debian (push) Failing after 41s
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been skipped
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m2s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 33s
build and publish packages / mpv-fourier-debian (push) Failing after 2m56s
Reviewed-on: #33
2026-05-19 04:32:23 +00:00
marfrit c818445611 ci: wire debian builds for 5 fourier recipes (#34)
build and publish packages / distcc-avahi-aarch64 (push) Successful in 2m7s
build and publish packages / lmcp-any (push) Successful in 25s
build and publish packages / lmcp-debian (push) Successful in 12s
build and publish packages / claude-his-any (push) Successful in 25s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 47m13s
build and publish packages / claude-his-debian (push) Successful in 13s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 41s
build and publish packages / ffmpeg-v4l2-request-debian (push) Successful in 47m46s
build and publish packages / daedalus-v4l2-debian (push) Failing after 49s
build and publish packages / daedalus-v4l2-dkms-debian (push) Has been skipped
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m23s
build and publish packages / libva-v4l2-request-fourier-debian (push) Successful in 45s
build and publish packages / mpv-fourier-debian (push) Failing after 3m45s
2026-05-18 22:07:01 +00:00
test0r 45604801fa ci: wire debian builds for 5 fourier recipes
The debian/{ffmpeg-v4l2-request-fourier,libva-v4l2-request-fourier,mpv-fourier,daedalus-v4l2,daedalus-v4l2-dkms}
recipes have been sitting in the tree with no CI trigger since 2026-05-18.
build-deb.sh exists and is runnable, but nothing fires it — so no .debs
were ever pushed to packages.reauktion.de/debian/pool/.

Mirror the lmcp-debian / claude-his-debian pattern: build natively on
the arch-aarch64 runner (dpkg-deb is in extra), rsync the .deb to
hertz's incoming dir, trigger publish-deb for bookworm + trixie.

mpv-fourier-debian also pre-installs ffmpeg-v4l2-request-fourier from
[marfrit] for libavcodec ABI symmetry, matching the arch sibling job.
2026-05-19 00:05:40 +02:00
claude-noether 0a922a9f36 firefox-fourier: explicit CC/CXX=distcc in mozconfig
fermi's makepkg.conf already has BUILDENV=(distcc ...) which prepends
/usr/lib/distcc/bin to PATH at build time. But Mozilla's mach
configure picks CC/CXX from the environment directly — it doesn't
treat the distcc shim in PATH as the default C compiler unless the
env vars are set explicitly. Without this guard the distcc workers
sat idle while mach drove a local-only build.

Mirrors the explicit-distcc pattern already used in
ffmpeg-v4l2-request-fourier/PKGBUILD.

Caveat documented in the comment: only the C/C++ portion
distributes. rustc and host-only build steps stay local. Empirical
~30-40% wall-clock improvement on a 4-worker pool (tesla, dcc1, dcc2,
ampere via Avahi zeroconf).

pkgrel bumped so a rebuild publishes a new package even though the
binary output for users is unchanged (build process speedup only).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 21:08:49 +00:00
marfrit 9b170e942c Merge pull request 'qt6-base-fourier: fix epoch-mismatch in xcb-private-headers dep' (#32) from noether/qt6-xcb-private-headers-fourier-epoch-fix into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m46s
build and publish packages / lmcp-any (push) Successful in 18s
build and publish packages / lmcp-debian (push) Successful in 10s
build and publish packages / claude-his-any (push) Successful in 18s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 46m47s
build and publish packages / claude-his-debian (push) Successful in 19s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 39s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 2m23s
Reviewed-on: #32
2026-05-18 20:56:54 +00:00
claude-noether cf169fd13e qt6-base-fourier: fix epoch-mismatch in xcb-private-headers dep
`package_qt6-xcb-private-headers-fourier()` depended on
`qt6-base-fourier=$pkgver` (= literal "6.11.1"), but the package itself
ships with `epoch=1` so the installed version is `1:6.11.1-1`.

Pacman's strict-equality version compare treats "6.11.1" as epoch=0 and
"1:6.11.1" as epoch=1 — mismatch — and refuses every upgrade involving
qt6-xcb-private-headers-fourier with "unable to satisfy dependency".

Fix: include the epoch prefix in the dep string —
`qt6-base-fourier=$epoch:$pkgver`. pkgrel bumped to 2 so the rebuild
publishes a new package even though only the dep string changed.

Observed on ohm 2026-05-18 after the broader fleet pacman -Syu —
worked around there with --assume-installed; this fixes it properly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 20:45:31 +00:00
marfrit 81895f991b Merge pull request 'arch/linux-pinetab2-danctnix-besser: pkgrel=4 — first kernel-agent-managed release' (#28) from noether/add-linux-pinetab2-danctnix-besser into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 1m38s
build and publish packages / lmcp-any (push) Successful in 21s
build and publish packages / lmcp-debian (push) Successful in 11s
build and publish packages / claude-his-any (push) Successful in 20s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 33m27s
build and publish packages / claude-his-debian (push) Successful in 12s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 36s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 1m58s
Reviewed-on: #28
2026-05-18 20:02:34 +00:00
claude-noether 011667c8e4 linux-pinetab2-danctnix-besser: drop accidentally-committed kernel src tree
The PR branch contained the unpacked Linux 7.0 source tree
(~81k files, ~38M additions) under src/. These are makepkg build-dir
artifacts that should never be committed; PKGBUILD downloads + extracts
them at build time.

Their presence inflated the PR file-count display to 81030 changed
files. Removed src/ from tracking and added a stronger .gitignore
in the package dir to prevent regressions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 19:33:43 +00:00
marfrit 0e6f97f041 Merge pull request 'noether/daedalus-v4l2-packages' (#31) from claude-noether/marfrit-packages:noether/daedalus-v4l2-packages into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 55s
build and publish packages / lmcp-any (push) Successful in 9s
build and publish packages / lmcp-debian (push) Successful in 6s
build and publish packages / claude-his-any (push) Successful in 9s
build and publish packages / claude-his-debian (push) Successful in 25s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Failing after 16m36s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Has been cancelled
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
Reviewed-on: #31
2026-05-18 19:31:00 +00:00
marfrit fae7a7b80c Merge branch 'main' into noether/add-linux-pinetab2-danctnix-besser 2026-05-18 19:22:03 +00:00
test0r b851861931 debian/mpv-fourier: new package
Mirror of arch/mpv-fourier into the Debian tree.  Same source
pin (mpv 0.41.0), same 3 patches:
  - 0001-meson-add-detection-logic-for-v4l2request-support.patch
  - 0002-vo-hwdec-drmprime-add-separate-hwdecs-for-v4l2reques.patch
    (Kwiboo + Langdale wiring for AV_HWDEVICE_TYPE_V4L2REQUEST
     through drmprime VO hwdec — '--hwdec=v4l2request' actually
     engages on dmabuf-wayland)
  - 0001-vo_dmabuf_wayland-explicit-cache-sync-on-import-fd.patch
    (iter1 of dmabuf-modifier-triage — explicit DMA_BUF_IOCTL_SYNC
     on import fds; KWin-on-RK3566 dark-green chroma readback
     regression fix on ohm.  Root cause is the vb2_dma_resv RFC
     upstream still pending.)

Depends on ffmpeg-v4l2-request-fourier (>= 2:8.1+rfourier) —
AV_HWDEVICE_TYPE_V4L2REQUEST only exists in Kwiboo's FFmpeg
fork; stock Debian ffmpeg doesn't have it.

Conflicts/Replaces stock mpv + libmpv2/libmpv1 — drop-in
replacement.  Takes epoch 1.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 19:01:29 +00:00
test0r 45f4b5e56f debian/ffmpeg-v4l2-request-fourier: new package
Mirror of arch/ffmpeg-v4l2-request-fourier into the Debian tree.
Same source pin (Kwiboo v4l2-request-n8.1 @ b57fbbe), same 2
patches (libudev-bypass-fallback + nv15-to-p010-unpack), same
configure flag policy (drop X11/AMF/CUDA/Bluray/Vulkan/SDL2/etc.
per Fourier fleet focus).

Output: single .deb at /usr/bin/ffmpeg + /usr/bin/ffprobe +
/usr/lib/aarch64-linux-gnu/libav*.so.61.  Conflicts/Replaces
the stock Debian ffmpeg + per-lib packages; takes epoch 2
(matches Debian's existing ffmpeg epoch).

Provides 'ffmpeg -hwaccel v4l2request' + '-hwaccel drm' routes
that drive rkvdec / hantro / cedrus / rpi-hevc-dec /
daedalus_v4l2 stateless decoders through libavcodec's hwdevice
DRM path, bypassing libva.  Required by mpv-fourier and
firefox-fourier as their backing FFmpeg; also the kdirect
bit-exact reference for libva-v4l2-request-fourier validation.

NOT strictly required for the VAAPI-only path on
daedalus-v4l2 hosts (stock Debian ffmpeg + libva-v4l2-request-
fourier covers that).  Install only when going firefox-fourier
or kdirect.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 19:01:18 +00:00
marfrit 3ddc45d625 Merge pull request 'noether/daedalus-v4l2-packages' (#30) from claude-noether/marfrit-packages:noether/daedalus-v4l2-packages into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 41s
build and publish packages / lmcp-any (push) Successful in 8s
build and publish packages / lmcp-debian (push) Successful in 5s
build and publish packages / claude-his-any (push) Successful in 9s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Successful in 16m41s
build and publish packages / claude-his-debian (push) Successful in 7s
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Successful in 19s
build and publish packages / mpv-fourier-aarch64 (push) Successful in 1m37s
Reviewed-on: #30
2026-05-18 18:42:30 +00:00
test0r 1bd11eaf27 daedalus-v4l2{,-dkms}: f04d700 -> f55b2cd (UAF lifetime fix)
Bumps all 4 daedalus packages (arch + debian × userspace + dkms)
to pick up daedalus-v4l2 f55b2cd: "kernel: media_request_get/put
around inf->req (UAF safety)".

Closes the SHIP-WITH-EYES-OPEN concern Sonnet flagged in the
pre-deployment review — without explicit media_request_get on
capture + media_request_put on completion, a concurrent
MEDIA_IOC_REQUEST_REINIT or process-kill triggering
buf_request_complete from the cancel path could drop vb2's
reference before our completion handler ran, leaving inf->req
dangling through v4l2_ctrl_request_complete + buf_done.

Matches the cedrus / rkvdec refcount pattern.  No protocol
change, no API change, no consumer-side adjustment required.
Same byte-exact output verified on hertz post-fix (libva path:
match; standalone test_m2m_stream: 30/30 frames).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:39:40 +00:00
test0r 4776dc01d2 daedalus-v4l2-dkms: loud warning when DKMS build doesn't land
Sonnet pre-deployment review caught a BLOCKER: on a fresh higgs
(Debian 13 / Pi CM5) install without the RPi kernel headers
pre-installed, the postinst's `dkms autoinstall || true` silently
swallowed the build failure. Package appeared installed but the
.ko was absent; `modprobe daedalus_v4l2` then failed and the
entire stack was dead with no clear pointer to the cause.

Fix in both ecosystems:

debian/daedalus-v4l2-dkms/build-deb.sh:
- After `dkms autoinstall`, verify the post-condition with
  `dkms status -m daedalus_v4l2 -v VER -k $(uname -r)`.
- If the module isn't 'installed' / 'loaded' for the running
  kernel, emit a yellow-bolded ANSI warning naming the most
  likely cause (kernel headers package missing) and the exact
  recovery steps (linux-headers-rpi-2712 for RPi or
  linux-headers-$KERNELVER for Debian generic, then
  `dkms autoinstall` + `modprobe`).
- Colour only on TTY; the warning is unconditional regardless.

arch/daedalus-v4l2-dkms/:
- New daedalus-v4l2-dkms.install with post_install +
  post_upgrade hooks that run the same `dkms status` check.
- post_upgrade catches the case where a kernel-headers package
  was uninstalled / pruned between upgrades, silently
  regressing the build.
- Wired into the PKGBUILD via install="${pkgname}.install".

Both versions point at the actual repair commands rather than
just saying "build failed", so the user is one apt/pacman away
from a working stack instead of debugging dkms internals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:38:52 +00:00
marfrit de358b9461 Merge pull request 'noether/daedalus-v4l2-packages' (#29) from claude-noether/marfrit-packages:noether/daedalus-v4l2-packages into main
build and publish packages / distcc-avahi-aarch64 (push) Successful in 51s
build and publish packages / lmcp-any (push) Successful in 9s
build and publish packages / lmcp-debian (push) Successful in 7s
build and publish packages / claude-his-any (push) Successful in 8s
build and publish packages / ffmpeg-v4l2-request-aarch64 (push) Has been cancelled
build and publish packages / libva-v4l2-request-fourier-aarch64 (push) Has been cancelled
build and publish packages / mpv-fourier-aarch64 (push) Has been cancelled
build and publish packages / claude-his-debian (push) Has been cancelled
Reviewed-on: #29
2026-05-18 18:27:26 +00:00
test0r f3dd1c1886 debian/daedalus-v4l2-dkms: new package — kernel module via DKMS
Mirror of arch/daedalus-v4l2-dkms into the Debian tree.
Architecture: all (source package — DKMS rebuilds per-kernel
at install time).  Same pin (f04d700, Phase 8.13 close).

Installs kernel/ source to /usr/src/daedalus_v4l2-<ver>/ with
generated dkms.conf.  postinst runs `dkms add` + `dkms
autoinstall` so the module builds against the running kernel's
headers automatically.  prerm runs `dkms remove --all`.

Same Makefile-include-path flattening as the Arch sibling:
copies daedalus_v4l2_proto.h into kernel/include/ and patches
the Makefile's -I path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:46 +00:00
test0r add049f0bd debian/daedalus-v4l2: new package — userspace daemon + tools
Mirror of arch/daedalus-v4l2 into the Debian tree.  Same pin
(f04d700, Phase 8.13 close), same install layout.  Output as
arm64 .deb.

Build path: CMake for daemon (build via ninja); in-tree Makefile
for tools.  No debhelper; standalone dpkg-deb so it builds on
the non-Debian runner.

Depends on ffmpeg (libavformat/libavcodec/libavutil 7.1+) at
runtime, libdrm2.  Recommends daedalus-v4l2-dkms (the kernel
module).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:39 +00:00
test0r 249e8461bb debian/libva-v4l2-request-fourier: new package
Mirror of arch/libva-v4l2-request-fourier into the Debian tree.
Same pin (de27e95), same build (meson + ninja), output as
arm64 .deb installing the VA-API ICD as
/usr/lib/aarch64-linux-gnu/dri/v4l2_request_drv_video.so.

Auto-detected by VAAPI consumers (ffmpeg -hwaccel vaapi, mpv
--hwdec=vaapi, Firefox VAAPI accel) when
LIBVA_DRIVER_NAME=v4l2_request is set.

build-deb.sh follows the lmcp pattern: reproducible build with
SOURCE_DATE_EPOCH pin; standalone dpkg-deb so it runs on a
non-Debian builder without dh/debhelper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:33 +00:00
test0r 3293cd6542 arch/daedalus-v4l2-dkms: new package — kernel module via DKMS
PKGBUILD pinning the same daedalus-v4l2 @ f04d700 as the
userspace sibling.  Installs kernel/ source to
/usr/src/daedalus_v4l2-<ver>/ with a generated dkms.conf;
AUTOINSTALL=yes builds the module against the running kernel.

The kernel/ Makefile uses -I$(src)/../include for the shared
protocol header.  In the userspace tree that's daedalus-v4l2/include/;
for DKMS we flatten by copying the header into kernel/include/
and patching the Makefile in package() to point there.

Sibling Debian package: debian/daedalus-v4l2-dkms/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:21 +00:00
test0r 6de7268b49 arch/daedalus-v4l2: new package — userspace daemon + tools
PKGBUILD pinning daedalus-v4l2 @ f04d700 (Phase 8.13 close).

Installs:
- /usr/bin/daedalus_v4l2_daemon — the FFmpeg-backed decode daemon
- /usr/libexec/daedalus-v4l2/{test_chardev_pingpong,test_m2m_decode,
  test_m2m_stream} — verification harnesses
- /usr/include/daedalus_v4l2_proto.h — shared kernel↔daemon wire
  protocol (for third-party chardev clients)
- /usr/share/doc/daedalus-v4l2/ — README + Phase 8.x closure docs

Runtime deps: ffmpeg (libavformat/libavcodec/libavutil dlopen'd
at runtime per Option γ — daemon binary is link-clean from
FFmpeg), libdrm.

optdepends:
- daedalus-v4l2-dkms: companion kernel module
- libva-v4l2-request-fourier: VAAPI consumer routing through us

Sibling Debian package: debian/daedalus-v4l2/

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:14 +00:00
test0r dbae9832b6 libva-v4l2-request-fourier: 1.0.0.r348.7ac934e -> 1.0.0.r376.de27e95
Bump pin to de27e95 — "v4l2: log error_idx + failing ctrl id on
S_EXT_CTRLS failure" (Phase 8.13 diagnostic).

Includes:
- b5b3acf: daedalus_v4l2 entry in known_decoder_drivers[]
- 2146341: meson option gate (default true) for the daedalus
  probe slot
- de27e95: diagnostic logging on S_EXT_CTRLS failure (logs
  error_idx + failing control id, ioctl-level vs per-control)

Backward-compatible on rkvdec / hantro / cedrus / rpi-hevc-dec
hosts — daedalus probe is off-path unless daedalus_v4l2.ko
is loaded and /dev/video0 advertises driver "daedalus_v4l2".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:25:06 +00:00
claude-noether e49797ab21 linux-pinetab2-danctnix-besser: bump cumulative b2sum to 50397711a6a3...
kernel-agent corrected the @@ hunk counts in the SCS xor-neon patch
(the previous -9,7 +9,12 'fix' was an overcorrection; actual is
-9,6 +9,11). pkgrel=4 build #4 silently tolerated the wrong counts
because the trailer was stripped, but pkgrel=5 with besser#18
behind SCS exposed the inconsistency.

b2sum: ceec602afa8574c74354... -> 50397711a6a3ba522283...
Size unchanged 162 716.
2026-05-18 19:17:14 +02:00
claude-noether 47dfb33e98 linux-pinetab2-danctnix-besser: bump cumulative b2sum to ceec602afa85...
Kernel-agent restored the trailer on the SCS patch (SCS is no longer
last in the includes ordering — besser#18 is). Cumulative grows
+12 bytes for the restored '-- \n2.54.0\n' sentinel.

b2sum: 0eb091ddaba4... -> ceec602afa85...
Size: 162 704 -> 162 716.
2026-05-18 18:15:47 +02:00