0a922a9f36
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>
54 lines
2.2 KiB
Plaintext
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
|
|
|