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…
cosmic: libqalculate + gmp + mpfr — qalc anda, y el plugin del lanzador igual no lo puede usar
1# gmp — aritmética de precisión arbitraria. Entra al corpus por abajo del lanzador: el plugin de la
2# calculadora de pop-launcher llama al binario `qalc`, `qalc` es libqalculate, y libqalculate corta el
3# configure con «libgmp not found» si no está. O sea que la cadena de una tecla del escritorio baja
4# hasta la aritmética de enteros grandes — y ese es justo el tipo de dep que no se ve venir mirando
5# el paquete de arriba.
6#
7# ── `--disable-assembly` NO ES PEREZA ───────────────────────────────────────────────────────────
8# GMP trae rutinas en ensamblador por microarquitectura y su `configfsf.guess` elige una mirando la
9# CPU de QUIEN COMPILA. Eso es exactamente lo que este lab no puede permitir: hornearía la ISA del
10# laptop en el artefacto y el hash dejaría de significar lo mismo en la granja (el mismo modo de
11# falla que `-mcpu=baseline` corrige en el wrapper de zig). Con `--disable-assembly` GMP usa su
12# implementación en C portable: más lenta, y a nadie le importa — acá la usa una calculadora de
13# escritorio, no un criptosistema.
14# Además zig/clang no digiere varias de esas rutinas (`.align` y sintaxis de gas antigua), así que
15# la alternativa realista tampoco era «assembly sí».
16name = "gmp"
17version = "6.3.0"
18
19[source]
20tarball = "https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz"
21sha256 = "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898"
22
23[build]
24compiler = "zig-cc"
25target = "x86_64-linux-musl"
26link = "static"
27flags = []
28
29[build.phases]
30# `--enable-cxx` va APAGADO: libqalculate usa la API C de GMP (`__gmpz_init` es lo que su configure
31# busca), y `libgmpxx` arrastraría el runtime de C++ a un paquete que no lo necesita — justo la deuda
32# que la campaña «matar gcc» viene pagando en el resto del árbol.
33configure = '''
34./configure \
35 --build=$CBUILD --host=$CHOST \
36 --prefix=/usr \
37 --disable-shared --enable-static \
38 --disable-assembly \
39 --enable-fat=no
40'''
41compile = 'make -j"$(nproc)"'
42install = 'make DESTDIR=/out install'
43
44[deps]
45build = ["make", "m4"]