parent
458895db33
commit
b411968774
@ -0,0 +1,43 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.lldpd; |
||||
|
||||
in |
||||
|
||||
{ |
||||
options.services.lldpd = { |
||||
enable = mkEnableOption "Link Layer Discovery Protocol Daemon"; |
||||
|
||||
extraArgs = mkOption { |
||||
type = types.listOf types.str; |
||||
default = []; |
||||
example = [ "-c" "-k" "-I eth0" ]; |
||||
description = "List of command line parameters for lldpd"; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf cfg.enable { |
||||
users.extraUsers._lldpd = { |
||||
description = "lldpd user"; |
||||
group = "_lldpd"; |
||||
home = "/var/run/lldpd"; |
||||
}; |
||||
users.extraGroups._lldpd = {}; |
||||
|
||||
environment.systemPackages = [ pkgs.lldpd ]; |
||||
|
||||
systemd.services.lldpd = { |
||||
wantedBy = [ "multi-user.target" ]; |
||||
after = [ "network.target" ]; |
||||
requires = [ "network.target" ]; |
||||
serviceConfig = { |
||||
ExecStart = "${pkgs.lldpd}/bin/lldpd -d ${concatStringsSep " " cfg.extraArgs}"; |
||||
PrivateTmp = true; |
||||
PrivateDevices = true; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,33 @@ |
||||
{ stdenv, lib, fetchurl, pkgconfig |
||||
, libevent, readline, net_snmp }: |
||||
|
||||
stdenv.mkDerivation rec { |
||||
name = "lldpd-${version}"; |
||||
version = "0.9.7"; |
||||
|
||||
src = fetchurl { |
||||
url = "https://media.luffy.cx/files/lldpd/${name}.tar.gz"; |
||||
sha256 = "1f0d5s4643pjmgycc5ssgl1pggyq5a7navhabkyhcg0aqdah6dmr"; |
||||
}; |
||||
|
||||
configureFlags = [ |
||||
"--localstatedir=/var" |
||||
"--enable-pie" |
||||
"--with-snmp" |
||||
]; |
||||
|
||||
nativeBuildInputs = [ pkgconfig ]; |
||||
buildInputs = [ libevent readline net_snmp ]; |
||||
|
||||
enableParallelBuilding = true; |
||||
|
||||
outputs = [ "out" "dev" "man" "doc" ]; |
||||
|
||||
meta = with lib; { |
||||
description = "802.1ab implementation (LLDP) to help you locate neighbors of all your equipments"; |
||||
homepage = "https://vincentbernat.github.io/lldpd/"; |
||||
license = licenses.isc; |
||||
maintainers = with maintainers; [ fpletz ]; |
||||
platforms = platforms.linux; |
||||
}; |
||||
} |
Loading…
Reference in new issue