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 1535Shell 201Rust 109Markdown 993726 Definitions

firefox: vaciar el checksum de los 5 crates vendorizados que tocan los parches

Sexto muro: «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 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.

Se hacen los CINCO de una (audio_thread_priority, cc, zeitstempel, wgpu-hal,
alsa) y no sólo el que reportó el error: cargo los destapa de a uno, y buscarlos
por prueba y error costaría cinco vueltas de configure de las que cada una tarda
minutos.

El bucle falla RUIDOSO si un crate no está, en vez de seguir en silencio: si
upstream mueve uno, quiero enterarme acá y no tres capas más abajo.

141eb9afd7ecacc178332b2f439a9cfeb68bb55c · by Sergio · (1 month ago) · parent fee383ff6 · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +15 −0

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