🛍 cosmic: la tienda LISTA — el catálogo AppStream hubo que fabricarlo, y el <provides> la vaciaba
Validado con pantalla: «Popular apps» poblada (App Library, Files,
Launcher, Settings), «Recently updated», y la búsqueda `text` devolviendo
COSMIC Text Editor. 2564 colores sobre un escritorio completo.
DOS TRAMPAS ENCADENADAS, y la primera invalida lo que dije al escribir la
receta:
1. El backend `pkgar` NO lee /usr/share/metainfo/*.metainfo.xml —los
ficheros que instala cada receta—. Lee el CATÁLOGO, o sea
{/usr/share,/var/lib,/var/cache}/{swcatalog,app-info}/{xml,yaml}/, que en
una distro normal genera `appstreamcli compose`. Sin ese fichero la
tienda abre perfecta y no lista NADA. Lo genera ahora
qemu-desktop-image.sh agregando los metainfo en un <components>: doce
líneas de python, cero AppStream y cero glib.
2. Con el catálogo puesto listaba 2 de 7. Los metainfo que genera `xdgen`
escriben <provides> con los envoltorios <mimetypes>/<binaries>, y el
crate `appstream` espera los hijos PLANOS del esquema de catálogo: muere
con «The tag provide doesn't have a value» y DESCARTA EL COMPONENTE
ENTERO, callado. Los dos que se veían eran justo los que no tienen
<provides>. Se elimina el bloque al agregar.
Cómo se diagnosticó, que es lo reutilizable: desde el lanzador la salida del
proceso no llega al log de la sesión. Hay que abrir cosmic-term DENTRO de la
VM y correr `rm -rf ~/.cache/cosmic-store; RUST_LOG=info cosmic-store`. El
rm no es opcional: la tienda cachea el parseo en bitcode y sin borrarlo
repite el resultado viejo.
Y el deadline del panel es una CARRERA, no un umbral: un arranque de esta
tanda salió mutilado (130 colores) con el anfitrión ocioso y -smp 8. Si sale
mutilado con carga baja, rearrancar antes de culpar al propio cambio.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 82 KiB |
@@ -696,9 +696,52 @@ la feature `gvfs`, que se apaga. El lock dice el universo; las features dicen el
|
||||
no declara ninguna glib y su binario enlaza **sólo `libxkbcommon.so.0` y `libc.so`**: dos NEEDED, el
|
||||
mínimo de la suite.
|
||||
|
||||
## 🛍 LA QUINTA: cosmic-store, y el catálogo que hubo que fabricar (2026-08-05)
|
||||
|
||||
`docs/evidencia/cosmic-store-qemu-2026-08-05.png` — la tienda abierta con *Popular apps* poblada
|
||||
(App Library, Files, Launcher, Settings) y *Recently updated*; y `…-busqueda-…png` con la búsqueda
|
||||
`text` devolviendo *COSMIC Text Editor*. Sellada en `b3:a06437f7`, NEEDED = `libxkbcommon` + `libc`.
|
||||
|
||||
**Es la primera aplicación de la suite que choca con que hammer es OTRA distro.** Una tienda es la
|
||||
cara de un gestor de paquetes. De sus cuatro backends (`src/backend/`, todos tras `#[cfg(feature)]`):
|
||||
`flatpak` pide `libflatpak` (GObject ⇒ glib compartida + ostree/libsoup/gpgme: la torre de C que esta
|
||||
campaña evita); `packagekit` es Rust puro pero necesita el DEMONIO en el bus; `rpm-ostree` es
|
||||
irrelevante; **`pkgar` es el único que arranca** — ni demonio ni enlace.
|
||||
|
||||
**ALCANCE: navega, no instala.** Nada está cableado al `.swm` (Etapa F). El camino barato para
|
||||
arreglarlo quedó identificado: servir `org.freedesktop.PackageKit` sobre `.swm` y encender la feature
|
||||
`packagekit`. Es un shim de D-Bus, mismo patrón que `arje-logind-compat`, y **no cuesta un solo `.so`
|
||||
de C**.
|
||||
|
||||
### El catálogo AppStream: dos trampas encadenadas
|
||||
|
||||
**1. `pkgar` NO lee `/usr/share/metainfo/`.** Lee el CATÁLOGO —
|
||||
`{/usr/share,/var/lib,/var/cache}/{swcatalog,app-info}/{xml,yaml}/` — que en una distro normal genera
|
||||
`appstreamcli compose` agregando los metainfo en un `<components version=… origin=…>`. Sin ese
|
||||
fichero la tienda **abre perfecta y no lista NADA**. Lo genera ahora `qemu-desktop-image.sh` con doce
|
||||
líneas de python; no hace falta AppStream ni glib.
|
||||
|
||||
**2. Hay que SACAR el `<provides>`.** Los metainfo que genera `xdgen` lo escriben con los envoltorios
|
||||
`<mimetypes>`/`<binaries>`, y el crate `appstream` espera los hijos planos del esquema de catálogo.
|
||||
Con el envoltorio muere con `The tag provide doesn't have a value` y **descarta el componente entero,
|
||||
callado**: listaba 2 de 7, justo los dos sin `<provides>` (App Library y Launcher).
|
||||
|
||||
**Cómo se diagnosticó, que es lo reutilizable:** desde el lanzador la salida del proceso NO llega al
|
||||
log de la sesión. Hay que abrir `cosmic-term` DENTRO de la VM y correr
|
||||
`rm -rf ~/.cache/cosmic-store; RUST_LOG=info cosmic-store 2>/tmp/s.log` — el `rm` no es opcional, la
|
||||
tienda cachea el parseo en `~/.cache/cosmic-store/*.bitcode` y si no se borra vuelve a mostrar el
|
||||
resultado viejo. Que la imagen tenga terminal deja de ser una comodidad y pasa a ser instrumental.
|
||||
|
||||
### Y el deadline del panel es una CARRERA, no un umbral
|
||||
|
||||
Con el anfitrión ocioso y `-smp 8`, un arranque de esta tanda salió igual mutilado (130 colores) con
|
||||
33 procesos vivos y el `deadline has elapsed` en el log. O sea: 8 vCPU + anfitrión quieto **sube
|
||||
mucho la probabilidad pero no garantiza**. Si sale mutilado y la carga estaba baja, **rearrancá antes
|
||||
de buscar la causa en tu cambio**.
|
||||
|
||||
## Lo que falta, en orden
|
||||
|
||||
1. **Más aplicaciones**: `cosmic-store`, `cosmic-screenshot`.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user