gnome onda-1: py3-setuptools + destrabar los 2 fallos de la 1ª molienda
El worker molió la onda 1: gsettings-desktop-schemas SELLÓ (hash 4777231b reproducido exacto). Los otros 2 fallaron con causas limpias: - gobject-introspection: meson.build:29 exige `python3 (setuptools)` importable (instala giscanner como paquete python); el python3 del rootfs no lo trae. Fix: receta py3-setuptools (puro-python, copia a site-packages, sin pip ni red — espejo de meson.toml) + declararla en [deps].build. - gnome-desktop: sub-declaré gsettings-desktop-schemas (schemas_dep en meson:62); ya sellada ⇒ añadida a [deps].build. Avanza el diagnóstico al siguiente muro real (iso-codes / xkeyboard-config / libseccomp, frontera genuina de la receta). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -31,8 +31,7 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
# deps = tools meson + gtk4 y su cierre .pc transitivo completo (static ⇒ pkg-config resuelve
|
||||
# Requires.private). libxkbcommon aporta xkbregistry (dep opcional, required:false en meson.build).
|
||||
#
|
||||
# FRONTERA: gsettings-desktop-schemas sin receta — REQUERIDA (schemas_dep, sin opción que la apague).
|
||||
# La autoran otros agentes hacia recipes/incoming-gnome/; añadir a [deps].build cuando aterrice.
|
||||
# gsettings-desktop-schemas: REQUERIDA (schemas_dep) — YA sellada (b3:4777231b), en [deps].build.
|
||||
# FRONTERA: iso-codes sin receta — REQUERIDA (GnomeLanguage lee su prefix vía pkg-config).
|
||||
# FRONTERA: xkeyboard-config sin receta alcanzable — REQUERIDA (xkb_config_dep, lee xkb_base). Existe en
|
||||
# recipes/incoming-kde/ pero el resolver sólo mira incoming-gnome/ + recipes/ (no incoming-kde/):
|
||||
@@ -40,4 +39,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
# FRONTERA: libseccomp sin receta — REQUERIDA INCONDICIONAL en linux (sandbox bwrap+seccomp del
|
||||
# thumbnailer; no hay opción meson para desactivarla).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gtk4", "glib", "gdk-pixbuf", "fontconfig", "libxkbcommon", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gsettings-desktop-schemas", "gtk4", "glib", "gdk-pixbuf", "fontconfig", "libxkbcommon", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"]
|
||||
|
||||
@@ -32,5 +32,7 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
[deps]
|
||||
# glib + su cierre .pc estático (pkgconf resuelve Requires.private: pcre2, zlib, libffi).
|
||||
# flex/bison: el parser de anotaciones del scanner. libffi: además lo enlaza el dumper.
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
|
||||
# py3-setuptools: meson.build:29 exige `python3 (setuptools)` importable (instala giscanner como
|
||||
# paquete python) — el python3 del rootfs NO trae setuptools; se lo damos como módulo sellado.
|
||||
build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
|
||||
# FRONTERA: cairo omitida a propósito (-Dcairo=disabled) — feature-minimal, evita el typelib Cairo-1.0.
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# py3-setuptools 75.8.2 — setuptools como MÓDULO importable de python3, para las recetas cuyo
|
||||
# meson.build exige `python3 (setuptools)` (gobject-introspection:29, y todo el stack GUI-python
|
||||
# que instala giscanner/entry-points). Python PURO: no se compila, se COPIA a site-packages.
|
||||
#
|
||||
# Mismo patrón que meson.toml: hammer evita el camino wheel/pip/gpep517 de Alpine (recetas que no
|
||||
# tiene); la fuente ES el árbol Python sellado y se instala copiando los paquetes tal cual. Hermético
|
||||
# (sin pip ni red). El `.pth` de precedencia de distutils replica lo que hace `pip install setuptools`
|
||||
# para que `_distutils_hack` se active y setuptools gane sobre el distutils del stdlib.
|
||||
name = "py3-setuptools"
|
||||
version = "75.8.2"
|
||||
|
||||
[source]
|
||||
tarball = "https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-75.8.2.tar.gz"
|
||||
sha256 = "4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
# Python puro: nada que compilar.
|
||||
compile = "true"
|
||||
install = '''
|
||||
set -e
|
||||
SP=/out/usr/lib/python3.12/site-packages
|
||||
mkdir -p "$SP"
|
||||
cp -r setuptools pkg_resources _distutils_hack "$SP/"
|
||||
# Replica el distutils-precedence.pth de pip: activa el shim que da precedencia a setuptools.
|
||||
printf '%s\n' "import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim();" \
|
||||
> "$SP/distutils-precedence.pth"
|
||||
'''
|
||||
|
||||
# python3 es dep de RUNTIME (lo importa quien use setuptools como build-dep).
|
||||
[deps]
|
||||
runtime = ["python3"]
|
||||
@@ -31,8 +31,7 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
# deps = tools meson + gtk4 y su cierre .pc transitivo completo (static ⇒ pkg-config resuelve
|
||||
# Requires.private). libxkbcommon aporta xkbregistry (dep opcional, required:false en meson.build).
|
||||
#
|
||||
# FRONTERA: gsettings-desktop-schemas sin receta — REQUERIDA (schemas_dep, sin opción que la apague).
|
||||
# La autoran otros agentes hacia recipes/incoming-gnome/; añadir a [deps].build cuando aterrice.
|
||||
# gsettings-desktop-schemas: REQUERIDA (schemas_dep) — YA sellada (b3:4777231b), en [deps].build.
|
||||
# FRONTERA: iso-codes sin receta — REQUERIDA (GnomeLanguage lee su prefix vía pkg-config).
|
||||
# FRONTERA: xkeyboard-config sin receta alcanzable — REQUERIDA (xkb_config_dep, lee xkb_base). Existe en
|
||||
# recipes/incoming-kde/ pero el resolver sólo mira incoming-gnome/ + recipes/ (no incoming-kde/):
|
||||
@@ -40,4 +39,4 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
# FRONTERA: libseccomp sin receta — REQUERIDA INCONDICIONAL en linux (sandbox bwrap+seccomp del
|
||||
# thumbnailer; no hay opción meson para desactivarla).
|
||||
[deps]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gtk4", "glib", "gdk-pixbuf", "fontconfig", "libxkbcommon", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"]
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "gsettings-desktop-schemas", "gtk4", "glib", "gdk-pixbuf", "fontconfig", "libxkbcommon", "cairo", "pango", "graphene", "libepoxy", "wayland", "wayland-protocols", "libdrm", "harfbuzz", "fribidi", "libpng", "pixman", "freetype", "expat", "libffi", "pcre2", "zlib", "libjpeg-turbo", "libtiff", "mesa"]
|
||||
|
||||
@@ -32,5 +32,7 @@ install = "PYTHONPATH=/usr/lib/python3.12/site-packages DESTDIR=/out meson ins
|
||||
[deps]
|
||||
# glib + su cierre .pc estático (pkgconf resuelve Requires.private: pcre2, zlib, libffi).
|
||||
# flex/bison: el parser de anotaciones del scanner. libffi: además lo enlaza el dumper.
|
||||
build = ["meson", "samurai", "python3", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
|
||||
# py3-setuptools: meson.build:29 exige `python3 (setuptools)` importable (instala giscanner como
|
||||
# paquete python) — el python3 del rootfs NO trae setuptools; se lo damos como módulo sellado.
|
||||
build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "flex", "bison", "glib", "libffi", "pcre2", "zlib"]
|
||||
# FRONTERA: cairo omitida a propósito (-Dcairo=disabled) — feature-minimal, evita el typelib Cairo-1.0.
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# py3-setuptools 75.8.2 — setuptools como MÓDULO importable de python3, para las recetas cuyo
|
||||
# meson.build exige `python3 (setuptools)` (gobject-introspection:29, y todo el stack GUI-python
|
||||
# que instala giscanner/entry-points). Python PURO: no se compila, se COPIA a site-packages.
|
||||
#
|
||||
# Mismo patrón que meson.toml: hammer evita el camino wheel/pip/gpep517 de Alpine (recetas que no
|
||||
# tiene); la fuente ES el árbol Python sellado y se instala copiando los paquetes tal cual. Hermético
|
||||
# (sin pip ni red). El `.pth` de precedencia de distutils replica lo que hace `pip install setuptools`
|
||||
# para que `_distutils_hack` se active y setuptools gane sobre el distutils del stdlib.
|
||||
name = "py3-setuptools"
|
||||
version = "75.8.2"
|
||||
|
||||
[source]
|
||||
tarball = "https://files.pythonhosted.org/packages/source/s/setuptools/setuptools-75.8.2.tar.gz"
|
||||
sha256 = "4880473a969e5f23f2a2be3646b2dfd84af9028716d398e46192f84bc36900d2"
|
||||
|
||||
[build]
|
||||
compiler = "zig-cc"
|
||||
target = "x86_64-linux-musl"
|
||||
link = "static"
|
||||
|
||||
[build.phases]
|
||||
# Python puro: nada que compilar.
|
||||
compile = "true"
|
||||
install = '''
|
||||
set -e
|
||||
SP=/out/usr/lib/python3.12/site-packages
|
||||
mkdir -p "$SP"
|
||||
cp -r setuptools pkg_resources _distutils_hack "$SP/"
|
||||
# Replica el distutils-precedence.pth de pip: activa el shim que da precedencia a setuptools.
|
||||
printf '%s\n' "import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim();" \
|
||||
> "$SP/distutils-precedence.pth"
|
||||
'''
|
||||
|
||||
# python3 es dep de RUNTIME (lo importa quien use setuptools como build-dep).
|
||||
[deps]
|
||||
runtime = ["python3"]
|
||||
Reference in New Issue
Block a user