diff --git a/recipes/firefox.toml b/recipes/firefox.toml index 216af9f3..04066bcb 100644 --- a/recipes/firefox.toml +++ b/recipes/firefox.toml @@ -136,6 +136,21 @@ export MOZ_NOSPAM=1 # `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 + +# ── LOS PARCHES ROMPEN EL CHECKSUM DE LOS CRATES VENDORIZADOS ───────────────────────────────── +# `error: the listed checksum of third_party/rust/zeitstempel/src/unix.rs has changed`. Los crates +# de Rust vienen VENDORIZADOS en el tarball y cargo verifica el sha de CADA fichero contra +# `.cargo-checksum.json`; en cuanto un parche de musl toca uno, el build muere. Cargo no ofrece +# ninguna forma de recalcularlo, así que la salida —la misma del APKBUILD de Alpine— es vaciar la +# lista de ficheros del manifiesto, dejando el checksum del paquete. +# +# Son los CINCO crates que tocan los parches, no uno: el error los va destapando de a uno y buscarlos +# por prueba y error costaría cinco vueltas de configure. +for c in audio_thread_priority cc zeitstempel wgpu-hal alsa; do + f="third_party/rust/$c/.cargo-checksum.json" + [ -f "$f" ] || { echo "FALTA $f — ¿upstream movió el crate?" >&2; exit 1; } + sed -i 's/\("files":{\)[^}]*/\1/' "$f" +done cat > .mozconfig <<'MOZ' ac_add_options --prefix=/usr ac_add_options --enable-application=browser