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 1488Shell 182Rust 107Markdown 963619 Sutichaykuna

Etapa G: fetch extrae tarballs con tar --no-same-owner (fix de clase)

Como root (granja), tar preservaba el uid del tarball → el sandbox (userns) no podía chmod/escribir
esos ficheros → configure autotools fallaba (oniguruma: Permission denied creando Makefile). Extraer
como root sin preservar owner lo arregla para TODO tarball. oniguruma vuelve a configure plano.

3f9121798f15487fd2ebe26abd60327d64d9526f · ruwaq sergio · (3 killa ñawpaq) · tayta 533ed500c · kay commitpi sach'ata qhaway

Semántico sayk'uy · 1

crates/hammer-build/src/fetch.rs

2 qillqakuna · +7 −3

diff --git a/crates/hammer-build/src/fetch.rs b/crates/hammer-build/src/fetch.rs
index 873efa77..2b85694e 100644
--- a/crates/hammer-build/src/fetch.rs
+++ b/crates/hammer-build/src/fetch.rs
@@ -125,6 +125,12 @@ fn fetch_tarball(
     let strip = recipe.source.strip_components.to_string();
     let status = Command::new("tar")
         .arg("-x")
+        // `--no-same-owner`: extrae como el usuario actual (no preserva el uid del tarball). Si el
+        // fetch corre como root (granja), `tar` por defecto preservaría el owner original → ficheros
+        // de un uid que el sandbox (userns) no puede chmod/escribir → configure de autotools falla
+        // ("Permission denied" creando Makefile, "Operation not permitted" en chmod). Inocuo para el
+        // of_tree (es el árbol de FUENTES, no el output). Destraba libs C como oniguruma.
+        .arg("--no-same-owner")
         .arg("-f")
         .arg(&cached)
         .arg("--strip-components")
diff --git a/recipes/oniguruma.toml b/recipes/oniguruma.toml
index 34fc6b92..84724d51 100644
--- a/recipes/oniguruma.toml
+++ b/recipes/oniguruma.toml
@@ -16,6 +16,4 @@ link     = "static"
 flags    = []
 
 [build.phases]
-# el tarball extrae src/ sin permiso de escritura p/ el uid del sandbox ⇒ config.status no puede crear
-# src/Makefile. chmod -R u+w antes de configure (inocuo, sólo permisos).
-configure = "chmod -R u+w . && ./configure --prefix=/usr --enable-posix-api=yes"
+configure = "./configure --prefix=/usr --enable-posix-api=yes"