# wpa_supplicant 2.11 — supplicant WPA2 para asociar el WiFi del medio live al AP (kernel metal).
#
# El handshake WPA2 de 4 vías lo hace un supplicant en userspace; busybox NO lo trae. Habla con iwlwifi
# vía el driver nl80211 (netlink), que enlaza libnl-3/libnl-genl-3 (recipes/libnl.toml). DHCP lo da
# udhcpc de busybox (ya en el producto) una vez asociada la interfaz.
#
# Crypto: CONFIG_TLS=internal ⇒ NO depende de openssl (suficiente para WPA2-PSK, el WiFi de casa). Para
# WPA-Enterprise/EAP-TLS habría que pasar a CONFIG_TLS=openssl + dep openssl. Sólo medio live en metal.
#
# wpa_supplicant usa un build propio: un `.config` con CONFIG_* en el subdir wpa_supplicant/, luego make.
# Los binarios (wpa_supplicant/wpa_cli/wpa_passphrase) se copian a /usr/sbin (no `make install`).

name    = "wpa_supplicant"
version = "2.11"

[source]
tarball = "https://w1.fi/releases/wpa_supplicant-2.11.tar.gz"
sha256  = "912ea06f74e30a8e36fbb68064d6cdff218d8d591db0fc5d75dee6c81ac7fc0a"

[build]
compiler = "zig-cc"
target   = "x86_64-linux-musl"
link     = "static"

[deps]
build = ["libnl", "make"]

[build.phases]
configure = '''
cat > wpa_supplicant/.config <<'EOF'
CONFIG_DRIVER_NL80211=y
CONFIG_LIBNL32=y
CONFIG_CTRL_IFACE=y
CONFIG_CTRL_IFACE_UNIX=y
CONFIG_BACKEND=file
CONFIG_TLS=internal
CONFIG_INTERNAL_LIBTOMMATH=y
CONFIG_INTERNAL_LIBTOMMATH_FAST=y
CONFIG_IEEE8021X_EAPOL=y
CONFIG_PEERKEY=y
EOF
'''
compile = "cd wpa_supplicant && make -j\"$(nproc)\" wpa_supplicant wpa_cli wpa_passphrase"
install = "mkdir -p /out/usr/sbin && cd wpa_supplicant && cp wpa_supplicant wpa_cli wpa_passphrase /out/usr/sbin/"
