gnome onda-1: jubilar la cola entera — molia para nadie
Cierra la jubilacion empezada con gnome-desktop. Las 5 recetas que quedaban: - glib, glib-introspected, gobject-introspection, py3-setuptools: byte a byte identicas a las de incoming-gnome Y con el MISMO ArtifactHash, o sea que sellaban en la misma direccion y entraban por cache-hit. Coste de build cero; coste real: un segundo sitio donde editar, que se separa en silencio. - gsettings-desktop-schemas: la unica distinta, y es la version ANTERIOR al 2026-07-28 (introspection=false + link=static). La vigente lo activo porque el gir de Meta de mutter incluye GDesktopEnums-3.0.gir, que sale de ahi, y sin el el g-ir-scanner corta en el ultimo target de mutter (721/722). Lo caro no era el tiempo sino el NOMBRE: el gsettings viejo competia con el bueno, dos artefactos homonimos con hash distinto en el store. Podado el huerfano (0fb1703d, 155 KiB exclusivos) y anotado en el ledger anti-churn; los otros cuatro artefactos siguen vigentes porque los produce incoming-gnome. Y al jubilar gnome-desktop las dos hojas de la cola se habian quedado sin consumidor: la cola se alimentaba a si misma y terminaba en el aire. Sale tambien de QUEUES en farm-worker-loop.sh, por la simetrica de la regla que ese fichero ya documenta dos veces: una cola ausente de la lista no da error, da silencio — y una cola retirada que sigue en la lista, tambien. Gate --check OK, grafo CIERRA, escritorio-gnome sigue 119/119, corpus 786/787. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LykB7vw38b4Ck1Zij15RQ4
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
11 archivos · +57 −230
- docs/state/build-state-cosmic.json +9 −9
- docs/state/build-state-gnome.json +9 −9
- docs/state/build-state-kde.json +9 −9
- docs/state/build-state-wlr.json +9 −9
- docs/state/build-state.json +9 −9
- recipes/incoming-gnome-onda1/glib-introspected.toml +0 −28
- recipes/incoming-gnome-onda1/glib.toml +0 −44
- recipes/incoming-gnome-onda1/gobject-introspection.toml +0 −47
- recipes/incoming-gnome-onda1/gsettings-desktop-schemas.toml +0 −27
- recipes/incoming-gnome-onda1/py3-setuptools.toml +0 −37
- scripts/farm/farm-worker-loop.sh +12 −2
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