From 07b9b314545fbc2e905357c702ef40f675be4093 Mon Sep 17 00:00:00 2001 From: Sergio Date: Mon, 7 Sep 2026 01:09:53 +0000 Subject: [PATCH] targets: libnotify en los cuatro escritorios que llevan atuq MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) Claude-Session: https://claude.ai/code/session_01UgNtJEFetMYbXax5dVUjZZ --- docs/state/targets.toml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/state/targets.toml b/docs/state/targets.toml index ae920431..4f590813 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -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