recipes/findutils-xargs: xargs Rust-nativo (Etapa C pieza 2b)
uutils/findutils 0.9.1 --bin xargs (mismo crate/commit/patch que findutils.toml).
Construye+sella+corre: xargs 0.9.1, ELF estático, -n1/-I{}/pipe OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Delta semántico
Ninguna definición cambió: el cambio es de texto, documentación o datos.
1 archivos · +29 −0
- recipes/findutils-xargs.toml +29 −0
diff --git a/recipes/findutils-xargs.toml b/recipes/findutils-xargs.toml
new file mode 100644
index 00000000..b7a7ccf4
--- /dev/null
+++ b/recipes/findutils-xargs.toml
@@ -0,0 +1,29 @@
+# uutils/findutils 0.9.1 — xargs en Rust (reemplazo Rust-nativo del xargs de busybox/GNU findutils).
+#
+# Etapa C pieza 2b: receta hermana de recipes/findutils.toml. Mismo crate (uutils/findutils), mismo
+# commit y mismo patch de [workspace]; sólo cambia el bin seleccionado (`--bin xargs`). findutils compila
+# bins SEPARADOS sobre una lib común y `cargo rustc -- <flags-codegen>` exige un único target, así que
+# cada herramienta es su propia receta (recompila el dep-graph compartido — coste aceptado).
+#
+# Fuente git pinned al tag 0.9.1 (ADR 0006); Cargo.lock committeado ⇒ vendor + `--locked`
+# bit-reproducible. Estático musl con zig cc (sin loader del host).
+
+name = "findutils-xargs"
+version = "0.9.1"
+
+[source]
+repo = "https://github.com/uutils/findutils"
+commit = "17d852c428414c1c2e5eb4b1024eaa3484d69a45"
+# Mismo motivo que findutils.toml: crate suelto dentro del workspace de hammer ⇒ cargo vendor lo absorbe.
+patches = ["findutils-workspace.patch"]
+
+[build]
+compiler = "zig-cc"
+target = "x86_64-linux-musl"
+link = "static"
+# `--bin xargs`: selecciona el binario xargs entre los 4 bins del paquete (find/xargs/locate/updatedb).
+flags = ["--bin", "xargs"]
+
+# Install custom: el static musl en /usr/bin/xargs.
+[build.phases]
+install = "mkdir -p /out/usr/bin && cp target/release/xargs /out/usr/bin/xargs"