# wireguard-tools 1.0.20260223 — `wg` y `wg-quick`, el userland de WireGuard. C, Makefile a secas. # # ── POR QUÉ ENTRA ────────────────────────────────────────────────────────────────────────────── # El VPN ya está en el kernel (`CONFIG_WIREGUARD`, ver SDD 22); lo que faltaba era con qué # configurarlo. Sin esto una caja takana puede hablar WireGuard y no hay forma de decirle con quién. # Pesa dos binarios y un puñado de scripts. # # ── NO DEPENDE DE libmnl: LA TRAE ADENTRO ──────────────────────────────────────────────────── # La primera versión de esta receta iba `link = "dynamic"` con `[deps] build = ["libmnl"]`, y el # razonamiento era razonable y FALSO: «wg enlaza libmnl, la libmnl canónica es --disable-static, en # el store no hay libmnl.a ⇒ dinámico». Lo desmintió el artefacto: `readelf -d wg` da **un solo # NEEDED, `libc.so`**, y los símbolos `mnl_*` están DEFINIDOS adentro. El porqué está escrito en la # fuente, en `src/netlink.h:1`: # # /* This is a minimized version of libmnl meant to be #include'd */ # # Upstream embebe el subconjunto de libmnl que usa, justamente para no arrastrar la dependencia. # ⇒ `link = "static"` y sin `libmnl` en `[deps]`. Declarar una dep que no se usa no es inocuo: ata # esta receta al hash de otra y hace que un rebuild de libmnl re-selle wireguard-tools para nada. # # ⚠ `wg-quick` es un script bash y pide `bash`, `ip` (iproute2) y `resolvconf`/`openresolv` en # RUNTIME. `wg` a secas no necesita nada de eso. Se declara lo que existe en el corpus; el día que # `wg-quick` falle por `ip`, el que falta es iproute2, no esta receta. name = "wireguard-tools" version = "1.0.20260223" license = "GPL-2.0-only" [source] repo = "https://git.zx2c4.com/wireguard-tools" commit = "49ce333da02056ae7b22ee2aeb6afe8aaed79b19" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" [build.phases] # WITH_SYSTEMDUNITS=no: esta distro no tiene systemd (arje). WITH_BASHCOMPLETION/WITH_WGQUICK van # explícitos para que el paquete no cambie de contenido si upstream mueve un default. compile = 'make -C src WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no' install = 'make -C src DESTDIR=/out PREFIX=/usr WITH_WGQUICK=yes WITH_BASHCOMPLETION=yes WITH_SYSTEMDUNITS=no install' [deps] build = ["pkgconf"] runtime = ["bash"]