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 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

mirada: las tres `-shared` que faltaban — el USB resolvía expat/zlib/libffi contra el lab

`scripts/vigia-sonames.py` sobre los cinco perfiles: `escritorio-mirada` era el único que aún tenía
la fuga al sysroot del lab en componentes de RUNTIME. `mesa-swrast` y `wayland` salen con
`NEEDED libexpat.so.1`, `libz.so.1` y `libffi.so.8`; las recetas canónicas de expat, zlib y libffi
son `--disable-shared`; ningún artefacto del cierre publicaba esos SONAME. O sea que el rootfs los
resolvía contra el Alpine DEL LAB y el USB sólo arrancaba donde hubiera Alpine debajo — que es peor
que una dep faltante, porque el lab no entra en `hash_inputs` y el store no puede ni notarlo.

Es la misma fuga que los otros cuatro perfiles cerraron el 2026-09-03. mirada quedó fuera porque su
lista nació como copia literal del PKGS de `mirada-usb.sh` y nadie la revisó desde entonces. La
dirección hoy está invertida —el script deriva su PKGS de `targets.py escritorio-mirada`— así que
arreglarlo acá arregla el USB, y no hay dos listas que puedan divergir. Actualicé el comentario, que
seguía diciendo «lift verbatim».

Las tres viven en `corpus`, la misma cola del perfil, y ya están selladas ⇒ CERO rebuilds: sólo
entran a la clausura.

NO sumo `bzip2-shared` ni `ncurses-shared`, que sí llevan los otros perfiles: acá esos sonames los
pide únicamente `python3`, que es herramienta de build y no viaja en la imagen. El vigía imprime
siempre QUIÉN pide cada soname justamente para poder separar eso; sin esa columna su informe no se
puede triar y uno acaba tapando ruido.

Verificado: mirada pasa de 10 sonames sin proveedor a 7, y los 7 que quedan son todos de `python3` y
`perl`.

92d47cfe1d7e9757bbd0e6efeb19fcc36c6d91b7 · ruwaq Sergio · (1 killa ñawpaq) · tayta 058c5231d · kay commitpi sach'ata qhaway

Semántico sayk'uy

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

1 qillqakuna · +19 −2

diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index 82e1f7d3..6d7491b3 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -42,9 +42,26 @@ paquetes = [
 
 [perfil.escritorio-mirada]
 descripcion = "rootfs slim del USB mirada: compositor Wayland propio sobre mesa software"
-# Lift verbatim de PKGS (scripts/mirada-usb.sh). NO hereda base: es una imagen slim a propósito.
-# El ORDEN importa (libs primero, binarios mirada al final) y se preserva.
+# NO hereda base: es una imagen slim a propósito. El ORDEN importa (libs primero, binarios mirada
+# al final) y se preserva. `scripts/mirada-usb.sh` deriva su PKGS de acá (`targets.py
+# escritorio-mirada`), así que esta lista ES la del USB — no una copia que pueda divergir.
+#
+# ── Las tres `-shared` (2026-09-05) ──────────────────────────────────────────────────────────────
+# Cazadas por `scripts/vigia-sonames.py`: `mesa-swrast` y `wayland` salen con `NEEDED libexpat.so.1`,
+# `libz.so.1` y `libffi.so.8`, y las recetas canónicas de expat/zlib/libffi son `--disable-shared`.
+# Ningún artefacto del cierre publicaba esos SONAME ⇒ el rootfs los resolvía contra el sysroot Alpine
+# DEL LAB y la imagen sólo arrancaba donde hubiera Alpine debajo.
+#
+# Es la MISMA fuga que los otros cuatro perfiles ya cerraron el 2026-09-03; mirada quedó fuera porque
+# su lista nació como copia literal del script y nadie la revisó. Van de raíces —y no de `[deps]`—
+# porque son data de RUNTIME: nadie las declara como dep de BUILD, así que la clausura no las alcanza
+# por ninguna arista. Las tres viven en `corpus`, la misma cola, y ya están selladas ⇒ CERO rebuilds.
+#
+# NO se suman `bzip2-shared` ni `ncurses-shared`, que sí llevan los otros perfiles: acá esos sonames
+# los pide sólo `python3`, que es HERRAMIENTA DE BUILD y no viaja en la imagen. Lo accionable del
+# vigía es lo que pide un componente de runtime, y por eso imprime siempre quién pide cada cosa.
 paquetes = [
+  "expat-shared", "zlib-shared", "libffi-shared",
   "mesa-swrast", "wayland", "libdrm", "seatd", "libinput", "libudev-zero",
   "libxkbcommon", "pixman", "linux-pam", "mtdev", "libevdev",
   "mirada-compositor", "mirada-greeter", "mirada-ctl",