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 1389Shell 137Markdown 80Rust 802602 Definiciones

fix(distro): el muro de fcitx5 se derribó — dejarlo anotado ya es falso

`fcitx5` figuraba en `MUROS` como `corpus-estatico-sin-pic`, con 7365 errores de PIC medidos. Era
cierto hasta que el operador decidió publicar `libpng`/`freetype`/`fontconfig` con `--with-pic`.
Con eso **fcitx5 SELLA**: `daemon + 17 addon(s) de fábrica`, y el hash que el worker selló
(`b3:8af6dbe9…`) es idéntico al que el hub calculaba.

Se quita del campo en el mismo movimiento, porque **un muro derribado que sigue anotado es la misma
clase de mentira que un hueco falso**: manda a alguien a no intentar algo que ya funciona. Hoy ya
cometí la versión simétrica —anuncié como pendiente el `.conf` de los emoji que fontconfig ya
traía— y el antídoto es el mismo: el campo se mantiene al día o no sirve.

fcitx5 pasa a `tiene-sin-viajar`, que es la verdad: construido y en ningún perfil, porque el marco
sin un motor de idioma daría una barra de IME que no convierte nada.

⚠ Y DE PASO, UN HUECO DE MI MÉTODO EN LA CASCADA, que el latido destapó: calculé los dependientes
del trío **desde un solo grafo** (`build-state-kde.json`). Cada cola tiene el suyo, así que
`escritorio-sway` quedó con 8 recetas de `incoming-wlr` en deuda (dunst, fuzzel, grim, slurp, sway,
swaybg, swaylock, yambar) y la clausura bajó a **8 de 10** en vez de volver a 10. Medido después
sobre los CINCO grafos: cosmic 2 · gnome 2 · kde 2 · **wlr 10** · corpus 2. Las ocho ya están
encoladas. La regla: **una cascada se mide sobre todos los grafos, no sobre el del frente en que uno
está trabajando** — es el mismo aviso que `grafo-estado-build` ya daba («build-state cubre el
catálogo canónico, NO las colas incoming-*») leído al revés.

Estado de la campaña: 36 artefactos traídos al hub con `traer-artefactos.sh`, GC de 13,3 G de
superados (el `/store` estaba al 91 %), y 10 recetas pendientes de las que 2 están compilando.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

a6253e34cf25f34716c01871244ac2ecaa07acfc · por Sergio · (hace 2 d) · padre b49b6166b · ver el árbol en este commit

Delta semántico

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

2 archivos · +9 −20

diff --git a/docs/state/distro-huecos.json b/docs/state/distro-huecos.json
index fcab75d1..71cd7c07 100644
--- a/docs/state/distro-huecos.json
+++ b/docs/state/distro-huecos.json
@@ -45,8 +45,6 @@
    "items": [
     {
      "estado": "tiene-sin-viajar",
-     "muro": "corpus-estatico-sin-pic",
-     "muro_porque": "MEDIDO el 2026-10-19 construyéndolo cinco veces. La receta está escrita, el configure pasa limpio y el compilador termina: muere al ENLAZAR, con **7365** errores `relocation … recompile with -fPIC`. fcitx5 produce OCHO bibliotecas compartidas (libFcitx5Utils/Core/Config + los addons classicui, clipboard, dbus, dbusfrontend, emoji) porque sus métodos de entrada se cargan con dlopen; y este corpus es ESTÁTICO-PRIMERO Y SIN PIC, así que un `.a` del catálogo no entra en un `.so`. Dos se resolvieron en el camino —`libuv` PIC-ificado (radio 1) y `ENABLE_LIBUUID=Off` por el fallback del kernel (util-linux es radio 79)— y el tercero no se puede esquivar: `libpng16.a` + `libfreetype.a` + `libfontconfig.a` los pide `libclassicui.so`, que ES la barra de candidatos, o sea la interfaz del IME. ⇒ NO falta una receta: falta decidir si el trío de fuentes se publica con `--with-pic`. Coste medido: **40 recetas en la unión de sus dependientes transitivos** (no 133: se solapan) y las CINCO imágenes de escritorio rearman. Es la misma decisión que el operador tomó en NEGATIVO para `libpng` el 2026-08-21 —«es estático por diseño; eso es arquitectura del corpus»—, pero el contexto cambió: allá era para salvar UN `.so` que no se quería; acá desbloquea una capacidad entera y a cualquier app futura que necesite enlazar desde un `.so`.",
      "nombre": "fcitx5",
      "parientes": []
     },
diff --git a/scripts/censo-distro.py b/scripts/censo-distro.py
index 815daa2c..3ce96909 100755
--- a/scripts/censo-distro.py
+++ b/scripts/censo-distro.py
@@ -183,24 +183,15 @@ CUBIERTOS = {
 # censo mentía por omisión al contarlas juntas. Sólo entran acá los muros MEDIDOS, con el dato que
 # los prueba; lo demás se queda sin anotar, que es más honesto que adivinar.
 MUROS = {
-    'fcitx5': ('corpus-estatico-sin-pic',
-               "MEDIDO el 2026-10-19 construyéndolo cinco veces. La receta está escrita, el "
-               "configure pasa limpio y el compilador termina: muere al ENLAZAR, con **7365** "
-               "errores `relocation … recompile with -fPIC`. fcitx5 produce OCHO bibliotecas "
-               "compartidas (libFcitx5Utils/Core/Config + los addons classicui, clipboard, dbus, "
-               "dbusfrontend, emoji) porque sus métodos de entrada se cargan con dlopen; y este "
-               "corpus es ESTÁTICO-PRIMERO Y SIN PIC, así que un `.a` del catálogo no entra en un "
-               "`.so`. Dos se resolvieron en el camino —`libuv` PIC-ificado (radio 1) y "
-               "`ENABLE_LIBUUID=Off` por el fallback del kernel (util-linux es radio 79)— y el "
-               "tercero no se puede esquivar: `libpng16.a` + `libfreetype.a` + `libfontconfig.a` "
-               "los pide `libclassicui.so`, que ES la barra de candidatos, o sea la interfaz del "
-               "IME. ⇒ NO falta una receta: falta decidir si el trío de fuentes se publica con "
-               "`--with-pic`. Coste medido: **40 recetas en la unión de sus dependientes "
-               "transitivos** (no 133: se solapan) y las CINCO imágenes de escritorio rearman. Es "
-               "la misma decisión que el operador tomó en NEGATIVO para `libpng` el 2026-08-21 "
-               "—«es estático por diseño; eso es arquitectura del corpus»—, pero el contexto "
-               "cambió: allá era para salvar UN `.so` que no se quería; acá desbloquea una "
-               "capacidad entera y a cualquier app futura que necesite enlazar desde un `.so`."),
+    # ✅ `fcitx5` ESTUVO ACÁ Y SE FUE: el muro se derribó el 2026-10-19/20. Decía
+    # `corpus-estatico-sin-pic` con 7365 errores de PIC medidos, y era cierto — hasta que el
+    # operador decidió publicar `libpng`/`freetype`/`fontconfig` con `--with-pic` (40 recetas de
+    # cascada, las 5 imágenes de escritorio). Con eso **fcitx5 SELLA**: daemon + 17 addons, mismo
+    # hash en el hub y en el worker. Se quita de `MUROS` en el mismo movimiento, porque un muro
+    # derribado que sigue anotado es exactamente la clase de pendiente inventado que este fichero
+    # existe para no producir — y hoy ya me pasó con el `.conf` de los emoji.
+    # ⇒ fcitx5 pasa a `tiene-sin-viajar`, que es la verdad: construido y en ningún perfil, porque
+    # el marco sin un motor de idioma daría una barra de IME que no convierte nada.
     'kitty': ('sin-opengl-de-escritorio',
               "setup.py:804 hace pkg_config('gl', '--libs') y data-types.h:25 exige OpenGL >= 3.x "
               "core. Medido en el store: NADIE publica `gl.pc` ni `libGL.so` — mesa da egl.pc, "