tawasuyu

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 1371Shell 128Rust 79Markdown 712422 Sutichaykuna

gnome onda 2: gjs inyecta el cierre estático de cairo via cpp_link_args

cairo es dep obligatoria (sin -Dcairo). El link de gjs sólo pone -lcairo, no la
cadena transitiva estática (fontconfig->expat, freetype->png/z, pixman) =>
undefined XML_GetCurrentLineNumber. Inyecto -lfontconfig,-lfreetype,-lpixman-1,
-lpng16,-lexpat,-lz (todas no-GObject: sin doble-estado, a diferencia de
--prefer-static con glib). Se limpia cuando cairo sea isla dinamica (#7).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

5e4dd7ab9d9fe9dbddb0e532e85260b81f12d1f0 · ruwaq sergio · (2 killa ñawpaq) · tayta a425a55ab · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

2 qillqakuna · +14 −10

diff --git a/recipes/incoming-gnome-onda2/gjs.toml b/recipes/incoming-gnome-onda2/gjs.toml
index f3a4e15a..ef5b3d78 100644
--- a/recipes/incoming-gnome-onda2/gjs.toml
+++ b/recipes/incoming-gnome-onda2/gjs.toml
@@ -24,11 +24,13 @@ link     = "dynamic"
 
 [build.phases]
 # -Dbsymbolic_functions=false: el linker zig/lld NO soporta -Bsymbolic-functions (meson.build:89 aborta).
-# -Dcairo=disabled: gjs (dinámico) linkea cairo.a→fontconfig.a→expat, pero meson no arrastra la cadena
-# transitiva estática ⇒ 'undefined symbol: XML_GetCurrentLineNumber'. Es la deuda del cierre C [[#7]].
-# Desactivado para SELLAR el hito (motor JS + introspección GjsPrivate); los bindings cairo (que
-# gnome-shell necesita) vuelven cuando cairo sea isla dinámica. Ver [[gnome-introspection-dinamica]].
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dbsymbolic_functions=false -Dcairo=disabled -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=enabled -Dc_args=-Wno-error=date-time"
+# cpp_link_args: cairo es dep OBLIGATORIA de gjs (no hay -Dcairo). gjs (dinámico) linkea cairo.a que
+# arrastra fontconfig.a→expat, freetype→libpng/zlib, pixman — cadena estática que meson NO pone en la
+# línea (sólo -lcairo) ⇒ 'undefined symbol: XML_GetCurrentLineNumber'. Las inyecto explícitas: son
+# libs NO-GObject ⇒ embeberlas estáticas NO da doble-estado (a diferencia de --prefer-static con glib,
+# que sí daría el SIGSEGV del keystone). Orden = cada lib resuelve símbolos de la anterior. Cuando
+# cairo sea isla dinámica (cierre C, #7) esto se limpia. Ver [[gnome-introspection-dinamica]].
+configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dbsymbolic_functions=false -Dcpp_link_args=-lfontconfig,-lfreetype,-lpixman-1,-lpng16,-lexpat,-lz -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=enabled -Dc_args=-Wno-error=date-time"
 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"
 
diff --git a/recipes/incoming-gnome/gjs.toml b/recipes/incoming-gnome/gjs.toml
index f3a4e15a..ef5b3d78 100644
--- a/recipes/incoming-gnome/gjs.toml
+++ b/recipes/incoming-gnome/gjs.toml
@@ -24,11 +24,13 @@ link     = "dynamic"
 
 [build.phases]
 # -Dbsymbolic_functions=false: el linker zig/lld NO soporta -Bsymbolic-functions (meson.build:89 aborta).
-# -Dcairo=disabled: gjs (dinámico) linkea cairo.a→fontconfig.a→expat, pero meson no arrastra la cadena
-# transitiva estática ⇒ 'undefined symbol: XML_GetCurrentLineNumber'. Es la deuda del cierre C [[#7]].
-# Desactivado para SELLAR el hito (motor JS + introspección GjsPrivate); los bindings cairo (que
-# gnome-shell necesita) vuelven cuando cairo sea isla dinámica. Ver [[gnome-introspection-dinamica]].
-configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dbsymbolic_functions=false -Dcairo=disabled -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=enabled -Dc_args=-Wno-error=date-time"
+# cpp_link_args: cairo es dep OBLIGATORIA de gjs (no hay -Dcairo). gjs (dinámico) linkea cairo.a que
+# arrastra fontconfig.a→expat, freetype→libpng/zlib, pixman — cadena estática que meson NO pone en la
+# línea (sólo -lcairo) ⇒ 'undefined symbol: XML_GetCurrentLineNumber'. Las inyecto explícitas: son
+# libs NO-GObject ⇒ embeberlas estáticas NO da doble-estado (a diferencia de --prefer-static con glib,
+# que sí daría el SIGSEGV del keystone). Orden = cada lib resuelve símbolos de la anterior. Cuando
+# cairo sea isla dinámica (cierre C, #7) esto se limpia. Ver [[gnome-introspection-dinamica]].
+configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Dbsymbolic_functions=false -Dcpp_link_args=-lfontconfig,-lfreetype,-lpixman-1,-lpng16,-lexpat,-lz -Dinstalled_tests=false -Dprofiler=disabled -Dskip_dbus_tests=true -Dskip_gtk_tests=true -Dreadline=enabled -Dc_args=-Wno-error=date-time"
 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"