recipes/simi.toml sigue el patrón de hammerd/netup: crate del workspace a un commit fijado, zig cc, musl estático, strip_debug. SIN [build.phases]: el BuildSys::Cargo instala el binario, y el symlink `sh` NO lo pone la receta a propósito — quién gana como /bin/sh lo decide USERLAND_COMPONENTS en takana-bootstrap, que es frente C y su propia unidad de trabajo. El SDD queda con el veredicto (simi 0 divergencias, bash 8, brush 35), el alcance por consumidor, los siete bugs del camino y las seis cosas que faltan. Con dos avisos explícitos: lo medido es el build NATIVO del hub (glibc, dinámico) y el estático musl no se construyó, así que simi no entra en ningún perfil de targets.toml; y la shell interactiva de getty no está cubierta.
41 lines
2.1 KiB
TOML
41 lines
2.1 KiB
TOML
# simi — el `/bin/sh` del producto. Código takana-PROPIO, no una adopción.
|
||
#
|
||
# Mismo patrón de receta que netup/hammerd/arje-zero: construye un crate del workspace a un commit
|
||
# fijado, deps vendoreadas para build hermético `--offline`, link estático con zig cc. Sólo depende
|
||
# de libc ⇒ vendor mínimo.
|
||
#
|
||
# Por qué propio y no adoptado (ver `docs/plan-botar-busybox.md`): el único candidato Rust maduro es
|
||
# brush, y se midió — 6,9 MB contra 1,17 del busybox entero, 4,1× la latencia de arranque, y dos
|
||
# divergencias POSIX medidas (reubeno/brush#1394 y #1396, las dos reportadas por nosotros). simi son
|
||
# 4448 líneas con CERO divergencias contra el ash de busybox en los 159 casos del banco diferencial.
|
||
#
|
||
# ⚠ Esta receta todavía NO se construyó: falta la corrida en el lab (zig cc, musl estático) y su
|
||
# sello. Lo medido hasta acá es el build nativo del hub (glibc dinámico, 499 KB) más las 47 pruebas
|
||
# del crate. No declarar `simi` en ningún perfil de `docs/state/targets.toml` antes de sellarla.
|
||
|
||
name = "simi"
|
||
version = "0.0.1"
|
||
license = "MIT"
|
||
|
||
[source]
|
||
# El propio takana. El commit es el identificador inmutable; subirlo cuando simi avance.
|
||
repo = "https://git.gioser.net/sergio/takana.git"
|
||
commit = "6809ef4be28f606aae856890a74667187ff75b05"
|
||
|
||
[build]
|
||
compiler = "zig-cc"
|
||
target = "x86_64-linux-musl"
|
||
link = "static"
|
||
|
||
# Split de la info de depuración, igual que hammerd. Entra en `hash_inputs`.
|
||
strip_debug = true
|
||
# Sólo el binario `simi` del workspace.
|
||
flags = ["-p", "simi"]
|
||
|
||
# Sin `[build.phases]`: igual que hammerd y netup, el BuildSys::Cargo del lab instala el binario del
|
||
# crate. **El symlink `sh` NO lo pone esta receta**, y eso es a propósito: quién gana como `/bin/sh`
|
||
# lo decide el ensamblado del producto (`USERLAND_COMPONENTS` en `crates/takana-bootstrap/src/lib.rs`,
|
||
# que hidrata el userland Rust DESPUÉS de busybox para que ensombrezca sus applets, y `lib.rs:676`,
|
||
# que retira el homónimo de los otros directorios). Ese cableado es frente C y es su propia unidad de
|
||
# trabajo: mete a simi en la raíz de confianza del arranque, y eso no se hace de paso.
|