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…
fix(libuv): `--with-pic` — sin él ninguna biblioteca compartida puede enlazarlo
1# libuv 1.52.1 — lib C base (de-Alpinizada, Etapa G). compiler=zig-cc (migrado de gcc, matar-gcc 2026-07-16), configure-split, estático.
2name = "libuv"
3version = "1.52.1"
4license = "MIT"
5
6[source]
7tarball = "https://dist.libuv.org/dist/v1.52.1/libuv-v1.52.1.tar.gz"
8sha256 = "66d511b9e6e334c0e62279eb234fbfb2b3110b1479c09b95b44c7afca8cff9e7"
9patches = ["fix-test-musl.patch"]
10
11[build]
12compiler = "zig-cc"
13target = "x86_64-linux-musl"
14link = "static"
15flags = []
16
17[build.phases]
18# ⚠ `--with-pic` (2026-10-19): sin él el `libuv.a` no es PIC y **ninguna biblioteca compartida puede
19# enlazarlo**. Lo destapó `fcitx5` al enlazar su `libFcitx5Utils.so`:
20# ld.lld: error: relocation R_X86_64_32 cannot be used against local symbol; recompile with -fPIC
21# >>> defined in /usr/lib/libuv.a(libuv_la-proctitle.o)
22# Un ejecutable sí puede enlazar un `.a` no-PIC; un `.so` no. Y el `.so` de fcitx5 no es opcional:
23# es su núcleo, contra el que enlazan todos los addons.
24#
25# ⇒ Acá se arregla la LIBRERÍA y no el consumidor, al revés que en `gdk-pixbuf`/`libpng` (2026-08-21,
26# decisión del usuario), **y la diferencia es el radio, medido antes de tocar**: `libpng` tiene
27# dependientes en cuatro colas y es estático por arquitectura, así que allá se desactivó el único
28# `.so` que estorbaba. `libuv` tiene **radio 1 y NINGUNA imagen declarada** — el único dependiente
29# es el propio fcitx5 —, así que re-sellarlo no arrastra nada y deja la `.a` usable para cualquier
30# consumidor futuro. Sin esto, el siguiente que quiera enlazar libuv desde un `.so` paga el mismo
31# viaje.
32#
33# `--with-pic` es la forma de libtool y la convención de este repo (17 recetas la usan).
34configure = './autogen.sh && ./configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-shared --enable-static --with-pic'
35compile = 'make'
36install = 'make DESTDIR=/out install'
37