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…
recetas: ncdu, wireguard-tools y cliphist — tres huecos del userland, sellados
1# wireguard-tools 1.0.20260223 — `wg` y `wg-quick`, el userland de WireGuard. C, Makefile a secas.
2#
3# ── POR QUÉ ENTRA ──────────────────────────────────────────────────────────────────────────────
4# El VPN ya está en el kernel (`CONFIG_WIREGUARD`, ver SDD 22); lo que faltaba era con qué
5# configurarlo. Sin esto una caja takana puede hablar WireGuard y no hay forma de decirle con quién.
6# Pesa dos binarios y un puñado de scripts.
7#
8# ── `link = "dynamic"`, Y NO ES GUSTO ──────────────────────────────────────────────────────────
9# `wg` enlaza `libmnl`, y la receta canónica de libmnl es `--disable-static --enable-shared`: en el
10# store NO hay un `libmnl.a` contra el que enlazar. Forzar `static` acá no daría un binario estático
11# sino un enlace contra el `.a` del sysroot Alpine DEL LAB —la fuga que documenta el perfil de sway
12# con zlib/expat/libffi—, que sella bien y sólo corre en una máquina con Alpine debajo. Dinámico es
13# lo honesto: el `NEEDED libmnl.so.0` lo cubre la clausura.
14#
15# ⚠ `wg-quick` es un script bash y pide `bash`, `ip` (iproute2) y `resolvconf`/`openresolv` en
16# RUNTIME. `wg` a secas no necesita nada de eso. Se declara lo que existe en el corpus; el día que
17# `wg-quick` falle por `ip`, el que falta es iproute2, no esta receta.
18name = "wireguard-tools"
19version = "1.0.20260223"
20license = "GPL-2.0-only"
21
22[source]
23repo = "https://git.zx2c4.com/wireguard-tools"
24commit = "49ce333da02056ae7b22ee2aeb6afe8aaed79b19"
25
26[build]
27compiler = "zig-cc"
28target = "x86_64-linux-musl"
29link = "dynamic"
30
31[build.phases]
32# WITH_SYSTEMDUNITS=no: esta distro no tiene systemd (arje). WITH_BASHCOMPLETION/WITH_WGQUICK van
33# explícitos para que el paquete no cambie de contenido si upstream mueve un default.
34compile = 'make -C src WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no'
35install = 'make -C src DESTDIR=/out PREFIX=/usr WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no install'
36
37[deps]
38build = ["libmnl", "pkgconf"]
39runtime = ["bash"]