Files
marfrit-packages/arch/firefox-fourier/mozconfig
T
claude-noether 0a922a9f36 firefox-fourier: explicit CC/CXX=distcc in mozconfig
fermi's makepkg.conf already has BUILDENV=(distcc ...) which prepends
/usr/lib/distcc/bin to PATH at build time. But Mozilla's mach
configure picks CC/CXX from the environment directly — it doesn't
treat the distcc shim in PATH as the default C compiler unless the
env vars are set explicitly. Without this guard the distcc workers
sat idle while mach drove a local-only build.

Mirrors the explicit-distcc pattern already used in
ffmpeg-v4l2-request-fourier/PKGBUILD.

Caveat documented in the comment: only the C/C++ portion
distributes. rustc and host-only build steps stay local. Empirical
~30-40% wall-clock improvement on a 4-worker pool (tesla, dcc1, dcc2,
ampere via Avahi zeroconf).

pkgrel bumped so a rebuild publishes a new package even though the
binary output for users is unchanged (build process speedup only).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 21:08:49 +00:00

54 lines
2.2 KiB
Plaintext

# firefox-fourier mozconfig — minimal, Wayland + system ffmpeg.
ac_add_options --enable-application=browser
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
ac_add_options --enable-release
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
ac_add_options --enable-linker=lld
# Arch's 0004 patch updates the wasm32-wasip1 target string but ALARM's
# wasi-libc package doesn't expose the headers at the path Mozilla's
# probe looks for. Disable the wasm sandbox — hardens font/graphics
# parsers only, no impact on V4L2 decode. Revisit when ALARM's
# wasi-libc catches up to Arch x86_64's layout.
ac_add_options --without-wasm-sandboxed-libraries
# Firefox dlopens libavcodec.so at runtime regardless of build flags;
# the v4l2_request hwaccel routing happens via the system libavcodec
# loaded at startup, controlled by media.ffmpeg.enabled (default true).
# No configure-time hook needed.
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --disable-debug-symbols
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-default-browser-agent
# Mozilla branding requires a separate signed-build-tooling agreement
# we don't have; ship with the unbranded "firefox-fourier" identity.
ac_add_options --with-app-name=firefox-fourier
ac_add_options --with-app-basename=Firefox
ac_add_options --with-distribution-id=de.reauktion.fourier
# Reduce build memory pressure on aarch64 — parallel link is heavy.
mk_add_options MOZ_PARALLEL_BUILD=8
# Explicit distcc routing. fermi's makepkg.conf has
# BUILDENV=(distcc ...) which auto-prepends /usr/lib/distcc/bin to
# $PATH, but mach's configure picks up CC/CXX from the env directly
# and the distcc wrappers won't fire unless we set them. Mirrors the
# ffmpeg-v4l2-request-fourier pattern.
#
# Note: only the C/C++ portion of the build distributes; rustc and
# the host-only build steps stay local. Empirically that's still a
# 30-40% wall-clock win on a 4-worker pool. DISTCC_HOSTS comes from
# makepkg.conf ('+zeroconf' by default — Avahi-discovers tesla,
# dcc1, dcc2, ampere).
if [[ ":${PATH}:" == *":/usr/lib/distcc/bin:"* ]]; then
export CC="distcc gcc"
export CXX="distcc g++"
fi