Commit Graph
825 Commits
Author SHA1 Message Date
Sergio bf6e5ce5cb estado: cosecha granja 2026-09-07T11:01:55Z — avance del árbol KDE 2026-09-07 11:01:55 +00:00
Sergio d55bc6514e estado: cosecha granja 2026-09-07T10:31:56Z — avance del árbol KDE 2026-09-07 10:31:56 +00:00
Sergio 53180fa56b estado: cosecha granja 2026-09-07T10:02:29Z — avance del árbol KDE 2026-09-07 10:02:29 +00:00
Sergio 3928eebad2 estado: cosecha granja 2026-09-07T09:01:51Z — avance del árbol KDE 2026-09-07 09:01:51 +00:00
Sergio df37509623 estado: cosecha granja 2026-09-07T08:32:02Z — avance del árbol KDE 2026-09-07 08:32:02 +00:00
Sergio 24f96a34de estado: cosecha granja 2026-09-07T08:01:50Z — avance del árbol KDE 2026-09-07 08:01:50 +00:00
Sergio baba1cb7e7 estado: cosecha granja 2026-09-07T07:32:04Z — avance del árbol KDE 2026-09-07 07:32:04 +00:00
Sergio eaacc465a0 estado: cosecha granja 2026-09-07T07:01:48Z — avance del árbol KDE 2026-09-07 07:01:48 +00:00
Sergio 1a647885ee estado: cosecha granja 2026-09-07T06:32:04Z — avance del árbol KDE 2026-09-07 06:32:04 +00:00
Sergio d3c15f1033 estado: cosecha granja 2026-09-07T06:02:25Z — avance del árbol KDE 2026-09-07 06:02:25 +00:00
Sergio 6ddfad72d4 estado: cosecha granja 2026-09-07T05:32:16Z — avance del árbol KDE 2026-09-07 05:32:16 +00:00
Sergio 27603a735a estado: cosecha granja 2026-09-07T05:02:08Z — avance del árbol KDE 2026-09-07 05:02:08 +00:00
Sergio d4f9726b92 estado: cosecha granja 2026-09-07T04:32:06Z — avance del árbol KDE 2026-09-07 04:32:06 +00:00
Sergio d51c8c477f estado: cosecha granja 2026-09-07T03:32:08Z — avance del árbol KDE 2026-09-07 03:32:08 +00:00
Sergio 2840d3dcae estado: cosecha granja 2026-09-07T03:02:14Z — avance del árbol KDE 2026-09-07 03:02:15 +00:00
Sergio 22f4358ce7 estado: cosecha granja 2026-09-07T02:32:08Z — avance del árbol KDE 2026-09-07 02:32:08 +00:00
Sergio df913e2ff2 estado: cosecha granja 2026-09-07T02:02:07Z — avance del árbol KDE 2026-09-07 02:02:07 +00:00
Sergio cbcc6c2c40 estado: cosecha granja 2026-09-07T01:31:55Z — avance del árbol KDE 2026-09-07 01:31:55 +00:00
SergioandClaude Opus 5 07b9b31454 targets: libnotify en los cuatro escritorios que llevan atuq
Sin esta línea la receta queda sellada y en NINGUNA imagen — la lección de `foot`
que este mismo fichero tiene escrita cuatro renglones más arriba de `atuq`, y que
la clausura no puede ver porque mide lo declarado.

Va en los cuatro perfiles que ya llevan el navegador (kde, gnome, cosmic, sway) y
NO en base/cli/mirada, que no lo llevan. Verificado parseando el TOML y no
leyéndolo: libnotify=1 en esos cuatro, 0 en los otros tres.

Medición al lado, con el vigía de sonames antes y después:

    kde     306 -> 307 nodos    2083 -> 2086 sonames    0 sin proveedor
    gnome   190 -> 191           657 ->  660            0
    cosmic  161 -> 162           498 ->  501            0
    sway    201 -> 202           509 ->  512            0
    mirada   41 ->  41           231 ->  231            0   (no lleva atuq)

+1 nodo exacto por perfil, que es lo que se agregó, y el que no lo lleva no se
movió. Si hubiera arrastrado algo sin querer, el delta no sería 1.

Y una comprobación que el mapa de §6.10 no da y que es la que decide si el
`dlopen` va a funcionar: que resuelvan las deps de la PROPIA librería. Un dlopen
falla en silencio igual si libnotify está pero su gdk-pixbuf no. Se lo pregunté
al loader musl, no a mí:

    ld-musl --list /usr/lib/libnotify.so.4
      libgdk_pixbuf-2.0.so.0 => /usr/lib/...   libgobject-2.0.so.0 => /usr/lib/...
      libglib-2.0.so.0       => /usr/lib/...   libgio-2.0.so.0     => /usr/lib/...
      libc.so                => /lib/ld-musl-x86_64.so.1

Toda la cadena cae dentro del rootfs salvo libc.so, que es la excepción del lab
ya documentada.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UgNtJEFetMYbXax5dVUjZZ
2026-09-07 01:09:53 +00:00
Sergio 01fab80611 estado: cosecha granja 2026-09-07T01:03:07Z — avance del árbol KDE 2026-09-07 01:03:08 +00:00
Sergio c6d749134e estado: cosecha granja 2026-09-07T00:33:28Z — avance del árbol KDE 2026-09-07 00:33:28 +00:00
Sergio 7be49a2133 estado: cosecha granja 2026-09-07T00:03:26Z — avance del árbol KDE 2026-09-07 00:03:26 +00:00
Sergio 7f912c1e22 estado: cosecha granja 2026-09-06T23:33:11Z — avance del árbol KDE 2026-09-06 23:33:11 +00:00
Sergio 391d60eb90 estado: cosecha granja 2026-09-06T23:03:02Z — avance del árbol KDE 2026-09-06 23:03:02 +00:00
Sergio 44b6032522 vigia-sonames: dos falsos positivos menos — los cinco perfiles en CERO
NO hacía falta una receta de perl. `libperl.so` está en el artefacto, son 9,6 MB
en usr/lib/perl5/5.40.2/x86_64-linux/CORE/, y el binario la encuentra por su
RUNPATH, que apunta justo ahí. El vigía no la veía porque perl la construye con
-Duseshrplib y NO le pone SONAME: el código sólo registraba el nombre del fichero
`if son:`. Un ELF compartido sin SONAME se resuelve POR NOMBRE DE FICHERO, y eso
es exactamente lo que había que indexar.

El otro falso positivo era el último «hueco» del informe:
usr/lib/go/src/debug/elf/testdata/libtiffxx.so_ — un ELF de MUESTRA que Go
shipea para los tests de su propio paquete debug/elf, pidiendo libc.so.6 (glibc)
en una distro musl. Un binario que nadie ejecuta. `testdata/` no es cierre.

Importa arreglar un falso positivo aunque «sólo» sea ruido: un vigía que grita
en falso enseña a ignorarlo, y así es como libstdc++.so.6 —que SÍ rompía el
navegador en los cuatro escritorios— estuvo en esta misma salida sin que nadie
la mirara.

    escritorio-mirada    41 nodos ·  231 sonames ·  0 sin proveedor
    escritorio-kde      306 nodos · 2083 sonames ·  0 sin proveedor
    escritorio-gnome    190 nodos ·  657 sonames ·  0 sin proveedor
    escritorio-cosmic   161 nodos ·  498 sonames ·  0 sin proveedor
    escritorio-sway     201 nodos ·  509 sonames ·  0 sin proveedor

PROBADO CON UNA ROTURA A PROPÓSITO, porque un vigía todo-verde se ve igual que
uno roto. Quitando `runtime = ["gcc-libs"]` de firefox SOLO no pasa nada —atuq
lo declara también y es raíz de los mismos perfiles, así que la librería entra
igual; el primer control estaba mal montado—. Quitándolo de las DOS, kde y
cosmic vuelven a reportar libstdc++.so.6 y libgcc_s.so.1 exactamente. Restaurado
después.
2026-09-06 23:00:59 +00:00
Sergio 841abef25f estado: cosecha granja 2026-09-06T22:32:57Z — avance del árbol KDE 2026-09-06 22:32:57 +00:00
Sergio 02facebe28 deps.runtime: que ALGUIEN las lea — de 29 huecos de soname a 6
Tres arreglos que son el mismo: un campo que nadie lee es un campo que miente.

1. yupana._deps() leía SÓLO `deps.build`. Como yupana es la base de todas las
   herramientas de grafo, una dep de EJECUCIÓN no existía para ninguna: ni el
   vigía de sonames, ni la membresía de perfiles, ni el rootfs hidratado.
   Medido: firefox declaraba `runtime = ["gcc-libs"]` y el cierre de las cuatro
   imágenes seguía sin libstdc++.so.6, así que el navegador no arrancaba y el
   vigía lo seguía reportando como hueco DESPUÉS de haberlo arreglado.
   `deps.runtime` está en el esquema de hammer desde siempre. La unión es la
   definición de cierre: para CORRER hacen falta las dos.

2. build-state.py, lo mismo y por lo mismo.

3. El vigía entra en el LATIDO y deja docs/state/sonames.txt. Existía desde
   antes y contesta la pregunta que el grafo no contesta —no «¿está sellado?»
   sino «¿arranca?»— pero NADIE LO CORRÍA: no estaba en cosecha-cron y no dejaba
   fichero de estado. Por eso libstdc++.so.6, que rompía el navegador en los
   CUATRO perfiles, estuvo en su salida sin que nadie lo leyera, y se
   redescubrió arrancando atuq a mano. Un vigía que hay que acordarse de invocar
   no se distingue de no tenerlo.

Y se BORRA scripts/audit-needed.sh, que escribí ayer sin ver que vigia-sonames.py
ya hacía exactamente esto, con la misma frase en la cabecera. Dos herramientas
que miden lo mismo divergen y la que nadie mira es la que miente; la que se
queda es la que ya existía, que además reporta POR PERFIL y encontró más cosas.

python3 declara sus cuatro deps de ejecución (readline/sqlite/lzma/bz2): son
módulos de la stdlib que se cargan por dlopen, así que no rompen el arranque
sino un `import` — un fallo que aparece lejos y no menciona a python.

Resultado, con todo aplicado: 29 huecos -> 6, y los que quedan son otra clase.
`libperl.so` es empaquetado de la receta perl; `libc.so.6` lo pide el `go`
prebuilt y es un soname de GLIBC en una distro musl, que es un síntoma distinto.
Los dos quedan anotados en docs/state/sonames.txt, que ahora se regenera solo.
2026-09-06 22:28:17 +00:00
Sergio 54729e01e8 estado: cosecha granja 2026-09-06T22:02:09Z — avance del árbol KDE 2026-09-06 22:02:09 +00:00
Sergio 15639dd9a6 estado: cosecha granja 2026-09-06T21:31:39Z — avance del árbol KDE 2026-09-06 21:31:39 +00:00
Sergio 1ac1ed81bd estado: cosecha granja 2026-09-06T21:02:07Z — avance del árbol KDE 2026-09-06 21:02:08 +00:00
Sergio 387f4e9256 estado: cosecha granja 2026-09-06T20:33:04Z — avance del árbol KDE 2026-09-06 20:33:04 +00:00
Sergio c5df480b36 estado: cosecha granja 2026-09-06T20:03:27Z — avance del árbol KDE 2026-09-06 20:03:27 +00:00
Sergio 4219d412ee estado: cosecha granja 2026-09-06T19:32:17Z — avance del árbol KDE 2026-09-06 19:32:17 +00:00
Sergio 04a5ff4be9 estado: cosecha granja 2026-09-06T19:03:28Z — avance del árbol KDE 2026-09-06 19:03:29 +00:00
Sergio c13410428e estado: cosecha granja 2026-09-06T18:32:26Z — avance del árbol KDE 2026-09-06 18:32:26 +00:00
Sergio 98d0ad49cc estado: cosecha granja 2026-09-06T18:02:12Z — avance del árbol KDE 2026-09-06 18:02:12 +00:00
Sergio 0aa0ab6e48 estado: cosecha granja 2026-09-06T17:02:08Z — avance del árbol KDE 2026-09-06 17:02:08 +00:00
Sergio b2df1fbac2 estado: cosecha granja 2026-09-06T16:32:26Z — avance del árbol KDE 2026-09-06 16:32:26 +00:00
Sergio ff9dffaff6 estado: cosecha granja 2026-09-06T16:02:19Z — avance del árbol KDE 2026-09-06 16:02:19 +00:00
Sergio 100ecc9211 estado: cosecha granja 2026-09-06T15:02:24Z — avance del árbol KDE 2026-09-06 15:02:24 +00:00
Sergio 96c71de490 estado: cosecha granja 2026-09-06T14:32:06Z — avance del árbol KDE 2026-09-06 14:32:06 +00:00
Sergio 00d305de2f estado: cosecha granja 2026-09-06T14:02:14Z — avance del árbol KDE 2026-09-06 14:02:14 +00:00
Sergio f0b8d9025e estado: cosecha granja 2026-09-06T13:32:11Z — avance del árbol KDE 2026-09-06 13:32:11 +00:00
Sergio 757f4fb26d estado: cosecha granja 2026-09-06T13:02:08Z — avance del árbol KDE 2026-09-06 13:02:08 +00:00
Sergio 8dc8bb3a3e estado: cosecha granja 2026-09-06T12:32:22Z — avance del árbol KDE 2026-09-06 12:32:22 +00:00
Sergio b086382c44 estado: cosecha granja 2026-09-06T11:31:54Z — avance del árbol KDE 2026-09-06 11:31:54 +00:00
Sergio 384d9fe793 estado: cosecha granja 2026-09-06T11:02:18Z — avance del árbol KDE 2026-09-06 11:02:18 +00:00
Sergio 624745ed5f estado: cosecha granja 2026-09-06T10:31:54Z — avance del árbol KDE 2026-09-06 10:31:54 +00:00
Sergio 5755c6c401 estado: cosecha granja 2026-09-06T10:02:22Z — avance del árbol KDE 2026-09-06 10:02:22 +00:00
Sergio 70ca353653 estado: cosecha granja 2026-09-06T09:02:08Z — avance del árbol KDE 2026-09-06 09:02:08 +00:00