firefox: RUST_TARGET — lo exige el parche de Alpine, no Firefox
Cuarto fallo de configure: KeyError: RUST_TARGET. Se lee como un bug de Firefox y es en realidad el CONTRATO del parche que trajimos: fix-rust-target.patch reemplaza la autodetección del triple de Rust por un os.environ["RUST_TARGET"] pelado, y el APKBUILD de Alpine lo exporta como $CTARGET. Traer el parche sin la variable es traer media cosa. El valor NO se adivinó: sale de ls .dev-fs/alpine/usr/lib/rustlib/ en el lab, que da x86_64-alpine-linux-musl. El rustc del sandbox es el de Alpine, no el del host — el del host es x86_64-unknown-linux-gnu y usarlo habría producido un cross-compile silencioso, que es peor que un error. Va en las TRES fases: mach lo vuelve a leer al compilar e instalar. Van cuatro muros de configure y cada uno destapó al siguiente: linker → ar → libstdc++ estática (que forzó compiler=gcc) → RUST_TARGET.
This commit is contained in:
@@ -127,6 +127,15 @@ configure = '''
|
||||
export MOZBUILD_STATE_PATH="$PWD/.mozbuild"
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
export MOZ_NOSPAM=1
|
||||
# ── RUST_TARGET: lo EXIGE el parche de Alpine, no Firefox ─────────────────────────────────────
|
||||
# `fix-rust-target.patch` REEMPLAZA la autodetección del triple de Rust por un
|
||||
# `os.environ['RUST_TARGET']` pelado. Sin la variable, configure muere con
|
||||
# `KeyError: 'RUST_TARGET'` — que se lee como un bug de Firefox y es en realidad el contrato del
|
||||
# parche: el APKBUILD de Alpine lo exporta como `$CTARGET` y acá hay que hacer lo propio.
|
||||
# El valor NO se adivina: sale de `ls .dev-fs/alpine/usr/lib/rustlib/` en el lab, que es
|
||||
# `x86_64-alpine-linux-musl` — el rustc del sandbox es el de Alpine, no el del host (el del host es
|
||||
# `x86_64-unknown-linux-gnu` y usarlo produciría un cross-compile silencioso).
|
||||
export RUST_TARGET=x86_64-alpine-linux-musl
|
||||
cat > .mozconfig <<'MOZ'
|
||||
ac_add_options --prefix=/usr
|
||||
ac_add_options --enable-application=browser
|
||||
@@ -161,6 +170,7 @@ MOZ
|
||||
# del host (medido en el LXC: 186 GiB en vez de 16), así que en un contenedor esta cuenta se degrada
|
||||
# a `nproc`. Es un tope, no una garantía.
|
||||
compile = '''
|
||||
export RUST_TARGET=x86_64-alpine-linux-musl # ver la nota en la fase configure
|
||||
export MOZBUILD_STATE_PATH="$PWD/.mozbuild"
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
export MOZ_NOSPAM=1
|
||||
@@ -171,6 +181,7 @@ echo "mach build -j$j (MemTotal ${gib} GiB, nproc $n)"
|
||||
./mach build -j"$j"
|
||||
'''
|
||||
install = '''
|
||||
export RUST_TARGET=x86_64-alpine-linux-musl # ver la nota en la fase configure
|
||||
export MOZBUILD_STATE_PATH="$PWD/.mozbuild"
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
DESTDIR=/out ./mach install
|
||||
|
||||
Reference in New Issue
Block a user