1{ lib, stdenv, fetchurl, kernel, kmod, zlib }:
2
3let
4 version = "3.1";
5in
6
7stdenv.mkDerivation {
8 name = "netatop-${kernel.version}-${version}";
9
10 src = fetchurl {
11 url = "http://www.atoptool.nl/download/netatop-${version}.tar.gz";
12 sha256 = "0qjw8glfdmngfvbn1w63q128vxdz2jlabw13y140ga9i5ibl6vvk";
13 };
14
15 nativeBuildInputs = kernel.moduleBuildDependencies;
16 buildInputs = [ kmod zlib ];
17
18 hardeningDisable = [ "pic" ];
19 env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=implicit-fallthrough" ];
20
21 patches = [
22 # fix paths in netatop.service
23 ./fix-paths.patch
24 # Specify PIDFile in /run, not /var/run to silence systemd warning
25 ./netatop.service.patch
26 ];
27 preConfigure = ''
28 patchShebangs mkversion
29 sed -i -e 's,^KERNDIR.*,KERNDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build,' \
30 */Makefile
31 sed -i -e 's,/lib/modules.*extra,'$out'/lib/modules/${kernel.modDirVersion}/extra,' \
32 -e s,/usr,$out, \
33 -e /init.d/d \
34 -e /depmod/d \
35 -e s,/lib/systemd,$out/lib/systemd, \
36 Makefile
37
38 kmod=${kmod} substituteAllInPlace netatop.service
39 '';
40
41 makeFlags = kernel.makeFlags;
42
43 preInstall = ''
44 mkdir -p $out/lib/systemd/system $out/bin $out/sbin $out/share/man/man{4,8}
45 mkdir -p $out/lib/modules/${kernel.modDirVersion}/extra
46 '';
47
48 meta = {
49 description = "Network monitoring module for atop";
50 homepage = "https://www.atoptool.nl/downloadnetatop.php";
51 license = lib.licenses.gpl2;
52 platforms = lib.platforms.linux;
53 maintainers = with lib.maintainers; [ viric ];
54 };
55}