diff --git a/recipes/incoming-gnome-onda1/glib.toml b/recipes/incoming-gnome-onda1/glib.toml index 61ae4ea7..f300b261 100644 --- a/recipes/incoming-gnome-onda1/glib.toml +++ b/recipes/incoming-gnome-onda1/glib.toml @@ -10,9 +10,15 @@ # del resolver (hermano incoming-gnome/ → padre recipes/), SOMBREA la corpus SÓLO para las recetas # GNOME; el resto del árbol sigue con la estática. Ver [[gnome-introspection-dinamica]]. # -# Deps internas (libffi/pcre2/zlib) siguen estáticas: el .so las embebe (self-contained para ésas). +# Deps internas (libffi/pcre2/zlib) estáticas: el .so las embebe (self-contained para ésas). # Runtime: el rootfs de la imagen GNOME necesitará el loader musl (ld-musl-x86_64.so.1) — paso de # ensamblado de imagen, no del build (el sandbox ya lo tiene). +# +# default_library=BOTH (no shared): la isla necesita AMBOS. El `.so` (con SONAME) es lo que +# g-ir-scanner resuelve para la introspección y lo que gjs dlopea en runtime; el `.a` es para el +# link ESTÁTICO INTERNO de los consumidores (el propio g-i compila binarios que hacen `-static +# -lglib-2.0` — sin el `.a` zig falla "unable to find static system library glib-2.0"). Con ambos, +# el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`. name = "glib" version = "2.88.1" @@ -26,10 +32,10 @@ target = "x86_64-linux-musl" link = "dynamic" [build.phases] -# default_library=shared ⇒ libglib-2.0.so.0 &co. con SONAME (lo que g-ir-scanner resuelve). -# introspection=disabled a propósito: los typelibs de GLib/GObject los produce gobject-introspection -# escaneando este .so (externo), no glib a sí misma (evita el ciclo glib↔g-i en el bootstrap). -configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=shared -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false" +# default_library=both ⇒ libglib-2.0.{a,so.0} &co. introspection=disabled a propósito: los typelibs +# de GLib/GObject los produce gobject-introspection escaneando este .so (externo), no glib a sí misma +# (evita el ciclo glib↔g-i en el bootstrap). +configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=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" diff --git a/recipes/incoming-gnome/glib.toml b/recipes/incoming-gnome/glib.toml index 61ae4ea7..f300b261 100644 --- a/recipes/incoming-gnome/glib.toml +++ b/recipes/incoming-gnome/glib.toml @@ -10,9 +10,15 @@ # del resolver (hermano incoming-gnome/ → padre recipes/), SOMBREA la corpus SÓLO para las recetas # GNOME; el resto del árbol sigue con la estática. Ver [[gnome-introspection-dinamica]]. # -# Deps internas (libffi/pcre2/zlib) siguen estáticas: el .so las embebe (self-contained para ésas). +# Deps internas (libffi/pcre2/zlib) estáticas: el .so las embebe (self-contained para ésas). # Runtime: el rootfs de la imagen GNOME necesitará el loader musl (ld-musl-x86_64.so.1) — paso de # ensamblado de imagen, no del build (el sandbox ya lo tiene). +# +# default_library=BOTH (no shared): la isla necesita AMBOS. El `.so` (con SONAME) es lo que +# g-ir-scanner resuelve para la introspección y lo que gjs dlopea en runtime; el `.a` es para el +# link ESTÁTICO INTERNO de los consumidores (el propio g-i compila binarios que hacen `-static +# -lglib-2.0` — sin el `.a` zig falla "unable to find static system library glib-2.0"). Con ambos, +# el consumidor estático encuentra el `.a` y el scanner encuentra el `.so`. name = "glib" version = "2.88.1" @@ -26,10 +32,10 @@ target = "x86_64-linux-musl" link = "dynamic" [build.phases] -# default_library=shared ⇒ libglib-2.0.so.0 &co. con SONAME (lo que g-ir-scanner resuelve). -# introspection=disabled a propósito: los typelibs de GLib/GObject los produce gobject-introspection -# escaneando este .so (externo), no glib a sí misma (evita el ciclo glib↔g-i en el bootstrap). -configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=shared -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false" +# default_library=both ⇒ libglib-2.0.{a,so.0} &co. introspection=disabled a propósito: los typelibs +# de GLib/GObject los produce gobject-introspection escaneando este .so (externo), no glib a sí misma +# (evita el ciclo glib↔g-i en el bootstrap). +configure = "PYTHONPATH=/usr/lib/python3.12/site-packages meson setup output --prefix=/usr --buildtype=release -Ddefault_library=both -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=disabled -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=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"