Etapa G: importador Alpine filtra el toolchain de deps + xsv limpio (84→85)

Bug que la granja destapó: el import de Alpine de crates Rust emitía cargo/cargo-
auditable como [deps] build (el path nix ya los filtra, el Alpine no) -> la receta
abortaba buscando cargo.toml. Fix raíz en alpine_import.rs: normalize() filtra el
TOOLCHAIN (cargo/cargo-auditable/rust/rustc/go/make/cmake/meson/ninja) — lo provee
el lab (BuildSys::Cargo + detectores), no es un paquete a materializar.

xsv 0.13.0 reescrito como receta Cargo LIMPIA (sin las fases 'cargo auditable build'
del abuild que pelean con el flujo del lab, sin deps de toolchain): el lab autodetecta
Cargo. Construye+corre estático (computa stats CSV). Publicado al repo (85).
This commit is contained in:
2026-06-21 15:39:01 -04:00
parent 7eef332a9d
commit bd0b9db11f
2 changed files with 30 additions and 1 deletions
+11 -1
View File
@@ -87,7 +87,17 @@ pub fn recipe_from_apkbuild(text: &str) -> Result<String, String> {
.unwrap_or(d)
.trim_end_matches("-dev")
.to_string();
if !name.is_empty() && !name.starts_with("so:") && !v.contains(&name) {
// El TOOLCHAIN no es un paquete a materializar: lo provee el lab (cargo/rustc = el flujo
// BuildSys::Cargo; make/cmake/meson = los detectores). Una receta que los pusiera en
// `[deps] build` abortaría buscando `cargo.toml`. El path nix ya los filtra; acá igual.
const TOOLCHAIN: &[&str] = &[
"cargo", "cargo-auditable", "rust", "rustc", "go", "make", "cmake", "meson", "ninja",
];
if !name.is_empty()
&& !name.starts_with("so:")
&& !TOOLCHAIN.contains(&name.as_str())
&& !v.contains(&name)
{
v.push(name);
}
}