libffi-shared en base: python3 volvía a ser INERTE en servidor, cli y base — y el vigía no miraba ahí

`vigia-sonames.py` corría por defecto SÓLO sobre los cinco perfiles de escritorio
(`p.startswith("escritorio")`). O sea que `base`, `cli` y `servidor` —el objetivo de la mudanza—
**nunca se miraron**. Apuntándolo a ellos a mano:

    == servidor  147 nodos · 183 sonames provistos · 1 sin proveedor
       FALTA libffi.so.8   ← lo piden: python3

`python3` no arrancaba en las tres imágenes, por el mecanismo EXACTO que `musl-shared` y
`zlib-shared` arreglaron dos días antes: la receta canónica de libffi es `--disable-shared`, ningún
artefacto del cierre publica ese soname, y dentro del lab el agujero lo tapa el rootfs de Alpine —
así que el build pasa y la imagen sale rota. `libffi-shared` ya existía en el corpus y ya estaba
declarada en otros dos perfiles; sólo faltaba en `base`.

    servidor 148 nodos · 186 sonames · **0 sin proveedor**    (base y cli, igual)

## Y el vigía pasa a mirar TODOS los perfiles

⚠ **Es la tercera vez en dos días que un guardián de este repo mide menos de lo que su resumen
afirma**: `static-audit.sh` sólo globeaba `recipes/` y no las 5 colas (3 mentiras ocultas); el bloque
de raíces sucias sólo corría al hidratar un perfil y no veía las 649 recetas fuera de toda imagen
(qdrant con 69 M de basura); y éste dejaba fuera medio sistema. **Un «0 huecos» sobre la mitad del
sistema se imprime igual que uno sobre todo él.**

⇒ Al leer un guardián, leer su SCOPE antes que su veredicto: el glob, el bucle, de dónde saca la
lista. Los ocho perfiles dan 0 sin proveedor, así que ampliar el alcance no mete ruido — sólo deja de
esconder.
This commit is contained in:
Sergio
2026-09-13 20:13:16 +00:00
parent 01649076da
commit 5e5369f775
3 changed files with 36 additions and 11 deletions
+9 -1
View File
@@ -133,7 +133,15 @@ def main():
colas = yupana.cargar_colas()
perfiles = targets_mod.load()
memb = yupana.membresia(colas, perfiles)
quiero = args or [p for p in perfiles if p.startswith("escritorio")]
# ⚠ **POR DEFECTO, TODOS LOS PERFILES.** Antes era `p.startswith("escritorio")`, y ese filtro
# dejaba fuera a `base`, `cli` y `servidor` — o sea al objetivo de la mudanza. El coste se midió
# el 2026-09-13 apuntándolo a mano: los tres tenían `FALTA libffi.so.8 ← lo piden: python3`, con
# `python3` INERTE en las tres imágenes por el mismo mecanismo que `musl-shared` y `zlib-shared`
# habían arreglado dos días antes. El vigía existía, el hueco estaba, y nadie lo miraba.
# Es la tercera vez en dos días que un guardián de este repo mide menos de lo que su resumen
# afirma (antes: `static-audit.sh` sin las colas, y el bloque de raíces sucias sólo sobre
# perfiles). Un «0 huecos» sobre la mitad del sistema se imprime igual que uno sobre todo él.
quiero = args or sorted(perfiles)
huecos = 0
for perfil in quiero:
nodos = {n for n, ps in memb.items() if perfil in ps and n[0] != "wanted"}