daedalus-v4l2{,-dkms}: Linux 6.18 compat + systemd unit + auto-enable #39

Merged
marfrit merged 1 commits from claude-noether/marfrit-packages:noether/daedalus-v4l2-kernel-6.18-compat into main 2026-05-20 08:54:28 +00:00
Contributor

Two commits on this branch (kept together because the kernel-side compat fix and the systemd-side integration both apply to the daedalus-v4l2 packaging surface and would conflict if landed separately):

ff9db4e27 daedalus-v4l2{,-dkms}: f55b2cd -> f0cd29a — Linux 6.18 compat

  • v4l2_fh_add / v4l2_fh_del gained a struct file *filp second arg at v6.18.
  • Kernel module source now uses LINUX_VERSION_CODE conditional so it builds against 6.12 AND 6.18+ headers.
  • Verified DKMS rebuild on higgs (6.18.29+rpt-rpi-2712) succeeds + /dev/daedalus-v4l2 appears.
  • Recommends widened so apt pulls the right kernel-headers metapackage on RPi OS (linux-headers-rpi-2712 first).

df09c1c55 daedalus-v4l2{,-dkms}: f0cd29a -> 481279c — systemd unit + auto-enable

  • 481279c is the Phase 8.13 upstream commit that ships packaging/systemd/daedalus-v4l2.{service,modules-load}.
  • Arch: PKGBUILD installs the unit + modules-load.d drop-in; new daedalus-v4l2.install runs daemon-reload + enable + systemd-modules-load + try-restart-on-upgrade.
  • Debian: build-deb.sh stages /lib/systemd/system/ + /usr/lib/modules-load.d/, generates DEBIAN/postinst (daemon-reload + enable + systemd-modules-load + conditional start iff /dev/daedalus-v4l2 already present) and prerm/postrm.
  • Both DKMS packages bumped lockstep so /etc/modules-load.d/daedalus-v4l2.conf points at a module that actually builds.
  • pkgrel reset to 1 across all 4 packages (new upstream pin).
  • Dropped systemd-libs from arch depends — daemon does not link libsystemd.

Result: 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.

Companion: libva-v4l2-request-fourier PR #6 (per-codec dispatch so VP9/AV1/H.264 routes to daedalus while HEVC stays on rpi-hevc-dec).

Test plan: apt install on higgs, reboot, verify systemctl status daedalus-v4l2.service shows active and /dev/daedalus-v4l2 + /dev/video0 are present.

🤖 Generated with Claude Code

Two commits on this branch (kept together because the kernel-side compat fix and the systemd-side integration both apply to the daedalus-v4l2 packaging surface and would conflict if landed separately): ff9db4e27 daedalus-v4l2{,-dkms}: f55b2cd -> f0cd29a — Linux 6.18 compat - v4l2_fh_add / v4l2_fh_del gained a struct file *filp second arg at v6.18. - Kernel module source now uses LINUX_VERSION_CODE conditional so it builds against 6.12 AND 6.18+ headers. - Verified DKMS rebuild on higgs (6.18.29+rpt-rpi-2712) succeeds + /dev/daedalus-v4l2 appears. - Recommends widened so apt pulls the right kernel-headers metapackage on RPi OS (linux-headers-rpi-2712 first). df09c1c55 daedalus-v4l2{,-dkms}: f0cd29a -> 481279c — systemd unit + auto-enable - 481279c is the Phase 8.13 upstream commit that ships packaging/systemd/daedalus-v4l2.{service,modules-load}. - Arch: PKGBUILD installs the unit + modules-load.d drop-in; new daedalus-v4l2.install runs daemon-reload + enable + systemd-modules-load + try-restart-on-upgrade. - Debian: build-deb.sh stages /lib/systemd/system/ + /usr/lib/modules-load.d/, generates DEBIAN/postinst (daemon-reload + enable + systemd-modules-load + conditional start iff /dev/daedalus-v4l2 already present) and prerm/postrm. - Both DKMS packages bumped lockstep so /etc/modules-load.d/daedalus-v4l2.conf points at a module that actually builds. - pkgrel reset to 1 across all 4 packages (new upstream pin). - Dropped systemd-libs from arch depends — daemon does not link libsystemd. Result: 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. Companion: libva-v4l2-request-fourier PR #6 (per-codec dispatch so VP9/AV1/H.264 routes to daedalus while HEVC stays on rpi-hevc-dec). Test plan: apt install on higgs, reboot, verify systemctl status daedalus-v4l2.service shows active and /dev/daedalus-v4l2 + /dev/video0 are present. 🤖 Generated with Claude Code
claude-noether added 1 commit 2026-05-20 08:48:26 +00:00
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>
marfrit merged commit 265bf669c8 into main 2026-05-20 08:54:28 +00:00
marfrit deleted branch noether/daedalus-v4l2-kernel-6.18-compat 2026-05-20 08:54:28 +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#39