about summary refs log tree commit diff
path: root/pkgs/servers/monitoring/munin
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2017-11-21 17:38:11 -0500
committerBjørn Forsman <bjorn.forsman@gmail.com>2017-11-25 11:23:56 +0100
commitc164d835364ab0b366eade41e67e6ecfab56af7a (patch)
treeb09fd2593c92422c6f5cb0b676a6b5c491c2f9bc /pkgs/servers/monitoring/munin
parente36962a0025a3c435e98d4c235b7e72e9d1cd42e (diff)
downloadnixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar.gz
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar.bz2
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar.lz
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar.xz
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.tar.zst
nixlib-c164d835364ab0b366eade41e67e6ecfab56af7a.zip
munin-node: add patch to preserve environment variables
Diffstat (limited to 'pkgs/servers/monitoring/munin')
-rw-r--r--pkgs/servers/monitoring/munin/default.nix2
-rw-r--r--pkgs/servers/monitoring/munin/preserve_environment.patch41
2 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 6fa59871e3c8..078c2318eef9 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -67,6 +67,8 @@ stdenv.mkDerivation rec {
 
     # https://github.com/munin-monitoring/munin/pull/134
     ./adding_servicedir_munin-node.patch
+
+    ./preserve_environment.patch
   ];
 
   preBuild = ''
diff --git a/pkgs/servers/monitoring/munin/preserve_environment.patch b/pkgs/servers/monitoring/munin/preserve_environment.patch
new file mode 100644
index 000000000000..ef66f48ecb42
--- /dev/null
+++ b/pkgs/servers/monitoring/munin/preserve_environment.patch
@@ -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);
+