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>
This commit is contained in:
2026-06-20 06:05:01 -04:00
co-authored by Claude Opus 4.8
parent c2c84a96ac
commit 7bd326170d
+29
View File
@@ -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"