producto E2E: hidratación no-clobber (clobber ciego de /usr/lib rompe el sshd musl)
Revierte el experimento de shadow-por-clobber: pisar /usr/lib con libs del base-system deja arje-zero+hammerd arrancando pero sshd/login mudo (ABI musl del producto disturbado). No-clobber preserva el producto entero y añade los binarios nuevos (probado VERDE). La sombra de applets busybox (sed/ps/ip→full) es política del ensamblado del producto (mecanismo 'adelgazar busybox' de coreutils), que re-linkea el NOMBRE sin tocar /usr/lib — follow-up de empaque documentado en el script.
This commit is contained in:
@@ -28,7 +28,16 @@ cp -a "$PDIR"/. "$RFS"/; chmod -R u+w "$RFS"; rm -rf "$RFS/.hammer"
|
|||||||
|
|
||||||
# --- hidratar el base-system encima (no-clobber: preserva configs del producto) ---
|
# --- hidratar el base-system encima (no-clobber: preserva configs del producto) ---
|
||||||
BASE_SYSTEM="bash git sudo doas util-linux shadow kbd procps-ng iproute2 iputils dhcpcd e2fsprogs dosfstools parted rsync sed tzdata vim dbus ca-certificates gnupg lsof strace pciutils usbutils mandoc"
|
BASE_SYSTEM="bash git sudo doas util-linux shadow kbd procps-ng iproute2 iputils dhcpcd e2fsprogs dosfstools parted rsync sed tzdata vim dbus ca-certificates gnupg lsof strace pciutils usbutils mandoc"
|
||||||
echo "==> hidratando base-system encima del producto (cp -an, preserva /etc del producto)"
|
# Hidratación NO-CLOBBER: añade los binarios nuevos del base-system (bash/git/gpg/useradd/vim/…) pero
|
||||||
|
# NO pisa nada del producto — ni configs (/etc/passwd, /etc/shadow, /etc/ssh) ni libs/applets. Preserva
|
||||||
|
# el ABI musl del sshd del producto y su login (un clobber ciego de /usr/lib lo ROMPE: arje-zero+hammerd
|
||||||
|
# arrancan pero sshd/login queda mudo — comprobado 2026-07-10).
|
||||||
|
#
|
||||||
|
# NOTA de empaque (fuera de alcance de este test): los nombres que colisionan con applets de busybox
|
||||||
|
# (sed/ps/ip/mount/vi) resuelven a BUSYBOX por precedencia de PATH; los binarios full ESTÁN a sus rutas.
|
||||||
|
# Hacer que ganen es política del ensamblado del producto (el mismo mecanismo "adelgazar busybox" que ya
|
||||||
|
# apunta /usr/bin/ls→coreutils), que debe re-linkear el applet name a la versión full SIN tocar /usr/lib.
|
||||||
|
echo "==> hidratando base-system encima del producto (cp -an, preserva el producto entero)"
|
||||||
hyd=0
|
hyd=0
|
||||||
for n in $BASE_SYSTEM; do
|
for n in $BASE_SYSTEM; do
|
||||||
d=$(ls -dt store/*-"$n" 2>/dev/null | head -1)
|
d=$(ls -dt store/*-"$n" 2>/dev/null | head -1)
|
||||||
|
|||||||
Reference in New Issue
Block a user