campana-deuda: PODA_FUENTES=1 — la campaña se poda sola, dentro del bucle
Las 71 recetas KDE de la cascada de kcoreaddons se muelen en ESTA máquina (sin worker de pago) y `work/sources` vive en `/mnt/vvv`, que arrancó la campaña con 16 G libres. A ~300 MB de árbol por receta, sin podar la campaña se come el disco antes de la onda 4 — y con el disco lleno git falla a mitad y deja el índice a medias, que ya pasó. La poda va DENTRO del bucle y no en un cron paralelo, que es el punto: ahí tenemos el lock Y acabamos de terminar un build, así que no hay ningún bwrap usando un árbol. Correr `poda-fuentes.sh` en paralelo sería el ADR 0012 en su forma más directa — su propio encabezado avisa de que el mtime NO distingue «viejo» de «lento». No cuesta nada: `fetch.rs` borra y re-extrae el árbol en CADA build, nunca lo reutiliza. Default apagado (0), para no cambiarle el comportamiento al worker. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YGXe6mShYYw6V8ea1dQ13u
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +10 −0
diff --git a/scripts/farm/campana-deuda.sh b/scripts/farm/campana-deuda.sh
index 2de83c2f..0e43c2d1 100755
--- a/scripts/farm/campana-deuda.sh
+++ b/scripts/farm/campana-deuda.sh
@@ -88,6 +88,16 @@ for r in $DEUDA; do
else
fail=$((fail + 1)); falladas="$falladas $r"; echo "$(ts) [$i/$total] ✗ $r" | tee -a "$LOG"
fi
+ # PODA_FUENTES=1 — borra el árbol de fuentes DENTRO del bucle, que es el único sitio donde es
+ # seguro: acá tenemos el lock Y acabamos de terminar un build, así que no hay ningún `bwrap`
+ # usando un árbol. Es lo contrario de correr `poda-fuentes.sh` en paralelo, que sería el ADR 0012
+ # en su forma más directa (su propio encabezado avisa que el mtime NO distingue «viejo» de «lento»).
+ # No cuesta nada: `fetch.rs` borra y re-extrae el árbol en CADA build, no lo reutiliza jamás.
+ # Nace en la cascada de kcoreaddons (2026-09-03), 71 recetas KDE en una máquina con 16 G libres:
+ # a ~300 MB de árbol por receta, sin esto la campaña se come el disco antes de la onda 4.
+ if [ "${PODA_FUENTES:-0}" = 1 ]; then
+ rm -rf "$HAMMER_DIR"/work/sources/* 2>/dev/null || true
+ fi
done
echo "$(ts) campaña-deuda fin: $ok selladas, $fail fallidas de $total" | tee -a "$LOG"