{
lib,
stdenv,
fetchFromGitHub,
nixosTests,
file,
libmnl,
libnftnl,
libnl,
net-snmp,
openssl,
pkg-config,
autoreconfHook,
withNetSnmp ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
}:
stdenv.mkDerivation rec {
pname = "keepalived";
version = "2.3.2";
src = fetchFromGitHub {
owner = "acassen";
repo = "keepalived";
rev = "v${version}";
sha256 = "sha256-Faj7fgCYdjZ8yPH/GrDG9t+O1n+h/9lHCE7vMe4kROQ=";
};
buildInputs =
[
file
libmnl
libnftnl
libnl
openssl
]
++ lib.optionals withNetSnmp [
net-snmp
];
enableParallelBuilding = true;
passthru.tests.keepalived = nixosTests.keepalived;
nativeBuildInputs = [
pkg-config
autoreconfHook
configureFlags =
"--enable-sha1"
"--enable-snmp"
meta = with lib; {
homepage = "https://keepalived.org";
description = "Routing software written in C";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.raitobezarius ];
}