diff --git a/docs/state/build-state-cosmic.json b/docs/state/build-state-cosmic.json index a217d367..ded1c07d 100644 --- a/docs/state/build-state-cosmic.json +++ b/docs/state/build-state-cosmic.json @@ -890,7 +890,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "blackbox_exporter": { "iname": "blackbox_exporter", @@ -4322,7 +4322,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 20 + "dependientes_total": 19 }, "flyctl": { "iname": "flyctl", @@ -8497,7 +8497,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 114 + "dependientes_total": 110 }, "libffi-shared": { "iname": "libffi-shared", @@ -9790,7 +9790,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 132 + "dependientes_total": 128 }, "micro": { "iname": "micro", @@ -11094,7 +11094,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 90 + "dependientes_total": 86 }, "pcre2-shared": { "iname": "pcre2-shared", @@ -11338,7 +11338,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 398 + "dependientes_total": 394 }, "plow": { "iname": "plow", @@ -11707,7 +11707,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 301 + "dependientes_total": 297 }, "qrcp": { "iname": "qrcp", @@ -12262,7 +12262,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 266 + "dependientes_total": 262 }, "sassc": { "iname": "sassc", @@ -15098,7 +15098,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 108 + "dependientes_total": 104 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-gnome.json b/docs/state/build-state-gnome.json index 22b9d83b..e36afef1 100644 --- a/docs/state/build-state-gnome.json +++ b/docs/state/build-state-gnome.json @@ -979,7 +979,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "blackbox_exporter": { "iname": "blackbox_exporter", @@ -4058,7 +4058,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 20 + "dependientes_total": 19 }, "flyctl": { "iname": "flyctl", @@ -8903,7 +8903,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 114 + "dependientes_total": 110 }, "libffi-shared": { "iname": "libffi-shared", @@ -10568,7 +10568,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 132 + "dependientes_total": 128 }, "micro": { "iname": "micro", @@ -12015,7 +12015,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 90 + "dependientes_total": 86 }, "peco": { "iname": "peco", @@ -12240,7 +12240,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 398 + "dependientes_total": 394 }, "plow": { "iname": "plow", @@ -12679,7 +12679,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 301 + "dependientes_total": 297 }, "qrcp": { "iname": "qrcp", @@ -13234,7 +13234,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 266 + "dependientes_total": 262 }, "sassc": { "iname": "sassc", @@ -16219,7 +16219,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 108 + "dependientes_total": 104 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-kde.json b/docs/state/build-state-kde.json index 53d1ff21..3b406a3f 100644 --- a/docs/state/build-state-kde.json +++ b/docs/state/build-state-kde.json @@ -1005,7 +1005,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "blackbox_exporter": { "iname": "blackbox_exporter", @@ -4289,7 +4289,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 20 + "dependientes_total": 19 }, "flyctl": { "iname": "flyctl", @@ -12213,7 +12213,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 114 + "dependientes_total": 110 }, "libffi-shared": { "iname": "libffi-shared", @@ -13925,7 +13925,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 132 + "dependientes_total": 128 }, "micro": { "iname": "micro", @@ -15464,7 +15464,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 90 + "dependientes_total": 86 }, "pcre2-shared": { "iname": "pcre2-shared", @@ -15768,7 +15768,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 398 + "dependientes_total": 394 }, "plasma-activities": { "iname": "plasma-activities", @@ -17074,7 +17074,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 301 + "dependientes_total": 297 }, "qcoro": { "iname": "qcoro", @@ -18190,7 +18190,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 266 + "dependientes_total": 262 }, "sassc": { "iname": "sassc", @@ -21624,7 +21624,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 108 + "dependientes_total": 104 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state-wlr.json b/docs/state/build-state-wlr.json index 755cf84f..2365a4b3 100644 --- a/docs/state/build-state-wlr.json +++ b/docs/state/build-state-wlr.json @@ -871,7 +871,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "blackbox_exporter": { "iname": "blackbox_exporter", @@ -3814,7 +3814,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 20 + "dependientes_total": 19 }, "flyctl": { "iname": "flyctl", @@ -7928,7 +7928,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 114 + "dependientes_total": 110 }, "libffi-shared": { "iname": "libffi-shared", @@ -9156,7 +9156,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 132 + "dependientes_total": 128 }, "micro": { "iname": "micro", @@ -10421,7 +10421,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 90 + "dependientes_total": 86 }, "peco": { "iname": "peco", @@ -10613,7 +10613,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 398 + "dependientes_total": 394 }, "plow": { "iname": "plow", @@ -10912,7 +10912,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 301 + "dependientes_total": 297 }, "qrcp": { "iname": "qrcp", @@ -11467,7 +11467,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 266 + "dependientes_total": 262 }, "sassc": { "iname": "sassc", @@ -14515,7 +14515,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 108 + "dependientes_total": 104 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/docs/state/build-state.json b/docs/state/build-state.json index cae4ce5f..e8f1b988 100644 --- a/docs/state/build-state.json +++ b/docs/state/build-state.json @@ -863,7 +863,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 22 + "dependientes_total": 21 }, "blackbox_exporter": { "iname": "blackbox_exporter", @@ -3789,7 +3789,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 20 + "dependientes_total": 19 }, "flyctl": { "iname": "flyctl", @@ -7790,7 +7790,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 114 + "dependientes_total": 110 }, "libffi-shared": { "iname": "libffi-shared", @@ -9018,7 +9018,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 132 + "dependientes_total": 128 }, "micro": { "iname": "micro", @@ -10283,7 +10283,7 @@ "escritorio-kde", "escritorio-sway" ], - "dependientes_total": 90 + "dependientes_total": 86 }, "peco": { "iname": "peco", @@ -10475,7 +10475,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 398 + "dependientes_total": 394 }, "plow": { "iname": "plow", @@ -10774,7 +10774,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 301 + "dependientes_total": 297 }, "qrcp": { "iname": "qrcp", @@ -11329,7 +11329,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 266 + "dependientes_total": 262 }, "sassc": { "iname": "sassc", @@ -14049,7 +14049,7 @@ "escritorio-mirada", "escritorio-sway" ], - "dependientes_total": 108 + "dependientes_total": 104 }, "zlib-ng": { "iname": "zlib-ng", diff --git a/recipes/incoming-gnome-onda1/glib-introspected.toml b/recipes/incoming-gnome-onda1/glib-introspected.toml deleted file mode 100644 index 361f689c..00000000 --- a/recipes/incoming-gnome-onda1/glib-introspected.toml +++ /dev/null @@ -1,28 +0,0 @@ -# glib 2.88.1 — GATE TEST de la isla: glib con introspection=ENABLED (produce GLib/GObject/Gio.typelib -# usando g-ir-scanner+compiler sobre GLib misma). Es el test definitivo del keystone: si sella, -# g-ir-compiler sirve para los typelibs CORE bajo musl (el SIGSEGV era sólo los .gir X11); si revienta, -# el tool está roto. Rompe el ciclo glib↔g-i: deps la g-i YA sellada (que usa la glib-stage1 sin -# introspección, también sellada) ⇒ glib-introspected → g-i → glib(stage1), sin ciclo. -# Ver [[gnome-introspection-dinamica]]. -name = "glib-introspected" -version = "2.88.1" -license = "LGPL-2.1-or-later" - -[source] -tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" -sha256 = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -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 -Ddefault_library=both -Dtests=false -Dnls=disabled -Dlibmount=disabled -Dselinux=disabled -Dman-pages=disabled -Dintrospection=enabled -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" - -# glib (stage1, sin introspección) hidrata libglib-2.0.so.0 para que g-ir-scanner (que _giscanner.so -# dlopea) CORRA al configure. hammer hidrata deps DIRECTAS, no transitivas de g-i ⇒ hay que declararla. -[deps] -build = ["meson", "samurai", "python3", "py3-setuptools", "pkgconf", "gobject-introspection", "glib", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome-onda1/glib.toml b/recipes/incoming-gnome-onda1/glib.toml deleted file mode 100644 index dfff09b4..00000000 --- a/recipes/incoming-gnome-onda1/glib.toml +++ /dev/null @@ -1,44 +0,0 @@ -# glib 2.88.1 — VARIANTE DINÁMICA de la ISLA GNOME (SHADOW de recipes/glib.toml estática). -# -# Por qué existe: el shell de GNOME (gjs/gnome-shell) usa GObject-introspection en RUNTIME — un -# typelib mapea cada tipo a una biblioteca COMPARTIDA que gjs `dlopen`ea. g-ir-scanner exige lo mismo -# al BUILDear: `can't resolve libraries to shared libraries: glib-2.0` si glib es sólo `.a`. Ergo la -# isla GNOME necesita glib como `.so` real (libglib/gobject/gio/gmodule-2.0.so.0 con SONAME). -# -# Por qué NO tocar recipes/glib.toml: la estática la consume el árbol entero (KDE, corpus). Cambiarla -# re-hashearía cientos de sellados. En su lugar esta variante vive en la cola GNOME y, por el orden -# 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) 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" -license = "LGPL-2.1-or-later" - -[source] -tarball = "https://download.gnome.org/sources/glib/2.88/glib-2.88.1.tar.xz" -sha256 = "51ab804c56f6eab3e5045c774d1290ac5e4c923d4f9a3d8e33123bee45c1840e" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "dynamic" - -[build.phases] -# 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" - -[deps] -build = ["meson", "samurai", "python3", "pkgconf", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome-onda1/gobject-introspection.toml b/recipes/incoming-gnome-onda1/gobject-introspection.toml deleted file mode 100644 index 4f2a091c..00000000 --- a/recipes/incoming-gnome-onda1/gobject-introspection.toml +++ /dev/null @@ -1,47 +0,0 @@ -# gobject-introspection 1.84.0 — el escáner de metadata de GNOME (g-ir-scanner + typelibs). -# Es dep de casi toda lib GNOME (gtk4/libadwaita/etc. lo declaran cuando -Dintrospection=enabled). -# meson static, backend feature-minimal: doctool/gtk_doc/tests off, PERO build_introspection_data=true -# (los .gir/.typelib SON su razón de ser). -# -# BORRADOR PARA EL MAPA — dificultad conocida: g-ir-scanner NO es puro metadata. Para cada lib -# COMPILA y EJECUTA un pequeño binario "dumper" enlazado contra el target para volcar los GTypes en -# runtime. En un lab cross/hermetico static-musl esto es el palo largo del stack GNOME: -# 1) ejecutar un binario del target dentro del sandbox (aquí target==host x86_64-linux-musl, así que -# NO hay emulación — a favor nuestro; el escenario cross real necesitaría qemu/exe_wrapper). -# 2) el dumper enlaza estático contra glib+libffi; el scanner invoca al compilador (CC/zig-cc) y al -# linker en runtime ⇒ necesita el toolchain + el cierre .pc COMPLETO visible en PKG_CONFIG_PATH. -# 3) suele pelear con -static / musl (símbolos de introspección, gi-dump). PROBABLEMENTE NO selle a -# la primera — dejar como frontera medida, no como sellado asumido. -name = "gobject-introspection" -version = "1.84.0" -license = "LGPL-2.0-or-later AND GPL-2.0-or-later" - -[source] -tarball = "https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.tar.xz" -sha256 = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -# 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] -# 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" - -[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. -# 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. diff --git a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml b/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml deleted file mode 100644 index 76df8499..00000000 --- a/recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml +++ /dev/null @@ -1,27 +0,0 @@ -# gsettings-desktop-schemas 48.0 — los schemas GSettings compartidos de GNOME (org.gnome.desktop.*): -# fondo, interface, wm, a11y, sound… Casi todo el escritorio los lee en runtime. Receta LIVIANA: -# compila XML de schemas + una libcita de enums; meson static. sha256 REAL de curl|sha256sum. -# -# Feature-minimal: introspection=false (el typelib no lo exige el runtime de schemas; si mutter/gjs -# lo pidieran vía typelib, se re-activa). Sin docs/tests. -name = "gsettings-desktop-schemas" -version = "48.0" -license = "LGPL-2.1-or-later" - -[source] -tarball = "https://download.gnome.org/sources/gsettings-desktop-schemas/48/gsettings-desktop-schemas-48.0.tar.xz" -sha256 = "e68f155813bf18f865a8b2c8e9d473588b6ccadcafbb666ab788857c6c2d1bd3" - -[build] -compiler = "zig-cc" -target = "x86_64-linux-musl" -link = "static" - -[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 -Dintrospection=false -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" - -# glib aporta gio (compila los schemas) + su cierre .pc. gobject-introspection sólo si introspection=true. -[deps] -build = ["meson", "samurai", "python3", "pkgconf", "glib", "libffi", "pcre2", "zlib"] diff --git a/recipes/incoming-gnome-onda1/py3-setuptools.toml b/recipes/incoming-gnome-onda1/py3-setuptools.toml deleted file mode 100644 index 21ac6f87..00000000 --- a/recipes/incoming-gnome-onda1/py3-setuptools.toml +++ /dev/null @@ -1,37 +0,0 @@ -# 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" -license = "MIT" - -[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"] diff --git a/scripts/farm/farm-worker-loop.sh b/scripts/farm/farm-worker-loop.sh index c024c680..82ba7074 100755 --- a/scripts/farm/farm-worker-loop.sh +++ b/scripts/farm/farm-worker-loop.sh @@ -99,9 +99,19 @@ DISK_HIGH="${DISK_HIGH:-82}" # de COSMIC — no fallaban, es que nadie las intentaba. Es el mismo modo de fallo que "el corpus no # está en las QUEUES del worker": una cola ausente no da error, da silencio. # REGLA: crear una cola `recipes/incoming-*` y no añadirla acá es dejarla muerta. Si aparece una -# nueva, va en esta línea EN EL MISMO COMMIT. +# nueva, va en esta línea EN EL MISMO COMMIT. Y la simétrica: si una cola se RETIRA, sale de acá en +# el mismo commit, o el worker muele un glob vacío para siempre sin que nada lo diga. +# +# `incoming-gnome-onda1` SE RETIRÓ el 2026-09-01, y el motivo cierra el arco de los dos párrafos de +# arriba: sus 6 recetas eran 4 duplicados byte a byte de `incoming-gnome` —mismo ArtifactHash, o sea +# que sellaban en la MISMA dirección y entraban por cache-hit—, más `gnome-desktop` sin +# `xkeyboard-config` en `[deps]`, más un `gsettings-desktop-schemas` con `introspection=false`, que +# es la versión ANTERIOR al 2026-07-28 (mutter necesita el `GDesktopEnums-3.0.gir` que sale de ahí). +# Al jubilar `gnome-desktop` las dos hojas de la cola se quedaron sin consumidor: molía para nadie. +# ⚠ Lo caro no era el tiempo —todo salía por caché— sino que el `gsettings-desktop-schemas` viejo +# competía por el NOMBRE con el bueno: dos artefactos homónimos con hash distinto en el store. # Orden: las colas con deuda van ANTES de las cerradas (kde 163/163, wlr 129/129 salen por cache-hit). -QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib recipes/incoming-gnome-onda1 recipes/incoming-gnome-onda2 recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}" +QUEUES="${QUEUES:-recipes/incoming recipes/incoming-go recipes/incoming-clib recipes/incoming-gnome-onda2 recipes/incoming-gnome recipes/incoming-cosmic recipes/incoming-kde recipes/incoming-wlr}" # REBUILD DEL BINARIO AL ARRANCAR (2026-07-18): el hammer horneado en la imagen golden ENVEJECE. # Caso real que costó una noche de KDE: la golden del 29-jun traía un hammer sin el fix del overlay