Cae el último muro real de la cola GNOME. Cuatro piezas, ninguna en la receta que fallaba: 1. SOMBRA de libadwaita en incoming-gnome/. El «relocation ... libfontconfig.a» no lo ponía xdp-gnome sino el cierre de la libadwaita del CORPUS, receta de la era estática. La del corpus no se toca (3 dependientes ahí). 2. libyaml-shared: la única no-PIC del cierre de libadwaita sin variante. 3. xdg-desktop-portal 1.19.4 en esta cola (COSMIC sigue en 1.18.4). xdp-gnome 48 exige >=1.19.1, y el corte de la dep dura de gstreamer es 1.19.1 EXACTO —1.19.0 no la pide—, así que no hay versión que cumpla ambas. Se saca con dos sed: gstreamer alimenta un solo binario auxiliar (validate-sound) que el daemon invoca por exec, no linkea. Precio: notificaciones con sonido propio quedan rechazadas. Barato vs traer gstreamer+gst-plugins-base al corpus. 4. gettext-tiny + los cierres .pc de libadwaita-1 y gnome-desktop-4. Y se corrige una regla que estaba MAL escrita en la receta: medir PIC con `readelf -r x.a | grep R_X86_64_32` cuenta las reubicaciones de .rela.debug_*, inocuas y presentes en todo objeto. Así medido libepoxy da 39.630 «no-PIC» y sin embargo está embebida dentro de la libgtk-4.so de la isla, con 3.446 símbolos epoxy_ definidos. Excluyendo debug el control sale limpio (libepoxy=0, fontconfig=1122), y el barrido dio 7 no-PIC en vez de 13: ahorró cinco builds, dos de ellos openssl y curl. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
38 lines
1.9 KiB
TOML
38 lines
1.9 KiB
TOML
# libyaml-shared 0.2.5 — variante DINÁMICA de libyaml para la isla dinámica de GNOME.
|
|
#
|
|
# Por qué existe: libadwaita declara `Requires: appstream` en su .pc (es dep PÚBLICA desde 1.6, para
|
|
# las release-notes de AdwAboutDialog), y appstream parsea los catálogos DEP-11 con libyaml. En el
|
|
# mundo estático eso da igual, pero la SOMBRA dinámica de libadwaita mete todo ese cierre dentro de
|
|
# `libadwaita-1.so`, y la libyaml.a canónica NO es PIC: 226 reubicaciones R_X86_64_32/32S en secciones
|
|
# de código. Mismo muro que fontconfig/freetype/libpng/libjpeg-turbo/libtiff/libxml2, que ya tienen su
|
|
# sombra en esta cola. libyaml era la ÚNICA no-PIC del cierre de libadwaita sin variante.
|
|
#
|
|
# ⚠ CÓMO SE MIDE «no es PIC», porque la regla corta miente. `readelf -r x.a | grep R_X86_64_32` cuenta
|
|
# también las reubicaciones de `.rela.debug_*`, que son inocuas y existen en TODO objeto. Medido así,
|
|
# libepoxy da 39.630 «no-PIC» — y sin embargo está EMBEBIDA dentro de la libgtk-4.so de la isla, con
|
|
# 3.446 símbolos `epoxy_` definidos. Hay que excluir las secciones de debug:
|
|
# readelf -r x.a | awk '/^Relocation section/{s=$3} /R_X86_64_32/{if (s !~ /debug/) n++} END{print n}'
|
|
# Con esa prueba el control sale limpio: libepoxy=0 (embebe bien) y fontconfig=1122 (rompe el link).
|
|
#
|
|
# Mismo tarball y misma versión que la canónica: no se abre skew entre el mundo estático y el dinámico.
|
|
name = "libyaml-shared"
|
|
version = "0.2.5"
|
|
|
|
[source]
|
|
tarball = "https://github.com/yaml/libyaml/releases/download/0.2.5/yaml-0.2.5.tar.gz"
|
|
sha256 = "c642ae9b75fee120b2d96c712538bd2cf283228d2337df2cf2988e3c02678ef4"
|
|
|
|
[build]
|
|
compiler = "zig-cc"
|
|
target = "x86_64-linux-musl"
|
|
link = "dynamic"
|
|
flags = []
|
|
|
|
[build.phases]
|
|
configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --disable-static'
|
|
compile = 'make -j"$(nproc)"'
|
|
install = 'make DESTDIR=/out install'
|
|
|
|
[deps]
|
|
build = ["make", "pkgconf"]
|