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 1574Shell 204Rust 111Markdown 993763 Definiciones

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).

bd0b9db11f6957a1c0fd77b1b0e14f635da987c3 · por sergio · (hace 4 meses) · padre 7eef332a9 · ver el árbol en este commit

Delta semántico · 2

crates/hammer-cli/src/alpine_import.rs

2 archivos · +30 −1

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<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);
             }
         }
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"]