# Ejemplo de receta Rust (BuildSys::Cargo) — un front-door de tawasuyu. # # Muestra el caso GRÁFICO (el más exigente): wgpu+winit+vello cargan Vulkan/Wayland por # `dlopen` en runtime, así que el binario va `link = "dynamic"` (no estático) y el link lo # cierra el `zig cc` del lab (provee `libgcc_s`). Un crate NO gráfico (CLI, daemon) usa # `link = "static"` y sale como binario monolítico hidratable por hardlink. # # DOS requisitos para que el build hermético funcione (el sandbox no tiene red): # 1. commit FIJADO del repo público (reproducibilidad, ADR 0006). # 2. deps VENDOREADAS en la fuente: `cargo vendor` + `.cargo/config.toml`, o el repo ya las # trae. `cargo build --offline --locked` falla si falta cualquiera. name = "llimphi-counter" version = "0.1.0" [source] repo = "https://git.tawasuyu.net/tawasuyu/llimphi.git" commit = "0000000000000000000000000000000000000000" # ← fijar al commit real con deps vendoreadas [build] compiler = "zig-cc" # linker del binario (wrapper zig cc, cierra -lgcc_s) target = "x86_64-linux-musl" # se traduce a x86_64-unknown-linux-musl para rustc link = "dynamic" # gráfico: necesita dlopen de Vulkan/Wayland en runtime # Selección del binario a construir dentro del workspace/crate: flags = ["-p", "llimphi-ui", "--example", "counter"] # runtime: en un userland musl coherente (Alpine) el binario dlopea mesa/vulkan/wayland # musl-built sin fricción; mezclar con gráficos glibc es lo que rompe (ver M2 del plan # arje↔hammer en tawasuyu).