From 08c48473a6ff4908466d1fc546a8b245a645259f Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Thu, 24 Sep 2026 18:56:55 +0800 Subject: [PATCH] tooling: fix the Fedora package names and enable RPM Fusion - x264/x265 are patent-encumbered and not in Fedora's own repositories: install the RPM Fusion free release package first (over HTTPS from the official mirror) so dnf can resolve them; - Fedora 43 renamed the bindings: libdav1d-devel (not dav1d-devel) and openjpeg-devel (not openjpeg2-devel); - degrade like the apt branch when something is unavailable: --skip-unavailable instead of failing the whole transaction. Verified end-to-end in a fedora:43 container: the full list installs (260 packages; x264 0.165 and x265 4.1 come from RPM Fusion). Arch's package names were re-checked against the Arch package index (all present). --- tooling/install-deps.sh | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/tooling/install-deps.sh b/tooling/install-deps.sh index c53a2e054..af36bd48c 100755 --- a/tooling/install-deps.sh +++ b/tooling/install-deps.sh @@ -118,14 +118,30 @@ case "$(uname -s)" in run "${SUDO[@]}" git clone --depth 1 https://github.com/FFmpeg/nv-codec-headers.git /tmp/nv-codec-headers run "${SUDO[@]}" make -C /tmp/nv-codec-headers install PREFIX=/usr elif command -v dnf >/dev/null; then - run "${SUDO[@]}" dnf install -y --setopt=install_weak_deps=False \ - --setopt=max_parallel_downloads=16 \ - gcc gcc-c++ clang clang-devel cmake python3 pkgconf-pkg-config nasm \ - x264-devel x265-devel dav1d-devel libvpx-devel \ - openh264-devel openjpeg2-devel libtheora-devel libwebp-devel \ - lame-devel opus-devel libvorbis-devel speex-devel \ - snappy-devel libass-devel freetype-devel fribidi-devel \ + # x264/x265 are patent-encumbered: Fedora's own repositories + # do not carry them, RPM Fusion does. Install its release + # package first (fetched over HTTPS from the official mirror; + # dnf skips the OpenPGP check for the commandline package and + # imports the repository keys for everything it pulls after). + if ! rpm -q rpmfusion-free-release >/dev/null 2>&1; then + run "${SUDO[@]}" dnf install -y --setopt=install_weak_deps=False \ + "https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm" + fi + DNFPKGS=( + gcc gcc-c++ clang clang-devel cmake python3 pkgconf-pkg-config nasm + x264-devel x265-devel libdav1d-devel libvpx-devel + openh264-devel openjpeg-devel libtheora-devel libwebp-devel + lame-devel opus-devel libvorbis-devel speex-devel + snappy-devel libass-devel freetype-devel fribidi-devel fontconfig-devel gnutls-devel libva-devel libdrm-devel + ) + if ! run "${SUDO[@]}" dnf install -y --setopt=install_weak_deps=False \ + --setopt=max_parallel_downloads=16 "${DNFPKGS[@]}"; then + echo "Some packages are unavailable here; installing the rest" >&2 + run "${SUDO[@]}" dnf install -y --skip-unavailable \ + --setopt=install_weak_deps=False --setopt=max_parallel_downloads=16 \ + "${DNFPKGS[@]}" + fi elif command -v pacman >/dev/null; then run "${SUDO[@]}" pacman -S --needed --noconfirm base-devel clang cmake python pkgconf nasm \ x264 x265 dav1d libvpx openh264 openjpeg2 libtheora libwebp \