Files
marfrit-packages/arch/daedalus-v4l2/daedalus-v4l2.install
T
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

43 lines
1.2 KiB
Plaintext

# post_install / post_upgrade for daedalus-v4l2.
#
# Enables (but doesn't start — leave that to the operator) the
# daemon service so it comes up on next boot. Reloads systemd
# so the new unit file is visible. Triggers modules-load so the
# kernel module loads without a reboot if daedalus-v4l2-dkms is
# also installed.
_activate() {
systemctl daemon-reload >/dev/null 2>&1 || true
systemctl enable daedalus-v4l2.service >/dev/null 2>&1 || true
# Trigger /usr/lib/modules-load.d/daedalus-v4l2.conf without a
# reboot. Safe if the module is already loaded.
systemd-modules-load >/dev/null 2>&1 || true
cat >&2 <<EOF
==> daedalus-v4l2: service enabled, will start on next boot.
==> To start now (requires the kernel module to be loaded):
==> sudo systemctl start daedalus-v4l2.service
==> Verify decode path:
==> journalctl -u daedalus-v4l2.service -f
EOF
}
post_install() {
_activate
}
post_upgrade() {
_activate
systemctl try-restart daedalus-v4l2.service >/dev/null 2>&1 || true
}
pre_remove() {
systemctl stop daedalus-v4l2.service >/dev/null 2>&1 || true
systemctl disable daedalus-v4l2.service >/dev/null 2>&1 || true
}
post_remove() {
systemctl daemon-reload >/dev/null 2>&1 || true
}