base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / tools / networking / xdp-tools / default.nix
blob8cf07fc723851ebbd1d9572aa6504c7866b9806f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , libbpf
5 , elfutils
6 , zlib
7 , libpcap
8 , bpftools
9 , llvmPackages
10 , pkg-config
11 , m4
12 , emacs-nox
13 , wireshark-cli
14 , nukeReferences
16 stdenv.mkDerivation rec {
17   pname = "xdp-tools";
18   version = "1.4.3";
20   src = fetchFromGitHub {
21     owner = "xdp-project";
22     repo = "xdp-tools";
23     rev = "v${version}";
24     hash = "sha256-eI4sqzTaA4iRmhEY3SgySxWiCzGJ7nVebC2RVlk7OHk=";
25   };
27   outputs = [ "out" "lib" ];
29   buildInputs = [
30     libbpf
31     elfutils
32     libpcap
33     zlib
34   ];
36   depsBuildBuild = [
37     emacs-nox # to generate man pages from .org
38   ];
39   nativeBuildInputs = [
40     bpftools
41     llvmPackages.clang
42     llvmPackages.llvm
43     pkg-config
44     m4
45     nukeReferences
46   ];
47   nativeCheckInputs = [
48     wireshark-cli # for tshark
49   ];
51   # When building BPF, the default CC wrapper is interfering a bit too much.
52   BPF_CFLAGS = "-fno-stack-protector -Wno-error=unused-command-line-argument";
54   PRODUCTION = 1;
55   DYNAMIC_LIBXDP = 1;
56   FORCE_SYSTEM_LIBBPF = 1;
57   FORCE_EMACS = 1;
59   makeFlags = [ "PREFIX=$(out)" "LIBDIR=$(lib)/lib" ];
61   postInstall = ''
62     # Note that even the static libxdp would refer to BPF_OBJECT_DIR ?=$(LIBDIR)/bpf
63     rm "$lib"/lib/*.a
64     # Drop unfortunate references to glibc.dev/include at least from $lib
65     nuke-refs "$lib"/lib/bpf/*.o
66   '';
68   meta = with lib; {
69     homepage = "https://github.com/xdp-project/xdp-tools";
70     description = "Library and utilities for use with XDP";
71     license = with licenses; [ gpl2Only lgpl21 bsd2 ];
72     maintainers = with maintainers; [ tirex vcunat vifino ];
73     platforms = platforms.linux;
74   };