gioser

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 1561Shell 203Rust 109Markdown 993728 Definiciones

bootstrap: CA bundle para el TLS de cargo vendor en la VM

Con red, `cargo vendor` resolvió crates.io (DNS OK) pero el TLS falló: la VM no
tenía CA bundle en /etc/ssl/certs/ca-certificates.crt ([77] SSL CA cert). El
toolchain trae el bundle de Alpine; rebuild-stage1 lo copia a la ruta estándar y
exporta SSL_CERT_FILE/CURL_CA_BUNDLE/GIT_SSL_CAINFO (cargo usa libcurl/openssl
según el build). Penúltimo eslabón del vendoring Rust offline-asistido.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

fd20e38d38af7e7740501bc326b718570087b826 · por Sergio · (hace 4 meses) · padre 09034a5e2 · ver el árbol en este commit

Delta semántico · 1

crates/hammer-bootstrap/src/lib.rs

1 archivos · +7 −0

diff --git a/crates/hammer-bootstrap/src/lib.rs b/crates/hammer-bootstrap/src/lib.rs
index 82dd6a5b..24369501 100644
--- a/crates/hammer-bootstrap/src/lib.rs
+++ b/crates/hammer-bootstrap/src/lib.rs
@@ -522,6 +522,13 @@ if ip link show eth0 >/dev/null 2>&1; then
     ip route add default via 10.0.2.2 2>/dev/null || true
     printf 'nameserver 10.0.2.3\n' > /etc/resolv.conf
     echo ">> red eth0: $(ip -4 -o addr show eth0 2>/dev/null | grep -o 'inet [0-9.]*' || echo down)"
+    # CA bundle para el TLS de cargo/curl/git (crates.io). El toolchain trae el bundle de Alpine;
+    # lo exponemos en la ruta estándar y por env (cargo usa libcurl/openssl según el build).
+    mkdir -p /etc/ssl/certs
+    cp -f /toolchain/etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 2>/dev/null || true
+    export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
+    export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
+    export GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt
 fi
 # NOTA: el initramfs debe empaquetarse con `cpio --owner=root:root`. Si los ficheros del toolchain
 # quedan con el uid del que armó el builder (p. ej. 1000), ese uid no está mapeado en el userns de