tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 604Rust 56Shell 36Markdown 281227 Definiciones

Etapa G: BUMP de toolchain del catálogo 1.91.1→1.96 (destraba MSRV) + oxlint/ruff (101→103)

El usuario aprobó subir el rustc del sandbox. El rootfs de build (.dev-fs/alpine) migró a
repos Alpine edge: rust/cargo 1.96.0 (+ gcc 15.2/musl 1.2.6/llvm22) + clang-dev/clang-libs
(libclang p/bindgen de los *-sys). bootstrap-devfs.sh actualizado para reproducirlo. El 4/4
NO se afecta (usa SWAP_RUST con el rust hammer-built 1.91.1); esto es el toolchain del CATÁLOGO.

Destrabados+promovidos: oxlint (1.94) y ruff (1.94) construyen+sellan static-musl. ouch lleva
gueto gcc pero queda staged: sus deps C++ (unrar-ng-sys/libbzip3-sys) chocan en el link final
(-lstdc++ vs la libc++ de zig). Frontera C++ = ortogonal al MSRV.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

e393c6bd4d34798d8c4826e56b8fad98fd6cc9b9 · por sergio · (hace 4 meses) · padre 420cb822d · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

6 archivos · +62 −46

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.