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 1430Shell 145Markdown 87Rust 852973 Sutichaykuna

Etapa G: MITIGA scudo (alias libscudo→musl) → destraba trippy/jnv/presenterm (119→122)

El edge rust depende de scudo-malloc y los shims rustc/cargo lo linkean como primer NEEDED ⇒
scudo interpone malloc en todo el proceso y CRASHEA a rustc en ciertos proc-macros (corrupted
chunk header / SIGSEGV). No se puede apk-del (rust depende). Mitigación: aliasar
/usr/lib/libscudo.so → la libc musl ⇒ el NEEDED resuelve pero malloc cae a musl, sin scudo.
Los shims no usan símbolos scudo-específicos (sólo querían el override), seguro y reversible
(.orig-scudo). bootstrap-devfs.sh lo reproduce (paso 3a-bis).

Destrabados+promovidos: trippy (trip 0.13.0), jnv (0.7.1), presenterm (0.16.1) — antes
crasheaban rustc, ahora construyen+corren static-musl.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

2032df4085ad8b51070251e6292fcf057c12b38e · ruwaq sergio · (4 killa ñawpaq) · tayta 5468010a0 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

7 qillqakuna · +74 −57

diff --git a/recipes/incoming/jnv.toml b/recipes/jnv.toml
similarity index 100%
rename from recipes/incoming/jnv.toml
rename to recipes/jnv.toml
diff --git a/recipes/incoming/presenterm.toml b/recipes/presenterm.toml
similarity index 100%
rename from recipes/incoming/presenterm.toml
rename to recipes/presenterm.toml
diff --git a/recipes/incoming/trippy.toml b/recipes/trippy.toml
similarity index 100%
rename from recipes/incoming/trippy.toml
rename to recipes/trippy.toml
diff --git a/scripts/bootstrap-devfs.sh b/scripts/bootstrap-devfs.sh
index 1bcfd406..684d724b 100755
--- a/scripts/bootstrap-devfs.sh
+++ b/scripts/bootstrap-devfs.sh
@@ -176,6 +176,23 @@ else
     ok "build tools presentes en el rootfs ($NEEDED)"
 fi
 
+# --- 3a-bis. Neutralizar scudo-malloc (frente edge rust) ----------------------
+# edge empaqueta rust/cargo con `scudo-malloc` como DEPENDENCIA DURA: los shims rustc/cargo lo
+# linkean como PRIMER NEEDED ⇒ el allocator endurecido scudo interpone malloc en todo el proceso
+# (incluido librustc_driver). scudo CRASHEA a rustc en ciertos proc-macros (corrupted-chunk-header /
+# SIGSEGV: lo cazaron jnv/presenterm/trippy) — choque entre scudo y la carga/descarga de dylibs de
+# proc-macro. No se puede `apk del scudo-malloc` (rust/cargo dependen). Mitigación: aliasar
+# libscudo.so → la libc musl ⇒ el NEEDED resuelve pero malloc cae a musl (sin scudo). Los shims no
+# referencian símbolos scudo-específicos (sólo querían el override de malloc), así que es seguro.
+# Reversible: el backup .orig-scudo. Destrabó jnv/presenterm/trippy.
+SCUDO="$ROOTFS/usr/lib/libscudo.so"
+if [[ $SKIP_APK -eq 0 && -f "$SCUDO" && ! -L "$SCUDO" ]]; then
+    log "scudo: neutralizando (alias libscudo.so → musl libc; evita el crash de rustc en proc-macros)"
+    cp -a "$SCUDO" "$SCUDO.orig-scudo"
+    ln -sf /lib/libc.musl-x86_64.so.1 "$SCUDO"
+    ok "scudo neutralizado"
+fi
+
 # --- 3b. musl del toolchain con PTHREAD_KEYS_MAX=256 (frente rust variante b) --
 # El rustc booteado por mrustc (frente rust) agota los pthread keys de musl al correr:
 # `fatal runtime error: out of TLS keys, aborting` (musl default PTHREAD_KEYS_MAX=128; es el