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 1430Shell 145Markdown 87Rust 852973 Definitions

⎇ e23814d24af66cbc554c0a0ea9e90eb31dbaf6df recipes/uutils.toml TOML · 32 lines · 1.7 KB History raw

recipes/uutils: coreutils Rust-nativo (Etapa C pieza 1) 54ccc130d · sergio ·

1# uutils/coreutils 0.9.0 — coreutils en Rust (reemplazo Rust-nativo de busybox/GNU coreutils).
2#
3# Primera pieza de la Etapa C (userland Rust-nativo): adopta una reimplementación MADURA (MIT) como
4# receta Cargo, el mismo patrón que hammerd/arje-zero — no se escribe de cero. Multicall: un binario
5# `coreutils` + un symlink por applet (ls/cp/mkdir/…). Esquiva el bug de zig por construcción: el
6# codegen lo hace rustc/LLVM, no el path C de zig (sólo se usa `zig cc` como linker).
7#
8# Fuente git pinned al tag 0.9.0 (ADR 0006); uutils commitea su Cargo.lock ⇒ vendor + `--locked`
9# bit-reproducible. Estático musl con zig cc (sin loader del host).
10
11name    = "uutils"
12version = "0.9.0"
13
14[source]
15repo   = "https://github.com/uutils/coreutils"
16commit = "9eefc3705093910ad8e8bbcf7e5f84a49720340f"
17
18[build]
19compiler = "zig-cc"
20target   = "x86_64-linux-musl"
21link     = "static"
22# `--bin coreutils`: el paquete coreutils tiene lib + bin; `cargo rustc -- <flags>` exige UN solo
23# target (a diferencia de arje-zero, que tiene un único bin y bastaba `-p`). Seleccionamos el binario
24# multicall. Default features ⇒ el set estándar de applets embebido.
25flags    = ["--bin", "coreutils"]
26
27# Install custom (sólo esta fase; configure/compile siguen auto-Cargo): instala el multicall en
28# /usr/bin/coreutils y crea un symlink RELATIVO por applet (ls→coreutils, cp→coreutils, …), igual
29# layout que busybox/GNU-coreutils multicall ⇒ drop-in. `--list` lo da el propio binario (static
30# musl, corre en el sandbox). El loop cubre los 79 applets embebidos por las default features.
31[build.phases]
32install = "mkdir -p /out/usr/bin && cp target/release/coreutils /out/usr/bin/coreutils && for u in $(/out/usr/bin/coreutils --list); do ln -sf coreutils /out/usr/bin/\"$u\"; done"