blob: 7f956a12e7bb3430dde0aeb79b08f142334c30ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
{ final, prev, sources, ... }:
{
preserve-dscp = prev.stdenv.mkDerivation rec {
pname = "preserve-dscp";
inherit (sources.bpf-examples) version src;
patches = [ ./kern_env.patch ./kern_sec_classifier.patch ];
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [ "preserve-dscp" ];
CPATH = prev.lib.makeSearchPathOutput "dev" "include" (buildInputs ++ nativeBuildInputs);
BPF_CFLAGS = "-Wno-unused-command-line-argument -fno-stack-protector";
outputs = [ "out" "lib" ];
buildInputs = with final; [ elfutils libpcap zlib ];
nativeBuildInputs = with final; [ llvmPackages.clang llvmPackages.llvm pkgconfig bpftool libmnl gnum4 glibc_multi makeWrapper ];
installPhase = ''
mkdir -p $lib/lib/bpf
install -t $lib/lib/bpf \
preserve-dscp/preserve_dscp_kern.o
mkdir -p $out/bin
install -m 555 -t $out/bin \
preserve-dscp/preserve-dscp
wrapProgram $out/bin/preserve-dscp \
--set-default PRESERVE_DSCP_KERN $lib/lib/bpf/preserve_dscp_kern.o
'';
dontFixup = true;
meta.mainProgram = "preserve-dscp";
};
}
|