# libnl 3.11.0 — librería netlink (base del stack WiFi del kernel metal). # # wpa_supplicant habla con el kernel (cfg80211/nl80211) vía netlink genérico; el driver `nl80211` de # wpa_supplicant enlaza libnl-3 + libnl-genl-3 (pkg-config libnl-3.0/libnl-genl-3.0). Es la única forma # de manejar iwlwifi (el viejo wext está muerto en kernels modernos). Sólo se usa para el WiFi del medio # live en hardware real — no toca el camino del selfhost/QEMU. # # Autotools con parsers pre-generados en el tarball (no necesita flex/bison). Estático (.a) como openssl: # evita el lío de nombres .so musl y deja que wpa_supplicant enlace en duro. $CBUILD/$CHOST los exporta # el lab (Etapa G Fase 3). name = "libnl" version = "3.11.0" license = "LGPL-2.1" [source] tarball = "https://github.com/thom311/libnl/releases/download/libnl3_11_0/libnl-3.11.0.tar.gz" sha256 = "2a56e1edefa3e68a7c00879496736fdbf62fc94ed3232c0baba127ecfa76874d" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" [deps] # libnl 3.11 regenera sus parsers netlink ⇒ flex (lexer) + bison (parser) + m4 (bison lo invoca). build = ["flex", "bison", "m4", "make"] [build.phases] # NO lleva `-all-static` (2026-07-17, frente link-static-mentira-libtool): libnl es librería PURA. # Con `--disable-shared --disable-cli` el artefacto son sólo `.a` + headers + `.pc` — cero `.so` y # cero ejecutables ⇒ no hay link final que pueda mentir, y `-all-static` no tendría a qué aplicarse. # El `✗ libnl dice static, es DINÁMICO → libnl-cli-3.so.200 … libc.so` que reportaba el audit era un # artefacto VIEJO del store (490c7a95), sellado ANTES de que se añadieran esos dos flags: `ls -dt` # agarra el más reciente, no el vigente (el propio script lo advierte). Re-sellar bastó. configure = "./configure --build=$CBUILD --host=$CHOST --prefix=/usr --libdir=/usr/lib --disable-shared --enable-static --disable-cli" compile = "make -j\"$(nproc)\"" install = "make DESTDIR=/out install"