From 1f415802f1ccb79cce28cf2fdaac1642e1e257b9 Mon Sep 17 00:00:00 2001 From: Sergio Date: Thu, 3 Sep 2026 16:18:44 +0000 Subject: [PATCH] =?UTF-8?q?apps:=20GNOME=20ten=C3=ADa=20imagen=20sin=20ter?= =?UTF-8?q?minal=20ni=20editor=20=E2=80=94=20arreglado=20con=20CERO=20rece?= =?UTF-8?q?tas;=20y=20el=20mont=C3=B3n=20A=20queda=20agotado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DOS COSAS, y la segunda no estaba en el plan. 1. EL MONTÓN A SE AGOTÓ DE COSAS SIN MURO. Re-triadas con scripts/provee.py las tres candidatas que la tabla daba como baratas o dudosas; las tres son muro, y ninguna por el motivo que decía la tabla: - imv → no hay proveedor de OpenGL de escritorio (ya documentado; la sustituyó swayimg) - mupdf → la nota decía «el X11 es del visor mupdf-x11; mupdf-gl no». Falso: platform/gl/ va sobre GLUT + OpenGL de escritorio, el mismo muro que imv. mupdf NO TIENE visor Wayland: sus dos UIs son X11 o GL. El motor no tiene muros pero no hace falta, el PDF ya lo da poppler. - inkscape→ era GTK3 encubierto, como la tabla sospechaba: INKSCAPE_1_4_4 pide gtkmm-3.0>=3.24 y gtk+-3.0>=3.24. master SÍ migró a GTK4 (gtk4>=4.14) pero está sin publicar, y además el catálogo no tiene NI UN binding C++: provee.py da ✗ en sigc++-2.0, glibmm-2.4, cairomm-1.0, pangomm-1.4 y gtkmm. ⇒ todo lo que queda está detrás de UNA de cuatro decisiones (GTK3 / Qt6-en-el-corpus / GL de escritorio / X11), no de trabajo de recetas. 2. LO QUE SÍ ESTABA ROTO, Y NO ERA FALTA DE RECETAS. Cruzando la membresía de los cuatro perfiles contra emuladores de terminal, editores y gestores de ficheros: escritorio-cosmic term=cosmic-term editor=cosmic-edit archivos=cosmic-files escritorio-sway term=foot editor=vim archivos=— escritorio-gnome term=— editor=— archivos=— escritorio-kde term=— editor=— archivos=— Es la lección de foot otra vez y a mayor escala: sway llegó a 121/121 SIN emulador de terminal porque nadie lo declaraba, y la métrica de clausura no lo ve porque mide lo DECLARADO. Un escritorio sin terminal no es uno incompleto: es uno del que no se puede salir cuando algo falla. GNOME arreglado con CERO recetas nuevas: foot y helix viven en el CORPUS, ya estaban selladas y no las declaraba NINGÚN perfil. foot es Wayland puro sobre xdg-shell (no pide protocolos de wlroots) así que corre bajo mutter igual que bajo sway; su único NEEDED es libc.so. helix es TUI y corre dentro de la terminal. ⚠ KDE NO SE TOCA, y es un hallazgo aparte que hay que acordar con ese frente: tiene 22 apps con .desktop selladas en su cola y sin declarar (konsole, dolphin, kate, okular, spectacle, ark, gwenview, systemsettings, kcalc…) y además le faltan plasma-desktop, plasma-nm, plasma-pa, powerdevil y kscreen — o sea red, audio, energía y pantalla. Su perfil son 13 raíces de ARRANQUE EN METAL, no la imagen de escritorio completa (ésa se hidrató aparte, por hash). No cuesta un build; cuesta acordarlo. Nota de método: build-state.py invoca `hammer hash` ~1000 veces y el otro agente recompiló el binario a mitad del barrido ⇒ kjobwidgets salió `unhashable` y KDE reportó 997/998. No era la receta: era la carrera. Re-corrido da 998/998. Los cinco grafos: 819/819, 998/998, 882/882, 855/855, 832/832, cero nodos `wanted`. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01XB2iEmxeLZgzqNfhWChrLo --- docs/plan-apps-usuario-final.md | 57 +++++++++++++++++++++++++++--- docs/state/build-state-cosmic.json | 10 ++++-- docs/state/build-state-gnome.json | 16 ++++++--- docs/state/build-state-kde.json | 10 ++++-- docs/state/build-state-wlr.json | 10 ++++-- docs/state/build-state.json | 10 ++++-- docs/state/targets.toml | 24 +++++++++++++ 7 files changed, 120 insertions(+), 17 deletions(-) diff --git a/docs/plan-apps-usuario-final.md b/docs/plan-apps-usuario-final.md index 64cd4404..d58582a0 100644 --- a/docs/plan-apps-usuario-final.md +++ b/docs/plan-apps-usuario-final.md @@ -38,8 +38,8 @@ Dos columnas, y **la que importa es la segunda**: | ~~swayimg~~ | — | — | ✅ **SELLADA 2026-09-03** (b3:9bcd39c1, **5.5**), en las CUATRO imágenes. Visor sin GL: rasteriza a `wl_shm`. Trae backend DRM de yapa. | | ~~luajit~~ | — | — | ✅ **SELLADA 2026-09-03** (b3:115d4c1c). Escrita para destrabar swayimg 5.x; mpv también la prefiere. | | ~~zathura~~ | — | — | ✅ **SELLADA 2026-09-03** (b3:9c5eac92) + `zathura-pdf-poppler`. **Es GTK4, no GTK3**: upstream vació girara. En gnome/cosmic/sway; **NO en KDE**, por colisión de poppler. | -| **mupdf** | 9 | X11 | el X11 es del visor `mupdf-x11`; el motor y `mupdf-gl` no. Requiere mirar. | -| **inkscape** | 14 | — | sin muros, pero `gtkmm3` en la lista hay que verificarlo (¿GTK3 encubierto?). | +| ~~mupdf~~ | 9 | X11 **y GL de escritorio** | ❌ **BLOQUEADA 2026-09-03.** La nota era falsa: `mupdf-gl` **sí** es un muro — su `platform/gl/` va sobre GLUT + OpenGL de escritorio, el mismo muro que imv. mupdf **no tiene visor Wayland**: sus dos UIs son `mupdf-x11` y `mupdf-gl`. El motor (`libmupdf`+`mutool`) no tiene muros, pero no hace falta: el PDF ya lo da poppler. | +| ~~inkscape~~ | 14 | **GTK3** (en la release) | ❌ **BLOQUEADA 2026-09-03.** Era GTK3 encubierto, como se sospechaba: `INKSCAPE_1_4_4` pide `gtkmm-3.0>=3.24` **y** `gtk+-3.0>=3.24`. `master` **sí** migró a GTK4 (`gtk4>=4.14`, `gtkmm-4.0>=4.13.3`) pero está sin publicar; y de todos modos el catálogo **no tiene NI UN binding C++**: faltan sigc++, glibmm, cairomm, pangomm y gtkmm enteros. | | *mpv* | *16* | *X11* | *YA SELLADA — es el control del método, no una candidata.* | | **gimp** | 18 | **GTK3**, X11 | GIMP 2.10 es GTK2/3. Fuera de alcance mientras GTK3 esté aparcado. | | **obs-studio** | 20 | **Qt6**, X11 | ver abajo. | @@ -176,6 +176,47 @@ scripts/provee.py exiv2 librsvg # ✓ existen, alcanzables SÓLO Es el hermano de build de `vigia-sonames.py`, que cubre la mitad de runtime. **El triaje de la próxima app empieza por acá**, no por contar `makedepends` contra `recipes/*.toml`. +## El montón A quedó AGOTADO de cosas sin muro (2026-09-03) + +Con `zathura` cerrada, se re-triaron con `scripts/provee.py` las tres candidatas que la tabla daba +como baratas o dudosas. **Las tres son muro**, y ninguna lo era por el motivo que decía la tabla: + +- **imv** → no hay proveedor de OpenGL de escritorio (sección de arriba). Sustituida por `swayimg`. +- **mupdf** → sus DOS visores son X11 o GLUT+OpenGL de escritorio. No tiene UI Wayland. +- **inkscape** → la release es GTK3; el `master` con GTK4 está sin publicar y además pide toda la + torre de bindings C++ que este catálogo no tiene (`provee.py` da ✗ en sigc++-2.0, glibmm-2.4, + cairomm-1.0, pangomm-1.4, gtkmm-3.0 **y** gtkmm-4.0). + +**Todo lo que queda del montón A está detrás de UNA de cuatro decisiones**, no de trabajo de +recetas: GTK3 (inkscape-release, gimp, firefox), Qt6-en-el-corpus (obs), OpenGL de escritorio +(imv, mupdf-gl) o X11 (chromium, mupdf-x11). Ver «los dos veredictos» abajo y el orden propuesto. + +## ⚠ Lo que SÍ estaba roto y no era falta de recetas: imágenes sin terminal + +Al terminar zathura se cruzó la membresía de los cuatro perfiles contra una lista de emuladores de +terminal, editores y gestores de ficheros. El resultado no tiene nada que ver con el montón A y es +más grave que cualquier app que falte: + +| perfil | terminal | editor | archivos | +|---|---|---|---| +| `escritorio-cosmic` | cosmic-term | cosmic-edit | cosmic-files | +| `escritorio-sway` | foot | vim | — | +| `escritorio-gnome` | **—** | **—** | — | +| `escritorio-kde` | **—** | **—** | — | + +Es la lección de `foot` otra vez y a mayor escala: sway llegó a 121/121 **sin emulador de terminal** +porque nadie lo declaraba, y la métrica de clausura no lo puede ver porque mide lo DECLARADO. + +**GNOME arreglado el 2026-09-03 con CERO recetas nuevas**: `foot` y `helix` viven en el corpus, ya +estaban selladas y **no las declaraba ningún perfil**. foot es Wayland puro sobre `xdg-shell` (no +pide protocolos de wlroots) así que corre bajo mutter; su único NEEDED es `libc.so`. + +**KDE es un hallazgo aparte y NO se tocó**: tiene **22 apps con `.desktop` selladas en su cola y sin +declarar** —konsole, dolphin, kate, okular, spectacle, ark, gwenview, systemsettings, kcalc…— y +además le faltan `plasma-desktop`, `plasma-nm`, `plasma-pa`, `powerdevil` y `kscreen`, o sea red, +audio, energía y pantalla. Su perfil son **13 raíces de ARRANQUE EN METAL**, no la imagen de +escritorio completa (ésa se hidrató aparte, por hash). Reordenarlo es decisión del frente KDE. + ## Los dos veredictos que corrigen al ADR ### Firefox NO es montón A @@ -228,8 +269,16 @@ cierre (wayland, ffmpeg, libdrm) quedó completo cuando entró mpv. corpus (`json-glib`, `lcms2`, `glib-shared`, `pcre2-shared`, `bzip2-shared`). **No va en `escritorio-kde`**: su backend necesita una poppler con `ENABLE_GLIB=ON` y esa imagen ya trae la de Qt6 vía okular; las dos instalan `/usr/lib/libpoppler.so.146`. -6. **Decisión de navegador** — no es trabajo de recetas, es la elección de arriba. No debería - entrar a una cola de build hasta que esté tomada. +6. ✅ **terminal y editor en GNOME** — hecho (2026-09-03), cero recetas: `foot` + `helix` del + corpus, que ya estaban selladas y sin declarar. Ver la sección de arriba. +7. **DECISIÓN pendiente, y ahora bloquea a TODO lo que queda** — no es trabajo de recetas: + **(a)** autorar el stack GTK3 (destraba inkscape-release, GIMP y Firefox de una vez), + **(b)** dárselo a [qorpa](adr/0015-imagenes-ajenas.md) como montón B, o + **(c)** autorar la torre de bindings C++ (sigc++/glibmm/cairomm/pangomm/gtkmm-4) y seguir el + `master` sin publicar de Inkscape. + Hasta que se tome, el montón A no tiene ningún ticket barato: está agotado. +8. **Aparte y sin decisión: las 22 apps de KDE selladas y sin declarar** (sección de arriba). No + cuesta un build — cuesta acordarlo con el frente KDE. OBS, Firefox, Chromium, GIMP y LibreOffice **salen del montón A** hasta que se decida GTK3 o qorpa. Que se llame montón A y no se pueda construir es peor que no tenerlo en la lista: es deuda fantasma, diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index e3dd542e..8a247bd7 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -46,7 +46,7 @@ "sealed": 33 } }, - "sin_perfil": 645, + "sin_perfil": 644, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -4206,6 +4206,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 3 @@ -4530,6 +4531,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 0 @@ -6747,7 +6749,9 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-gnome" + ], "dependientes_total": 0 }, "helm": { @@ -14231,6 +14235,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 @@ -14711,6 +14716,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index 604e0686..04a06f95 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -36,9 +36,9 @@ "sealed": 74 }, "escritorio-gnome": { - "raices": 15, - "clausura": 150, - "sealed": 150 + "raices": 17, + "clausura": 155, + "sealed": 155 }, "escritorio-mirada": { "raices": 14, @@ -46,7 +46,7 @@ "sealed": 33 } }, - "sin_perfil": 661, + "sin_perfil": 660, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -3957,6 +3957,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 3 @@ -4281,6 +4282,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 0 @@ -6943,7 +6945,9 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-gnome" + ], "dependientes_total": 0 }, "helm": { @@ -15150,6 +15154,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 @@ -15684,6 +15689,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index 006ba4d6..d13286c7 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -47,7 +47,7 @@ "sealed": 29 } }, - "sin_perfil": 705, + "sin_perfil": 704, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -4098,6 +4098,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 3 @@ -4485,6 +4486,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 0 @@ -6838,7 +6840,9 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-gnome" + ], "dependientes_total": 0 }, "helm": { @@ -20602,6 +20606,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 @@ -21082,6 +21087,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json index 90736838..9f8b1aaa 100644 --- a/docs/state/build-state-wlr.json +++ b/docs/state/build-state-wlr.json @@ -46,7 +46,7 @@ "sealed": 171 } }, - "sin_perfil": 645, + "sin_perfil": 644, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -3740,6 +3740,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 3 @@ -4064,6 +4065,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 0 @@ -6310,7 +6312,9 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-gnome" + ], "dependientes_total": 0 }, "helm": { @@ -13848,6 +13852,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 @@ -14328,6 +14333,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 diff --git a/docs/state/build-state.json b/docs/state/build-state.json index 77dfee0e..06c0addd 100644 --- a/docs/state/build-state.json +++ b/docs/state/build-state.json @@ -38,7 +38,7 @@ "sealed": 33 } }, - "sin_perfil": 645, + "sin_perfil": 644, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -3732,6 +3732,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 3 @@ -4056,6 +4057,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 0 @@ -6233,7 +6235,9 @@ "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-gnome" + ], "dependientes_total": 0 }, "helm": { @@ -13531,6 +13535,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 @@ -14011,6 +14016,7 @@ "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-gnome", "escritorio-sway" ], "dependientes_total": 4 diff --git a/docs/state/targets.toml b/docs/state/targets.toml index 4a5340db..7f887824 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -199,6 +199,30 @@ paquetes = [ # visor: el plugin de PDF no hacía dlopen («Error relocating /usr/lib/libbz2.so.1»). La receta # existía sólo en `incoming-kde`; promovida al corpus con el mismo hash (b3:1e404254 desde las dos # partes ⇒ un solo artefacto, cero rebuilds). + # ── ⚠ TERMINAL Y EDITOR: ESTA IMAGEN NO TENÍA NI UNO NI OTRO ───────────────────────────────── + # Medido el 2026-09-03 cruzando la membresía de los cuatro perfiles contra una lista de emuladores + # de terminal, editores y gestores de ficheros: + # + # escritorio-cosmic term=cosmic-term editor=cosmic-edit archivos=cosmic-files + # escritorio-sway term=foot editor=vim archivos=— + # escritorio-gnome term=— editor=— archivos=— + # escritorio-kde term=— editor=— archivos=— + # + # Es la lección de `foot` otra vez y a mayor escala: sway llegó a 121/121 SIN emulador de terminal + # porque nadie lo declaraba. Un escritorio sin terminal no es uno incompleto: es uno del que no se + # puede salir cuando algo falla. + # + # `foot` y `helix` viven en el CORPUS —no en una cola—, así que desde acá se alcanzan y no hacen + # falta recetas nuevas: las dos ya estaban selladas y sin declarar por NADIE. foot es Wayland puro + # sobre `xdg-shell` (no pide protocolos de wlroots), así que corre bajo mutter igual que bajo sway; + # su único NEEDED es `libc.so`. helix es TUI y corre dentro de la terminal. + # + # KDE queda fuera de este arreglo A PROPÓSITO, y es un hallazgo aparte: tiene `konsole`, `kate` y + # `dolphin` SELLADAS en su cola y sin declarar, más otras 19 apps y hasta `plasma-desktop`, + # `plasma-nm`, `plasma-pa` y `powerdevil`. Su perfil son 13 raíces de ARRANQUE EN METAL, no la + # imagen de escritorio completa (ésa se hidrató aparte, por hash). Reordenar eso es decisión del + # frente KDE, no de éste. + "foot", "helix", # ── FUENTES ────────────────────────────────────────────────────────────────────────────────── # ⚠ Añadida el 2026-09-03 porque este perfil no traía NI UN FICHERO DE FUENTE. Medido recorriendo # los artefactos del cierre y contando `.ttf/.otf/.ttc/.pfb`: **gnome=0**, sway=22 (dejavu),