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