gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1471Shell 173Rust 105Markdown 943545 Definitions

granja: el filtro de «ya sellado» miraba el nombre equivocado — lo arreglo antes de que cueste

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
`<hash>-qt6-qtbase` y mi `grep` lo buscaba como `<hash>-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) <noreply@anthropic.com>

59c4973bd91134716a5ae31089655ba17c7a89d4 · by sergio · (2 months ago) · parent 129aff9dd · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +7 −1

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 `<hash>-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"