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…

⎇ main recipes/libyaml-shared.toml TOML · 49 líneas · 2.8 KB Historia crudo

sombras -shared: 8 promovidas al corpus, 0 hashes movidos — y cairo se para en un muro real 6e2772109 · sergio ·

1# libyaml-shared 0.2.5 — variante DINÁMICA de libyaml para la isla dinámica de GNOME.
2#
3# Por qué existe: libadwaita declara `Requires: appstream` en su .pc (es dep PÚBLICA desde 1.6, para
4# las release-notes de AdwAboutDialog), y appstream parsea los catálogos DEP-11 con libyaml. En el
5# mundo estático eso da igual, pero la SOMBRA dinámica de libadwaita mete todo ese cierre dentro de
6# `libadwaita-1.so`, y la libyaml.a canónica NO es PIC: 226 reubicaciones R_X86_64_32/32S en secciones
7# de código. Mismo muro que fontconfig/freetype/libpng/libjpeg-turbo/libtiff/libxml2, que ya tienen su
8# sombra en esta cola. libyaml era la ÚNICA no-PIC del cierre de libadwaita sin variante.
9#
10# ⚠ CÓMO SE MIDE «no es PIC», porque la regla corta miente. `readelf -r x.a | grep R_X86_64_32` cuenta
11# también las reubicaciones de `.rela.debug_*`, que son inocuas y existen en TODO objeto. Medido así,
12# libepoxy da 39.630 «no-PIC» — y sin embargo está EMBEBIDA dentro de la libgtk-4.so de la isla, con
13# 3.446 símbolos `epoxy_` definidos. Hay que excluir las secciones de debug:
14#     readelf -r x.a | awk '/^Relocation section/{s=$3} /R_X86_64_32/{if (s !~ /debug/) n++} END{print n}'
15# Con esa prueba el control sale limpio: libepoxy=0 (embebe bien) y fontconfig=1122 (rompe el link).
16#
17# Mismo tarball y misma versión que la canónica: no se abre skew entre el mundo estático y el dinámico.
18name    = "libyaml-shared"
19version = "0.2.5"
20license = "MIT"
21
22[source]
23tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz"
24sha256  = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
25
26[build]
27compiler = "zig-cc"
28target   = "x86_64-linux-musl"
29link     = "dynamic"
30flags    = []
31
32[build.phases]
33configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static'
34compile   = 'make -j"$(nproc)"'
35install   = 'make DESTDIR=/out install'
36
37[deps]
38build = ["make", "pkgconf"]
39
40# ── PROMOVIDA AL CORPUS 2026-08-08 ──────────────────────────────────────────────────────────────
41# Copia literal de la sombra que vivía en una cola `incoming-*`. Se promovió porque la resolución de
42# deps es hermano→padre: una receta del corpus NO ve las de `incoming-*`, así que sin esto ninguna
43# receta canónica puede usar las variantes dinámicas.
44#
45# NO hay riesgo de colisión —el que advierte la nota de `granja-promote-colisiones`— porque el nombre
46# `*-shared` es DISTINTO del canónico: `zlib-shared` no pisa a `zlib`. Verificado además de forma
47# empírica antes de commitear: se calcularon los hashes de LAS 1153 recetas antes y después, y
48# **ninguna cambió**. El hash de esta copia es idéntico al del original, así que su artefacto ya está
49# sellado y no hay que reconstruir nada.