# uutils/findutils 0.9.1 — find en Rust (reemplazo Rust-nativo del find de busybox/GNU findutils). # # Segunda pieza de la Etapa C (userland Rust-nativo): misma estrategia que recipes/uutils.toml — # adoptar una reimplementación MADURA (MIT) como receta Cargo, no escribir de cero. Esquiva el bug # de zig por construcción (codegen rustc/LLVM; `zig cc` sólo como linker). # # A diferencia de coreutils (multicall: un binario `coreutils` + symlinks), uutils/findutils compila # binarios SEPARADOS: find/xargs/locate/updatedb (`[[bin]]` por herramienta, sobre una `[lib]` común). # `cargo rustc -- ` exige UN solo target (sólo a la crate top, no a los proc-macros), # así que esta receta construye el FLAGSHIP `find`. xargs es una receta hermana trivial (mismo patrón, # `--bin xargs`) — pieza 2b cuando se necesite; locate/updatedb requieren una DB y quedan fuera del # reemplazo mínimo de busybox. # # Fuente git pinned al tag 0.9.1 (ADR 0006); findutils commitea su Cargo.lock ⇒ vendor + `--locked` # bit-reproducible. Estático musl con zig cc (sin loader del host), igual que uutils. name = "findutils" version = "0.9.1" license = "MIT" [source] repo = "https://github.com/uutils/findutils" commit = "17d852c428414c1c2e5eb4b1024eaa3484d69a45" # findutils es un paquete suelto (sin [workspace] propio); como hammer copia la fuente DENTRO del repo # hammer (que sí es un workspace), cargo vendor lo absorbe y aborta. El patch añade un [workspace] vacío. patches = ["findutils-workspace.patch"] [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" # `--bin find`: el paquete findutils tiene lib + 4 bins; `cargo rustc -- ` exige un único # target. Seleccionamos el binario `find` (el reemplazo de busybox que importa para la Etapa C). flags = ["--bin", "find"] # Install custom (sólo esta fase; configure/compile siguen auto-Cargo): el static musl en /usr/bin/find. [build.phases] install = "mkdir -p /out/usr/bin && cp target/release/find /out/usr/bin/find"