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…

escritorios: KDE y GNOME corrían SIN tema de iconos — el panel vacío no era el panel

Medido sobre los artefactos del cierre de cada imagen, contando qué `usr/share/icons/*/`
trae un `index.theme` (que es lo que convierte un directorio en un tema):

    escritorio-kde      sólo Breeze_Light y breeze_cursors — que son CURSORES
    escritorio-gnome    CERO, ni siquiera hicolor
    escritorio-cosmic   Cosmic + hicolor            <- el único que estaba bien
    escritorio-sway     CERO

Las dos capturas de QEMU de hoy ya lo mostraban y se leyeron como «arranca»:

- `plasma6-qemu-2026-09-03-kactivitymanagerd.png`: panel con el reloj y nada más. Los `.so`
  de los applets estaban TODOS instalados; lo que faltaba era qué pintar. `kickoff`,
  `systemtray`, `showdesktop` y `trash` SON un icono, así que sin tema quedan de ancho cero
  — el reloj se ve porque dibuja TEXTO. El log lo decía en una línea:
  `kf.iconthemes: Icon theme "breeze" not found.`
- `gnome-shell-qemu-2026-09-03-libs-compartidas.png`: barra superior con la fecha y el pill
  de espacios, y la DERECHA vacía — red, volumen y batería son iconos.

`breeze` (ya declarado) es el tema de WIDGETS y CURSORES; los ~14.000 iconos viven en
`breeze-icons`, receta aparte, sellada desde siempre y declarada por NADIE. Igual
`adwaita-icon-theme` en GNOME, que además trae los XCursor (su cabecera dice por qué:
sin tema de cursor no hay puntero visible con el cursor por software de virtio-gpu).

Es la figura de las fuentes y de `foot` otra vez: data de RUNTIME, ninguna arista de BUILD
la alcanza, y la métrica de clausura no la echa de menos porque mide lo declarado.

`hicolor-icon-theme` —el fallback obligatorio de freedesktop— se promueve al corpus para que
lo alcancen las cuatro imágenes: hash IDÉNTICO desde la cola y desde el corpus
(b3:98ad44a5), y sus 4 consumidores (adwaita-icon-theme, cosmic-icons, cosmic-app-library,
cosmic-launcher) miden el mismo hash antes y después ⇒ un solo artefacto, CERO rebuilds.

Cierre tras declararlos, todo sellado y sin deuda:
  kde 263/263 (+2) · gnome 158/158 (+2) · sway 173/173 (+1) · cosmic 133/133 (igual)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YGXe6mShYYw6V8ea1dQ13u

d69c437051bc6ac818b2ae86c5c8e208de41f4b7 · por Sergio · (hace 1 mes) · padre 08d27f0e2 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

9 archivos · +231 −125

diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json
index c235e5e1..f62cb231 100644
--- a/docs/state/build-state-cosmic.json
+++ b/docs/state/build-state-cosmic.json
@@ -17,11 +17,11 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 818,
+   "sealed": 819,
    "ajeno": 1
   },
   "incoming-cosmic": {
-   "sealed": 38
+   "sealed": 37
   }
  },
  "by_profile": {
@@ -6883,15 +6883,18 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-cosmic",
+   "queue": "corpus",
    "hash": "b3:98ad44a5c02059b4cac576bbbf24195a229cda1c807f1eb6c7e80424ceab1e16",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
    "perfiles": [
-    "escritorio-cosmic"
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
    ],
-   "dependientes_total": 0
+   "dependientes_total": 1
   },
   "hivemind": {
    "iname": "hivemind",
@@ -10182,7 +10185,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 122
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -11809,7 +11812,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 383
+   "dependientes_total": 382
   },
   "plow": {
    "iname": "plow",
@@ -12252,7 +12255,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 294
+   "dependientes_total": 293
   },
   "qrcp": {
    "iname": "qrcp",
@@ -12807,7 +12810,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 256
+   "dependientes_total": 255
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json
index 230e1c7a..67832b25 100644
--- a/docs/state/build-state-gnome.json
+++ b/docs/state/build-state-gnome.json
@@ -17,11 +17,11 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 809,
+   "sealed": 810,
    "ajeno": 1
   },
   "incoming-gnome": {
-   "sealed": 74
+   "sealed": 73
   }
  },
  "by_profile": {
@@ -36,9 +36,9 @@
    "sealed": 74
   },
   "escritorio-gnome": {
-   "raices": 18,
-   "clausura": 156,
-   "sealed": 156
+   "raices": 20,
+   "clausura": 158,
+   "sealed": 158
   },
   "escritorio-mirada": {
    "raices": 14,
@@ -46,7 +46,7 @@
    "sealed": 33
   }
  },
- "sin_perfil": 660,
+ "sin_perfil": 658,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -201,7 +201,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-gnome"
+   ],
    "dependientes_total": 0
   },
   "age": {
@@ -7079,12 +7081,17 @@
     "pkgconf"
    ],
    "cls": "c",
-   "queue": "incoming-gnome",
+   "queue": "corpus",
    "hash": "b3:98ad44a5c02059b4cac576bbbf24195a229cda1c807f1eb6c7e80424ceab1e16",
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
    "dependientes_total": 1
   },
   "hivemind": {
@@ -10846,7 +10853,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 122
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -12616,7 +12623,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 383
+   "dependientes_total": 382
   },
   "plow": {
    "iname": "plow",
@@ -13126,7 +13133,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 294
+   "dependientes_total": 293
   },
   "qrcp": {
    "iname": "qrcp",
@@ -13681,7 +13688,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 256
+   "dependientes_total": 255
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json
index 98f16b8c..0a747765 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": 999,
-  "nodes": 1000,
-  "sealed": 999,
+  "recipes": 1000,
+  "nodes": 1001,
+  "sealed": 1000,
   "ajeno": 1
  },
  "by_class": {
   "ajeno": 1,
-  "c": 364,
+  "c": 365,
   "go": 362,
   "gui": 38,
   "kernel": 6,
@@ -17,7 +17,7 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 802
+   "sealed": 803
   },
   "incoming-kde": {
    "sealed": 197,
@@ -36,9 +36,9 @@
    "sealed": 70
   },
   "escritorio-kde": {
-   "raices": 42,
-   "clausura": 262,
-   "sealed": 261,
+   "raices": 44,
+   "clausura": 264,
+   "sealed": 263,
    "ajeno": 1
   },
   "escritorio-mirada": {
@@ -47,7 +47,7 @@
    "sealed": 29
   }
  },
- "sin_perfil": 646,
+ "sin_perfil": 645,
  "orphan_deps": [],
  "topo_ok": true,
  "nodes": {
@@ -1247,7 +1247,9 @@
    "state": "sealed",
    "blocked_by": [],
    "unblocks": 0,
-   "perfiles": [],
+   "perfiles": [
+    "escritorio-kde"
+   ],
    "dependientes_total": 0
   },
   "broot": {
@@ -6974,6 +6976,31 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "hicolor-icon-theme": {
+   "iname": "hicolor-icon-theme",
+   "version": "0.18",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "samurai",
+    "python3",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "hash": "b3:98ad44a5c02059b4cac576bbbf24195a229cda1c807f1eb6c7e80424ceab1e16",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
+   "dependientes_total": 1
+  },
   "hivemind": {
    "iname": "hivemind",
    "version": "1.1.0",
@@ -14373,7 +14400,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 122
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -16336,7 +16363,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 383
+   "dependientes_total": 382
   },
   "plasma-activities": {
    "iname": "plasma-activities",
@@ -17777,7 +17804,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 294
+   "dependientes_total": 293
   },
   "qcoro": {
    "iname": "qcoro",
@@ -18925,7 +18952,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 256
+   "dependientes_total": 255
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json
index 98b96a19..61591dcd 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": 833,
-  "nodes": 834,
-  "sealed": 833,
+  "recipes": 834,
+  "nodes": 835,
+  "sealed": 834,
   "ajeno": 1
  },
  "by_class": {
   "ajeno": 1,
-  "c": 201,
+  "c": 202,
   "go": 362,
   "gui": 35,
   "kernel": 6,
@@ -17,7 +17,7 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 819,
+   "sealed": 820,
    "ajeno": 1
   },
   "incoming-wlr": {
@@ -41,9 +41,9 @@
    "sealed": 33
   },
   "escritorio-sway": {
-   "raices": 69,
-   "clausura": 172,
-   "sealed": 172
+   "raices": 70,
+   "clausura": 173,
+   "sealed": 173
   }
  },
  "sin_perfil": 644,
@@ -6434,6 +6434,31 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "hicolor-icon-theme": {
+   "iname": "hicolor-icon-theme",
+   "version": "0.18",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "samurai",
+    "python3",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "hash": "b3:98ad44a5c02059b4cac576bbbf24195a229cda1c807f1eb6c7e80424ceab1e16",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
+   "dependientes_total": 1
+  },
   "hivemind": {
    "iname": "hivemind",
    "version": "1.1.0",
@@ -9661,7 +9686,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 122
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -11270,7 +11295,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 383
+   "dependientes_total": 382
   },
   "plow": {
    "iname": "plow",
@@ -11671,7 +11696,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 294
+   "dependientes_total": 293
   },
   "qrcp": {
    "iname": "qrcp",
@@ -12226,7 +12251,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 256
+   "dependientes_total": 255
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/build-state.json b/docs/state/build-state.json
index da0d0232..157fdbeb 100644
--- a/docs/state/build-state.json
+++ b/docs/state/build-state.json
@@ -1,14 +1,14 @@
 {
  "schema": "hammer-build-state/1",
  "totals": {
-  "recipes": 820,
-  "nodes": 821,
-  "sealed": 820,
+  "recipes": 821,
+  "nodes": 822,
+  "sealed": 821,
   "ajeno": 1
  },
  "by_class": {
   "ajeno": 1,
-  "c": 188,
+  "c": 189,
   "go": 362,
   "gui": 35,
   "kernel": 6,
@@ -17,7 +17,7 @@
  "debt_by_class": {},
  "by_queue": {
   "corpus": {
-   "sealed": 820,
+   "sealed": 821,
    "ajeno": 1
   }
  },
@@ -6357,6 +6357,31 @@
    "perfiles": [],
    "dependientes_total": 0
   },
+  "hicolor-icon-theme": {
+   "iname": "hicolor-icon-theme",
+   "version": "0.18",
+   "link": "dynamic",
+   "compiler": "zig-cc",
+   "deps": [
+    "meson",
+    "samurai",
+    "python3",
+    "pkgconf"
+   ],
+   "cls": "c",
+   "queue": "corpus",
+   "hash": "b3:98ad44a5c02059b4cac576bbbf24195a229cda1c807f1eb6c7e80424ceab1e16",
+   "state": "sealed",
+   "blocked_by": [],
+   "unblocks": 0,
+   "perfiles": [
+    "escritorio-cosmic",
+    "escritorio-gnome",
+    "escritorio-kde",
+    "escritorio-sway"
+   ],
+   "dependientes_total": 1
+  },
   "hivemind": {
    "iname": "hivemind",
    "version": "1.1.0",
@@ -9542,7 +9567,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 122
+   "dependientes_total": 121
   },
   "micro": {
    "iname": "micro",
@@ -11151,7 +11176,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 383
+   "dependientes_total": 382
   },
   "plow": {
    "iname": "plow",
@@ -11552,7 +11577,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 294
+   "dependientes_total": 293
   },
   "qrcp": {
    "iname": "qrcp",
@@ -12107,7 +12132,7 @@
     "escritorio-mirada",
     "escritorio-sway"
    ],
-   "dependientes_total": 256
+   "dependientes_total": 255
   },
   "sassc": {
    "iname": "sassc",
diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index 028ba248..c7e7939f 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -165,6 +165,30 @@ paquetes = [
   # Arreglarlo de verdad pide re-sellar pipewire, que arrastra 7 artefactos —entre ellos dos Rust
   # que ya murieron por OOM— así que se paga el día que pipewire se re-selle por otro motivo.
   "expat-shared", "libffi-shared", "bzip2-shared", "ncurses-shared",
+  # ── TEMA DE ICONOS ───────────────────────────────────────────────────────────────────────────
+  # Añadido el 2026-09-03 releyendo la captura que dio el arranque por bueno
+  # (`docs/evidencia/plasma6-qemu-2026-09-03-kactivitymanagerd.png`): el panel salía con el reloj y
+  # NADA MÁS, y se leyó como «el panel arranca». No era el panel — era que ninguno de sus applets
+  # tenía icono que dibujar. `kickoff`, `systemtray`, `showdesktop` y `trash` SON un icono y poco
+  # más, así que sin tema quedan de ancho cero; el reloj se ve porque dibuja TEXTO. Los `.so` de los
+  # applets estaban todos instalados (`/usr/lib/qt6/plugins/plasma/applets/`), o sea que el síntoma
+  # no distingue «no cargó» de «cargó y no tiene qué pintar».
+  # El log lo decía en UNA línea que nadie leyó: `kf.iconthemes: Icon theme "breeze" not found.`
+  #
+  # `breeze`, que ya estaba de raíz, es el tema de WIDGETS y de CURSORES: instala
+  # `usr/share/icons/Breeze_Light` y `usr/share/icons/breeze_cursors`, que son punteros de ratón, no
+  # iconos de aplicación. Los ~11.000 iconos viven en `breeze-icons`, receta APARTE que estaba
+  # sellada desde siempre y que no declaraba NINGÚN perfil. Misma figura que las fuentes y que
+  # `foot`: es data de RUNTIME, no la alcanza ninguna arista de BUILD, y la clausura no la puede
+  # echar de menos porque mide lo declarado.
+  #
+  # `hicolor-icon-theme` es el FALLBACK obligatorio del estándar freedesktop: cada aplicación
+  # instala sus iconos en `usr/share/icons/hicolor/...` y todo buscador termina ahí cuando el tema
+  # activo no tiene lo pedido. Sin su `index.theme` el directorio existe pero NO es un tema y la
+  # búsqueda no lo recorre. Vive en el corpus desde hoy (promovida con hash IDÉNTICO
+  # b3:98ad44a5 desde `incoming-gnome`/`incoming-cosmic`, 0 rebuilds en sus 4 consumidores) para que
+  # la alcancen las cuatro imágenes.
+  "breeze-icons", "hicolor-icon-theme",
 ]
 
 [perfil.escritorio-gnome]
@@ -298,6 +322,22 @@ paquetes = [
   # Arreglarlo de verdad pide re-sellar pipewire, que arrastra 7 artefactos —entre ellos dos Rust
   # que ya murieron por OOM— así que se paga el día que pipewire se re-selle por otro motivo.
   "expat-shared", "libffi-shared", "bzip2-shared", "ncurses-shared",
+  # ── TEMA DE ICONOS Y DE CURSORES ─────────────────────────────────────────────────────────────
+  # Añadido el 2026-09-03: medido sobre los artefactos del cierre, este perfil tenía **CERO** temas
+  # de iconos — ni siquiera `hicolor`. Se ve en `docs/evidencia/gnome-shell-qemu-2026-09-03-libs-
+  # compartidas.png`: la barra superior trae la fecha (texto) y el pill de espacios de trabajo, y la
+  # DERECHA está vacía — los indicadores de red, volumen y batería son iconos, y no había ninguno
+  # que dibujar. Mismo defecto que en KDE y por el mismo motivo: data de RUNTIME que no alcanza
+  # ninguna arista de BUILD.
+  #
+  # `adwaita-icon-theme` estaba escrita y SELLADA desde el frente GNOME y no la declaraba nadie. Su
+  # propia cabecera explica por qué la escribieron: mutter avisa `No cursor theme available` y **sin
+  # tema de cursor no hay puntero visible** con el cursor por software que obliga virtio-gpu. Los
+  # XCursor viven ahí adentro (`Adwaita/cursors/`), no en un paquete aparte.
+  # `hicolor-icon-theme` va explícito aunque Adwaita lo declare `Inherits=hicolor`: la herencia se
+  # resuelve en RUNTIME leyendo el `index.theme` del padre, así que el padre tiene que estar
+  # INSTALADO. Desde hoy se resuelve contra el corpus (misma receta, mismo hash).
+  "adwaita-icon-theme", "hicolor-icon-theme",
 ]
 
 [perfil.escritorio-cosmic]
@@ -549,4 +589,17 @@ paquetes = [
   # En COSMIC habría que VERIFICAR si cosmic-comp expone el protocolo antes de listarlo.
   # Es la app que cobra la promoción de pipewire al corpus (2026-09-03): antes grababa muda.
   "wf-recorder",
+  # ── EL TEMA DE ICONOS BASE ───────────────────────────────────────────────────────────────────
+  # Añadido el 2026-09-03 por el barrido que destapó que KDE y GNOME corrían SIN tema de iconos.
+  # Acá el agujero es más chico y conviene decir exactamente cuánto: los cuatro programas gráficos
+  # de esta imagen —foot, swayimg, mpv, wf-recorder— no piden iconos de tema, y `zathura` es GTK4,
+  # que lleva sus iconos de UI COMPILADOS en el recurso de la librería. O sea que acá no hay una
+  # captura con la barra vacía como en las otras dos.
+  # Lo que sí falta es el FALLBACK del estándar: sin `hicolor/index.theme` instalado, los iconos que
+  # una aplicación instala en `usr/share/icons/hicolor/...` son invisibles para cualquier buscador,
+  # porque ese directorio no cuenta como tema. Es el piso, y cuesta un artefacto de datos.
+  # Un tema COMPLETO (Adwaita, Breeze) sería una decisión aparte y NO gratis: los dos viven en colas
+  # hermanas —`incoming-gnome` e `incoming-kde`— y desde acá no se alcanza una cola hermana, así que
+  # pedirlo es promover uno al corpus. Queda escrito para que se elija, no para que se descubra.
+  "hicolor-icon-theme",
 ]
diff --git a/recipes/incoming-cosmic/hicolor-icon-theme.toml b/recipes/hicolor-icon-theme.toml
similarity index 100%
rename from recipes/incoming-cosmic/hicolor-icon-theme.toml
rename to recipes/hicolor-icon-theme.toml
diff --git a/recipes/incoming-gnome/hicolor-icon-theme.toml b/recipes/incoming-gnome/hicolor-icon-theme.toml
deleted file mode 100644
index c734f6fa..00000000
--- a/recipes/incoming-gnome/hicolor-icon-theme.toml
+++ /dev/null
@@ -1,34 +0,0 @@
-# hicolor-icon-theme 0.18 — el tema de iconos BASE del estándar freedesktop, y nada más que su
-# esqueleto: un `index.theme` y el árbol de directorios vacíos por tamaño y categoría.
-#
-# QUÉ ES Y POR QUÉ HACE FALTA: `hicolor` es el tema de FALLBACK obligatorio de la especificación de
-# iconos. Cada aplicación instala sus iconos en `/usr/share/icons/hicolor/...`, y todo buscador de
-# iconos (GTK, Qt, el shell) termina ahí cuando el tema activo no tiene lo que se pide. Sin su
-# `index.theme` el directorio existe pero NO es un tema: la búsqueda no lo recorre y los iconos de
-# las aplicaciones quedan invisibles aunque los ficheros estén en su sitio.
-#
-# No trae ni un icono propio, a propósito — es el contrato, no el contenido. De ahí que sea la receta
-# más chica del frente y a la vez la que no se puede saltear.
-#
-# Ojo con la versión: hasta 0.17 era autotools; **0.18 pasó a meson** y el tarball ya no trae
-# `configure` (ni `configure.ac`). Un `./configure` heredado de la receta vieja sale con 127.
-name    = "hicolor-icon-theme"
-version = "0.18"
-license = "GPL-2.0-or-later"
-
-[source]
-tarball = "https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.18.tar.xz"
-sha256  = "db0e50a80aa3bf64bb45cbca5cf9f75efd9348cf2ac690b907435238c3cf81d7"
-
-[build]
-compiler = "zig-cc"
-target   = "x86_64-linux-musl"
-link     = "dynamic"
-
-[build.phases]
-configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload"
-compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
-install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"
-
-[deps]
-build = ["meson", "samurai", "python3", "pkgconf"]