diff --git a/docs/state/targets.toml b/docs/state/targets.toml index 89585898..9b3c0e7a 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -366,11 +366,21 @@ paquetes = [ # 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. + # ⚠ ESTO ESTABA VIEJO, corregido el 2026-09-09. Decía que KDE quedaba fuera del arreglo y que «su + # perfil son 13 raíces de ARRANQUE EN METAL, no la imagen completa», con konsole/kate/dolphin y + # otras 19 apps selladas y sin declarar. Ya no: el frente KDE lo reordenó y hoy su perfil son **48 + # raíces** con konsole, dolphin, kate, okular, ark, spectacle, gwenview, kcalc, las fuentes y las + # `*-shared` de runtime declaradas. De su cola quedan 8 recetas fuera del perfil, y son las que + # corresponde: libICE, libSM, libXtst y los cinco eslabones que sólo servían a xwayland + # (libfontenc, libXfont2, libxkbfile, libxshmfence, xkbcomp), huérfanos desde que la receta se + # retiró. + # + # Lo que a KDE le queda no es este arreglo sino OTRO, medido el mismo día: su imagen no se hidrata + # desde el perfil sino de un rootfs YA ARMADO (`kde-qemu-rootfs`, 8,4 G) que nadie re-deriva, así + # que se queda atrás a medida que el perfil crece. Comprobado contra ese rootfs: de las 18 hojas + # que el perfil declara están 15 — faltan `obs-studio` y `atuq`, justo las dos que se añadieron + # después de aquella hidratación. Re-hidratarlo con `scripts/hydrate-profile.py escritorio-kde` + # 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 diff --git a/scripts/cosmic/hydrate-cosmic.sh b/scripts/cosmic/hydrate-cosmic.sh index 061a8f56..dfa73945 100755 --- a/scripts/cosmic/hydrate-cosmic.sh +++ b/scripts/cosmic/hydrate-cosmic.sh @@ -13,6 +13,28 @@ # dep de build de ningún otro, así que el grafo no los ve. La lista autoritativa es # `cosmic-session/src/main.rs`, no una intuición sobre qué hace falta. # +# ⚠ SUPERADO POR `scripts/hydrate-profile.py` (2026-09-09). Usar: +# +# scripts/hydrate-profile.py escritorio-cosmic --into +# +# POR QUÉ, y está MEDIDO. La lista de raíces de abajo es una segunda fuente de verdad frente a +# `docs/state/targets.toml`, y había divergido: el script nombra 25 raíces, el perfil declara 43, y +# **17 paquetes declarados NO llegaban al rootfs**. Entre ellos `adwaita-cursors` —que es +# EXACTAMENTE el ejemplo con el que la cabecera de `hydrate-profile.py` advirtió del problema el +# 2026-09-04: «habrían seguido armando un rootfs sin cursores»—, `xkeyboard-config` (sin él no hay +# mapa de teclado, la cicatriz de sway), `bash`, el navegador `atuq`, `mpv`, `swayimg`, `zathura` y +# su plugin, las dos `dejavu-fonts`, `libnotify`, `desktop-file-utils`, `hicolor-icon-theme` y las +# cinco `*-shared` de runtime. +# +# Y al revés no se pierde NADA, que es lo que hace el cambio barato: de las 25 raíces del script, la +# única que el perfil no declara es `zlib-shared`, y la clausura del perfil la alcanza igual. O sea +# que el motivo que justificaba la lista a mano —el párrafo de abajo: los componentes que +# `cosmic-session` lanza por PATH y el grafo no ve— **ya está resuelto en el perfil**, que los +# declara a todos como raíces. La lista quedó redundante sin que nadie lo notara. +# +# El script se deja porque su cabecera documenta ese porqué, que sigue siendo cierto sobre la +# NATURALEZA de COSMIC; lo que ya no es cierto es que su lista sea la verdad. +# # Uso: scripts/cosmic/hydrate-cosmic.sh [receta.toml ...] # Env: RFS (def work/cosmic-rootfs) destino # STORE (def ./store) diff --git a/scripts/cosmic/metal-desktop-image.sh b/scripts/cosmic/metal-desktop-image.sh index 6fb870aa..9b698162 100755 --- a/scripts/cosmic/metal-desktop-image.sh +++ b/scripts/cosmic/metal-desktop-image.sh @@ -47,7 +47,7 @@ KERNEL="${KERNEL:-$(ls -dt store/*-linux-metal-dual/boot/bzImage 2>/dev/null | h MERGED="${MERGED:-work/cosmic-metal-rootfs}" IMG="${IMG:-work/hammer-cosmic-metal.img}" -for x in "$BASE" "$COSMIC"; do [ -d "$x" ] || { echo "falta $x (corré scripts/cosmic/hydrate-cosmic.sh)" >&2; exit 1; }; done +for x in "$BASE" "$COSMIC"; do [ -d "$x" ] || { echo "falta $x (corré scripts/hydrate-profile.py escritorio-cosmic --into $COSMIC)" >&2; exit 1; }; done [ -n "$KERNEL" ] && [ -r "$KERNEL" ] || { echo "falta linux-metal-dual (hammer build recipes/linux-metal-dual.toml)" >&2; exit 1; } echo "==> fundiendo rootfs por hardlinks (base metal + COSMIC)" diff --git a/scripts/cosmic/qemu-desktop-image.sh b/scripts/cosmic/qemu-desktop-image.sh index e482502e..cd0b39e6 100755 --- a/scripts/cosmic/qemu-desktop-image.sh +++ b/scripts/cosmic/qemu-desktop-image.sh @@ -4,7 +4,9 @@ # la base metal, la inyección de mesa-llvmpipe/LLVM/musl y el truco del console-getty. # # work/metal-rootfs base: arje-zero PID1 + busybox + kernel(EFI-stub) + firmware -# work/cosmic-rootfs cierre de COSMIC (lo arma scripts/cosmic/hydrate-cosmic.sh) +# work/cosmic-rootfs cierre de COSMIC (lo arma `scripts/hydrate-profile.py escritorio-cosmic`; +# hydrate-cosmic.sh quedó SUPERADO — su lista a mano se saltaba 17 paquetes +# que el perfil declara, entre ellos adwaita-cursors y xkeyboard-config) # + store/*-mesa-llvmpipe GBM/EGL de software (el cierre trae mesa con iris_dri, que es Intel real) # + store/*-llvm18 libLLVM que llvmpipe JIT-linkea # → work/cosmic-qemu-rootfs (hardlinks) → work/hammer-cosmic-qemu.img @@ -21,7 +23,7 @@ MERGED="${MERGED:-work/cosmic-qemu-rootfs}" IMG="${IMG:-work/hammer-cosmic-qemu.img}" [ -d "$BASE" ] || { echo "falta $BASE" >&2; exit 1; } -[ -d "$COSMIC" ] || { echo "falta $COSMIC — corré scripts/cosmic/hydrate-cosmic.sh" >&2; exit 1; } +[ -d "$COSMIC" ] || { echo "falta $COSMIC — corré scripts/hydrate-profile.py escritorio-cosmic --into $COSMIC" >&2; exit 1; } [ -n "$MESA" ] && [ -d "$MESA" ] || { echo "falta mesa-llvmpipe en store/" >&2; exit 1; } echo "==> fundiendo rootfs por hardlinks (base metal + cierre COSMIC)"