1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 protobuf,
7 openssl,
8 libpcap,
9 traceroute,
10 withGUI ? false,
11 qt5,
12}:
13
14let
15 inherit (lib) optional;
16in
17
18stdenv.mkDerivation rec {
19 pname = "spoofer";
20 version = "1.4.12";
21
22 src = fetchurl {
23 url = "https://www.caida.org/projects/spoofer/downloads/${pname}-${version}.tar.gz";
24 sha256 = "sha256-3ljCPmazKz0fHer2yN6baFLu425Dsr9ppdjr2Iv5YJ8=";
25 };
26
27 nativeBuildInputs = [ pkg-config ];
28 buildInputs = [
29 openssl
30 protobuf
31 libpcap
32 traceroute
33 ]
34 ++ optional withGUI qt5.qtbase;
35
36 dontWrapQtApps = true;
37
38 enableParallelBuilding = true;
39
40 meta = with lib; {
41 homepage = "https://www.caida.org/projects/spoofer";
42 description = "Assess and report on deployment of source address validation";
43 longDescription = ''
44 Spoofer is a new client-server system for Windows, MacOS, and
45 UNIX-like systems that periodically tests a network's ability to
46 both send and receive packets with forged source IP addresses
47 (spoofed packets). This can be used to produce reports and
48 visualizations to inform operators, response teams, and policy
49 analysts. The system measures different types of forged
50 addresses, including private and neighboring addresses. The
51 test results allows to analyze characteristics of networks
52 deploying source address validation (e.g., network location,
53 business type).
54 '';
55 platforms = platforms.all;
56 license = licenses.gpl3Plus;
57 maintainers = with lib.maintainers; [ leenaars ];
58 mainProgram = "spoofer-prober";
59 };
60}