From 520271ea2f72987001fc4e093f7578dd8f5e48f9 Mon Sep 17 00:00:00 2001 From: sergio Date: Tue, 4 Aug 2026 23:40:00 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=B7=20cosmic:=20cosmic-screenshot=20se?= =?UTF-8?q?llada=20y=20ROTA=20A=20PROP=C3=93SITO=20=E2=80=94=20y=20la=20gl?= =?UTF-8?q?ib=20compartida=20YA=20existe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit b3:8b57ec9b, 9 minutos, NEEDED = libc.so y nada más. Un solo NEEDED, y el único `[deps] build = []` de la campaña: 130 líneas de Rust que no dibujan ni hablan wayland. Se incluye en la imagen sabiendo que falla, para que el hueco sea MEDIBLE en vez de supuesto. Error exacto capturado corriéndola desde cosmic-term dentro de la VM: panicked at src/main.rs:76:10: failed to send screenshot request: Portal(ZBus(MethodError(ServiceUnknown, "The name org.freedesktop.portal.Desktop was not provided by any .service files"))) Misma forma que la deuda de org.freedesktop.locale1: un nombre de D-Bus que nadie sirve. LA CADENA DEL PORTAL SON TRES ESLABONES, NO DOS. Medido en el fuente: xdg-desktop-portal-cosmic declara DBUS_NAME = "org.freedesktop.impl.portal.desktop.cosmic" (src/main.rs:27) — es BACKEND, no toma el nombre que los clientes buscan. Falta también el frontend xdg-desktop-portal, y ninguno de los dos está en ninguna cola. ⚠ CORRECCIÓN AL PROPIO RUNBOOK: decía que `gvfs` exigía «una campaña propia». Es falso desde que KDE selló las piezas. Verificado con `hammer hash` desde las dos colas —el método correcto para saber si una receta se comparte—: glib-shared 2.88.1 (b3:0584ce1f) y pcre2-shared (b3:f254abaa) resuelven IDÉNTICO desde incoming-cosmic ⇒ cero rebuild, los artefactos sirven tal cual. zlib-shared ya estaba en la cola. libffi entra estático dentro de la .so (su Requires.private lo ignora pkg-config fuera del modo estático). Lo que queda de `gvfs` NO es técnico sino una decisión: mete una segunda glib en la imagen —lo que GNOME midió y evitó— y re-hashea cosmic-files, que arrastra a cosmic-term y cosmic-edit porque lo usan como crate. Co-Authored-By: Claude Opus 5 (1M context) --- ...osmic-screenshot-sin-portal-2026-08-05.png | Bin 0 -> 84679 bytes docs/runbooks/cosmic-desktop.md | 69 ++++++++++++++++-- docs/state/targets.toml | 4 + .../incoming-cosmic/cosmic-screenshot.toml | 62 ++++++++++++++++ scripts/cosmic/hydrate-cosmic.sh | 3 + 5 files changed, 131 insertions(+), 7 deletions(-) create mode 100644 docs/evidencia/cosmic-screenshot-sin-portal-2026-08-05.png create mode 100644 recipes/incoming-cosmic/cosmic-screenshot.toml diff --git a/docs/evidencia/cosmic-screenshot-sin-portal-2026-08-05.png b/docs/evidencia/cosmic-screenshot-sin-portal-2026-08-05.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff2a54b2ec2df879fe282d602b3ad8f586fd74e GIT binary patch literal 84679 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%0D4&PFfByzc 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⪙`m?`p!e8~97U$VJ*)<<9 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 S&(->eRv;s(C{Y783jQDex{PiB literal 0 HcmV?d00001 diff --git a/docs/runbooks/cosmic-desktop.md b/docs/runbooks/cosmic-desktop.md index 1538c4c5..fd7073bf 100644 --- a/docs/runbooks/cosmic-desktop.md +++ b/docs/runbooks/cosmic-desktop.md @@ -739,15 +739,70 @@ Con el anfitrión ocioso y `-smp 8`, un arranque de esta tanda salió igual muti mucho la probabilidad pero no garantiza**. Si sale mutilado y la carga estaba baja, **rearrancá antes de buscar la causa en tu cambio**. +## 📷 LA SEXTA: cosmic-screenshot, sellada y ROTA A PROPÓSITO (2026-08-05) + +`b3:8b57ec9b`, 9 minutos de build, **`NEEDED` = `libc.so` y nada más** — un solo NEEDED, y el único +`[deps] build = []` de la campaña: 130 líneas de Rust, ni `libxkbcommon` ni `libinput`, porque no +dibuja ni habla wayland. Todo su trabajo es `Screenshot::request()` de `ashpd`. + +**Se incluye en la imagen sabiendo que falla, para que el hueco sea medible.** El error exacto está +en `docs/evidencia/cosmic-screenshot-sin-portal-2026-08-05.png`, corrido desde `cosmic-term` dentro +de la VM: + +``` +panicked at src/main.rs:76:10: failed to send screenshot request: Portal(ZBus(MethodError( + OwnedErrorName("org.freedesktop.DBus.Error.ServiceUnknown"), + Some("The name org.freedesktop.portal.Desktop was not provided by any .service files")))) +``` + +Misma forma que la deuda de `org.freedesktop.locale1` que anota el log de settings: **un nombre de +D-Bus que nadie sirve**. + +### La cadena del portal son TRES eslabones, no dos + +Medido en el fuente de `xdg-desktop-portal-cosmic`: `static DBUS_NAME = +"org.freedesktop.impl.portal.desktop.cosmic"` (`src/main.rs:27`). Es un **backend**; no toma el +nombre que los clientes buscan. La cadena es: + +`cosmic-screenshot` → `org.freedesktop.portal.Desktop` → **xdg-desktop-portal** (frontend, C sobre +GIO) → `org.freedesktop.impl.portal.desktop.cosmic` → **xdp-cosmic** (backend, Rust) + +**Faltan los dos**, y ninguno está en ninguna cola (`xdg-desktop-portal-gnome` sí está, pero es otro +backend). Lo que sí hay para el backend: `pipewire`, `gbm` (mesa) y `wayland` ya en el corpus. Su +único bloqueo real es que declara `cosmic-files` con la feature `gvfs` fijada a mano — el mismo +patrón que ya bloqueó `cosmic-files-applet`, y acá es **un parche de una línea**. + +### ⚠ CORRECCIÓN: la cadena glib COMPARTIDA YA EXISTE Y ESTÁ SELLADA + +Este documento decía que `gvfs` exigía «una campaña propia». **Es falso desde que la campaña KDE +selló las piezas.** Medido con `hammer hash` desde las dos colas, que es el método correcto para +saber si una receta se puede compartir: + +| receta | cola | ¿resuelve igual desde `incoming-cosmic`? | +|---|---|---| +| `glib-shared` 2.88.1 | `incoming-kde` | **sí** — `b3:0584ce1f`, ya sellada | +| `pcre2-shared` | `incoming-kde` | **sí** — `b3:f254abaa`, ya sellada | +| `zlib-shared` | ya en `incoming-cosmic` | — | + +Hash idéntico ⇒ **cero rebuild**: los artefactos sirven tal cual. `libffi` entra estático dentro de +la propia `.so`, así que no hace falta variante compartida (su `libffi` aparece en +`Requires.private`, que pkg-config ignora fuera del modo estático). + +**Pero la decisión sigue teniendo costo y no es técnica:** encender `gvfs` mete una SEGUNDA glib en +la imagen —justo lo que la campaña GNOME midió y evitó— y re-hashea `cosmic-files`, que arrastra a +`cosmic-term` y `cosmic-edit` porque lo usan como crate. + ## Lo que falta, en orden -1. **Más aplicaciones**: `cosmic-screenshot`. -2. **La cadena glib COMPARTIDA** (`glib` + `pcre2` + `libffi` + `zlib` con `.so`), que destrabaría - `gvfs` en cosmic-files y su applet del panel. Es una campaña propia y hay que decidir antes si la - imagen puede tener una sola glib. -2. `xdg-desktop-portal-cosmic` — sin él no hay captura de pantalla, ni file-chooser, ni compartir. -3. `cosmic-settings` (el panel de control) y `cosmic-files`: la suite tiene aplicaciones y el - catálogo todavía no. +1. **La cadena del portal, que es lo que destraba más cosas de una vez**: `xdg-desktop-portal` + (frontend en C sobre GIO — enlaza la glib ESTÁTICA que el corpus ya tiene, el muro de la glib + dinámica es de los crates `*-sys` de Rust, no de un `.c`) y `xdg-desktop-portal-cosmic` (backend + en Rust, con el parche de una línea que le saca `gvfs`). Con eso hay captura de pantalla, + selector de ficheros y compartir pantalla. +2. **Decidir `gvfs`** (ver la corrección de arriba: las piezas ya están selladas, lo que falta es la + decisión sobre la segunda glib). Destrabaría los montajes remotos de cosmic-files y su applet. +3. **Enchufar la tienda a `.swm`**: servir `org.freedesktop.PackageKit` y encender la feature + `packagekit`, que es Rust puro. Mismo patrón que `arje-logind-compat`. 4. `cosmic-greeter` (hoy `cosmic-session` lo lanza y falla con ENOENT, sin consecuencias) y `cosmic-osd` con teclas de brillo/volumen reales. 5. Metal: la imagen de QEMU y la de metal comparten todo menos el driver; el viaje físico es el diff --git a/docs/state/targets.toml b/docs/state/targets.toml index 49eafb19..6aa856b3 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -124,6 +124,10 @@ paquetes = [ # C (flatpak) ni un demonio ausente (packagekit)— NAVEGA el catálogo instalado leyendo el AppStream # del sistema, pero NO instala: nada está cableado al `.swm` de hammer. "cosmic-store", + # La sexta: la captura de pantalla. Cero C —el único `[deps] build = []` de la campaña— pero HOY + # NO FUNCIONA: todo su trabajo es `Screenshot::request()` contra `org.freedesktop.portal.Desktop`, + # y en la imagen no hay portal. Se lista igual para que el hueco sea visible. + "cosmic-screenshot", # Datos, no binarios: el tema de iconos (y el hicolor del que hereda), las tablas de xkb y una # tipografía. Ninguno es dep de build de nadie y sin ellos el escritorio arranca roto — sin puntero, # sin teclado o con tofu. diff --git a/recipes/incoming-cosmic/cosmic-screenshot.toml b/recipes/incoming-cosmic/cosmic-screenshot.toml new file mode 100644 index 00000000..533f81b8 --- /dev/null +++ b/recipes/incoming-cosmic/cosmic-screenshot.toml @@ -0,0 +1,62 @@ +# cosmic-screenshot — la captura de pantalla. **La receta más barata de toda la campaña y la más +# inútil por sí sola**, y las dos cosas por la misma razón: no captura nada; le PIDE la captura al +# portal XDG. +# +# ── LO QUE ES: 130 líneas de Rust y cero C ────────────────────────────────────────────────────── +# Sus deps son `ashpd` (cliente de portales sobre zbus), `jiff`, `dirs`, `tokio`, `clap`, `zbus` y el +# andamiaje de i18n. Los únicos `-sys` del lock son `dirs-sys`, `linux-raw-sys`, `js-sys` y +# `windows-sys`: ninguno compila C en Linux. No necesita ni el juego fijo de cuatro que pide todo +# cliente de la suite — no dibuja, no abre ventana, no habla wayland. +# +# ── LO QUE NO ES: no hay captura sin PORTAL ───────────────────────────────────────────────────── +# `src/main.rs` arranca con `use ashpd::desktop::screenshot::Screenshot` y todo su trabajo es +# `Screenshot::request()`, o sea una llamada a `org.freedesktop.portal.Desktop`. Ese nombre lo +# registra el frontend `xdg-desktop-portal`, que **no está en la imagen**; el backend que lo +# implementaría para este escritorio es `xdg-desktop-portal-cosmic`, que tampoco. +# +# Así que esta receta entrega **el binario correcto y el `.desktop` en la biblioteca**, y al +# ejecutarlo falla al no encontrar el portal. Se sella igual y a propósito: es la pieza cliente, ya +# está paga, y deja el frente reducido a UNA pregunta —¿se puede tener el portal sin la glib +# compartida?—. El frontend `xdg-desktop-portal` es C sobre GIO; el backend de COSMIC es Rust. Ver el +# runbook. +# +# Lo único que SÍ funciona hoy de su código es el aviso final: manda `org.freedesktop.Notifications`, +# y eso lo sirve `cosmic-notifications`, que ya está en la imagen. +# +# El `.desktop` y los iconos vienen ESTÁTICOS en `resources/`, no generados por `xdgen` como en +# term/files/settings/edit/store. Por eso acá no hacen falta `INSTALL_DIR` ni `APPID`. +name = "cosmic-screenshot" +version = "0.1.0" + +[source] +tarball = "https://github.com/pop-os/cosmic-screenshot/archive/epoch-1.5.0/cosmic-screenshot-epoch-1.5.0.tar.gz" +sha256 = "2a0a1fb18303773fbfe54613b0b5603871a72cbbb5b0ae183b5390227671b9a3" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +# Acá el estático SÍ se podría: no enlaza wayland, así que no lo alcanza la trampa del `dlopen` de +# `wayland-client` que obliga a dinámico a todos los demás clientes. Se deja dinámico igual, por +# coherencia con la suite y para no ser la única pieza que resuelva distinto. +link = "dynamic" + +[build.phases] +install = ''' +mkdir -p /out/usr/bin /out/usr/share/applications +cp target/release/cosmic-screenshot /out/usr/bin/cosmic-screenshot +chmod 755 /out/usr/bin/cosmic-screenshot +cp resources/com.system76.CosmicScreenshot.desktop /out/usr/share/applications/ +for size in resources/icons/hicolor/*; do + [ -d "$size" ] || continue + s=$(basename "$size") + if [ -f "$size/apps/com.system76.CosmicScreenshot.svg" ]; then + mkdir -p "/out/usr/share/icons/hicolor/$s/apps" + cp "$size/apps/com.system76.CosmicScreenshot.svg" "/out/usr/share/icons/hicolor/$s/apps/" + fi +done +''' + +[deps] +# Vacío a propósito, y medido: no hay un solo `-sys` que compile C en Linux. Es la única pieza de la +# suite que no necesita ni `libxkbcommon` ni `libinput`. +build = [] diff --git a/scripts/cosmic/hydrate-cosmic.sh b/scripts/cosmic/hydrate-cosmic.sh index 488f45d8..16939fb2 100755 --- a/scripts/cosmic/hydrate-cosmic.sh +++ b/scripts/cosmic/hydrate-cosmic.sh @@ -70,6 +70,9 @@ else # …y la tienda, la quinta. Con el backend `pkgar` NAVEGA pero no INSTALA: lee el AppStream del # sistema, o sea los `.metainfo.xml` que instalan las recetas de acá arriba. recipes/incoming-cosmic/cosmic-store.toml + # …y la captura, la sexta. Se incluye SABIENDO que hoy falla: pide la captura al portal XDG, que + # la imagen no tiene. Está acá para que el hueco sea visible y medible, no para que funcione. + recipes/incoming-cosmic/cosmic-screenshot.toml recipes/incoming-cosmic/cosmic-app-library.toml recipes/incoming-cosmic/cosmic-workspaces-epoch.toml # Ni binario ni librería: DATOS. El tema de iconos de COSMIC — sin él el escritorio no se ve