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
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
This commit was merged in pull request #30.
This commit is contained in:
@@ -18,9 +18,9 @@ _module=daedalus_v4l2
|
||||
|
||||
# Same pin as arch/daedalus-v4l2 — keep kernel module + daemon
|
||||
# bit-versioned together so the chardev wire protocol stays in sync.
|
||||
_commit=f04d7000f858fe51d867aba14a529d3aef4fbd54
|
||||
_commit=f55b2cdab8a8c0bc04e8c1bb1d0b6ca85e7d96d2
|
||||
|
||||
pkgver=0.1.0.r15.f04d700
|
||||
pkgver=0.1.0.r16.f55b2cd
|
||||
pkgrel=1
|
||||
pkgdesc="V4L2 stateless decoder shim kernel module (DKMS) — Pi 5 / CM5"
|
||||
arch=('any')
|
||||
@@ -28,10 +28,13 @@ 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")
|
||||
"dkms.conf"
|
||||
"${pkgname}.install")
|
||||
sha256sums=('SKIP'
|
||||
'SKIP'
|
||||
'SKIP')
|
||||
|
||||
pkgver() {
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
# post-install / post-upgrade hook for daedalus-v4l2-dkms.
|
||||
#
|
||||
# pacman + the dkms-helpers alpm hook will already attempt
|
||||
# `dkms install` on its own. This script's job is to emit a
|
||||
# loud, actionable warning when the module didn't actually
|
||||
# build for the running kernel — most commonly because the
|
||||
# kernel headers package isn't installed yet.
|
||||
#
|
||||
# Without this you get a silent failure: the package looks
|
||||
# installed but `modprobe daedalus_v4l2` returns ENOENT.
|
||||
|
||||
_check_dkms_built() {
|
||||
local name=daedalus_v4l2
|
||||
local ver=$1
|
||||
local kernelver=$(uname -r)
|
||||
|
||||
if ! command -v dkms >/dev/null 2>&1; then
|
||||
return 1 # the hard-dep should have caught this
|
||||
fi
|
||||
|
||||
local status
|
||||
status=$(dkms status -m "$name" -v "$ver" -k "$kernelver" 2>/dev/null || true)
|
||||
if printf '%s\n' "$status" | grep -q -E 'installed|loaded'; then
|
||||
return 0 # all good
|
||||
fi
|
||||
|
||||
cat >&2 <<EOF
|
||||
==> daedalus-v4l2-dkms: DKMS build did NOT land for kernel $kernelver.
|
||||
==> dkms status -m $name -v $ver -k $kernelver:
|
||||
==> $(printf '%s' "$status" | head -1)
|
||||
==>
|
||||
==> Most likely cause: kernel headers package is missing.
|
||||
==> Arch / ALARM: pacman -S linux-rpi-headers (or linux-rpi5-headers)
|
||||
==> Raspberry Pi OS: apt install linux-headers-rpi-2712
|
||||
==>
|
||||
==> After installing headers, finish the install with:
|
||||
==> sudo dkms autoinstall $name/$ver
|
||||
==> sudo modprobe daedalus_v4l2
|
||||
==>
|
||||
==> Until then daedalus_v4l2 will NOT be loadable and the
|
||||
==> userspace daedalus-v4l2 daemon will have nothing to talk to.
|
||||
EOF
|
||||
return 1
|
||||
}
|
||||
|
||||
post_install() {
|
||||
_check_dkms_built "$1" || true
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
# New version pinned by the bump may have built fine, but if
|
||||
# a kernel-headers package was uninstalled / pruned since the
|
||||
# last upgrade we'd silently regress. Re-check.
|
||||
_check_dkms_built "$1" || true
|
||||
}
|
||||
|
||||
pre_remove() {
|
||||
# The dkms alpm hook handles dkms remove on its own; nothing
|
||||
# we need to add here.
|
||||
:
|
||||
}
|
||||
@@ -16,16 +16,16 @@
|
||||
pkgname=daedalus-v4l2
|
||||
_upstreampkg=daedalus-v4l2
|
||||
|
||||
# Pin the daedalus-v4l2 tip. f04d700 = "Phase 8.13: byte-exact end-to-
|
||||
# Pin the daedalus-v4l2 tip. f55b2cd = "Phase 8.13: byte-exact end-to-
|
||||
# end via libva (consumer target hit)" — first commit where the full
|
||||
# ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands a
|
||||
# pixel-correct decoded frame back in ffmpeg. Promote to a later pin
|
||||
# only after a future phase closes cleanly.
|
||||
_commit=f04d7000f858fe51d867aba14a529d3aef4fbd54
|
||||
_commit=f55b2cdab8a8c0bc04e8c1bb1d0b6ca85e7d96d2
|
||||
|
||||
# 0.1.0 (pre-1.0) + commit count + short sha. Bump the .Y on each
|
||||
# Phase 8.x close. pkgver() recomputes at build time.
|
||||
pkgver=0.1.0.r15.f04d700
|
||||
pkgver=0.1.0.r16.f55b2cd
|
||||
pkgrel=1
|
||||
pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)"
|
||||
arch=('aarch64')
|
||||
|
||||
+47
-4
@@ -14,8 +14,8 @@
|
||||
# Sibling userspace package: ../daedalus-v4l2/build-deb.sh
|
||||
set -euo pipefail
|
||||
|
||||
UPSTREAM_COMMIT=f04d7000f858fe51d867aba14a529d3aef4fbd54
|
||||
PKGVER=0.1.0+r15+gf04d700
|
||||
UPSTREAM_COMMIT=f55b2cdab8a8c0bc04e8c1bb1d0b6ca85e7d96d2
|
||||
PKGVER=0.1.0+r16+gf55b2cd
|
||||
PKGREL=1
|
||||
MODULE_NAME=daedalus_v4l2
|
||||
|
||||
@@ -78,10 +78,53 @@ set -e
|
||||
|
||||
NAME=${MODULE_NAME}
|
||||
VERSION=${PKGVER}
|
||||
KERNELVER=\$(uname -r)
|
||||
|
||||
# Yellow + bold ANSI for the warning so it stands out in apt's
|
||||
# stream of "Setting up" lines. Disable colour on non-TTY.
|
||||
if [ -t 1 ]; then
|
||||
Y=\$(printf '\\033[1;33m'); R=\$(printf '\\033[0m')
|
||||
else
|
||||
Y=''; R=''
|
||||
fi
|
||||
|
||||
warn() {
|
||||
printf '%s==> daedalus-v4l2-dkms: %s%s\\n' "\$Y" "\$1" "\$R" >&2
|
||||
}
|
||||
|
||||
if [ "\$1" = "configure" ]; then
|
||||
if ! command -v dkms >/dev/null 2>&1; then
|
||||
warn "dkms not installed; module \$NAME/\$VERSION not registered."
|
||||
warn "Install 'dkms' then run: dkms add \$NAME/\$VERSION && dkms autoinstall"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "\$1" = "configure" ] && command -v dkms >/dev/null 2>&1; then
|
||||
dkms add "\$NAME/\$VERSION" 2>/dev/null || true
|
||||
dkms autoinstall "\$NAME/\$VERSION" || true
|
||||
|
||||
# Don't let autoinstall failure mask the actual problem behind '|| true'.
|
||||
# Run it, capture the result, then verify post-condition.
|
||||
autoinstall_rc=0
|
||||
dkms autoinstall "\$NAME/\$VERSION" || autoinstall_rc=\$?
|
||||
|
||||
# Verify the module actually built + installed for the running kernel.
|
||||
status=\$(dkms status -m "\$NAME" -v "\$VERSION" -k "\$KERNELVER" 2>/dev/null || true)
|
||||
if ! printf '%s\\n' "\$status" | grep -q -E 'installed|loaded'; then
|
||||
warn ""
|
||||
warn "DKMS build did NOT land for kernel \$KERNELVER."
|
||||
warn " dkms status -m \$NAME -v \$VERSION -k \$KERNELVER:"
|
||||
warn " \$(printf '%s' "\$status" | head -1)"
|
||||
warn ""
|
||||
warn "Most likely cause: kernel headers package is missing."
|
||||
warn " Raspberry Pi OS / Pi 5: apt install linux-headers-rpi-2712"
|
||||
warn " Debian generic: apt install linux-headers-\$KERNELVER"
|
||||
warn ""
|
||||
warn "After installing headers, finish the install with:"
|
||||
warn " sudo dkms autoinstall \$NAME/\$VERSION"
|
||||
warn " sudo modprobe daedalus_v4l2"
|
||||
warn ""
|
||||
warn "Until then daedalus_v4l2 will NOT be loadable and the"
|
||||
warn "userspace daedalus-v4l2 daemon will have nothing to talk to."
|
||||
fi
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
daedalus-v4l2-dkms (0.1.0+r15+gf04d700-1) bookworm trixie; urgency=medium
|
||||
daedalus-v4l2-dkms (0.1.0+r16+gf55b2cd-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Initial Debian DKMS packaging for the daedalus_v4l2 kernel module.
|
||||
* Pinned to f04d700 (Phase 8.13 close): kernel-side framework
|
||||
* Pinned to f55b2cd (Phase 8.13 close): kernel-side framework
|
||||
integration (V4L2 m2m, dmabuf-export, media controller, request
|
||||
API, NV12 single-plane + NV12M + P010 CAPTURE) that closes the
|
||||
libva→/dev/video0→daemon round-trip with byte-exact pixels.
|
||||
|
||||
Vendored
+3
-3
@@ -11,12 +11,12 @@
|
||||
# Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2
|
||||
set -euo pipefail
|
||||
|
||||
# Same pin as the Arch PKGBUILD. f04d700 = "Phase 8.13: byte-exact
|
||||
# Same pin as the Arch PKGBUILD. f55b2cd = "Phase 8.13: byte-exact
|
||||
# end-to-end via libva (consumer target hit)" — first commit where the
|
||||
# full ffmpeg -hwaccel vaapi → libva → /dev/video0 → daemon path lands
|
||||
# a pixel-correct decoded frame back in ffmpeg.
|
||||
UPSTREAM_COMMIT=f04d7000f858fe51d867aba14a529d3aef4fbd54
|
||||
PKGVER=0.1.0+r15+gf04d700
|
||||
UPSTREAM_COMMIT=f55b2cdab8a8c0bc04e8c1bb1d0b6ca85e7d96d2
|
||||
PKGVER=0.1.0+r16+gf55b2cd
|
||||
PKGREL=1
|
||||
|
||||
HERE=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
daedalus-v4l2 (0.1.0+r15+gf04d700-1) bookworm trixie; urgency=medium
|
||||
daedalus-v4l2 (0.1.0+r16+gf55b2cd-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Initial Debian packaging for the daedalus-v4l2 userspace daemon.
|
||||
* Pinned to f04d700 (Phase 8.13 close): first commit where the full
|
||||
* Pinned to f55b2cd (Phase 8.13 close): first commit where the full
|
||||
ffmpeg -hwaccel vaapi → libva-v4l2-request-fourier → /dev/video0
|
||||
→ daemon path lands a pixel-correct decoded NV12 frame back in
|
||||
ffmpeg.
|
||||
|
||||
Reference in New Issue
Block a user