estado: cosecha granja 2026-07-30T23:20:59Z — avance del árbol KDE

This commit is contained in:
2026-07-30 19:20:59 -04:00
parent 2430528c16
commit 7190cc48a3
6 changed files with 88 additions and 25 deletions
+23
View File
@@ -31,6 +31,29 @@ rm -rf "$MERGED"
cp -al "$BASE" "$MERGED"
cp -al --remove-destination "$GNOME"/. "$MERGED"/
# ── PID1 DESDE EL STORE, no desde el directorio base ────────────────────────────────────────────
# `work/metal-rootfs` se armó a mano en la campaña de metal y quedó CONGELADO: su `arje-zero` era de
# 2026-06-19. Nadie lo re-generaba al re-sellar la receta, así que cada imagen de escritorio arrancaba
# con un PID1 de hace mes y medio sin que nada lo dijera. Así se comió el fix del `identity mismatch`:
# arje-zero se había arreglado río arriba y la VM seguía imprimiendo el mensaje viejo.
#
# El síntoma es engañoso porque el directorio base es LEGÍTIMO para todo lo demás (busybox, firmware,
# el kernel EFI-stub): sólo la pieza que también es receta se queda atrás. Regla: **si algo del rootfs
# tiene receta, la imagen lo toma del artefacto sellado, no de la copia congelada.**
#
# Se elige por `hammer hash` —el artefacto que corresponde a la receta de HOY—, mismo criterio que los
# dos compat daemons de más abajo; el más reciente por fecha miente en cuanto conviven dos.
echo "==> PID1: arje-zero desde el store (no desde $BASE)"
AZ="${AZ:-store/$(./target/release/hammer --store store hash recipes/arje-zero.toml 2>/dev/null | tail -1 | sed 's/^b3://')-arje-zero}"
if [ -d "$AZ" ] && [ -x "$AZ/usr/bin/arje-zero" ]; then
install -Dm755 "$AZ"/usr/bin/arje-zero "$MERGED"/usr/bin/arje-zero
echo "$(basename "$AZ" | cut -c1-12) (el de $BASE era de $(stat -c '%y' "$BASE"/usr/bin/arje-zero 2>/dev/null | cut -d' ' -f1))"
else
echo " ✗ falta arje-zero sellado en store/ — la imagen usaría el PID1 CONGELADO de $BASE" >&2
echo " construílo: ./target/release/hammer build recipes/arje-zero.toml --store store" >&2
exit 1
fi
echo "==> parcheando mesa software desde $MESA"
# El cierre GNOME trae mesa con SÓLO iris_dri.so (Intel real). En QEMU no hay GPU: hace falta
# kms_swrast. Se copian los .so de mesa-llvmpipe ENCIMA (--remove-destination rompe el hardlink).