diff --git a/module.nix b/module.nix index f7dbfa4..ea3722e 100644 --- a/module.nix +++ b/module.nix @@ -3,6 +3,23 @@ with lib; let + perl = pkgs.perl.withPackages (pp: with pp;[ Socket6 ]); + mrtg = pkgs.stdenv.mkDerivation rec { + pname = "mrtg"; + version = "2.17.10"; + + src = pkgs.fetchurl { + url = "https://oss.oetiker.ch/mrtg/pub/${pname}-${version}.tar.gz"; + sha256 = "sha256-x/EcteIXpQDYfuO10mxYqGUu28DTKRaIu3krAQ+uQ6w="; + }; + + buildInputs = [ + pkgs.gd + pkgs.rrdtool + pkgs.makeWrapper + perl + ]; + }; cfg = config.services.ixp-manager; package = cfg.package.override { dataDir = cfg.dataDir; @@ -521,17 +538,23 @@ in after = [ "ixp-manager-setup.service" ]; environment.LANG = "C"; path = [ pkgs.rrdtool ]; - startAt = "*:0/1"; + startAt = "*:0/5"; preStart = '' - #${artisanWrapper}/bin/ixp-manager-artisan grapher:generate-configuration -B mrtg -O /var/lib/mrtg/ixpmanager.cfg - #sed -i '/RunAsDaemon/d' /var/lib/mrtg/ixpmanager.cfg - #echo "LibAdd: ${pkgs.rrdtool}/lib/perl5/site_perl" >> /var/lib/mrtg/ixpmanager.cfg + ${artisanWrapper}/bin/ixp-manager-artisan grapher:generate-configuration -B mrtg -O /var/lib/mrtg/ixpmanager.cfg + sed -i '/RunAsDaemon/d' /var/lib/mrtg/ixpmanager.cfg + echo "LibAdd: ${pkgs.rrdtool}/lib/perl5/site_perl" >> /var/lib/mrtg/ixpmanager.cfg + echo "EnableIPv6: yes" >> /var/lib/mrtg/ixpmanager.cfg ''; serviceConfig = { Type = "simple"; RuntimeDirectory = "mrtg"; StateDirectory = "mrtg"; - ExecStart = "${pkgs.mrtg}/bin/mrtg /var/lib/mrtg/ixpmanager.cfg --lock-file=/run/mrtg/mrtg.lock --confcache-file=/var/lib/mrtg/mrtg.ok --debug=\"base\" --logging /var/lib/mrtg/log.log"; + ExecStart = "${mrtg.overrideAttrs { +postPatch = '' + sed -i 's|@main::DEBUG=qw();|@main::DEBUG=qw(eval);|' bin/mrtg + ''; + + }}/bin/mrtg /var/lib/mrtg/ixpmanager.cfg --lock-file=/run/mrtg/mrtg.lock --confcache-file=/var/lib/mrtg/mrtg.ok --debug=\"base\" --logging /var/lib/mrtg/log.log"; User = config.services.ixp-manager.user; Group = config.services.ixp-manager.group; };