tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1569Shell 203Rust 109Markdown 993728 Definiciones

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.

c104a64462834772aebe69bf743416d64e2a90d4 · por Sergio · (hace 1 mes) · padre caeee204a · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +11 −0

diff --git a/recipes/firefox.toml b/recipes/firefox.toml
index 5431e703..216af9f3 100644
--- a/recipes/firefox.toml
+++ b/recipes/firefox.toml
@@ -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