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…
corpus: expat-shared y libffi-shared cierran la fuga al Alpine del lab
1# libffi-shared 3.5.2 — variante DINÁMICA de libffi.
2#
3# Misma razón que `expat-shared` y `zlib-shared`, y el mismo trío: `sway` es `link = "dynamic"` por
4# diseño y sale con `NEEDED libffi.so.8`, que ningún artefacto sellado producía. El canónico
5# (recipes/libffi.toml) es `--disable-shared` porque su consumidor principal es el enlace estático
6# (python3, los crates `-sys`). Sin esta variante el rootfs hidratado resolvía `libffi.so.8` contra
7# el sysroot Alpine del lab — fuga de soberanía invisible para el store, porque el lab no entra en
8# `hash_inputs`.
9#
10# NO se toca `link` en la canónica: entra en `hash_inputs` y re-hashearía libffi y todo lo que lo
11# lista en deps (glib, python3, mesa, wayland…). El nombre `libffi-shared` es distinto del canónico
12# ⇒ conviven en el store sin pisarse. Va al CORPUS, no a `incoming-wlr/`, porque la resolución de
13# deps es hermano→padre y una receta del corpus no vería una cola.
14#
15# `--disable-exec-static-tramp` se conserva de la canónica: los trampolines estáticos ejecutables de
16# libffi 3.5 asumen un layout de memoria que musl no garantiza. Se cae `--disable-shared` y con él el
17# motivo por el que no había `.so`; el resto del configure es idéntico, a propósito, para que las dos
18# variantes sigan siendo comparables de un vistazo.
19
20name = "libffi-shared"
21version = "3.5.2"
22license = "MIT"
23
24[source]
25tarball = "https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz"
26sha256 = "f3a3082a23b37c293a4fcd1053147b371f2ff91fa7ea1b2a52e335676bac82dc"
27
28[build]
29compiler = "zig-cc"
30target = "x86_64-linux-musl"
31link = "dynamic"
32
33[deps]
34build = ["make"]
35
36[build.phases]
37configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static --with-pic --disable-exec-static-tramp'
38compile = 'make -j"$(nproc)"'
39install = 'make DESTDIR=/out install'