gnome isla: gobject-introspection SELLA (b3:935cedf3) — keystone GNOME

El palo largo del stack GNOME, sellado. link=dynamic (consistente con la glib .so
de la isla, evita mezcla de estado GType) + build_introspection_data=false: g-i 1.84
sólo generaba aquí los typelibs EXTERNOS de X11/cairo (cairo/xlib/xft/xrandr/xfixes/
win32) — que NO queremos (Wayland-only) y sobre los que g-ir-compiler hace SIGSEGV
bajo musl. Los typelibs CORE (GLib/GObject/Gio) los produce glib (absorbió
girepository). g-i aquí = las TOOLS (g-ir-scanner/compiler) + libgirepository-1.0.so.

Cadena del muro (6 capas): py3-setuptools → wrapper -static/-shared → wrapper
--export-dynamic/.so → glib dinámica → glib default_library=both → introspection_data
off. El scanner (ejecuta código del target, el miedo real) CORRE bit a bit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 01:30:49 -04:00
co-authored by Claude Opus 4.8
parent b57ce69311
commit d83979d6ce
2 changed files with 20 additions and 4 deletions
@@ -22,10 +22,18 @@ sha256 = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# ISLA DINÁMICA: g-i es parte de la isla GNOME y linkea la glib dinámica. link=dynamic para que sus
# binarios internos (g-ir-compiler, dumper) tomen libglib-2.0.so CONSISTENTEMENTE — no mezclar el .a
# (estático) con la glib que ya trae libgirepository-2.0.so (dinámica): esa mezcla da DOS copias del
# estado de GType ⇒ g-ir-compiler SIGSEGV. Ver [[gnome-introspection-dinamica]].
link = "dynamic"
[build.phases]
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=true -Dcairo=disabled -Dc_args=-Wno-error=date-time"
# build_introspection_data=FALSE: g-i 1.84 sólo genera aquí los typelibs EXTERNOS de X11/cairo
# (cairo/xlib/xft/xrandr/xfixes/win32) — que NO queremos (Wayland-only) y sobre los que g-ir-compiler
# hace SIGSEGV bajo musl. Los typelibs CORE (GLib/GObject/Gio) los produce glib (absorbió girepository).
# g-i aquí = las TOOLS (g-ir-scanner/compiler) que usan gtk4 &co. default_library=both (isla dinámica).
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=both -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=false -Dcairo=disabled -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"
@@ -22,10 +22,18 @@ sha256 = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779"
[build]
compiler = "zig-cc"
target = "x86_64-linux-musl"
link = "static"
# ISLA DINÁMICA: g-i es parte de la isla GNOME y linkea la glib dinámica. link=dynamic para que sus
# binarios internos (g-ir-compiler, dumper) tomen libglib-2.0.so CONSISTENTEMENTE — no mezclar el .a
# (estático) con la glib que ya trae libgirepository-2.0.so (dinámica): esa mezcla da DOS copias del
# estado de GType ⇒ g-ir-compiler SIGSEGV. Ver [[gnome-introspection-dinamica]].
link = "dynamic"
[build.phases]
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload --prefer-static -Ddefault_library=static -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=true -Dcairo=disabled -Dc_args=-Wno-error=date-time"
# build_introspection_data=FALSE: g-i 1.84 sólo genera aquí los typelibs EXTERNOS de X11/cairo
# (cairo/xlib/xft/xrandr/xfixes/win32) — que NO queremos (Wayland-only) y sobre los que g-ir-compiler
# hace SIGSEGV bajo musl. Los typelibs CORE (GLib/GObject/Gio) los produce glib (absorbió girepository).
# g-i aquí = las TOOLS (g-ir-scanner/compiler) que usan gtk4 &co. default_library=both (isla dinámica).
configure = "PKG_CONFIG_PATH=/usr/lib/pkgconfig PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload -Ddefault_library=both -Ddoctool=disabled -Dgtk_doc=false -Dtests=false -Dbuild_introspection_data=false -Dcairo=disabled -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"