nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchpatch,
6 pkg-config,
7 libnl,
8 openssl,
9}:
10
11stdenv.mkDerivation rec {
12 pname = "hostapd-mana";
13 version = "2.6.5";
14
15 src = fetchFromGitHub {
16 owner = "sensepost";
17 repo = "hostapd-mana";
18 rev = version;
19 hash = "sha256-co5LMJAUYSdcvhLv1gfjDvdVqdSXgjtFoiQ7+KxR07M=";
20 };
21
22 patches = [
23 # Fix compile errors with GCC 10 on newer Kali
24 (fetchpatch {
25 url = "https://github.com/sensepost/hostapd-mana/commit/8581994d8d19646da63e1e37cde27dd4c966e526.patch";
26 hash = "sha256-UBkhuqvX1nFiceECAIC9B13ReKbrAAUtPKjqD17mQgg=";
27 })
28 ];
29
30 nativeBuildInputs = [ pkg-config ];
31 buildInputs = [
32 libnl
33 openssl
34 ];
35
36 extraConfig = ''
37 CONFIG_DRIVER_WIRED=y
38 CONFIG_LIBNL32=y
39 CONFIG_EAP_SIM=y
40 CONFIG_EAP_AKA=y
41 CONFIG_EAP_AKA_PRIME=y
42 CONFIG_EAP_PAX=y
43 CONFIG_EAP_PWD=y
44 CONFIG_EAP_SAKE=y
45 CONFIG_EAP_GPSK=y
46 CONFIG_EAP_GPSK_SHA256=y
47 CONFIG_EAP_FAST=y
48 CONFIG_EAP_IKEV2=y
49 CONFIG_EAP_TNC=y
50 CONFIG_EAP_EKE=y
51 CONFIG_RADIUS_SERVER=y
52 CONFIG_IEEE80211R=y
53 CONFIG_IEEE80211N=y
54 CONFIG_IEEE80211AC=y
55 CONFIG_FULL_DYNAMIC_VLAN=y
56 CONFIG_VLAN_NETLINK=y
57 CONFIG_TLS=openssl
58 CONFIG_TLSV11=y
59 CONFIG_TLSV12=y
60 CONFIG_INTERNETWORKING=y
61 CONFIG_HS20=y
62 CONFIG_ACS=y
63 CONFIG_GETRANDOM=y
64 CONFIG_SAE=y
65 '';
66
67 postPatch = ''
68 substituteInPlace hostapd/Makefile --replace /usr/local $out
69 '';
70
71 configurePhase = ''
72 runHook preConfigure
73 cd hostapd
74 cp -v defconfig .config
75 echo "$extraConfig" >> .config
76 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config --cflags libnl-${lib.versions.major libnl.version}.0)"
77 runHook postConfigure
78 '';
79
80 preInstall = ''
81 mkdir -p $out/bin
82 '';
83
84 meta = with lib; {
85 homepage = "https://github.com/sensepost/hostapd-mana";
86 description = "Featureful rogue wifi access point tool";
87 license = licenses.bsd3;
88 maintainers = with maintainers; [ bbjubjub ];
89 platforms = platforms.linux;
90 };
91}