From 79ee308a7ae6a59662583515275aa2886e09b1bd Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Sat, 25 Jul 2026 18:54:01 +0200 Subject: [PATCH] build(rpm): declare all seven FFmpeg pkg-config modules, not three `ffmpeg-next` is pulled with default features, so `ffmpeg-sys-next`'s build script pkg-config-probes codec/device/filter/format/util/resampling/scaling and panics on the first one missing. The spec named three. RPM Fusion's `ffmpeg-devel` ships all seven in one package, which hid it. On a host where those three instead resolve to Fedora's split `libav*-free-devel` packages, `dnf builddep` installs exactly three and the build dies in a build script: The system library `libavfilter` required by crate `ffmpeg-sys-next` was not found. --- packaging/rpm/punktfunk.spec | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packaging/rpm/punktfunk.spec b/packaging/rpm/punktfunk.spec index 0366572c..11a8a9f9 100644 --- a/packaging/rpm/punktfunk.spec +++ b/packaging/rpm/punktfunk.spec @@ -83,9 +83,19 @@ BuildRequires: pkgconfig(opus) # FFmpeg dev headers with NVENC — from RPM Fusion (ffmpeg-devel), NOT ffmpeg-free. # Version-agnostic: ffmpeg-sys-next auto-detects the installed FFmpeg, so this builds # against FFmpeg 7.x (libavcodec 61, e.g. Fedora 43 / Bazzite) or 8.x (libavcodec 62). +# ALL SEVEN modules, not just the three we call directly: `ffmpeg-next` is pulled with default +# features, so its `-sys` build script pkg-config-probes codec/device/filter/format/util/ +# resampling/scaling and panics on the first one missing. RPM Fusion's ffmpeg-devel ships the lot +# in one package, which hid the gap — on a box where these resolve to Fedora's split +# libav*-free-devel packages instead, dnf installed only the three named here and the build died +# in ffmpeg-sys-next's build.rs on `libavfilter`. BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavdevice) +BuildRequires: pkgconfig(libavfilter) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libswresample) +BuildRequires: pkgconfig(libswscale) # Zero-copy GPU path: src/zerocopy/ links libGL + libgbm (mesa) via hand-rolled FFI. BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(gbm)