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…
boost: `b2 install` en vez de un cp a mano, para que exista BoostConfig.cmake
1# fcitx5-anthy 5.1.11 — el SEGUNDO método de entrada. Con esto se escribe japonés.
2#
3# ══ QUÉ AÑADE ══════════════════════════════════════════════════════════════════════════════════
4# El 2026-10-20 entró el coreano (`fcitx5-hangul`) y con él la cadena completa quedó probada: marco
5# + motor + fuentes + los dos protocolos de Wayland. Esto es el segundo idioma por el mismo camino,
6# y el japonés es el caso MÁS exigente de los tres grandes: no elige entre candidatos homófonos
7# puntuales sino que convierte frases enteras de kana a una mezcla de kanji y kana, con diccionario
8# y estadística. Eso lo hace `anthy-unicode`; esto es el puente a fcitx5.
9#
10# ══ ⚠ ME CORRIJO: ESTO CUESTA UNA RECETA, NO DOS ═══════════════════════════════════════════════
11# En `fcitx5-hangul` escribí que el japonés costaba «2 — `anthy` + `fcitx5-qt`», y era FALSO. Lo
12# saqué de los `makedepends` de Alpine sin abrir el `CMakeLists.txt`, que es el mismo error que
13# cometí inventando una dep `fmt` para `fcitx5`.
14#
15# Medido: el `CMakeLists.txt` de fcitx5-anthy **no menciona Qt ni una vez**. Sus `find_package` son
16# `ECM`, `Fcitx5Core`, `Fcitx5Module COMPONENTS Clipboard TestFrontend`, `Gettext` y `PkgConfig`, y
17# su única dep externa es el motor (línea 21: prueba `anthy-unicode` y cae a `anthy`). El
18# `fcitx5-qt-dev` de Alpine será de algún subpaquete suyo; acá no hace falta. ⇒ japonés = 1 receta.
19#
20# `Fcitx5Module COMPONENTS Clipboard TestFrontend`: las dos las publica nuestro `fcitx5` —
21# `libclipboard.so` está entre sus 20 addons, y `TestFrontend` existe porque el 20-oct hubo que
22# poner `ENABLE_TESTING_ADDONS=On` (una perilla que parecía de test y publicaba interfaz).
23#
24# ⚠ `link = "dynamic"` obligatorio, como todo addon de fcitx5: es un `.so` que el daemon carga con
25# `dlopen` desde `/usr/lib/fcitx5/`. Por eso `anthy-unicode` se construye con `b_staticpic`.
26# `PKG_CONFIG_ARGN=--static` por lo de siempre en este corpus: pkg-config sólo entrega los
27# `Requires.private` en modo estático, y sin eso faltan los `-l` de las privadas.
28#
29# `ENABLE_TEST=Off`: su `option()` lo trae en On y el test suite no se corre acá.
30name = "fcitx5-anthy"
31version = "5.1.11"
32license = "GPL-2.0-or-later"
33
34[source]
35tarball = "https://github.com/fcitx/fcitx5-anthy/archive/refs/tags/5.1.11/fcitx5-anthy-5.1.11.tar.gz"
36sha256 = "822aeb52b631cdd273735089dc775f8c1c5cbb5a4d74d47715aaf183d5bba48b"
37
38[build]
39compiler = "zig-cc"
40target = "x86_64-linux-musl"
41link = "dynamic"
42flags = []
43
44[build.phases]
45configure = '''
46ZW="$PWD/.zwrap"; mkdir -p "$ZW"
47printf '#!/bin/sh\nexec /opt/zig/zig cc -mcpu=baseline "$@"\n' > "$ZW/cc"
48printf '#!/bin/sh\nexec /opt/zig/zig c++ -mcpu=baseline "$@"\n' > "$ZW/cxx"
49chmod +x "$ZW/cc" "$ZW/cxx"
50rm -rf build
51cmake -B build -G Ninja -Wno-dev \
52 -DCMAKE_C_COMPILER="$ZW/cc" -DCMAKE_CXX_COMPILER="$ZW/cxx" \
53 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr \
54 -DPKG_CONFIG_ARGN=--static \
55 -DENABLE_TEST=Off
56'''
57compile = "cmake --build build"
58# Guardián por SUBCADENA y no por nombre exacto: la convención de fcitx5 es `lib<nombre>.so`
59# —`libclassicui.so`, `libclipboard.so`— y pedir `anthy.so` daría un falso positivo que rechaza un
60# build bueno. Eso pasó ayer con `fcitx5-hangul` y costó una vuelta entera.
61install = '''
62set -e
63DESTDIR=/out cmake --install build
64so=$(find /out/usr/lib/fcitx5 -name '*anthy*.so' 2>/dev/null | head -1)
65[ -n "$so" ] || { echo "fcitx5-anthy: no hay ningún *anthy*.so en /usr/lib/fcitx5 — NO sello un motor que el daemon no puede cargar" >&2; ls -R /out/usr/lib 2>/dev/null | head -20 >&2; exit 1; }
66[ -f /out/usr/share/fcitx5/addon/anthy.conf ] || { echo "fcitx5-anthy: falta share/fcitx5/addon/anthy.conf — sin él el daemon no sabe que el addon existe" >&2; exit 1; }
67echo "fcitx5-anthy: addon $(basename "$so") + anthy.conf"
68'''
69
70[deps]
71build = ["cmake", "samurai", "extra-cmake-modules", "pkgconf", "fcitx5", "anthy-unicode",
72 "gettext-tiny", "libxkbcommon", "wayland", "wayland-protocols", "glib", "pcre2",
73 "libffi", "expat", "zlib", "dbus"]