Merge remote-tracking branch 'upstream/master' into HEAD

This commit is contained in:
Frederik Rietdijk
2017-11-25 11:38:13 +01:00
22 changed files with 695 additions and 64 deletions
@@ -0,0 +1,41 @@
commit af5fa3623bb9a73052f9154be4a0f38c60ea42a2
Author: Kjetil Orbekk <kjetil.orbekk@gmail.com>
Date: Thu Nov 23 21:21:36 2017 -0500
node: add --sconfdir to set plugin configuration dir
diff --git a/node/sbin/munin-node b/node/sbin/munin-node
index 909c8c4e..0ccf3941 100755
--- a/node/sbin/munin-node
+++ b/node/sbin/munin-node
@@ -100,9 +100,11 @@ sub parse_args
my @ORIG_ARGV = @ARGV;
my $servicedir_cmdline;
+ my $sconfdir_cmdline;
print_usage_and_exit() unless GetOptions(
"config=s" => \$conffile,
"servicedir=s" => \$servicedir_cmdline,
+ "sconfdir=s" => \$sconfdir_cmdline,
"debug!" => \$DEBUG,
"pidebug!" => \$PIDEBUG,
"paranoia!" => \$paranoia,
@@ -112,6 +114,7 @@ sub parse_args
# We untaint the args brutally, since the sysadm should know what he does
$servicedir = $1 if defined $servicedir_cmdline && $servicedir_cmdline =~ m/(.*)/;
+ $sconfdir = $1 if defined $sconfdir_cmdline && $sconfdir_cmdline =~ m/(.*)/;
# Reset ARGV (for HUPing)
@ARGV = @ORIG_ARGV;
@@ -175,6 +178,10 @@ Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin-node.conf]
Override plugin directory [@@CONFDIR@@/plugins/]
+=item B<< --sconfdir <dir> >>
+
+Override plugin configuration directory [@@CONFDIR@@/plugin-conf.d/]
+
=item B< --[no]paranoia >
Only run plugins owned by root. Check permissions as well. [--noparanoia]
+5 -2
View File
@@ -3,14 +3,14 @@
}:
stdenv.mkDerivation rec {
version = "2.0.33";
version = "2.0.34";
name = "munin-${version}";
src = fetchFromGitHub {
owner = "munin-monitoring";
repo = "munin";
rev = version;
sha256 = "0rs05b7926mjd58sdry33i91m1h3v3svl0wg2gmhljl8wqidac5w";
sha256 = "0mb5m0nc3nr9781d3s99sjdssmvkv37gxyplzr6d73i4hi31m7fr";
};
buildInputs = [
@@ -67,6 +67,9 @@ stdenv.mkDerivation rec {
# https://github.com/munin-monitoring/munin/pull/134
./adding_servicedir_munin-node.patch
./adding_sconfdir_munin-node.patch
./preserve_environment.patch
];
preBuild = ''
@@ -0,0 +1,41 @@
commit d94c29b7397362857b81d8c877a989fdb28490d8
Author: Kjetil Orbekk <kjetil.orbekk@gmail.com>
Date: Tue Nov 21 15:37:42 2017 -0500
Keep environment variables instead of overwriting them.
diff --git a/common/lib/Munin/Common/Defaults.pm b/common/lib/Munin/Common/Defaults.pm
index 131f52c0..bbf42697 100644
--- a/common/lib/Munin/Common/Defaults.pm
+++ b/common/lib/Munin/Common/Defaults.pm
@@ -71,7 +71,7 @@ sub export_to_environment {
my %defaults = %{$class->get_defaults()};
while (my ($k, $v) = each %defaults) {
- $ENV{$k} = $v;
+ $ENV{$k} = $ENV{$k} || $v;
}
return
diff --git a/node/lib/Munin/Node/Service.pm b/node/lib/Munin/Node/Service.pm
index 1b4f6114..be58bd77 100644
--- a/node/lib/Munin/Node/Service.pm
+++ b/node/lib/Munin/Node/Service.pm
@@ -122,7 +122,7 @@ sub export_service_environment {
# We append the USER to the MUNIN_PLUGSTATE, to avoid CVE-2012-3512
my $uid = $self->_resolve_uid($service);
my $user = getpwuid($uid);
- $ENV{MUNIN_PLUGSTATE} = "$Munin::Common::Defaults::MUNIN_PLUGSTATE/$user";
+ $ENV{MUNIN_PLUGSTATE} = "$ENV{MUNIN_PLUGSTATE}/$user";
# Provide a consistent default state-file.
$ENV{MUNIN_STATEFILE} = "$ENV{MUNIN_PLUGSTATE}/$service-$ENV{MUNIN_MASTER_IP}";
@@ -243,7 +243,7 @@ sub exec_service
# XXX - Create the statedir for the user
my $uid = $self->_resolve_uid($service);
- Munin::Node::OS->mkdir_subdir("$Munin::Common::Defaults::MUNIN_PLUGSTATE", $uid);
+ Munin::Node::OS->mkdir_subdir("$ENV{MUNIN_PLUGSTATE}", $uid);
$self->change_real_and_effective_user_and_group($service);