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…
busybox 69 → 64: psmisc y bc, las dos piezas que el plan marcaba TRAER
1# bc 7.0.3 (gavinhoward/bc) — la calculadora POSIX: `bc` Y `dc` en un solo árbol, sin dependencias.
2#
3# ── POR QUÉ ESTA IMPLEMENTACIÓN Y NO LA DE GNU ──────────────────────────────────────────────────
4# El corpus no tenía ninguna: `bc` y `dc` eran dos de los applets que en toda la imagen sólo proveía
5# busybox (medido con `scripts/busybox-censo-proveedores.py`, ver `docs/plan-botar-busybox.md`).
6# Upstream hay dos candidatos reales:
7# · GNU bc — arrastra `ed` y `flex` como build-deps, y `dc` es OTRO paquete (dc de GNU va aparte).
8# · gavinhoward/bc — C99 puro, CERO dependencias, `bc` + `dc` del mismo árbol, y es el que usan
9# Alpine y FreeBSD como su bc de sistema. Implementa POSIX bc + las extensiones de GNU.
10# Para una cadena musl donde cada dep nueva es trabajo, la segunda gana sin discusión.
11#
12# ── BUILD ───────────────────────────────────────────────────────────────────────────────────────
13# No es autotools: `configure.sh` propio que escribe el Makefile. No acepta `--build`/`--host`, así
14# que NO se le pasan (un `--host` a un configure que no lo entiende termina en la lista de
15# argumentos ignorados o en un error, según el script). El cross a musl lo hace `zig cc` vía $CC.
16
17name = "bc"
18version = "7.0.3"
19license = "BSD-2-Clause"
20
21[source]
22tarball = "https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.xz"
23sha256 = "91eb74caed0ee6655b669711a4f350c25579778694df248e28363318e03c7fc4"
24
25[build]
26compiler = "zig-cc"
27target = "x86_64-linux-musl"
28link = "static"
29flags = []
30
31[deps]
32build = ["make"]
33
34[build.phases]
35# `-p bc -p dc` NO existe acá: el binario es multicall por enlaces, como busybox. `PREFIX` en vez de
36# `--prefix` porque así lo quiere su configure.sh.
37configure = './configure.sh --prefix=/usr --disable-nls'
38compile = 'make'
39install = 'make DESTDIR=/out install'