at 23.05-pre 81 lines 2.3 kB view raw
1{ lib, stdenv, fetchurl, pkg-config, libnl, openssl, sqlite ? null }: 2 3stdenv.mkDerivation rec { 4 pname = "hostapd"; 5 version = "2.10"; 6 7 src = fetchurl { 8 url = "https://w1.fi/releases/${pname}-${version}.tar.gz"; 9 sha256 = "sha256-IG58eZtnhXLC49EgMCOHhLxKn4IyOwFWtMlGbxSYkV0="; 10 }; 11 12 nativeBuildInputs = [ pkg-config ]; 13 buildInputs = [ libnl openssl sqlite ]; 14 15 patches = [ 16 (fetchurl { 17 # Note: fetchurl seems to be unhappy with openwrt git 18 # server's URLs containing semicolons. Using the github mirror instead. 19 url = "https://raw.githubusercontent.com/openwrt/openwrt/eefed841b05c3cd4c65a78b50ce0934d879e6acf/package/network/services/hostapd/patches/300-noscan.patch"; 20 sha256 = "08p5frxhpq1rp2nczkscapwwl8g9nc4fazhjpxic5bcbssc3sb00"; 21 }) 22 ]; 23 24 outputs = [ "out" "man" ]; 25 26 extraConfig = '' 27 CONFIG_DRIVER_WIRED=y 28 CONFIG_LIBNL32=y 29 CONFIG_EAP_SIM=y 30 CONFIG_EAP_AKA=y 31 CONFIG_EAP_AKA_PRIME=y 32 CONFIG_EAP_PAX=y 33 CONFIG_EAP_PWD=y 34 CONFIG_EAP_SAKE=y 35 CONFIG_EAP_GPSK=y 36 CONFIG_EAP_GPSK_SHA256=y 37 CONFIG_EAP_FAST=y 38 CONFIG_EAP_IKEV2=y 39 CONFIG_EAP_TNC=y 40 CONFIG_EAP_EKE=y 41 CONFIG_RADIUS_SERVER=y 42 CONFIG_IEEE80211R=y 43 CONFIG_IEEE80211N=y 44 CONFIG_IEEE80211AC=y 45 CONFIG_FULL_DYNAMIC_VLAN=y 46 CONFIG_VLAN_NETLINK=y 47 CONFIG_TLS=openssl 48 CONFIG_TLSV11=y 49 CONFIG_TLSV12=y 50 CONFIG_INTERNETWORKING=y 51 CONFIG_HS20=y 52 CONFIG_ACS=y 53 CONFIG_GETRANDOM=y 54 CONFIG_SAE=y 55 '' + lib.optionalString (sqlite != null) '' 56 CONFIG_SQLITE=y 57 ''; 58 59 configurePhase = '' 60 cd hostapd 61 cp -v defconfig .config 62 echo "$extraConfig" >> .config 63 cat -n .config 64 substituteInPlace Makefile --replace /usr/local $out 65 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-3.0)" 66 ''; 67 68 preInstall = "mkdir -p $out/bin"; 69 postInstall = '' 70 install -vD hostapd.8 -t $man/share/man/man8 71 install -vD hostapd_cli.1 -t $man/share/man/man1 72 ''; 73 74 meta = with lib; { 75 homepage = "https://hostap.epitest.fi"; 76 description = "A user space daemon for access point and authentication servers"; 77 license = licenses.gpl2; 78 maintainers = with maintainers; [ ninjatrappeur hexa ]; 79 platforms = platforms.linux; 80 }; 81}