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.
This commit is contained in:
2026-06-29 15:54:46 -04:00
parent 533ed500c7
commit 3f9121798f
2 changed files with 7 additions and 3 deletions
+6
View File
@@ -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")
+1 -3
View File
@@ -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"