renombre: los instaladores pasan a takana-* — y el peligro no era el fichero, era el PROTOCOLO

ADR 0016 los listaba entre los CONGELADOS; el usuario pidió descongelarlos al abrir el SDD 28. La
enmienda queda escrita en el propio ADR, que si no la etiqueta deja de describir el hecho.

`hammer-install.sh` → `takana-install.sh`, `hammer-live-install.sh` → `takana-live-install.sh`,
`hammer-banner.txt` → `takana-banner.txt`, `BRIEFING-hammer.md` → `BRIEFING-takana.md`.

**Lo que hacía caro esto no es el nombre del fichero.** El instalador se inyecta en el ISO como
`/usr/bin/hammer-install` y su éxito se detecta con un `grep` de `HAMMER-INSTALL-OK` desde TRES
scripts de prueba. Renombrar un solo lado los deja casando NADA — sin fallar —, que es literalmente
el modo en que `atribuir-fallos.py` quedó mudo cuando el renombre movió el target de `tracing`.
Se renombraron las dos puntas en el mismo commit (`/usr/bin/takana-install`,
`TAKANA-INSTALL-OK/FAIL`, `TAKANA_INSTALL_*`, `work/takana-install.img`, `/run/takana-install`),
se comprobó por `grep` que no quede ningún token viejo fuera del ADR, y —lo que decide— se CORRIÓ
`install-tui-test.sh`: 4/4 casos verdes.

Las tres `TAKANA_INSTALL_*` caen al nombre viejo (`${TAKANA_INSTALL_X:-${HAMMER_INSTALL_X:-}}`):
el llamador puede ser un ISO anterior al renombre. Misma convención que `TAKANA_ROOT_PW` unas
líneas más arriba en ese mismo script.

NO se tocó `/usr/sbin/hammer-recover` ni su hook de arranque —renombrarlo rompe máquinas YA
INSTALADAS, no el repo—: sobrevive intacto dentro del script renombrado, verificado por conteo
antes y después (8 ocurrencias). Tampoco `hammerd`, `hammer-edit` (su `name` está en la ruta del
store), `/var/lib/hammer`, `HAMMER_LIVE` ni los siete literales de hash.

De paso: `scripts/.hammer-banner.txt.kate-swp` era un swap de editor commiteado por error. Fuera.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RomoxEGZUhaT4pob1QSX5x
This commit is contained in:
Sergio
2026-09-09 22:54:13 +00:00
co-authored by Claude Opus 5
parent c599daa346
commit 008dd3925e
16 changed files with 85 additions and 61 deletions
+5 -5
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# iso-install-test.sh — valida el lazo COMPLETO de instalación desde el medio live (refinamiento #1):
# (1) arma un ISO instalador (iso-image.sh INSTALLER=1 AUTO_INSTALL=/dev/vda) con el payload de disco
# (kernel + GRUB MBR + /usr/bin/hammer-install) bundleado;
# (kernel + GRUB MBR + /usr/bin/takana-install) bundleado;
# (2) lo bootea con un disco EN BLANCO ⇒ el /init desatendido corre takana-install y apaga;
# (3) bootea ESE disco SOLO (sin ISO, sin -kernel) ⇒ el producto instalado arranca y sirve SSH.
# Cierra el lazo "ISO live → disco instalado → bootea solo", lo que hace la distro distribuible.
@@ -36,11 +36,11 @@ echo "==> (2) boot del instalador con disco EN BLANCO ${DISK_MB}M (auto-instala
rm -f "$TGT"; truncate -s "${DISK_MB}M" "$TGT"
timeout "$INSTALL_DEADLINE" qemu-system-x86_64 -m "$MEM" -no-reboot -nographic "${accel[@]}" \
-drive file="$TGT",format=raw,if=virtio -cdrom "$ISO" -boot d > "$ILOG" 2>&1 || true
if ! grep -q "HAMMER-INSTALL-OK" "$ILOG"; then
if ! grep -q "TAKANA-INSTALL-OK" "$ILOG"; then
echo "✗ la instalación NO terminó OK — ver $ILOG" >&2
grep -iE "HAMMER-INSTALL-FAIL|hammer-install:|no apareció|error" "$ILOG" | head; exit 1
grep -iE "TAKANA-INSTALL-FAIL|takana-install:|no apareció|error" "$ILOG" | head; exit 1
fi
echo " ✓ HAMMER-INSTALL-OK"
echo " ✓ TAKANA-INSTALL-OK"
echo "==> (3) boot del DISCO instalado (sin ISO, sin -kernel)"
timeout "$BOOT_DEADLINE" qemu-system-x86_64 -m "$MEM" -no-reboot -nographic "${accel[@]}" \
@@ -58,7 +58,7 @@ reject "ARRANQUE FALLIDO|seed.card no encontrada" "arje-zero arrancó sin fallo
reject "no pude montar" "particiones dedicadas /store y /var/lib/hammer montadas"
if [ "$fail" = 0 ]; then
echo; echo "✓✓ INSTALL-FROM-LIVE VERDE: ISO live → hammer-install → disco que bootea solo y sirve SSH"
echo; echo "✓✓ INSTALL-FROM-LIVE VERDE: ISO live → takana-install → disco que bootea solo y sirve SSH"
else
echo; echo "✗ install-from-live FALLÓ — ver $ILOG / $BLOG" >&2; exit 1
fi