forked from marfrit/marfrit-packages
daedalus-v4l2: 3bc0da1 -> 6e6dfa1 — dlopen Kwiboo soname 62 (#16)
This commit is contained in:
@@ -1159,13 +1159,18 @@ jobs:
|
||||
retry() { for i in 1 2 3; do "$@" && return 0; rc=$?; echo "retry $i (exit=$rc)" >&2; sleep $((i*5)); done; return 1; }
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
retry apt-get update -qq
|
||||
# libav*-dev provide the headers daedalus daemon dlopens at
|
||||
# runtime — Debian's stock packages match the trixie ABI the
|
||||
# daemon will encounter on Pi 5 hosts (both ship libavcodec
|
||||
# 61.x). The fourier ffmpeg fork isn't needed here; the
|
||||
# daemon never link-binds against libav (Option γ — dlopen
|
||||
# at runtime), so any header set with the right struct
|
||||
# definitions works.
|
||||
# FFmpeg headers + sonames the daemon dlopens. As of
|
||||
# daedalus-v4l2 PR #16 (commit 514da29), the daemon targets
|
||||
# the Kwiboo fork's libavcodec.so.62 / libavformat.so.62 /
|
||||
# libavutil.so.60 at /opt/fourier — so the build needs
|
||||
# /opt/fourier/include and /opt/fourier/lib/pkgconfig.
|
||||
# ffmpeg-v4l2-request-fourier provides both (plus the
|
||||
# runtime libs the .deb will dlopen on the target host;
|
||||
# we install it as a build-dep here and the dpkg-shlibdeps
|
||||
# step pulls it into the daemon .deb's Depends automatically).
|
||||
# Debian-stock libav*-dev removed — would conflict on
|
||||
# /usr/include/libavcodec/avcodec.h vs /opt/fourier's copy.
|
||||
#
|
||||
# libvulkan-dev + glslang-tools: needed by the in-build
|
||||
# daedalus-fourier fetch (build-deb.sh fetches the sibling
|
||||
# library, cmake-builds it into a temp prefix, then the
|
||||
@@ -1176,7 +1181,7 @@ jobs:
|
||||
# reauktion/daedalus-v4l2 PR #13.
|
||||
retry apt-get install -y --no-install-recommends \
|
||||
build-essential cmake ninja-build pkg-config git \
|
||||
libavcodec-dev libavformat-dev libavutil-dev libdrm-dev \
|
||||
ffmpeg-v4l2-request-fourier libdrm-dev \
|
||||
libvulkan-dev glslang-tools \
|
||||
linux-libc-dev \
|
||||
curl ca-certificates openssh-client rsync dpkg-dev
|
||||
|
||||
+11
-10
@@ -16,18 +16,19 @@
|
||||
pkgname=daedalus-v4l2
|
||||
_upstreampkg=daedalus-v4l2
|
||||
|
||||
# 3bc0da1 = picks up daedalus-v4l2 PR #15 — per-frame `decode_us=N`
|
||||
# in the `decoder: OK` log line + a periodic `decoder stats` summary
|
||||
# every 60 frames. Pure observability — baseline for the
|
||||
# substitution work in daedalus-v4l2#11 step 2. Daemon still needs
|
||||
# daedalus-fourier at build time (Arch packaging for that is a
|
||||
# follow-up; Debian side fetches inline via build-deb.sh).
|
||||
_commit=3bc0da168cc0aa2271bfb6bc2864b49c48291185
|
||||
# 6e6dfa1 = picks up daedalus-v4l2 PR #16 — daemon now dlopens
|
||||
# the Kwiboo fourier fork's libavcodec.so.62 / libavformat.so.62 /
|
||||
# libavutil.so.60 at /opt/fourier instead of Debian-stock soname
|
||||
# 61/61/59. First step on the daedalus-fourier substitution arc
|
||||
# (daedalus-v4l2#11). Daemon still needs daedalus-fourier at
|
||||
# build time (Arch packaging for that is a follow-up; Debian side
|
||||
# fetches inline via build-deb.sh).
|
||||
_commit=6e6dfa144da7bc7fa8be50c8da91d7d1c6132a2c
|
||||
|
||||
# 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.r39.3bc0da1
|
||||
pkgrel=1 # reset for new upstream pin (3bc0da1 — decode_us + stats)
|
||||
pkgver=0.1.0.r41.6e6dfa1
|
||||
pkgrel=1 # reset for new upstream pin (6e6dfa1 — soname 62 via /opt/fourier)
|
||||
pkgdesc="Userspace daemon for the daedalus-v4l2 V4L2 stateless decoder shim (VP9/AV1/H.264 on Pi 5 / CM5)"
|
||||
arch=('aarch64')
|
||||
url="https://git.reauktion.de/reauktion/daedalus-v4l2"
|
||||
@@ -35,7 +36,7 @@ license=('BSD-2-Clause' 'GPL-2.0-or-later')
|
||||
# Daemon dlopens libavformat.so.61 / libavcodec.so.61 / libavutil.so.59
|
||||
# at runtime (Option γ — see daemon/src/ffmpeg_loader.h). ffmpeg
|
||||
# provides those; we don't link them.
|
||||
depends=('ffmpeg' 'libdrm')
|
||||
depends=('ffmpeg-v4l2-request-fourier' 'libdrm')
|
||||
# Headers from libav*-dev needed at compile time for type-safe function
|
||||
# pointer signatures; pkg-config locates them.
|
||||
makedepends=('cmake' 'ninja' 'pkgconf' 'git' 'ffmpeg')
|
||||
|
||||
Vendored
+12
-9
@@ -11,14 +11,17 @@
|
||||
# Upstream repo: https://git.reauktion.de/reauktion/daedalus-v4l2
|
||||
set -euo pipefail
|
||||
|
||||
# 3bc0da1 = picks up daedalus-v4l2 PR #15 — per-frame `decode_us=N`
|
||||
# in the `decoder: OK` log line + a periodic `decoder stats` summary
|
||||
# every 60 frames (codec, fps, avg decode_us, MBs/s, B/MB). Pure
|
||||
# observability — no behaviour change. Baseline metrics for the
|
||||
# substitution work in daedalus-v4l2#11 step 2.
|
||||
UPSTREAM_COMMIT=3bc0da168cc0aa2271bfb6bc2864b49c48291185
|
||||
PKGVER=0.1.0+r39+g3bc0da1
|
||||
PKGREL=1 # reset for new upstream pin (3bc0da1 — decode_us + stats)
|
||||
# 6e6dfa1 = picks up daedalus-v4l2 PR #16 — daemon now dlopens
|
||||
# the Kwiboo fourier fork's libavcodec.so.62 / libavformat.so.62 /
|
||||
# libavutil.so.60 at /opt/fourier instead of Debian-stock soname
|
||||
# 61/61/59. First step on the daedalus-fourier substitution arc
|
||||
# (daedalus-v4l2#11): routes the daemon through the libavcodec
|
||||
# source tree we own in marfrit-packages. Headers + .pc files
|
||||
# come from ffmpeg-v4l2-request-fourier (installed by the CI
|
||||
# workflow before this script runs; see PKG_CONFIG_PATH below).
|
||||
UPSTREAM_COMMIT=6e6dfa144da7bc7fa8be50c8da91d7d1c6132a2c
|
||||
PKGVER=0.1.0+r41+g6e6dfa1
|
||||
PKGREL=1 # reset for new upstream pin (6e6dfa1 — soname 62 via /opt/fourier)
|
||||
|
||||
# daedalus-fourier pin. d87239d = marfrit/daedalus-fourier PR #1 merge
|
||||
# (install rules + pkg-config, enables this consumer to find_package
|
||||
@@ -64,7 +67,7 @@ SRCDIR=daedalus-v4l2
|
||||
# Build daemon (CMake) — point pkg-config at the daedalus-fourier
|
||||
# temp prefix so pkg_check_modules(DAEDALUS_FOURIER …) resolves to it.
|
||||
cd "$SRCDIR/daemon"
|
||||
PKG_CONFIG_PATH="$FOURIER_PREFIX/lib/pkgconfig" \
|
||||
PKG_CONFIG_PATH="$FOURIER_PREFIX/lib/pkgconfig:/opt/fourier/lib/pkgconfig" \
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr
|
||||
|
||||
+19
@@ -1,3 +1,22 @@
|
||||
daedalus-v4l2 (0.1.0+r41+g6e6dfa1-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to 6e6dfa1 — daedalus-v4l2 PR #16. Daemon dlopens Kwiboo
|
||||
fourier fork's libavcodec.so.62 / libavformat.so.62 /
|
||||
libavutil.so.60 at /opt/fourier instead of Debian-stock
|
||||
soname 61/61/59. First step on the daedalus-fourier
|
||||
substitution arc (daedalus-v4l2#11): the next PR series
|
||||
layers daedalus_recipe_dispatch_h264_* substitution patches
|
||||
into ffmpeg-v4l2-request-fourier's H264DSPContext NEON init,
|
||||
reaching the daemon's production decode path.
|
||||
* Build: PKG_CONFIG_PATH now includes /opt/fourier/lib/pkgconfig
|
||||
so daemon's pkg_check_modules picks up the Kwiboo .pc files.
|
||||
* CI workflow build-deps: libavcodec-dev / libavformat-dev /
|
||||
libavutil-dev (Debian stock 7.1.3) → ffmpeg-v4l2-request-fourier
|
||||
(provides /opt/fourier/include + .pc files).
|
||||
* Wire protocol unchanged. No daedalus-v4l2-dkms bump.
|
||||
|
||||
-- Markus Fritsche <mfritsche@reauktion.de> Thu, 21 May 2026 21:30:00 +0000
|
||||
|
||||
daedalus-v4l2 (0.1.0+r39+g3bc0da1-1) bookworm trixie; urgency=medium
|
||||
|
||||
* Bump to 3bc0da1 — picks up daedalus-v4l2 PR #15. Per-frame
|
||||
|
||||
Reference in New Issue
Block a user