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`.
This commit is contained in:
Sergio
2026-09-05 16:37:02 +00:00
parent 058c5231dc
commit 92d47cfe1d
+19 -2
View File
@@ -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",