🖥 cosmic: cosmic-term — la primera APLICACIÓN, y la biblioteca deja de estar vacía
Sellada a la primera (b3:d0ea1c1e). Cola 31/31, escritorio-cosmic 69/69. Dentro de la ventana: bash-5.3#, uname -srm devuelve Linux 6.16.12 x86_64 —el kernel propio de hammer— y qalc -t '6*7' devuelve 42, o sea la calculadora que empaquetamos una hora antes. Se abre con click en su icono en la biblioteca, que hasta hoy salía vacía con razón: los 20 .desktop de la imagen eran NoDisplay=true. Éste no lo es. Lo que arrastra y no se adivina: su Cargo.toml depende de cosmic-files, o sea que el gestor de ficheros entra como LIBRERÍA (selector y drag-and-drop) y compilar la terminal compila medio gestor de ficheros. En esta suite las aplicaciones se usan unas a otras como crates, y el grafo de Cargo no se parece al mapa de componentes. De paso, empaquetar cosmic-files como aplicación queda casi gratis. wgpu viene en default, al revés que el resto de los clientes: se deja, porque wgpu y naga ya se habían compilado enteros para cosmic-workspaces y apartarse de las features por defecto es apartarse de la única combinación que upstream prueba. Cierra con dos NEEDED. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# cosmic-term — el emulador de terminal de COSMIC, y **la primera aplicación con ventana** del
|
||||
# catálogo. Hasta acá el escritorio tenía compositor, panel, dock, lanzador y una calculadora que
|
||||
# devuelve una fila de texto; ninguna ventana de verdad. Ésta lo es, y de paso convierte la
|
||||
# biblioteca de aplicaciones —que hoy sale vacía porque los veinte `.desktop` de la imagen son
|
||||
# `NoDisplay=true`— en algo que muestra al menos una entrada.
|
||||
#
|
||||
# ── LO QUE ARRASTRA, Y QUE NO SE ADIVINA ────────────────────────────────────────────────────────
|
||||
# Su `Cargo.toml` depende de **`cosmic-files`**: el gestor de ficheros entra como LIBRERÍA (el
|
||||
# selector y el arrastrar-y-soltar), no como aplicación. O sea que compilar la terminal compila
|
||||
# medio gestor de ficheros. Es el mismo patrón que ya apareció con `cosmic-settings-config` en los
|
||||
# applets: en esta suite las «aplicaciones» se usan unas a otras como crates.
|
||||
#
|
||||
# `wgpu` viene en `default`, al revés que el resto de los clientes que sellamos —que pintan con
|
||||
# tiny-skia porque su libcosmic entra sin esa feature—. Se deja: `wgpu` y `naga` ya se compilaron
|
||||
# enteros para `cosmic-workspaces` (están en su línea de enlace), así que el costo ya está pago, y
|
||||
# tocar las features por defecto es apartarse de la única combinación que upstream prueba.
|
||||
name = "cosmic-term"
|
||||
version = "1.5.0"
|
||||
|
||||
[source]
|
||||
tarball = "https://github.com/pop-os/cosmic-term/archive/epoch-1.5.0/cosmic-term-epoch-1.5.0.tar.gz"
|
||||
sha256 = "ea942a519c33c6bc13dddfdd8c5addfc4307742c1f892fa67807646fc6db42bc"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
# Dinámico como todo cliente de la suite: `wayland-client` entra con la feature `dlopen` y un musl
|
||||
# estático no la honra — arranca y muere con «The wayland library could not be loaded» *teniendo*
|
||||
# el `.so`.
|
||||
link = "dynamic"
|
||||
flags = ["--bin", "cosmic-term"]
|
||||
|
||||
[build.phases]
|
||||
# El `just install` traducido con `rootdir=/`. Los `.desktop`/`.metainfo` los GENERA el build en
|
||||
# `target/xdgen/` (crate `xdgen` como build-dependency), no están en el tarball: se copian si
|
||||
# aparecen. Acá **sí** conviene que el `.desktop` exista, al revés que en los applets — es lo que
|
||||
# hace que la aplicación se vea en la biblioteca.
|
||||
install = '''
|
||||
mkdir -p /out/usr/bin /out/usr/share/applications /out/usr/share/metainfo
|
||||
cp target/release/cosmic-term /out/usr/bin/cosmic-term
|
||||
chmod 755 /out/usr/bin/cosmic-term
|
||||
cp target/xdgen/com.system76.CosmicTerm.desktop /out/usr/share/applications/ 2>/dev/null || true
|
||||
cp target/xdgen/com.system76.CosmicTerm.metainfo.xml /out/usr/share/metainfo/ 2>/dev/null || true
|
||||
for size in res/icons/hicolor/*; do
|
||||
[ -d "$size" ] || continue
|
||||
s=$(basename "$size")
|
||||
if [ -f "$size/apps/com.system76.CosmicTerm.svg" ]; then
|
||||
mkdir -p "/out/usr/share/icons/hicolor/$s/apps"
|
||||
cp "$size/apps/com.system76.CosmicTerm.svg" "/out/usr/share/icons/hicolor/$s/apps/"
|
||||
fi
|
||||
done
|
||||
'''
|
||||
|
||||
[deps]
|
||||
# El juego fijo de todo cliente de la suite. `dbus-config` y `password_manager` (secret-service)
|
||||
# hablan por **zbus**, que es Rust puro: no suman `libdbus`, al revés que cosmic-applets.
|
||||
build = ["libxkbcommon", "pkgconf", "libudev-zero", "libinput"]
|
||||
Reference in New Issue
Block a user