# Maintainer: Markus Fritsche # # daedalus-v4l2-dkms — DKMS package for the daedalus_v4l2 out-of-tree # kernel module (V4L2 stateless decoder shim for Pi 5 / CM5). # # Pair to daedalus-v4l2 (userspace daemon). When loaded, the module # registers /dev/videoNN (V4L2 m2m) + /dev/mediaNN (media controller) + # /dev/daedalus-v4l2 (chardev to the userspace daemon). Userspace # clients drive the V4L2 m2m + request API path; the daemon does the # actual FFmpeg-backed decode on /dev/daedalus-v4l2. # # Project: https://git.reauktion.de/reauktion/daedalus-v4l2 # Sibling userspace package: daedalus-v4l2 # Sibling consumer: libva-v4l2-request-fourier pkgname=daedalus-v4l2-dkms _module=daedalus_v4l2 # Same pin as arch/daedalus-v4l2 — keep kernel module + daemon # bit-versioned together so the chardev wire protocol stays in sync. # 5d8b436 reverts PRs #7 + #8 (parking design that broke libva's # 1:1 contract — see daedalus-v4l2#9 + #10). Tree is # content-equivalent to f0d4186 plus PR #4 (cosmetic menu ctrls). # PROTO_VERSION drops 1 → 0; lock-step install with # daedalus-v4l2 0.1.0.r33.5d8b436 REQUIRED. _commit=872eec505eb91b561892d02a0526749348ddc121 pkgver=0.1.0.r45.872eec5 pkgrel=1 # reset for new upstream pin (872eec5 — PROTO_MAX_PAYLOAD 64 KiB -> 1 MiB, closes #19); lock-step with daedalus-v4l2 0.1.0.r45.872eec5 REQUIRED pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5" arch=('any') url="https://git.reauktion.de/reauktion/daedalus-v4l2" license=('GPL-2.0-or-later') depends=('dkms') makedepends=('git') install="${pkgname}.install" source=("git+https://git.reauktion.de/reauktion/daedalus-v4l2.git#commit=${_commit}" "dkms.conf" "${pkgname}.install") sha256sums=('SKIP' 'SKIP' 'SKIP') pkgver() { cd "${srcdir}/daedalus-v4l2" printf '0.1.0.r%s.%s' \ "$(git rev-list --count HEAD)" \ "$(git rev-parse --short=7 HEAD)" } package() { local _src="${pkgdir}/usr/src/${_module}-${pkgver}" install -dm755 "${_src}" # Install the kernel/ subdir and embed the shared proto header in # the same tree. The in-tree Makefile uses # `ccflags-y += -I$(src)/../include` (assuming the parent # daedalus-v4l2 layout); for DKMS we flatten by copying the header # into kernel/include/ and patching the Makefile to point there. cp -r "${srcdir}/daedalus-v4l2/kernel/." "${_src}/" install -Dm644 "${srcdir}/daedalus-v4l2/include/daedalus_v4l2_proto.h" \ "${_src}/include/daedalus_v4l2_proto.h" sed -i 's|-I\$(src)/\.\./include|-I$(src)/include|' "${_src}/Makefile" # dkms.conf at the root of the source tree (DKMS convention). # Substitute #MODULE_VERSION# placeholder with the actual pkgver # so dkms install/uninstall match what's on disk. install -Dm644 "${srcdir}/dkms.conf" "${_src}/dkms.conf" sed -i "s/#MODULE_VERSION#/${pkgver}/" "${_src}/dkms.conf" # License install -Dm644 "${srcdir}/daedalus-v4l2/kernel/daedalus_v4l2_main.c" \ "${pkgdir}/usr/share/licenses/${pkgname}/SPDX-HEADER" }