From e236ec1f422ab492af342625f58eba898a0b8980 Mon Sep 17 00:00:00 2001 From: Markus Fritsche Date: Tue, 19 May 2026 08:42:01 +0200 Subject: [PATCH] fourier-debian: fix mpv Conflicts: + daedalus ffmpeg conflict MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two deterministic CI failures from run 115 (PR #34 wiring): mpv-fourier-debian (task 566): dpkg-deb refuses `Conflicts: pkg1 | pkg2` — Debian policy doesn't allow alternatives in Conflicts. Split into separate entries. daedalus-v4l2-debian (task 563): pacman -Syu pulled stock arch ffmpeg which conflicts with the already-installed ffmpeg-v4l2-request-fourier left behind by the earlier mpv-fourier-aarch64 job (it configures [marfrit] + pre-installs the fourier ffmpeg). Drop 'ffmpeg' from the pacman line; mirror the [marfrit]+pre-install step from mpv-fourier-debian. Daedalus only needs libavcodec/libavformat headers which the fourier package supplies. --- .gitea/workflows/build.yml | 28 ++++++++++++++++++++++++++-- debian/mpv-fourier/build-deb.sh | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index c185f5778..eb7547090 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -978,13 +978,37 @@ jobs: steps: - uses: actions/checkout@v4 - - name: install build-deps + - name: install build-deps (sans ffmpeg — see [marfrit] step) run: | set -e retry() { for i in 1 2 3; do "$@" && return 0; rc=$?; echo "retry $i (exit=$rc)" >&2; sleep $((i*5)); done; return 1; } + # Do NOT pull stock 'ffmpeg' here: the arch-aarch64 runner has + # ffmpeg-v4l2-request-fourier pre-installed from the mpv-aarch64 + # job (configured via [marfrit]), and pacman -S ffmpeg would + # conflict on the libav* drop-in. Daedalus build only needs + # libavcodec/libavformat headers, which the fourier package + # already supplies. Keep cmake/ninja/pkgconf/libdrm here; the + # ffmpeg-dev equivalent comes via the next step. retry pacman -Syu --noconfirm --needed \ dpkg openssh rsync curl base-devel git cmake ninja pkgconf \ - ffmpeg libdrm + libdrm + + - name: ensure ffmpeg-v4l2-request-fourier installed (link-time ABI source) + run: | + set -e + # Idempotent: pre-install the marfrit fourier ffmpeg so cmake + # finds libavcodec / libavformat / libavutil headers + .so's. + # Mirrors mpv-fourier-debian's [marfrit] step. + curl -sLo /tmp/marfrit.gpg https://packages.reauktion.de/marfrit.gpg + pacman-key --add /tmp/marfrit.gpg + pacman-key --lsign-key 92D5E96D8F63C75E4116AA1FF5C8C4603D0D250C + rm -f /tmp/marfrit.gpg + if ! grep -q '^\[marfrit\]' /etc/pacman.conf; then + printf '\n[marfrit]\nServer = https://packages.reauktion.de/arch/$arch\nSigLevel = Required\n' >> /etc/pacman.conf + fi + pacman -Sy --noconfirm + rm -f /var/cache/pacman/pkg/ffmpeg-v4l2-request-fourier-*-aarch64.pkg.tar.* + printf 'y\ny\ny\n' | pacman -S --needed marfrit/ffmpeg-v4l2-request-fourier - name: install hertz deploy ssh key env: diff --git a/debian/mpv-fourier/build-deb.sh b/debian/mpv-fourier/build-deb.sh index c930aae01..5881b5a03 100755 --- a/debian/mpv-fourier/build-deb.sh +++ b/debian/mpv-fourier/build-deb.sh @@ -109,7 +109,7 @@ Depends: ffmpeg-v4l2-request-fourier (>= 2:8.1+rfourier), libxkbcommon0, libxext6, libxpresent1, libxrandr2, libxss1, libxv1, libx11-6, zlib1g -Conflicts: mpv, libmpv2 | libmpv1 +Conflicts: mpv, libmpv2, libmpv1 Replaces: mpv, libmpv2, libmpv1 Provides: mpv (= ${PKGVER}-${PKGREL}), libmpv.so.2 Maintainer: Markus Fritsche