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 815Rust 56Shell 37Markdown 291229 Definiciones

⎇ a6a9d59e4f0d354cf2c9066538c6fa7016fc6721 recipes/incoming-gnome/ibus.toml TOML · 108 líneas · 7.2 KB Historia crudo

licencias: 936 de 1141 (82%) — detección por evidencia, con sus dos imprecisiones declaradas a6a9d59e4 · sergio ·

1# ibus 1.5.34 — el bus de métodos de entrada (teclados de chino/japonés/coreano, emoji, Unicode).
2# De acá sale el typelib `IBus-1.0`.
3#
4# POR QUÉ ENTRA, y es el caso más claro de la tanda: gnome-shell lo importa desde JavaScript **sin
5# condicional** (`js/misc/dependencies.js`: `import 'gi://IBus?version=1.0'`), aunque el usuario no
6# use ningún método de entrada. El panel de teclado del shell habla con ibus siempre. Dep de RUNTIME
7# invisible al grafo de build — el mismo patrón que AccountsService, Gdm, Geoclue y GWeather.
8#
9# LO QUE SE CONSTRUYE ES LA LIBRERÍA Y EL BUS, NO EL ESCRITORIO DE ibus. Casi todos los
10# `--disable-*` de abajo apagan piezas que dependen de cosas que esta distro no tiene y que el shell
11# no consulta:
12#   --disable-gtk2/3/4                los módulos de método de entrada para GTK. GTK3 no está en el
13#                                     corpus (decisión de X11-al-tacho) y el de GTK4 no hace falta:
14#                                     GTK4 habla `text-input` de Wayland directo con el compositor.
15#                                     ⚠ OJO CON EL TEXTO DE AYUDA DE UPSTREAM: dice `--enable-gtk4`
16#                                     y `--enable-wayland`, lo que sugiere que están APAGADAS por
17#                                     defecto. No lo están: `enable_gtk4=yes` y `enable_wayland=yes`
18#                                     son los defaults reales (configure.ac:277 y :299). Sin
19#                                     `--disable-gtk4` explícito el configure corta pidiendo gtk4.
20#                                     La ayuda miente; el default manda.
21#
22# ⚠ `--enable-wayland` VA PRENDIDA, y no por gusto. Empezó apagada —el módulo Wayland es para que el
23# demonio de ibus hable con un compositor, y el shell implementa `text-input` por su cuenta— pero con
24# `--disable-wayland` el build MUERE igual: `tools/main.c` incluye `<wayland-client.h>` y llama
25# `wl_display_connect`/`wl_display_disconnect` **sin ningún `#ifdef`** (:1260), mientras que el
26# `WAYLAND_LIBS` que resolvería esos símbolos sólo se agrega si la opción está encendida. Es un bug
27# de upstream en su propia configuración «sin Wayland». Prenderla es más honesto que parchear el
28# `tools/`: esta distro ES Wayland. Arrastra `libxkbcommon`, que su PKG_CHECK pide junto a
29# `wayland-client`.
30#   --disable-xim                     el servidor XIM. Es X11 puro.
31#   --disable-setup                   `ibus-setup`, una GUI en Python+GTK3.
32#   --disable-python2 / --disable-python-library / --disable-dbus-python-check
33#                                     bindings de Python 2. No hay Python 2 y no va a haber.
34#   --disable-dconf --enable-memconf  ibus guarda su configuración en dconf por defecto; dconf no
35#                                     está en el corpus (ya lo esquivó gdm por la misma razón).
36#                                     `memconf` es el backend EN MEMORIA que trae upstream para
37#                                     exactamente este caso: la config no persiste entre sesiones,
38#                                     que para un escritorio sin métodos de entrada configurados es
39#                                     la diferencia entre nada y nada.
40#   --disable-systemd-services        acá PID1 es arje-zero.
41#   --disable-appindicator            pide dbusmenu-glib/dbusmenu-gtk3 (bandeja legacy de Ubuntu).
42#   --disable-libnotify               sirve para que el DEMONIO avise «se cambió el método de
43#                                     entrada» por notificación de escritorio. libnotify no está en
44#                                     el corpus, y las notificaciones del escritorio las sirve el
45#                                     propio gnome-shell.
46#   --disable-engine                  el motor `simple` (mapas de teclado de teclas muertas). Va
47#                                     junto con emoji-dict: son datos y lógica de método de entrada,
48#                                     no la librería.
49#   --disable-emoji-dict              el diccionario de emoji se compila desde los XML de CLDR y
50#                                     `/usr/share/unicode/emoji`, datos que no están en el corpus.
51#                                     Se pierde el selector de emoji de ibus, no el typelib.
52#   --disable-unicode-dict            su hermano: el índice de nombres de caracteres se compila desde
53#                                     los ficheros UCD (`NamesList.txt`, `Blocks.txt` de
54#                                     `/usr/share/unicode/ucd`). Apagar emoji-dict NO lo apaga —son
55#                                     dos opciones distintas, y el configure aborta por la segunda
56#                                     después de pasar la primera.
57#   --disable-tests --disable-gtk-doc --disable-vala
58#
59# Las comprobaciones de X11/XFixes y de libevdev/libudev son BLANDAS en el configure.ac
60# (:778 y :785 no abortan, sólo definen un condicional), así que no hace falta apagarlas ni
61# satisfacerlas: se resuelven en "no" solas.
62#
63# ══ LA DEP QUE NO SE VE VENIR: `x11-compose-data` ══════════════════════════════════════════════
64# ibus COMPILA la tabla de teclas muertas de X11 dentro de libibus. `gen-internal-compose-table`
65# (src/gencomposetable.c:70) lee un fichero `Compose` en tiempo de build y lo convierte en un
66# GResource que entra en `ibusresources.c`; ese paso es INCONDICIONAL en su Makefile.am:310 y no hay
67# `--disable-` que lo evite. Sin datos el build muere con
68# `Failed to open file "/X11/locale/en/Compose"`.
69#
70# Los datos viven en el tarball de libX11 —por historia, no por necesidad técnica— así que hay una
71# receta aparte, `x11-compose-data`, que extrae SÓLO los ficheros de locale y no compila una línea
72# de X11. Es la tensión de un escritorio Wayland-only con un mundo Unix cuya tabla de composición
73# sigue publicándose dentro de X11, y queda escrita ahí.
74#
75# También pide `iso-codes` (nombres de idioma para el selector de método de entrada), que ya estaba.
76#
77# ISLA DINÁMICA: el typelib nombra `libibus-1.0.so.5` y gjs la dlopea.
78name    = "ibus"
79version = "1.5.34"
80license = "LGPL-2.1"
81
82[source]
83tarball = "https://github.com/ibus/ibus/releases/download/1.5.34/ibus-1.5.34.tar.gz"
84sha256  = "12a72210ce5250f8a66df562a75e034e67b2bce74c4df2983dc86d1154894943"
85
86[build]
87compiler = "zig-cc"
88target   = "x86_64-linux-musl"
89link     = "dynamic"
90
91[build.phases]
92configure = '''
93set -e
94PKG_CONFIG_PATH=/usr/lib/pkgconfig ./configure --prefix=/usr \
95  --enable-introspection --enable-memconf \
96  --disable-gtk2 --disable-gtk3 --disable-gtk4 --enable-wayland \
97  --disable-xim --disable-dconf \
98  --disable-setup --disable-python2 --disable-python-library \
99  --disable-dbus-python-check --disable-systemd-services \
100  --disable-appindicator --disable-libnotify --disable-engine \
101  --disable-emoji-dict --disable-unicode-dict --disable-tests \
102  --disable-gtk-doc --disable-vala --disable-nls
103'''
104compile = "make"
105install = "DESTDIR=/out make install"
106
107[deps]
108build = ["make", "pkgconf", "python3", "py3-setuptools", "gobject-introspection", "gi-foreign-girs", "glib", "glib-introspected", "iso-codes", "x11-compose-data", "wayland", "wayland-protocols", "libxkbcommon", "dbus-shared", "libffi", "pcre2", "zlib-shared", "expat"]