diff --git a/recipes/incoming/ouch.toml b/recipes/incoming/ouch.toml index 26eef483..01adf7ef 100644 --- a/recipes/incoming/ouch.toml +++ b/recipes/incoming/ouch.toml @@ -9,8 +9,10 @@ version = "0.8.0" repo = "https://github.com/ouch-org/ouch" commit = "d6e80634b63d53a18cb32dd1cbd613b6a3b61e45" +# GUETO gcc: ouch vendorea bzip2/libbzip3-sys/zstd-sys/lzma (C); cc-rs los compila y zig-cc +# falla. compiler="gcc" usa el musl gcc de Alpine. (MSRV 1.93 ⇒ rootfs edge rust 1.96.) [build] -compiler = "zig-cc" +compiler = "gcc" target = "x86_64-linux-musl" link = "static" flags = ["--bin", "ouch"] diff --git a/recipes/incoming/oxlint.toml b/recipes/oxlint.toml similarity index 100% rename from recipes/incoming/oxlint.toml rename to recipes/oxlint.toml diff --git a/recipes/incoming/ruff.toml b/recipes/ruff.toml similarity index 100% rename from recipes/incoming/ruff.toml rename to recipes/ruff.toml diff --git a/scripts/bootstrap-devfs.sh b/scripts/bootstrap-devfs.sh index 0159368c..1bcfd406 100755 --- a/scripts/bootstrap-devfs.sh +++ b/scripts/bootstrap-devfs.sh @@ -113,6 +113,18 @@ 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. + # BUMP DELIBERADO de toolchain (2026-06-22, [[cargo-recipe-msrv-ceiling]]): Alpine v3.23 trae + # rust 1.91.1 ⇒ techo MSRV que bloquea recetas modernas (ouch/uv 1.93, oxlint/ruff 1.94, + # zellij 1.92). edge trae rust 1.96.0. Apuntamos los repos del rootfs a EDGE para que `apk add` + # resuelva rust/cargo/clang 1.96 (+ arrastra gcc 15.2/musl 1.2.6/llvm22 como deps). El of_tree + # del 4/4 NO depende de esto (usa SWAP_RUST con el rust hammer-built); esto es el toolchain del + # CATÁLOGO. Para anclar una versión exacta en vez de un edge rodante, pinear un snapshot de edge. + if [[ -f "$ROOTFS/etc/apk/repositories" ]]; then + printf '%s\n%s\n' \ + 'https://dl-cdn.alpinelinux.org/alpine/edge/main' \ + 'https://dl-cdn.alpinelinux.org/alpine/edge/community' \ + > "$ROOTFS/etc/apk/repositories" + fi # `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 @@ -140,7 +152,9 @@ else # NOTA: `openssl-dev` YA NO va aquí — de-Alpinizado a recipes/openssl.toml (libcrypto estática, # deps.build del kernel). El host-tool certs/extract-cert lo enlaza desde la capa overlay hammer. # El runtime libcrypto3/libssl3 (que curl/git necesitan) lo trae Alpine aparte, no es openssl-dev. - NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev rust cargo linux-headers bubblewrap git curl kmod" + # `clang-dev clang-libs`: aportan libclang.so — `bindgen` (que usan varios *-sys: libbzip3-sys, + # etc.) lo carga en build para generar bindings de los headers C. No lo trae el base. + NEEDED="make autoconf automake m4 patch coreutils libtool pkgconf bash binutils g++ zlib-dev rust cargo clang-dev clang-libs linux-headers bubblewrap git curl kmod" missing="" for pkg in $NEEDED; do # apk info -e devuelve el paquete si está instalado, vacío si no.