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…

TOML 1389Shell 137Markdown 80Rust 802602 Definiciones

recetas: `-Ddefault_library=both` en las 5 libs meson que sólo publicaban .so

Mismo fallo raíz que ya se corrigió en pixman, ahora en la siguiente capa de la cascada GUI: meson
produce SÓLO .so por defecto, el consumidor enlaza estáticamente y el link muere. gtk4 lo dice
explícito: "unable to find static system library 'xkbcommon'" y "Static library 'drm' not found
for dependency 'libdrm'".

NO son "las 30 recetas meson". De las que no tienen `default_library=both`, 16 declaran
`=static` a propósito (gtk4, glib, cairo, pango…) y pasarlas a `both` sería otro cambio, no este
arreglo. Quedan 13 sin ninguna forma del flag —ojo, hay que buscar las DOS grafías,
`-Ddefault_library` y `--default-library`, o fcft se cuela como falso positivo— y de ésas sólo 5
producen librería que alguien enlaza: libxkbcommon (9 consumidores), libdrm (12), tllist (2),
libinput (1), seatd (1). El resto son ejecutables puros (bwrap, foot, iputils, usbutils, los
mesa-*) donde el flag no produce nada y sólo re-hashearía sin ganancia, o datos (wayland-protocols
son XML de protocolos, no compila librería).

`mesa` queda FUERA a propósito: produce librería y tiene 10 consumidores, pero es un build enorme
y no aparece en la cadena de fallo. Si hace falta, se decide aparte.

Radio de re-sellado medido con `hammer hash --check` antes/después: 8 recetas, de 754 selladas a
746. Las 4 tocadas que estaban selladas (libdrm, libxkbcommon, tllist, seatd) más 4 dependientes
que se invalidan (libepoxy y la cadena mesa, que cuelgan de libdrm). libinput ya estaba en deuda.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

bbcdad1625d911afe2bf6aa515004e839f2c1c56 · por sergio · (hace 3 meses) · padre a10764925 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

5 archivos · +17 −5

diff --git a/recipes/libdrm.toml b/recipes/libdrm.toml
index 09e19b4b..43d59c82 100644
--- a/recipes/libdrm.toml
+++ b/recipes/libdrm.toml
@@ -16,7 +16,10 @@ target   = "x86_64-linux-musl"
 link     = "dynamic"
 
 [build.phases]
-configure = "meson setup output --prefix=/usr --buildtype=release -Dintel=disabled -Dradeon=disabled -Damdgpu=disabled -Dnouveau=disabled -Dvmwgfx=disabled -Dman-pages=disabled -Dvalgrind=disabled -Dtests=false"
+# `-Ddefault_library=both`: meson produce SÓLO .so por defecto. gtk4 enlaza drm ESTÁTICAMENTE y sin
+# `libdrm.a` avisa "Static library 'drm' not found for dependency 'libdrm'". Mismo fallo raíz que
+# ya se corrigió en pixman: el consumidor pide .a y la dep sólo publicó .so.
+configure = "meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dintel=disabled -Dradeon=disabled -Damdgpu=disabled -Dnouveau=disabled -Dvmwgfx=disabled -Dman-pages=disabled -Dvalgrind=disabled -Dtests=false"
 compile   = "ninja -C output"
 install   = "DESTDIR=/out ninja -C output install"
 
diff --git a/recipes/libinput.toml b/recipes/libinput.toml
index 55a4f50a..6a8fc0de 100644
--- a/recipes/libinput.toml
+++ b/recipes/libinput.toml
@@ -16,7 +16,9 @@ link        = "dynamic"
 zig_version = "0.13.0"
 
 [build.phases]
-configure = "meson setup output --prefix=/usr --buildtype=release -Dlibwacom=false -Ddebug-gui=false -Dtests=false -Ddocumentation=false"
+# `-Ddefault_library=both`: meson produce SÓLO .so por defecto y sus consumidores enlazan
+# ESTÁTICAMENTE. Mismo fallo raíz que ya se corrigió en pixman.
+configure = "meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dlibwacom=false -Ddebug-gui=false -Dtests=false -Ddocumentation=false"
 compile   = "ninja -C output"
 install   = "DESTDIR=/out ninja -C output install"
 
diff --git a/recipes/libxkbcommon.toml b/recipes/libxkbcommon.toml
index 67602edb..b11906c6 100644
--- a/recipes/libxkbcommon.toml
+++ b/recipes/libxkbcommon.toml
@@ -16,7 +16,10 @@ link        = "dynamic"
 zig_version = "0.13.0"
 
 [build.phases]
-configure = "meson setup output --prefix=/usr --buildtype=release -Denable-x11=false -Denable-docs=false -Denable-wayland=false -Denable-xkbregistry=false -Denable-tools=false"
+# `-Ddefault_library=both`: meson produce SÓLO .so por defecto. gtk4 enlaza xkbcommon ESTÁTICAMENTE
+# y sin `libxkbcommon.a` muere con "unable to find static system library 'xkbcommon'". Mismo fallo
+# raíz que ya se corrigió en pixman: el consumidor pide .a y la dep sólo publicó .so.
+configure = "meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Denable-x11=false -Denable-docs=false -Denable-wayland=false -Denable-xkbregistry=false -Denable-tools=false"
 compile   = "ninja -C output"
 install   = "DESTDIR=/out ninja -C output install"
 
diff --git a/recipes/seatd.toml b/recipes/seatd.toml
index 4d42785c..33bb520f 100644
--- a/recipes/seatd.toml
+++ b/recipes/seatd.toml
@@ -15,7 +15,9 @@ link        = "dynamic"
 zig_version = "0.13.0"
 
 [build.phases]
-configure = "meson setup output --prefix=/usr --buildtype=release -Dwerror=false -Dlibseat-logind=disabled -Dlibseat-seatd=enabled -Dserver=enabled -Dman-pages=disabled -Dexamples=disabled"
+# `-Ddefault_library=both`: meson produce SÓLO .so por defecto y quien enlaza libseat lo hace
+# ESTÁTICAMENTE. Mismo fallo raíz que ya se corrigió en pixman.
+configure = "meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dwerror=false -Dlibseat-logind=disabled -Dlibseat-seatd=enabled -Dserver=enabled -Dman-pages=disabled -Dexamples=disabled"
 compile   = "ninja -C output"
 install   = "DESTDIR=/out ninja -C output install"
 
diff --git a/recipes/tllist.toml b/recipes/tllist.toml
index 73ed3ba2..9af73aad 100644
--- a/recipes/tllist.toml
+++ b/recipes/tllist.toml
@@ -13,7 +13,9 @@ target   = "x86_64-linux-musl"
 link     = "static"
 
 [build.phases]
-configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Db_lto=false"
+# `-Ddefault_library=both`: meson produce SÓLO .so por defecto, y fcft/foot enlazan tllist
+# ESTÁTICAMENTE. Mismo fallo raíz que ya se corrigió en pixman.
+configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Db_lto=false"
 compile   = "PYTHONPATH=/usr/lib/python3.12/site-packages ninja -C output"
 install   = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson install -C output --no-rebuild"