67 lines
1.8 KiB
Nix
67 lines
1.8 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
fetchpatch,
|
|
kernel,
|
|
kernelModuleMakeFlags,
|
|
kmod,
|
|
zlib,
|
|
}:
|
|
|
|
let
|
|
version = "3.2.2";
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
pname = "netatop";
|
|
inherit version;
|
|
name = "netatop-${kernel.version}-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "https://www.atoptool.nl/download/netatop-${version}.tar.gz";
|
|
hash = "sha256-UIqJd809HN1nWHoTwl46QUZHtI+S0c44/BOLWRSuo/Y=";
|
|
};
|
|
|
|
nativeBuildInputs = kernel.moduleBuildDependencies;
|
|
buildInputs = [
|
|
kmod
|
|
zlib
|
|
];
|
|
|
|
hardeningDisable = [ "pic" ];
|
|
|
|
patches = [
|
|
# fix paths in netatop.service
|
|
./fix-paths.patch
|
|
# fix install paths and install the .ko instead of trying to invoke dkms
|
|
./fix-makefile-install.patch
|
|
# replace init_module as needed by Linux 6.15 and above (backwards compatible)
|
|
(fetchpatch {
|
|
url = "https://aur.archlinux.org/cgit/aur.git/plain/netatop_kernel_6.15.patch?h=netatop-dkms&id=e5da6fa4fee5499c3e437cdd34281dd2b200508f";
|
|
hash = "sha256-JyNQNyDJQkM/hLpb/hp3Sw2tMA8XnYogduGDFqTQ3nQ=";
|
|
})
|
|
];
|
|
preConfigure = ''
|
|
patchShebangs mkversion
|
|
kmod=${kmod} substituteAllInPlace netatop.service
|
|
'';
|
|
|
|
makeFlags = kernelModuleMakeFlags ++ [
|
|
"KERNDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
|
"KMODDIRVERSION=${kernel.modDirVersion}"
|
|
# netatop builds both the module and daemon at once, and the daemon needs a wrapped cc to build
|
|
# pkgs/os-specific/linux/kernel/common-flags.nix unwraps the cc for kernel build, but we need the wrapped one
|
|
"CC=${stdenv.cc}/bin/cc"
|
|
];
|
|
|
|
meta = {
|
|
description = "Network monitoring module for atop";
|
|
mainProgram = "netatopd";
|
|
homepage = "https://www.atoptool.nl/downloadnetatop.php";
|
|
license = lib.licenses.gpl2Only;
|
|
platforms = lib.platforms.linux;
|
|
maintainers = [ ];
|
|
};
|
|
}
|