From 59c4973bd91134716a5ae31089655ba17c7a89d4 Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 7 Aug 2026 18:32:31 -0400 Subject: [PATCH] =?UTF-8?q?granja:=20el=20filtro=20de=20=C2=ABya=20sellado?= =?UTF-8?q?=C2=BB=20miraba=20el=20nombre=20equivocado=20=E2=80=94=20lo=20a?= =?UTF-8?q?rreglo=20antes=20de=20que=20cueste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El bloque que añadí hace un rato usaba `basename $f .toml` como nombre del artefacto. **Está mal**: el artefacto en el store se llama por el campo `name` de la RECETA, no por el fichero, y en 17 recetas del catálogo esos dos no coinciden. El arquetipo es `recipes/incoming-kde/qtbase.toml`, cuyo `name` es `qt6-qtbase` ⇒ el artefacto es `-qt6-qtbase` y mi `grep` lo buscaba como `-qtbase`. Efecto: las 17 salían «no selladas» y el worker las habría reconstruido — exactamente el desperdicio que este filtro existe para evitar. Se vio porque los 10 «pendientes» de incoming-kde eran todos módulos Qt, que es demasiada coincidencia para ser casualidad; el hub tenía el artefacto con el MISMO hash, sólo que bajo otro nombre. Con el filtro correcto, la foto de la granja es exacta por primera vez: · incoming-kde 205 recetas · 205 en el hub ⇒ **0 pendientes** · incoming-gnome 90 recetas · 87 en el hub ⇒ 3 pendientes: gdm, gnome-session y gnome-settings-daemon, o sea el trío bloqueado por GTK3 · incoming-go / incoming-clib: colas vacías ⇒ **La granja no tiene trabajo construible.** Y ya no lo tenía antes de esto: el worker no posee ni UN artefacto que el hub no tenga (comparadas las dos listas: 0 exclusivos suyos), así que sus últimas 22 horas produjeron cero valor neto. Lo que queda por hacer no es construir sino AUTORAR recetas (wlroots y los WM ligeros, cups, bluez, las gráficas de terceros), y eso es trabajo de hub. Co-Authored-By: Claude Opus 5 (1M context) --- scripts/build-farm.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/build-farm.sh b/scripts/build-farm.sh index e3431b1d..13e77eeb 100755 --- a/scripts/build-farm.sh +++ b/scripts/build-farm.sh @@ -50,7 +50,13 @@ SELLADOS="${SELLADOS:-work/farm-sellados.txt}" if [ -s "$SELLADOS" ]; then saltadas=0; filtrada="" for f in $queue; do - n=$(basename "$f" .toml) + # ⚠ EL NOMBRE DEL ARTEFACTO ES EL CAMPO `name` DE LA RECETA, NO EL DEL FICHERO. Son distintos en + # 17 recetas del catálogo — el arquetipo es `recipes/incoming-kde/qtbase.toml`, cuyo `name` es + # `qt6-qtbase`, y el artefacto en el store se llama `-qt6-qtbase`. Usar el basename daba + # «no sellada» para las 17 y las habría mandado a reconstruir: exactamente el desperdicio que + # este filtro existe para evitar. (Lo tenía mal en la primera versión de este bloque.) + n=$(awk -F'"' '/^name[[:space:]]*=/{print $2; exit}' "$f") + [ -n "$n" ] || n=$(basename "$f" .toml) H=$("$HAMMER" --store "$STORE" hash "$f" 2>/dev/null | tail -1 | sed 's/^b3://') if [ -n "$H" ] && grep -qx "$H-$n" "$SELLADOS"; then saltadas=$((saltadas+1)); continue; fi filtrada="$filtrada $f"