# bc 7.0.3 (gavinhoward/bc) — la calculadora POSIX: `bc` Y `dc` en un solo árbol, sin dependencias. # # ── POR QUÉ ESTA IMPLEMENTACIÓN Y NO LA DE GNU ────────────────────────────────────────────────── # El corpus no tenía ninguna: `bc` y `dc` eran dos de los applets que en toda la imagen sólo proveía # busybox (medido con `scripts/busybox-censo-proveedores.py`, ver `docs/plan-botar-busybox.md`). # Upstream hay dos candidatos reales: # · GNU bc — arrastra `ed` y `flex` como build-deps, y `dc` es OTRO paquete (dc de GNU va aparte). # · gavinhoward/bc — C99 puro, CERO dependencias, `bc` + `dc` del mismo árbol, y es el que usan # Alpine y FreeBSD como su bc de sistema. Implementa POSIX bc + las extensiones de GNU. # Para una cadena musl donde cada dep nueva es trabajo, la segunda gana sin discusión. # # ── BUILD ─────────────────────────────────────────────────────────────────────────────────────── # No es autotools: `configure.sh` propio que escribe el Makefile. No acepta `--build`/`--host`, así # que NO se le pasan (un `--host` a un configure que no lo entiende termina en la lista de # argumentos ignorados o en un error, según el script). El cross a musl lo hace `zig cc` vía $CC. name = "bc" version = "7.0.3" license = "BSD-2-Clause" [source] tarball = "https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.xz" sha256 = "91eb74caed0ee6655b669711a4f350c25579778694df248e28363318e03c7fc4" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = [] [deps] build = ["make"] [build.phases] # `-p bc -p dc` NO existe acá: el binario es multicall por enlaces, como busybox. `PREFIX` en vez de # `--prefix` porque así lo quiere su configure.sh. configure = './configure.sh --prefix=/usr --disable-nls' compile = 'make' install = 'make DESTDIR=/out install'