tawasuyu

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 1572Shell 203Rust 109Markdown 993728 Definitions

fix(fcitx5): `ENABLE_TESTING_ADDONS=Off` dejaba un marco que no puede tener motores

`fcitx5-hangul` —el primer motor— murió con:

    CMake Error at /usr/lib/cmake/Fcitx5Module/Fcitx5ModuleConfig.cmake:22 (find_package):
      Could not find a package configuration file provided by "Fcitx5ModuleTestFrontend"

Causa: yo había puesto `ENABLE_TESTING_ADDONS=Off`. Su `option()` dice «Build testing frontend, im
and ui addons», que **se lee como «cosas de test, fuera»** y así lo razoné en el comentario de la
receta. Pero esa perilla, además de los addons, instala el **módulo de cmake que los consumidores
piden**: `fcitx5-hangul` hace `find_package(Fcitx5Module REQUIRED COMPONENTS TestFrontend)` en su
`CMakeLists:15`, **sin condición**. Así que no es opcional desde fuera: todo motor de fcitx5 lo
exige, y apagarlo deja un marco al que no se le puede enchufar ningún idioma — sellado, con 17
addons, y estructuralmente incapaz de recibir el decimoctavo.

⇒ **La lección es más general que esta receta: una perilla que se llama «testing» puede publicar
INTERFAZ, y la descripción del `option()` no lo dice.** Medir qué deja de instalarse, no leer cómo
se llama. Es pariente de «un directorio vacío como sonda»: el nombre no es el hecho.

Coste medido antes de tocar: **radio 1** — sólo `fcitx5-hangul` cuelga de fcitx5, y todavía no ha
sellado, así que re-sellarlo no arrastra nada.

De paso, lo que ya funcionó: **`libhangul` SELLÓ** (`b3:cf9e172c…`) con el `.pc` sustituido de la
plantilla de upstream, y sus dos guardianes nuevos pasaron — ningún `@marcador@` crudo y la cabecera
en `include/hangul-1.0` donde el `.pc` promete.

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

8a64763d4147eb49ea84c1cd6b5329afc258d3bc · by Sergio · (2 d ago) · parent 52705cbcf · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +16 −3

diff --git a/recipes/fcitx5.toml b/recipes/fcitx5.toml
index 3a8eb736..dde447e6 100644
--- a/recipes/fcitx5.toml
+++ b/recipes/fcitx5.toml
@@ -33,8 +33,21 @@
 #   ENABLE_ENCHANT=Off     predicción de palabras por diccionario: no la pide nadie y trae enchant2
 #   USE_SYSTEMD=Off        acá el init es `arje-zero`. Upstream dice que cae a libuv/libdbus, que SÍ
 #                          están — dejarlo en Auto haría que el build busque algo que no existe
-#   ENABLE_TEST=Off        y `ENABLE_TESTING_ADDONS=Off`, que es su requisito (su propio `option()`
-#                          lo dice). Los addons de prueba son un frontend falso para el test suite
+#   ENABLE_TEST=Off        el test suite de fcitx5 no se corre acá.
+#   ENABLE_TESTING_ADDONS=On  ⚠ **ESTABA EN Off Y ROMPÍA A SUS CONSUMIDORES — corregido 2026-10-20.**
+#                          Su `option()` dice «Build testing frontend, im and ui addons», que se lee
+#                          como «cosas de test, fuera», y así lo puse. Pero además de los addons
+#                          instala el MÓDULO DE CMAKE que los consumidores piden: `fcitx5-hangul`
+#                          hace `find_package(Fcitx5Module REQUIRED COMPONENTS TestFrontend)` en su
+#                          CMakeLists:15, **sin condición**, y murió con
+#                            Could not find … "Fcitx5ModuleTestFrontend" …
+#                            Fcitx5ModuleTestFrontendConfig.cmake
+#                          O sea que no es opcional desde fuera: todo motor de fcitx5 lo exige, y
+#                          apagarlo deja un marco que no puede tener motores. La lección es más
+#                          general que esta receta: **una perilla que se llama «testing» puede
+#                          publicar interfaz, y la descripción del `option()` no lo dice.** Medir
+#                          qué deja de instalarse, no leer cómo se llama.
+#                          Coste: re-sellar fcitx5, radio 1 (sólo fcitx5-hangul cuelga de él).
 #   ENABLE_DOC=Off         doxygen no está en el corpus
 #   BUILD_SPELL_DICT=Off   construye `en_dict.fscd` para el corrector inglés — depende de enchant
 #   ENABLE_LIBUUID=Off     ⚠ ÉSTA ES UNA DECISIÓN DE ARQUITECTURA DEL CORPUS, no una perilla más.
@@ -125,7 +138,7 @@ cmake -B build -G Ninja -Wno-dev \
   -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" -DCMAKE_ASM_COMPILER="$ZW/cc" \
   -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
   -DENABLE_X11=Off -DENABLE_ENCHANT=Off -DUSE_SYSTEMD=Off \
-  -DENABLE_TEST=Off -DENABLE_TESTING_ADDONS=Off -DENABLE_DOC=Off \
+  -DENABLE_TEST=Off -DENABLE_TESTING_ADDONS=On -DENABLE_DOC=Off \
   -DBUILD_SPELL_DICT=Off -DENABLE_LIBUUID=Off \
   -DPKG_CONFIG_ARGN=--static
 '''