bootstrap: busybox reproducible — fixes destapados por la verificación de Stage 2
La verificación de reproducibilidad de Stage 2 (dos builds + diff de bytes) probó que musl reconstruye bit-idéntico pero busybox NO, y cazó dos no-determinismos: 1. Config interactiva: tras editar .config, silentoldconfig prompea por opciones NEW leyendo stdin → set de applets variable (build no-determinista y flaky). Fix en busybox.toml: `yes '' | make oldconfig` (defaults, determinista; 1.36.1 no tiene olddefconfig). 2. Headers UAPI del kernel: el config determinista habilita console-tools, que exige linux/kd.h (zig no la bundlea). Fix: linux-headers en bootstrap-devfs.sh (zig cc nativo la halla en /usr/include). Con ambos, musl y busybox reconstruyen bit-idéntico. Runbook §8b documenta la verificación y deja pendiente: reproducibilidad de los componentes Rust y el rebuild dentro de un builder rootfs (auto-alojamiento pleno). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
79ad2cad69
commit
01d5a02b4d
@@ -113,7 +113,11 @@ else
|
||||
# y Alpine no trae ese std (no hay rustup). Falta resolver el toolchain Rust del lab (plan C.2)
|
||||
# — ver docs/runbooks/stage1-vm-boot.md §8. Hasta entonces, los componentes C (musl, busybox)
|
||||
# sí construyen end-to-end.
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo"
|
||||
# `linux-headers`: UAPI del kernel (linux/kd.h, etc.) que zig cc NO bundlea; busybox y otros
|
||||
# paquetes la necesitan. zig cc nativo la encuentra en /usr/include. (Lo destapó la
|
||||
# verificación de reproducibilidad de Stage 2: con el config determinista, los applets de
|
||||
# console-tools la exigen.)
|
||||
NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils rust cargo linux-headers"
|
||||
missing=""
|
||||
for pkg in $NEEDED; do
|
||||
# apk info -e devuelve el paquete si está instalado, vacío si no.
|
||||
|
||||
Reference in New Issue
Block a user