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
This commit is contained in:
Sergio
2026-09-07 01:09:53 +00:00
co-authored by Claude Opus 5
parent 01fab80611
commit 07b9b31454
+32
View File
@@ -154,6 +154,14 @@ paquetes = [
# Arrastra la cadena GTK3 en sus variantes `-shared` — pango/cairo/gdk-pixbuf/harfbuzz—: con las
# estáticas, libgtk-3 y libgdk-3 se llevaban cada una su copia y el navegador no llegaba a pintar.
"atuq",
# `libnotify` va PEGADO a atuq y por eso mismo: `libxul.so` la abre por `dlopen("libnotify.so.4")`
# cuando una página pide permiso para notificar, y como no es un `NEEDED` de ningún ELF, ninguna
# herramienta del repo la reclamaba — ni el vigía de sonames, que da CERO. La encontró
# `scripts/test-atuq-rootfs.py --dlopen` (SDD 26 §6.10). Sin esta línea la receta está sellada y
# en ninguna imagen, que es la lección de `foot` escrita cuatro renglones más arriba.
# ⚠ Resuelve la mitad: libnotify no trae daemon, manda `org.freedesktop.Notifications` por D-Bus,
# así que la imagen necesita además a alguien escuchando ese nombre.
"libnotify",
# ── CAPTURA Y STREAMING ──────────────────────────────────────────────────────────────────────
# `obs-studio` (2026-09-04). A diferencia de mpv, ésta vive en ESTA COLA y no en el corpus, y no
# es preferencia: su frontend es Qt6 y las 13 recetas Qt viven sólo en `incoming-kde`. Un qtbase
@@ -277,6 +285,14 @@ paquetes = [
# Arrastra la cadena GTK3 en sus variantes `-shared` — pango/cairo/gdk-pixbuf/harfbuzz—: con las
# estáticas, libgtk-3 y libgdk-3 se llevaban cada una su copia y el navegador no llegaba a pintar.
"atuq",
# `libnotify` va PEGADO a atuq y por eso mismo: `libxul.so` la abre por `dlopen("libnotify.so.4")`
# cuando una página pide permiso para notificar, y como no es un `NEEDED` de ningún ELF, ninguna
# herramienta del repo la reclamaba — ni el vigía de sonames, que da CERO. La encontró
# `scripts/test-atuq-rootfs.py --dlopen` (SDD 26 §6.10). Sin esta línea la receta está sellada y
# en ninguna imagen, que es la lección de `foot` escrita cuatro renglones más arriba.
# ⚠ Resuelve la mitad: libnotify no trae daemon, manda `org.freedesktop.Notifications` por D-Bus,
# así que la imagen necesita además a alguien escuchando ese nombre.
"libnotify",
# ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
# `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
# OpenGL de función fija (`glBegin`/`glOrtho`) y esta distro NO tiene proveedor de GL de
@@ -496,6 +512,14 @@ paquetes = [
# Arrastra la cadena GTK3 en sus variantes `-shared` — pango/cairo/gdk-pixbuf/harfbuzz—: con las
# estáticas, libgtk-3 y libgdk-3 se llevaban cada una su copia y el navegador no llegaba a pintar.
"atuq",
# `libnotify` va PEGADO a atuq y por eso mismo: `libxul.so` la abre por `dlopen("libnotify.so.4")`
# cuando una página pide permiso para notificar, y como no es un `NEEDED` de ningún ELF, ninguna
# herramienta del repo la reclamaba — ni el vigía de sonames, que da CERO. La encontró
# `scripts/test-atuq-rootfs.py --dlopen` (SDD 26 §6.10). Sin esta línea la receta está sellada y
# en ninguna imagen, que es la lección de `foot` escrita cuatro renglones más arriba.
# ⚠ Resuelve la mitad: libnotify no trae daemon, manda `org.freedesktop.Notifications` por D-Bus,
# así que la imagen necesita además a alguien escuchando ese nombre.
"libnotify",
# ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
# `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
# OpenGL de función fija (`glBegin`/`glOrtho`) y esta distro NO tiene proveedor de GL de
@@ -645,6 +669,14 @@ paquetes = [
# Arrastra la cadena GTK3 en sus variantes `-shared` — pango/cairo/gdk-pixbuf/harfbuzz—: con las
# estáticas, libgtk-3 y libgdk-3 se llevaban cada una su copia y el navegador no llegaba a pintar.
"atuq",
# `libnotify` va PEGADO a atuq y por eso mismo: `libxul.so` la abre por `dlopen("libnotify.so.4")`
# cuando una página pide permiso para notificar, y como no es un `NEEDED` de ningún ELF, ninguna
# herramienta del repo la reclamaba — ni el vigía de sonames, que da CERO. La encontró
# `scripts/test-atuq-rootfs.py --dlopen` (SDD 26 §6.10). Sin esta línea la receta está sellada y
# en ninguna imagen, que es la lección de `foot` escrita cuatro renglones más arriba.
# ⚠ Resuelve la mitad: libnotify no trae daemon, manda `org.freedesktop.Notifications` por D-Bus,
# así que la imagen necesita además a alguien escuchando ese nombre.
"libnotify",
# ── VISOR DE IMÁGENES, TAMBIÉN EN LAS CUATRO ─────────────────────────────────────────────────
# `swayimg` y no `imv`, que era lo que proponía `docs/plan-apps-usuario-final.md`: imv dibuja con
# OpenGL de función fija (`glBegin`/`glOrtho`) y esta distro NO tiene proveedor de GL de