gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1471Shell 173Rust 105Markdown 943545 Definiciones

⎇ fe474dab636d4f43ea912ac0144e76bb83ba3717 recipes/incoming-cosmic/cosmic-bg.toml TOML · 54 líneas · 3.4 KB Historia crudo

licencias: 936 de 1141 (82%) — detección por evidencia, con sus dos imprecisiones declaradas a6a9d59e4 · sergio ·

1# cosmic-bg — el que pinta el fondo de pantalla. Es un cliente Wayland normal, uno de los que
2# `cosmic-session` levanta después del compositor.
3#
4# ── POR QUÉ ES EL SEGUNDO CLIENTE QUE SE CONSTRUYE ──────────────────────────────────────────────
5# Porque separa dos preguntas que en el resto de la suite vienen pegadas. cosmic-bg habla Wayland con
6# `smithay-client-toolkit` —la implementación en Rust del protocolo, sin libwayland— y decodifica
7# imágenes con crates puros (image, jxl-oxide, fast_image_resize). **No toca libcosmic ni iced.**
8# Así que si el fondo pinta y el panel no, el problema es de la capa de UI, no del transporte.
9#
10# ── PERO NO ES RUST PURO, Y ESO SE MIDIÓ, NO SE SUPUSO ──────────────────────────────────────────
11# El primer intento salió sin `[deps]` con el argumento «un cliente Wayland en Rust no toca C», y
12# reventó en el `build.rs` de smithay-client-toolkit pidiendo `xkbcommon.pc`. **sctk ENLAZA
13# libxkbcommon; no la dlopea** — el que la dlopea es winit, que es otra capa. La regla que sale:
14# «habla el protocolo en Rust» dice cómo viaja el byte, no con qué se interpreta un teclado.
15# Como el artefacto de libxkbcommon trae `.a` además de `.so`, el `link = "static"` sigue siendo
16# verdad y no una etiqueta.
17#
18# El árbol es un workspace con `config/` como miembro (cosmic-bg-config), que es lo que leen los
19# demás componentes para saber qué fondo hay puesto. Los defaults van a `/usr/share/cosmic/<APPID>/`
20# con la misma convención de cosmic-config que en cosmic-comp: **el nombre del fichero ES la clave**.
21name    = "cosmic-bg"
22version = "1.5.0"
23license = "MPL-2.0"
24
25[source]
26tarball = "https://github.com/pop-os/cosmic-bg/archive/epoch-1.5.0/cosmic-bg-epoch-1.5.0.tar.gz"
27sha256  = "12b30c60e15ac6c0f4b3eca8c37642145683e830833b429958222dfc395db177"
28
29[build]
30compiler = "zig-cc"
31target   = "x86_64-linux-musl"
32# ── DINÁMICO, Y NO ES UNA PREFERENCIA ──────────────────────────────────────────────────────────
33# `wayland-client` entra con la feature `dlopen`: no ENLAZA libwayland-client, la carga en runtime.
34# Un binario musl ESTÁTICO no tiene dlopen funcional, así que el cliente arranca y muere con
35# «The wayland library could not be loaded» — con el .so presente en el rootfs, que es lo que hace
36# el diagnóstico confuso: no falta la librería, falta poder abrirla.
37link     = "dynamic"
38# Un único target para `cargo rustc --` (ver el comentario de cosmic-comp): el workspace trae también
39# la lib de config.
40flags    = ["--bin", "cosmic-bg"]
41
42[build.phases]
43install = '''
44mkdir -p /out/usr/bin /out/usr/share/cosmic/com.system76.CosmicBackground
45cp target/release/cosmic-bg /out/usr/bin/cosmic-bg
46chmod 755 /out/usr/bin/cosmic-bg
47cd data && find v1 -type f -exec install -Dm0644 {} /out/usr/share/cosmic/com.system76.CosmicBackground/{} \;
48'''
49
50[deps]
51# dav1d: NO lo pide cosmic-bg sino la unificación de features de cargo — el crate `image`
52# termina con AVIF prendida por otro consumidor del árbol aunque acá esté declarada sin
53# defaults. Ver el comentario de recipes/incoming-cosmic/dav1d.toml.
54build = ["libxkbcommon", "pkgconf", "dav1d"]