diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index f20808c9..e3dd542e 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 854, - "nodes": 855, - "sealed": 854, + "recipes": 855, + "nodes": 856, + "sealed": 855, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 201, + "c": 202, "go": 362, "gui": 35, "kernel": 6, @@ -17,11 +17,11 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 815, + "sealed": 817, "ajeno": 1 }, "incoming-cosmic": { - "sealed": 39 + "sealed": 38 } }, "by_profile": { @@ -36,9 +36,9 @@ "sealed": 75 }, "escritorio-cosmic": { - "raices": 37, - "clausura": 131, - "sealed": 131 + "raices": 38, + "clausura": 132, + "sealed": 132 }, "escritorio-mirada": { "raices": 14, @@ -3263,13 +3263,36 @@ "compiler": "zig-cc", "deps": [], "cls": "c", - "queue": "incoming-cosmic", + "queue": "corpus", "hash": "b3:5b3a5df3d75586315f4371f05be021a58ee31d5f664b4253957a35a6c7b95d71", "state": "sealed", "blocked_by": [], "unblocks": 0, "perfiles": [ - "escritorio-cosmic" + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, + "dejavu-fonts-nerd": { + "iname": "dejavu-fonts-nerd", + "version": "3.5.1", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:387cf391f09cec628088845dadd94a5268e61acbd1c04dcc12c1a035c4d4d591", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" ], "dependientes_total": 0 }, diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index be070a81..604e0686 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -1,30 +1,27 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 880, - "nodes": 882, - "sealed": 880, - "ajeno": 1, - "wanted": 1 + "recipes": 882, + "nodes": 883, + "sealed": 882, + "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 240, + "c": 242, "go": 362, "gui": 42, "kernel": 6, - "rust": 230, - "wanted": 1 + "rust": 230 }, "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 806, + "sealed": 808, "ajeno": 1 }, "incoming-gnome": { - "sealed": 74, - "wanted": 1 + "sealed": 74 } }, "by_profile": { @@ -39,9 +36,9 @@ "sealed": 74 }, "escritorio-gnome": { - "raices": 14, - "clausura": 148, - "sealed": 148 + "raices": 15, + "clausura": 150, + "sealed": 150 }, "escritorio-mirada": { "raices": 14, @@ -49,7 +46,7 @@ "sealed": 33 } }, - "sin_perfil": 662, + "sin_perfil": 661, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -2968,17 +2965,42 @@ }, "dejavu-fonts": { "iname": "dejavu-fonts", - "version": null, - "link": null, - "compiler": null, + "version": "2.37", + "link": "dynamic", + "compiler": "zig-cc", "deps": [], - "cls": "wanted", - "queue": "incoming-gnome", - "hash": null, - "state": "wanted", + "cls": "c", + "queue": "corpus", + "hash": "b3:5b3a5df3d75586315f4371f05be021a58ee31d5f664b4253957a35a6c7b95d71", + "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, + "dejavu-fonts-nerd": { + "iname": "dejavu-fonts-nerd", + "version": "3.5.1", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:387cf391f09cec628088845dadd94a5268e61acbd1c04dcc12c1a035c4d4d591", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], "dependientes_total": 0 }, "delta": { diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index a4f471a1..006ba4d6 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 997, - "nodes": 998, - "sealed": 997, + "recipes": 998, + "nodes": 999, + "sealed": 998, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 362, + "c": 363, "go": 362, "gui": 38, "kernel": 6, @@ -17,10 +17,10 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 799 + "sealed": 801 }, "incoming-kde": { - "sealed": 198, + "sealed": 197, "ajeno": 1 } }, @@ -36,9 +36,9 @@ "sealed": 70 }, "escritorio-kde": { - "raices": 16, - "clausura": 197, - "sealed": 196, + "raices": 18, + "clausura": 199, + "sealed": 198, "ajeno": 1 }, "escritorio-mirada": { @@ -47,7 +47,7 @@ "sealed": 29 } }, - "sin_perfil": 706, + "sin_perfil": 705, "orphan_deps": [], "topo_ok": true, "nodes": { @@ -3030,12 +3030,37 @@ "compiler": "zig-cc", "deps": [], "cls": "c", - "queue": "incoming-kde", + "queue": "corpus", "hash": "b3:5b3a5df3d75586315f4371f05be021a58ee31d5f664b4253957a35a6c7b95d71", "state": "sealed", "blocked_by": [], "unblocks": 0, - "perfiles": [], + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, + "dejavu-fonts-nerd": { + "iname": "dejavu-fonts-nerd", + "version": "3.5.1", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:387cf391f09cec628088845dadd94a5268e61acbd1c04dcc12c1a035c4d4d591", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], "dependientes_total": 0 }, "delta": { diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json index 4505b452..90736838 100644 --- a/docs/state/build-state-wlr.json +++ b/docs/state/build-state-wlr.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 831, - "nodes": 832, - "sealed": 831, + "recipes": 832, + "nodes": 833, + "sealed": 832, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 199, + "c": 200, "go": 362, "gui": 35, "kernel": 6, @@ -17,11 +17,11 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 816, + "sealed": 818, "ajeno": 1 }, "incoming-wlr": { - "sealed": 15 + "sealed": 14 } }, "by_profile": { @@ -41,9 +41,9 @@ "sealed": 33 }, "escritorio-sway": { - "raices": 67, - "clausura": 170, - "sealed": 170 + "raices": 68, + "clausura": 171, + "sealed": 171 } }, "sin_perfil": 645, @@ -2797,12 +2797,35 @@ "compiler": "zig-cc", "deps": [], "cls": "c", - "queue": "incoming-wlr", + "queue": "corpus", "hash": "b3:5b3a5df3d75586315f4371f05be021a58ee31d5f664b4253957a35a6c7b95d71", "state": "sealed", "blocked_by": [], "unblocks": 0, "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, + "dejavu-fonts-nerd": { + "iname": "dejavu-fonts-nerd", + "version": "3.5.1", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:387cf391f09cec628088845dadd94a5268e61acbd1c04dcc12c1a035c4d4d591", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", "escritorio-sway" ], "dependientes_total": 0 diff --git a/docs/state/build-state.json b/docs/state/build-state.json index 2f717eb5..77dfee0e 100644 --- a/docs/state/build-state.json +++ b/docs/state/build-state.json @@ -1,14 +1,14 @@ { "schema": "hammer-build-state/1", "totals": { - "recipes": 817, - "nodes": 818, - "sealed": 817, + "recipes": 819, + "nodes": 820, + "sealed": 819, "ajeno": 1 }, "by_class": { "ajeno": 1, - "c": 185, + "c": 187, "go": 362, "gui": 35, "kernel": 6, @@ -17,7 +17,7 @@ "debt_by_class": {}, "by_queue": { "corpus": { - "sealed": 817, + "sealed": 819, "ajeno": 1 } }, @@ -2782,6 +2782,46 @@ "perfiles": [], "dependientes_total": 0 }, + "dejavu-fonts": { + "iname": "dejavu-fonts", + "version": "2.37", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:5b3a5df3d75586315f4371f05be021a58ee31d5f664b4253957a35a6c7b95d71", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, + "dejavu-fonts-nerd": { + "iname": "dejavu-fonts-nerd", + "version": "3.5.1", + "link": "dynamic", + "compiler": "zig-cc", + "deps": [], + "cls": "c", + "queue": "corpus", + "hash": "b3:387cf391f09cec628088845dadd94a5268e61acbd1c04dcc12c1a035c4d4d591", + "state": "sealed", + "blocked_by": [], + "unblocks": 0, + "perfiles": [ + "escritorio-cosmic", + "escritorio-gnome", + "escritorio-kde", + "escritorio-sway" + ], + "dependientes_total": 0 + }, "delta": { "iname": "delta", "version": "0.19.2", diff --git a/docs/state/targets.toml b/docs/state/targets.toml index 80f4c427..4a5340db 100644 --- a/docs/state/targets.toml +++ b/docs/state/targets.toml @@ -63,6 +63,22 @@ paquetes = [ # roto: sin tipos de fichero, sin apps X11, sin diálogos de autorización y con los controles QML # en un estilo genérico. Ver docs/state/frontera-triaje.toml para el porqué de cada uno. "shared-mime-info", "xwayland", "polkit-qt-1", "qqc2-breeze-style", + # ── FUENTES ────────────────────────────────────────────────────────────────────────────────── + # Añadida el 2026-09-03 por el mismo recuento que destapó el hueco de GNOME: contando + # `.ttf/.otf/.ttc/.pfb` sobre los artefactos del cierre, este perfil tenía **UNA sola**, y de + # rebote — viene dentro de `qtbase`, no porque nadie la haya pedido. `fontconfig` estaba, pero + # fontconfig es el MOTOR que busca fuentes, no una fuente. + # Depender de la que trae qtbase es apoyarse en un detalle de empaquetado de Qt que puede + # desaparecer en cualquier versión, y encima deja a todo lo que NO es Qt sin nada. + "dejavu-fonts", + # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de + # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las + # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream + # Vera obliga a renombrar una fuente modificada, así que la parcheada se llama + # «DejaVuSansM Nerd Font Mono» y NO puede responder a «DejaVu Sans Mono» — sustituirla rompería + # a todo lo que la pide por nombre, empezando por foot. Se enchufa por fontconfig: su + # `59-nerd-monospace.conf` hace que el alias `monospace` la prefiera. Ver su receta. + "dejavu-fonts-nerd", # ⚠ `xwayland` sigue acá como RAÍZ pero su receta NO se va a escribir: lo provee una imagen ajena # enjaulada, declarado en ../state/qorpa-ajenos.toml (ADR 0015 D5 capa 3, qorpa). El Xwayland vive # DENTRO de la imagen —Arch y Fedora ya lo traen y se cuelga de kwin por el socket— así que el @@ -196,6 +212,14 @@ paquetes = [ # de rebote, dentro de qtbase) es un hallazgo aparte y NO se toca acá: ese perfil no lleva zathura # y su árbol lo está trabajando otro frente. "dejavu-fonts", + # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de + # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las + # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream + # Vera obliga a renombrar una fuente modificada, así que la parcheada se llama + # «DejaVuSansM Nerd Font Mono» y NO puede responder a «DejaVu Sans Mono» — sustituirla rompería + # a todo lo que la pide por nombre, empezando por foot. Se enchufa por fontconfig: su + # `59-nerd-monospace.conf` hace que el alias `monospace` la prefiera. Ver su receta. + "dejavu-fonts-nerd", "expat-shared", "libffi-shared", "bzip2-shared", ] @@ -266,6 +290,14 @@ paquetes = [ # tipografía. Ninguno es dep de build de nadie y sin ellos el escritorio arranca roto — sin puntero, # sin teclado o con tofu. "cosmic-icons", "hicolor-icon-theme", "xkeyboard-config", "dejavu-fonts", + # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de + # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las + # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream + # Vera obliga a renombrar una fuente modificada, así que la parcheada se llama + # «DejaVuSansM Nerd Font Mono» y NO puede responder a «DejaVu Sans Mono» — sustituirla rompería + # a todo lo que la pide por nombre, empezando por foot. Se enchufa por fontconfig: su + # `59-nerd-monospace.conf` hace que el alias `monospace` la prefiera. Ver su receta. + "dejavu-fonts-nerd", # Lo que `start-cosmic` ejecuta y ningún `[deps]` pide: bash de verdad y el bus de sesión. "bash", "dbus", # ── LA PRIMERA APP DE USUARIO FINAL QUE COMPARTEN LOS CUATRO ESCRITORIOS ────────────────────── @@ -351,6 +383,14 @@ paquetes = [ # Ninguna receta depende de una fuente ni de un mapa de teclado para COMPILAR, de modo que la # clausura no puede alcanzarlos por más aristas que siga. Si no están acá, no están. "dejavu-fonts", # sin UNA fuente, foot muere con «monospace::size=8: failed to match font» + # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de + # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las + # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream + # Vera obliga a renombrar una fuente modificada, así que la parcheada se llama + # «DejaVuSansM Nerd Font Mono» y NO puede responder a «DejaVu Sans Mono» — sustituirla rompería + # a todo lo que la pide por nombre, empezando por foot. Se enchufa por fontconfig: su + # `59-nerd-monospace.conf` hace que el alias `monospace` la prefiera. Ver su receta. + "dejavu-fonts-nerd", "xkeyboard-config", # sin datos XKB: «xkbcommon: ERROR: failed to add default include path # /usr/share/X11/xkb», y sway no completa el seat # ── LAS TRES `.so` QUE sway PIDE Y EL CORPUS SÓLO PRODUCE COMO `.a` ───────────────────────── diff --git a/recipes/dejavu-fonts-nerd.toml b/recipes/dejavu-fonts-nerd.toml new file mode 100644 index 00000000..e8579987 --- /dev/null +++ b/recipes/dejavu-fonts-nerd.toml @@ -0,0 +1,111 @@ +# dejavu-fonts-nerd 3.5.1 — DejaVu Sans Mono parcheada con Nerd Fonts: ~10.000 glifos de iconos +# (Powerline, Font Awesome, Devicons, Material, Octicons, Weather…) que usan starship, lsd, eza, +# neovim, las statuslines y media herramienta moderna de terminal. Sin ellos esas apps dibujan +# cuadraditos. +# +# ══ SE AÑADE, NO REEMPLAZA — Y NO ES PRUDENCIA, ES LA LICENCIA ═════════════════════════════════ +# La tentación es «cambiemos DejaVu por la nerdeada y listo». No se puede, y el motivo está en el +# `LICENSE.txt` del propio tarball: la licencia de Bitstream Vera dice que una fuente modificada +# **sólo puede distribuirse SI SE LA RENOMBRA**. Por eso upstream la llama `DejaVuSansM Nerd Font` +# y no `DejaVu Sans Mono` — leído en el `name` de la TTF, no supuesto: +# +# familia(1) = DejaVuSansM Nerd Font Mono postscript(6) = DejaVuSansMNFM +# +# ⇒ **una fuente nerdeada NO puede responder al nombre de la original.** Si se sustituyera, todo lo +# que pide «DejaVu Sans Mono» por nombre dejaría de encontrarla, empezando por `foot`, que ya murió +# una vez con `monospace::size=8: failed to match font` (ver el perfil `escritorio-sway`). +# Por eso conviven: `dejavu-fonts` sigue siendo la familia con su nombre de siempre, y ésta se +# enchufa por fontconfig, que es el mecanismo que existe justamente para esto. +# +# ══ SÓLO LA MONOESPACIADA, Y SÓLO UNA DE LAS TRES VARIANTES ════════════════════════════════════ +# «Que todas las fuentes estén nerdeadas» no se puede cumplir al pie de la letra y conviene saber +# por qué: **upstream sólo publica parcheada la MONOESPACIADA**. No existe una DejaVu Sans ni una +# DejaVu Serif con iconos, y tampoco tendría sentido — los glifos de Nerd Fonts son para terminal, +# editor y statusline; en una fuente de interfaz proporcional no los pide nadie. +# +# Y de la mono, el tarball trae TRES variantes que son los mismos glifos con distinto ancho de +# avance de los iconos: `NerdFont` (doble ancho), `NerdFontMono` (ancho simple) y `NerdFontPropo` +# (proporcional). Instalar las doce cuesta **32 MB**; instalar sólo las cuatro de `NerdFontMono` +# cuesta **11 MB**. Se quedan las `Mono`, que son las correctas para una rejilla de terminal — +# un icono de doble ancho descuadra la cuadrícula. Para comparar: la familia DejaVu ENTERA +# (Sans + Serif + Mono, 22 ficheros) son 9,8 MB. +# +# ══ ⚠ LA LICENCIA NECESITA UNA PASADA HUMANA ANTES DE `hammer pack` ════════════════════════════ +# El `LICENSE.txt` que viene en el tarball cubre **sólo DejaVu/Bitstream Vera** y no dice ni una +# palabra de los ~10 conjuntos de iconos IMPORTADOS, que tienen licencias propias y distintas +# (Font Awesome es CC-BY-4.0, Octicons MIT, Material Design Icons OFL, Powerline MIT…). O sea que +# el artefacto es un derivado multi-licencia y el fichero que lo acompaña lo subrepresenta. +# El campo de abajo dice lo que está DOCUMENTADO en la fuente, no el conjunto real, y por eso se +# deja anotado acá en vez de inventar una cadena SPDX: el campo `license` NO SE ADIVINA (y está +# fuera de `hash_inputs`, así que corregirlo después no re-hashea nada). +# +# ══ CÓMO SE ENCHUFA: fontconfig, no renombrado ═════════════════════════════════════════════════ +# Se instala un `/etc/fonts/conf.d/59-nerd-monospace.conf` que hace que el alias `monospace` +# PREFIERA la nerd. `fonts.conf` incluye `conf.d` (leído del artefacto de fontconfig, no supuesto). +# Efecto: las terminales y todo lo que pide «monospace» —que es lo normal— se llevan los iconos, +# y quien pida «DejaVu Sans Mono» por nombre sigue recibiendo la original, intacta. +# +# ⚠ **EL NÚMERO 59 ESTÁ MEDIDO, NO ELEGIDO.** fontconfig carga `conf.d` en orden alfabético y un +# `` que llega ANTES gana la cabeza de la lista. El fontconfig de esta distro trae +# `60-latin.conf`, que ya prefiere `Noto Sans Mono, DejaVu Sans Mono, Inconsolata…` para +# `monospace`. Con el fichero en `60-nerd-monospace.conf` —que ordena DESPUÉS de `60-latin.conf`— +# `fc-match monospace` seguía devolviendo `DejaVu Sans Mono`: la conf estaba instalada y era +# INERTE. Comprobado montando el `conf.d` real del artefacto de fontconfig y corriendo `fc-match`: +# +# 60-nerd-monospace.conf → DejaVu Sans Mono (pierde) +# 59-nerd-monospace.conf → DejaVuSansM Nerd Font Mono (gana) +# +# `45-latin.conf` también menciona monospace pero usa ``, no ``, así que no compite. +# Es el mismo modo de fallar que el plugin de PipeWire para ALSA: instalado y sin que lo use nadie. +name = "dejavu-fonts-nerd" +version = "3.5.1" +# Sólo lo documentado en el LICENSE.txt del tarball. Ver el ⚠ de arriba: el conjunto real incluye +# las licencias de los iconos importados, que upstream no enumera. +license = "Bitstream-Vera" + +[source] +tarball = "https://github.com/ryanoasis/nerd-fonts/releases/download/v3.5.1/DejaVuSansMono.tar.xz" +sha256 = "9d3f2d60faa790b101903c2984b89c11397fc63b9ce43f2dcd25ffed4fb44e5f" +# ⚠ `strip_components = 0` NO ES COSMÉTICO. El default de hammer es 1, pensado para el tarball +# normal que extrae a `-/`. **Éste es PLANO**: los `.ttf` están en la raíz del +# archivo, sin directorio contenedor. Con el default, `tar --strip-components 1` se come el único +# nivel que hay y **el árbol de fuentes queda VACÍO** — y el build no se detiene ahí: sigue a las +# fases y falla más tarde, en el `cp`, con un mensaje que no menciona la extracción. Es la misma +# figura de siempre: el vacío se lee como presencia hasta que algo tropieza con él. +strip_components = 0 + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +configure = "true" +compile = "true" +install = ''' +set -e +mkdir -p /out/usr/share/fonts/dejavu-nerd /out/etc/fonts/conf.d +# Sólo la variante Mono: ver la cabecera (las otras dos son los mismos glifos con otro avance). +cp DejaVuSansMNerdFontMono-*.ttf /out/usr/share/fonts/dejavu-nerd/ +cp LICENSE.txt /out/usr/share/fonts/dejavu-nerd/ +cat > /out/etc/fonts/conf.d/59-nerd-monospace.conf <<'CONF' + + + + + + monospace + DejaVuSansM Nerd Font Mono + + +CONF +# Un `cp` que no copia nada sale 0 si el glob no casa y el artefacto queda VACÍO: se comprueba. +test "$(ls /out/usr/share/fonts/dejavu-nerd/*.ttf | wc -l)" = "4" || { + echo "ERROR: se esperaban 4 TTF de la variante Mono" >&2; ls -l /out/usr/share/fonts/dejavu-nerd >&2; exit 1 +} +''' + +[deps] +build = [] diff --git a/recipes/dejavu-fonts.toml b/recipes/dejavu-fonts.toml new file mode 100644 index 00000000..7dfd0b71 --- /dev/null +++ b/recipes/dejavu-fonts.toml @@ -0,0 +1,35 @@ +# dejavu-fonts 2.37 — PROMOVIDA AL CORPUS el 2026-09-03. Antes existían TRES copias idénticas +# (incoming-kde, incoming-wlr, incoming-cosmic) y ninguna en el corpus. +# +# ══ POR QUÉ SUBE, Y EL BUG QUE LO OBLIGÓ ═══════════════════════════════════════════════════════ +# Al descubrir que `escritorio-gnome` no traía NI UN fichero de fuente se la añadió de raíz a ese +# perfil… y quedó como nodo **`wanted`**: `incoming-gnome` no tiene esta receta y el corpus tampoco, +# y una receta no alcanza una cola hermana. O sea que la raíz no resolvía a nada y la imagen seguía +# sin fuentes. **`wanted` no es `debt`**, así que `drenaje.json` seguía diciendo deuda=0 — el hueco +# no salía por ninguna métrica. Se vio mirando el nodo en `build-state-gnome.json`. +# +# La promoción es GRATIS: las tres copias sellaban el MISMO ArtifactHash (b3:5b3a5df3) y sus +# `[deps]` están vacías, así que resuelve igual desde cualquier lado. Las tres copias de cola se +# jubilan en el mismo movimiento: con `[deps] = []` no hay nada que pueda cambiar de resolución. +# +# Data-only: copia los .ttf a /usr/share/fonts. 22 ficheros, 9,8 MB — Sans, Serif y Sans Mono. +name = "dejavu-fonts" +version = "2.37" +license = "MIT" + +[source] +tarball = "https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.tar.bz2" +sha256 = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "dynamic" + +[build.phases] +configure = "true" +compile = "true" +install = "mkdir -p /out/usr/share/fonts/dejavu && cp ttf/*.ttf /out/usr/share/fonts/dejavu/" + +[deps] +build = [] diff --git a/recipes/incoming-cosmic/dejavu-fonts.toml b/recipes/incoming-cosmic/dejavu-fonts.toml deleted file mode 100644 index 4522df39..00000000 --- a/recipes/incoming-cosmic/dejavu-fonts.toml +++ /dev/null @@ -1,22 +0,0 @@ -# dejavu-fonts 2.37 — fuentes TTF. Qt ya no trae fuentes ("QFontDatabase: Cannot find font directory"); -# sin ellas el escritorio renderiza sin texto legible. Data-only: copia los .ttf a /usr/share/fonts. -name = "dejavu-fonts" -version = "2.37" -license = "MIT" - -[source] -tarball = "https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.tar.bz2" -sha256 = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "dynamic" - -[build.phases] -configure = "true" -compile = "true" -install = "mkdir -p /out/usr/share/fonts/dejavu && cp ttf/*.ttf /out/usr/share/fonts/dejavu/" - -[deps] -build = [] diff --git a/recipes/incoming-kde/dejavu-fonts.toml b/recipes/incoming-kde/dejavu-fonts.toml deleted file mode 100644 index 4522df39..00000000 --- a/recipes/incoming-kde/dejavu-fonts.toml +++ /dev/null @@ -1,22 +0,0 @@ -# dejavu-fonts 2.37 — fuentes TTF. Qt ya no trae fuentes ("QFontDatabase: Cannot find font directory"); -# sin ellas el escritorio renderiza sin texto legible. Data-only: copia los .ttf a /usr/share/fonts. -name = "dejavu-fonts" -version = "2.37" -license = "MIT" - -[source] -tarball = "https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.tar.bz2" -sha256 = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "dynamic" - -[build.phases] -configure = "true" -compile = "true" -install = "mkdir -p /out/usr/share/fonts/dejavu && cp ttf/*.ttf /out/usr/share/fonts/dejavu/" - -[deps] -build = [] diff --git a/recipes/incoming-wlr/dejavu-fonts.toml b/recipes/incoming-wlr/dejavu-fonts.toml deleted file mode 100644 index 4522df39..00000000 --- a/recipes/incoming-wlr/dejavu-fonts.toml +++ /dev/null @@ -1,22 +0,0 @@ -# dejavu-fonts 2.37 — fuentes TTF. Qt ya no trae fuentes ("QFontDatabase: Cannot find font directory"); -# sin ellas el escritorio renderiza sin texto legible. Data-only: copia los .ttf a /usr/share/fonts. -name = "dejavu-fonts" -version = "2.37" -license = "MIT" - -[source] -tarball = "https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-fonts-ttf-2.37.tar.bz2" -sha256 = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "dynamic" - -[build.phases] -configure = "true" -compile = "true" -install = "mkdir -p /out/usr/share/fonts/dejavu && cp ttf/*.ttf /out/usr/share/fonts/dejavu/" - -[deps] -build = []