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…
kde/deps: libXft — declarar expat y dejar asentado por qué queda diferido
1# ⏸️ DIFERIDO 2026-07-18: el riesgo PIC de abajo se materializó (ld.lld: relocation R_X86_64_64 contra
2# símbolo local, recompile with -fPIC — freetype.a/libpng.a/expat.a no-PIC dentro de libXft.so). NO se
3# arregla forzando el build: NADIE consume libXft en el árbol. plasma-workspace (su ÚNICO declarante)
4# selló SIN él — KDE es Wayland (WITH_X11=OFF) y Xft es render de fuentes X11 legacy. Reactivar sólo si
5# una app X11 lo exige: entonces sellar variantes .so de freetype/fontconfig (deuda Capa 0) o libXft
6# estático. Nota histórica: la cadena de deps .pc SÍ quedó resuelta (libpng+expat añadidos) — el único
7# muro restante es PIC, no resolución. Movido a .deferred/ para que el loop del worker no lo reintente.
8#
9# libXft 2.3.9 — renderizado de fuentes X con FreeType/fontconfig (Xft.pc, Requires: xrender freetype2
10# fontconfig). Legacy Xft; la piden apps X11 clásicas y algunos temas. Autotools sobre libX11/libXrender.
11#
12# ⚠️ RIESGO PIC (Capa 0): freetype y fontconfig están sellados ESTÁTICOS (.a, sin -fPIC → freetype.toml
13# link=static, fontconfig.toml link=static). libXft se construye como shared (libXft.so) y linkea esas
14# .a; libs estáticas sin PIC no siempre entran en un .so → posible fallo de link (relocation R_X86_64_*
15# against `.text'). Si falla, hay que sellar variantes .so de freetype/fontconfig (deuda Capa 0) o
16# construir libXft estático. NO es blocker de find_package (los .pc existen), sino de link.
17name = "libXft"
18version = "2.3.9"
19
20[source]
21tarball = "https://www.x.org/releases/individual/lib/libXft-2.3.9.tar.xz"
22sha256 = "60a25b78945ed6932635b3bb1899a517d31df7456e69867ffba27f89ff3976f5"
23
24[build]
25compiler = "zig-cc"
26target = "x86_64-linux-musl"
27link = "dynamic"
28zig_version = "0.13.0"
29
30[build.phases]
31configure = '''
32PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/share/pkgconfig \
33./configure --prefix=/usr --disable-static --enable-shared
34'''
35compile = "make -j\"$(nproc)\""
36install = "make install DESTDIR=/out"
37
38[deps]
39build = ["pkgconf", "python3", "util-macros", "xorgproto", "libX11", "libXrender", "freetype", "libpng", "fontconfig", "expat", "libxcb", "libXau", "libXdmcp"]