From bd0b9db11f6957a1c0fd77b1b0e14f635da987c3 Mon Sep 17 00:00:00 2001 From: sergio Date: Sun, 21 Jun 2026 15:39:01 -0400 Subject: [PATCH] =?UTF-8?q?Etapa=20G:=20importador=20Alpine=20filtra=20el?= =?UTF-8?q?=20toolchain=20de=20deps=20+=20xsv=20limpio=20(84=E2=86=9285)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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). --- crates/hammer-cli/src/alpine_import.rs | 12 +++++++++++- recipes/xsv.toml | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 recipes/xsv.toml diff --git a/crates/hammer-cli/src/alpine_import.rs b/crates/hammer-cli/src/alpine_import.rs index c29d83e7..9e517f45 100644 --- a/crates/hammer-cli/src/alpine_import.rs +++ b/crates/hammer-cli/src/alpine_import.rs @@ -87,7 +87,17 @@ pub fn recipe_from_apkbuild(text: &str) -> Result { .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); } } diff --git a/recipes/xsv.toml b/recipes/xsv.toml new file mode 100644 index 00000000..71ecb5e1 --- /dev/null +++ b/recipes/xsv.toml @@ -0,0 +1,19 @@ +# xsv 0.13.0 — toolkit CSV rápido (BurntSushi). Etapa G, tier-1 Rust. +# +# Reescrita como receta Cargo LIMPIA: el import de Alpine traía fases `cargo auditable build` (que +# pelean con el flujo BuildSys::Cargo del lab — sin setup de zig-cc/musl) y `[deps] build=["cargo", +# "cargo-auditable"]` (el TOOLCHAIN no es un paquete; el importador ya lo filtra desde este commit). +# Sin fases ⇒ el lab autodetecta Cargo (--locked --offline + zig-cc linker). single-bin, sin dep-C. + +name = "xsv" +version = "0.13.0" + +[source] +tarball = "https://github.com/BurntSushi/xsv/archive/0.13.0/xsv-0.13.0.tar.gz" +sha256 = "2b75309b764c9f2f3fdc1dd31eeea5a74498f7da21ae757b3ffd6fd537ec5345" + +[build] +compiler = "zig-cc" +target = "x86_64-linux-musl" +link = "static" +flags = ["--bin", "xsv"]