From c2ea7cd884e78af4bc7d48216be0218f69848060 Mon Sep 17 00:00:00 2001 From: sergio Date: Mon, 27 Jul 2026 12:29:37 -0400 Subject: [PATCH] gnome onda 2: py3-setuptools en las 4 islas GUI (fix distutils de g-ir-scanner) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Primer ciclo del worker: los 5 targets fallaron, 3 muros distintos: - graphene: compiló+linkeó .so/.a, murió SÓLO en g-ir-scanner con 'ModuleNotFoundError: distutils' (Python 3.12 lo removió). Faltaba declarar py3-setuptools (el shim de setuptools), como ya hacían los keystones. FIX aquí. - pango/gtk4: fallan en meson setup 'cairo-ft does not have required FontConfig support' — la DEUDA DE ALCANCE cobrándose: sin --prefer-static, pkg-config no resuelve las deps estáticas transitivas de cairo. --prefer-static NO sirve (embebería glib en pango.so → doble GType → SIGSEGV del keystone). Fix real = escalar el cierre C (cairo/fontconfig/freetype/harfbuzz) a islas dinámicas. PENDIENTE (pase grande). py3-setuptools agregado igual (lo necesitarán luego). - spidermonkey: 'No module named _ctypes' (python3 del rootfs worker sin _ctypes, skew). No se reconstruye: se SIEMBRA la sellada del laptop (1.3G) ⇒ gjs cache-hit. Este ciclo esperado: graphene sella + gjs sella (spidermonkey sembrado). pango/gdk-pixbuf/gtk4 esperan el cierre C dinámico. Co-Authored-By: Claude Opus 4.8 --- recipes/incoming-gnome-onda2/gdk-pixbuf.toml | 2 +- recipes/incoming-gnome-onda2/graphene.toml | 5 ++++- recipes/incoming-gnome-onda2/gtk4.toml | 2 +- recipes/incoming-gnome-onda2/pango.toml | 2 +- recipes/incoming-gnome/gdk-pixbuf.toml | 2 +- recipes/incoming-gnome/graphene.toml | 5 ++++- recipes/incoming-gnome/gtk4.toml | 2 +- recipes/incoming-gnome/pango.toml | 2 +- 8 files changed, 14 insertions(+), 8 deletions(-) diff --git a/recipes/incoming-gnome-onda2/gdk-pixbuf.toml b/recipes/incoming-gnome-onda2/gdk-pixbuf.toml index 0ad086a8..dcb00958 100644 --- a/recipes/incoming-gnome-onda2/gdk-pixbuf.toml +++ b/recipes/incoming-gnome-onda2/gdk-pixbuf.toml @@ -23,4 +23,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla) + glib-introspected (GObject-2.0.gir) + gobject-introspection (tools) + libpng (loader PNG). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libpng", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libpng", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome-onda2/graphene.toml b/recipes/incoming-gnome-onda2/graphene.toml index 1348035f..0fd8e350 100644 --- a/recipes/incoming-gnome-onda2/graphene.toml +++ b/recipes/incoming-gnome-onda2/graphene.toml @@ -26,5 +26,8 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla dinámica) + glib-introspected (GObject-2.0.gir que referencia el typelib) + # gobject-introspection (g-ir-scanner/compiler). Graphene-1.0 referencia GObject ⇒ necesita el .gir CORE. +# py3-setuptools: g-ir-scanner (giscanner/utils.py) hace `import distutils`, que Python 3.12 ya NO trae; +# py3-setuptools instala el shim de setuptools + el .pth que lo activa. Sin él: ModuleNotFoundError: +# distutils al generar el .gir (mismo requisito que los keystones glib-introspected/g-i). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome-onda2/gtk4.toml b/recipes/incoming-gnome-onda2/gtk4.toml index 6ca9294a..a7cb25f9 100644 --- a/recipes/incoming-gnome-onda2/gtk4.toml +++ b/recipes/incoming-gnome-onda2/gtk4.toml @@ -33,4 +33,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib-introspected + gobject-introspection = la maquinaria de typelibs. pango/gdk-pixbuf/graphene = # ISLAS (shadow) con sus typelibs. El resto = cierre C estático del corpus (wayland/mesa/libdrm/etc.). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "pango", "gdk-pixbuf", "graphene", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "fontconfig", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "pango", "gdk-pixbuf", "graphene", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "fontconfig", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"] diff --git a/recipes/incoming-gnome-onda2/pango.toml b/recipes/incoming-gnome-onda2/pango.toml index 75ea5889..92458f28 100644 --- a/recipes/incoming-gnome-onda2/pango.toml +++ b/recipes/incoming-gnome-onda2/pango.toml @@ -29,4 +29,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla) + glib-introspected (GObject-2.0.gir) + gobject-introspection (tools). El resto = cierre .pc # estático del corpus (cairo/harfbuzz/fribidi/freetype/fontconfig/pixman/libpng/expat). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "harfbuzz", "fribidi", "freetype", "fontconfig", "pixman", "libpng", "expat", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "harfbuzz", "fribidi", "freetype", "fontconfig", "pixman", "libpng", "expat", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome/gdk-pixbuf.toml b/recipes/incoming-gnome/gdk-pixbuf.toml index 0ad086a8..dcb00958 100644 --- a/recipes/incoming-gnome/gdk-pixbuf.toml +++ b/recipes/incoming-gnome/gdk-pixbuf.toml @@ -23,4 +23,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla) + glib-introspected (GObject-2.0.gir) + gobject-introspection (tools) + libpng (loader PNG). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libpng", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libpng", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome/graphene.toml b/recipes/incoming-gnome/graphene.toml index 1348035f..0fd8e350 100644 --- a/recipes/incoming-gnome/graphene.toml +++ b/recipes/incoming-gnome/graphene.toml @@ -26,5 +26,8 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla dinámica) + glib-introspected (GObject-2.0.gir que referencia el typelib) + # gobject-introspection (g-ir-scanner/compiler). Graphene-1.0 referencia GObject ⇒ necesita el .gir CORE. +# py3-setuptools: g-ir-scanner (giscanner/utils.py) hace `import distutils`, que Python 3.12 ya NO trae; +# py3-setuptools instala el shim de setuptools + el .pth que lo activa. Sin él: ModuleNotFoundError: +# distutils al generar el .gir (mismo requisito que los keystones glib-introspected/g-i). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome/gtk4.toml b/recipes/incoming-gnome/gtk4.toml index 6ca9294a..a7cb25f9 100644 --- a/recipes/incoming-gnome/gtk4.toml +++ b/recipes/incoming-gnome/gtk4.toml @@ -33,4 +33,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib-introspected + gobject-introspection = la maquinaria de typelibs. pango/gdk-pixbuf/graphene = # ISLAS (shadow) con sus typelibs. El resto = cierre C estático del corpus (wayland/mesa/libdrm/etc.). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "pango", "gdk-pixbuf", "graphene", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "fontconfig", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "pango", "gdk-pixbuf", "graphene", "libepoxy", "wayland", "wayland-protocols", "libxkbcommon", "libdrm", "fontconfig", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"] diff --git a/recipes/incoming-gnome/pango.toml b/recipes/incoming-gnome/pango.toml index 75ea5889..92458f28 100644 --- a/recipes/incoming-gnome/pango.toml +++ b/recipes/incoming-gnome/pango.toml @@ -29,4 +29,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins # glib(isla) + glib-introspected (GObject-2.0.gir) + gobject-introspection (tools). El resto = cierre .pc # estático del corpus (cairo/harfbuzz/fribidi/freetype/fontconfig/pixman/libpng/expat). [deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "harfbuzz", "fribidi", "freetype", "fontconfig", "pixman", "libpng", "expat", "libffi", "pcre2", "zlib"] +build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "glib", "glib-introspected", "gobject-introspection", "cairo", "harfbuzz", "fribidi", "freetype", "fontconfig", "pixman", "libpng", "expat", "libffi", "pcre2", "zlib"]