From d6ba22983a40aebfacee7411ab0c97e12f278712 Mon Sep 17 00:00:00 2001 From: "Claude (noether)" Date: Fri, 8 May 2026 20:49:53 +0000 Subject: [PATCH] =?UTF-8?q?ffmpeg-v4l2-request:=20pkgrel=3D4=20=E2=80=94?= =?UTF-8?q?=20use=20distcc=20shim=20when=20BUILDENV=3Ddistcc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FFmpeg's configure script resolves the compiler via `which gcc` and bakes the absolute path /usr/bin/gcc into the generated makefiles. With BUILDENV=(distcc ...) makepkg prepends /usr/lib/distcc/bin to PATH, but configure has already resolved past the shim — so every translation unit compiles locally despite the worker pool being available. Pass --cc='distcc gcc' / --cxx='distcc g++' to configure when the distcc shim path is present. Falls back to plain gcc/g++ otherwise so a !distcc build is unaffected. Validated locally: distcc-avahi 3.4-19 on fermi exposes /usr/lib/distcc/bin/gcc -> ../../../bin/distcc, and the four-worker pool (tesla, dcc1, dcc2, boltzmann) is reachable via DISTCC_HOSTS=+zeroconf. Earlier ffmpeg builds on run 76 logged zero connections on any worker despite distcc-avahi being correctly installed — this is the missing piece. --- arch/ffmpeg-v4l2-request-git/PKGBUILD | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/arch/ffmpeg-v4l2-request-git/PKGBUILD b/arch/ffmpeg-v4l2-request-git/PKGBUILD index 7c6dff8aa..0c6a9772a 100644 --- a/arch/ffmpeg-v4l2-request-git/PKGBUILD +++ b/arch/ffmpeg-v4l2-request-git/PKGBUILD @@ -24,7 +24,7 @@ _srcname=FFmpeg _version='8.1' _commit='b57fbbe50c9b2656fad86a1a7eeabfd2b2a50935' # v4l2-request-n8.1 tip 2026-04-24 pkgver=8.1.r123329.b57fbbe -pkgrel=3 +pkgrel=4 epoch=2 pkgdesc='FFmpeg with V4L2 Request API hwaccel (Rockchip / Allwinner stateless decode)' arch=('aarch64') @@ -96,8 +96,20 @@ prepare() { build() { cd "${_srcname}" + # FFmpeg's configure resolves the compiler via `which` and bakes the + # absolute path into generated makefiles, bypassing the makepkg + # /usr/lib/distcc/bin shim. Pass it explicitly so `BUILDENV=(distcc ...)` + # actually distributes; otherwise everything compiles locally. + local _ffmpeg_cc=gcc _ffmpeg_cxx=g++ + if [[ ":$PATH:" == *":/usr/lib/distcc/bin:"* ]]; then + _ffmpeg_cc='distcc gcc' + _ffmpeg_cxx='distcc g++' + fi + ./configure \ --prefix=/usr \ + --cc="${_ffmpeg_cc}" \ + --cxx="${_ffmpeg_cxx}" \ --disable-debug \ --disable-static \ --disable-doc \