- from PLD
authorMarcin Krol <hawk@tld-linux.org>
Tue, 28 Jul 2015 09:17:24 +0000 (09:17 +0000)
committerMarcin Krol <hawk@tld-linux.org>
Tue, 28 Jul 2015 09:17:24 +0000 (09:17 +0000)
17 files changed:
munin-Makefile.patch [new file with mode: 0644]
munin-apache.conf [new file with mode: 0644]
munin-asyncd.init [new file with mode: 0755]
munin-asyncd.service [new file with mode: 0644]
munin-httpd.conf [new file with mode: 0644]
munin-lighttpd.conf [new file with mode: 0644]
munin-node.init [new file with mode: 0755]
munin-node.logrotate [new file with mode: 0644]
munin-node.service [new file with mode: 0644]
munin-plugins.patch [new file with mode: 0644]
munin-separate-configs.patch [new file with mode: 0644]
munin-templatedir.patch [new file with mode: 0644]
munin-timeout.patch [new file with mode: 0644]
munin.cron [new file with mode: 0644]
munin.logrotate [new file with mode: 0644]
munin.spec [new file with mode: 0644]
munin.tmpfiles [new file with mode: 0644]

diff --git a/munin-Makefile.patch b/munin-Makefile.patch
new file mode 100644 (file)
index 0000000..e808657
--- /dev/null
@@ -0,0 +1,121 @@
+--- munin-1.4.0/Makefile~      2009-11-27 12:17:18.000000000 +0100
++++ munin-1.4.0/Makefile       2009-11-30 14:33:15.977700738 +0100
+@@ -77,6 +77,7 @@
+       mkdir -p $(CONFDIR)/munin-conf.d
+       mkdir -p $(LIBDIR)
+       mkdir -p $(BINDIR)
++      mkdir -p $(SBINDIR)
+       mkdir -p $(PERLLIB)
+       mkdir -p $(PERLLIB)/Munin/Master
+       mkdir -p $(HTMLDIR)
+@@ -99,8 +100,8 @@
+       test -f $(HTMLDIR)/.htaccess || $(INSTALL) -m 0644 build/master/www/munin-htaccess $(HTMLDIR)/.htaccess
+       test -f "$(CONFDIR)/munin.conf"  || $(INSTALL) -m 0644 build/master/munin.conf $(CONFDIR)/
+-      $(INSTALL) -m 0755 build/master/_bin/munin-cron $(BINDIR)/
+-      $(INSTALL) -m 0755 build/master/_bin/munin-check $(BINDIR)/
++      $(INSTALL) -m 0755 build/master/_bin/munin-cron $(SBINDIR)/
++      $(INSTALL) -m 0755 build/master/_bin/munin-check $(LIBDIR)/
+       $(INSTALL) -m 0755 build/master/_bin/munin-update $(LIBDIR)/
+       $(INSTALL) -m 0755 build/master/_bin/munin-graph $(LIBDIR)/
+       $(INSTALL) -m 0755 build/master/_bin/munin-html $(LIBDIR)/
+--- munin-1.4.0/Makefile.config~       2009-11-27 12:17:18.000000000 +0100
++++ munin-1.4.0/Makefile.config        2009-11-30 14:32:28.827763277 +0100
+@@ -17,10 +17,10 @@
+ #
+ # the base of the Munin installation.
+ #
+-PREFIX     = $(DESTDIR)/opt/munin
++PREFIX     = $(DESTDIR)/usr
+ # Where Munin keeps its configurations (server.conf, client.conf, ++)
+-CONFDIR    = $(DESTDIR)/etc/opt/munin
++CONFDIR    = $(DESTDIR)/etc/munin
+ # Server only - where to put munin-cron
+ BINDIR     = $(PREFIX)/bin
+@@ -32,31 +32,31 @@
+ DOCDIR     = $(PREFIX)/doc
+ # Where to put man pages
+-MANDIR     = $(PREFIX)/man
++MANDIR     = $(PREFIX)/share/man
+ # Where to put internal binaries and plugin repository
+-LIBDIR     = $(PREFIX)/lib
++LIBDIR     = $(PREFIX)/share/munin
+ # Server only - Output directory
+-HTMLDIR    = $(PREFIX)/www/docs
+-CGIDIR     = $(PREFIX)/www/cgi
++HTMLDIR    = $(DESTDIR)/var/lib/munin/html
++CGIDIR     = $(LIBDIR)/cgi
+ # Where to put internal data for master (RRD, internal files, ...)
+-DBDIR      = $(DESTDIR)/var/opt/munin
++DBDIR      = $(DESTDIR)/var/lib/munin/db
+ # Where to put internal data for node (plugin state, ...)
+-DBDIRNODE  = $(DESTDIR)/var/opt/munin-node
++DBDIRNODE  = $(DESTDIR)/var/lib/munin/db-node
+ # Client only - Where the spool files are written. Must be writable by
+ # group "munin", and should be preserved between reboots
+-SPOOLDIR   = $(DBDIR)/spool
++SPOOLDIR  = $(DESTDIR)/var/spool/munin
+ # Client only - Where plugins should put their states. Must be writable by
+ # group "munin", and should be preserved between reboots
+-PLUGSTATE  = $(DBDIRNODE)/plugin-state
++PLUGSTATE  = $(DESTDIR)/var/lib/munin/plugin-state
+ # Where Munin should place its logs.
+-LOGDIR     = $(PREFIX)/log/munin
++LOGDIR     = $(DESTDIR)/var/log/munin
+ # Location of PID files and other statefiles. On the server, must be
+ # writable by the user "munin".
+@@ -98,7 +98,7 @@
+ BASH       := /bin/bash
+ # Server only - Where to install the perl libraries
+-PERLSITELIB := $(shell $(PERL) -V:sitelib | cut -d"'" -f2)
++PERLSITELIB := $(shell $(PERL) -V:vendorlib | cut -d"'" -f2)
+ PERLLIB    = $(DESTDIR)$(PERLSITELIB)
+ # Client only - Install plugins for this architecture
+@@ -106,7 +106,7 @@
+ # How to figure out the hostname. (Only used in default configuration
+ # files)
+-HOSTNAME   := $(shell hostname)
++HOSTNAME   := localhost
+ # What is the safest way to create a tempfile.
+ # Default is to figure it out by testing various methods.
+@@ -126,9 +126,9 @@
+ # Which command to use to check if the USER and GROUP to run Munin as, exists.
+ # These will work on most modern OSes:
+ #
+-GETENT     := $(shell which getent || which true 2>/dev/null)
+-CHECKUSER  := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2"))
+-CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2"))
++GETENT     := /bin/true
++CHECKUSER  := /bin/true
++CHECKGROUP := /bin/true
+ # For OSX, comment out the previous two lines and comment in these
+ #
+@@ -146,9 +146,9 @@
+ #CHECKUSER  := $(shell pwget -n $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2"))
+ #CHECKGROUP := $(shell grget -n $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2"))
+-CHOWN      := chown
+-CHMOD      := chmod
+-CHGRP      := chgrp
++CHOWN      := /bin/true
++CHMOD      := /bin/true
++CHGRP      := /bin/true
+ # Java compiler stuff - only needed on the buildhost
+ JC         := javac
diff --git a/munin-apache.conf b/munin-apache.conf
new file mode 100644 (file)
index 0000000..e0d0a0a
--- /dev/null
@@ -0,0 +1,64 @@
+Alias /munin/static /etc/webapps/munin/templates/static
+
+<Directory /etc/webapps/munin/templates/static>
+       AllowOverride None
+       Order allow,deny
+       Allow from all
+</Directory>
+
+# Configuration for 'html_strategy cgi'
+#ScriptAlias /munin /usr/share/munin/cgi/munin-cgi-html
+
+ScriptAlias /munin-cgi/munin-cgi-graph /usr/share/munin/cgi/munin-cgi-graph
+
+# Ensure we can run (fast)cgi scripts
+<Directory /usr/share/munin/cgi>
+       Options +ExecCGI
+       <IfModule mod_fcgid.c>
+               SetHandler fcgid-script
+       </IfModule>
+       <IfModule mod_fastcgi.c>
+               SetHandler fastcgi-script
+       </IfModule>
+       <IfModule !mod_fastcgi.c>
+               <IfModule !mod_fcgid.c>
+                       SetHandler cgi-script
+               </IfModule>
+       </IfModule>
+
+       AllowOverride None
+
+       Order allow,deny
+       Allow from all
+# OR
+       # Make Munin password protected
+#      AuthUserFile /etc/webapps/munin/htpasswd
+#      AuthName "Munin"
+#      AuthType Basic
+#      require valid-user
+</Directory>
+
+# Configuration for 'html_strategy cron' (default)
+Alias /munin /var/lib/munin/html/
+
+<Directory /var/lib/munin/html>
+       AllowOverride None
+
+       Order allow,deny
+       Allow from all
+# OR
+       # Make Munin password protected
+#      AuthUserFile /etc/webapps/munin/htpasswd
+#      AuthName "Munin"
+#      AuthType Basic
+#      require valid-user
+
+       <IfModule mod_expires>
+               # Set the default expiery time for files 5 minutes 10 seconds
+               # from their creation (modification) time.
+               # There are probably new files by that time.
+
+               ExpiresActive On
+               ExpiresDefault M310
+       </IfModule>
+</Directory>
diff --git a/munin-asyncd.init b/munin-asyncd.init
new file mode 100755 (executable)
index 0000000..b7a89d1
--- /dev/null
@@ -0,0 +1,86 @@
+#!/bin/sh
+#
+# munin-asyncd Start/Stop the munin-asyncd daemon.
+#
+# chkconfig:   2345 91 09
+# description: munin-asyncd enables asyncronous fetching of
+#              metrics from munin-node in a Munin monitoring setup.
+#
+# processname: munin-asyncd
+# pidfile:     /var/run/munin-asyncd.pid
+#
+### BEGIN INIT INFO
+# Provides:            munin-asyncd
+# Required-Start:      $local_fs $remote_fs $network
+# Required-Stop:       $local_fs $remote_fs $network
+# Default-Start:       2 3 4 5
+# Default-Stop:                0 1 6
+# Short-Description:   Starts and stops munin-asyncd
+# Description:         munin-asyncd enables asyncronous fetching of
+#                      metrics from munin-node in a Munin monitoring setup.
+### END INIT INFO
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+start() {
+       # Check if the service is already running?
+       if [ -f /var/lock/subsys/munin-asyncd ]; then
+               msg_already_running "munin-asyncd"
+               return
+       fi
+
+       msg_starting "munin-asyncd"
+       daemon /usr/sbin/munin-asyncd
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/munin-asyncd
+}
+
+stop() {
+       if [ ! -f /var/lock/subsys/munin-asyncd ]; then
+               msg_not_running "munin-asyncd"
+               return
+       fi
+
+       msg_stopping "munin-asyncd"
+       killproc munin-asyncd
+       rm -f /var/lock/subsys/munin-asyncd
+}
+
+condrestart() {
+       if [ ! -f /var/lock/subsys/munin-asyncd ]; then
+               msg_not_running "munin-asyncd"
+               RETVAL=$1
+               return
+       fi
+
+       stop
+       start
+}
+
+RETVAL=0
+# See how we were called.
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart|reload|force-reload)
+       stop
+       start
+       ;;
+  try-restart)
+       condrestart 0
+       ;;
+  status)
+       status --pidfile /var/run/munin-asyncd.pid munin-asyncd
+       exit $?
+       ;;
+  *)
+       msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}"
+       exit 3
+esac
+
+exit $RETVAL
diff --git a/munin-asyncd.service b/munin-asyncd.service
new file mode 100644 (file)
index 0000000..77066fe
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=Munin Async Server
+Documentation=man:munin-node
+Requires=munin-node.service
+After=network.target munin-node.service
+
+[Service]
+Type=simple
+ExecStart=/usr/sbin/munin-asyncd
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/munin-httpd.conf b/munin-httpd.conf
new file mode 100644 (file)
index 0000000..0823b93
--- /dev/null
@@ -0,0 +1,61 @@
+Alias /munin/static /etc/webapps/munin/templates/static
+
+<Directory /etc/webapps/munin/templates/static>
+       AllowOverride None
+       Require all granted
+</Directory>
+
+# Configuration for 'html_strategy cgi'
+#ScriptAlias /munin /usr/share/munin/cgi/munin-cgi-html
+
+ScriptAlias /munin-cgi/munin-cgi-graph /usr/share/munin/cgi/munin-cgi-graph
+
+# Ensure we can run (fast)cgi scripts
+<Directory /usr/share/munin/cgi>
+       Options +ExecCGI
+       <IfModule mod_fcgid.c>
+               SetHandler fcgid-script
+       </IfModule>
+       <IfModule mod_fastcgi.c>
+               SetHandler fastcgi-script
+       </IfModule>
+       <IfModule !mod_fastcgi.c>
+               <IfModule !mod_fcgid.c>
+                       SetHandler cgi-script
+               </IfModule>
+       </IfModule>
+
+       AllowOverride None
+
+       Require all granted
+# OR
+       # Make Munin password protected
+#      AuthUserFile /etc/webapps/munin/htpasswd
+#      AuthName "Munin"
+#      AuthType Basic
+#      require valid-user
+</Directory>
+
+# Configuration for 'html_strategy cron' (default)
+Alias /munin /var/lib/munin/html/
+
+<Directory /var/lib/munin/html>
+       AllowOverride None
+
+       Require all granted
+# OR
+       # Make Munin password protected
+#      AuthUserFile /etc/webapps/munin/htpasswd
+#      AuthName "Munin"
+#      AuthType Basic
+#      require valid-user
+
+       <IfModule mod_expires>
+               # Set the default expiery time for files 5 minutes 10 seconds
+               # from their creation (modification) time.
+               # There are probably new files by that time.
+
+               ExpiresActive On
+               ExpiresDefault M310
+       </IfModule>
+</Directory>
diff --git a/munin-lighttpd.conf b/munin-lighttpd.conf
new file mode 100644 (file)
index 0000000..618af2d
--- /dev/null
@@ -0,0 +1,20 @@
+alias.url += (
+       "/munin/" => "/var/lib/munin/html/",
+       "/munin-cgi" => "/usr/share/munin/cgi/",
+)
+
+#$HTTP["url"] =~ "^/munin/" {
+#      # Make Munin password protected
+#      auth.backend = "htpasswd"
+#      auth.backend.htpasswd.userfile = "/etc/webapps/munin/htpasswd"
+#
+#      auth.require += (
+#              "/" => (
+#                      "method"  => "basic",
+#                      "realm"   => "Munin",
+#                      "require" => "valid-user"
+#              )
+#      )
+#)
+
+# vim:ts=4
diff --git a/munin-node.init b/munin-node.init
new file mode 100755 (executable)
index 0000000..f9c7c44
--- /dev/null
@@ -0,0 +1,56 @@
+#! /bin/sh
+#
+# munin-node   Control the Munin Node Server (formerly Linpro RRD client)
+#
+# chkconfig: 2345 90 10
+# description: munin node agents
+# processname: munin-node
+# config: /etc/munin/munin-node.conf
+# pidfile: /var/run/munin/munin-node.pid
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+RETVAL=0
+PROCNAME=munin-node
+
+mkdir -p /var/run/munin 2>/dev/null
+chown munin /var/run/munin
+
+# See how we were called.
+case "$1" in
+  start)
+       if [ ! -f /var/lock/subsys/munin-node ]; then
+               msg_starting "Munin Node"
+               daemon --fork --waitfortime 3 --waitforname munin-node munin-node
+               RETVAL=$?
+               [ $RETVAL -eq 0 ] && touch /var/lock/subsys/munin-node
+       else
+               msg_already_running "Munin Node"
+       fi
+       ;;
+  stop)
+       if [ -f /var/lock/subsys/munin-node ]; then
+               msg_stopping "Munin Node"
+               killproc munin-node
+               RETVAL=$?
+               rm -f /var/lock/subsys/munin-node >/dev/null 2>/dev/null
+       else
+               msg_not_running "Munin Node"
+       fi
+       ;;
+  status)
+       status munin-node
+       exit $?
+       ;;
+  restart|reload)
+       $0 stop
+       $0 start
+       exit $?
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|status|restart}"
+       exit 1
+esac
+
+exit $RETVAL
diff --git a/munin-node.logrotate b/munin-node.logrotate
new file mode 100644 (file)
index 0000000..2ba1b4f
--- /dev/null
@@ -0,0 +1,8 @@
+/var/log/munin/munin-node.log {
+       su root http
+       olddir /var/log/archive/munin
+       create 640 munin root
+       postrotate
+               /bin/killall -q -HUP munin-node
+       endscript
+}
diff --git a/munin-node.service b/munin-node.service
new file mode 100644 (file)
index 0000000..44b7d6d
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=Munin Node Server
+Documentation=man:munin-node
+After=network.target
+
+[Service]
+Type=forking
+PIDFile=/var/run/munin/munin-node.pid
+ExecStart=/usr/sbin/munin-node
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/munin-plugins.patch b/munin-plugins.patch
new file mode 100644 (file)
index 0000000..2fade3f
--- /dev/null
@@ -0,0 +1,1362 @@
+diff -urN munin-2.0.17/dists/tarball/plugins.conf munin-2.0.17-plugins/dists/tarball/plugins.conf
+--- munin-2.0.17/dists/tarball/plugins.conf    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/dists/tarball/plugins.conf    2013-08-17 13:18:51.817585940 +0200
+@@ -14,6 +14,9 @@
+ #
+ #
++[*]
++env.logtail /usr/bin/logtail
++
+ [mysql*]
+ #env.mysqlopts -u someuser
+@@ -31,3 +34,128 @@
+ [postfix*]
+ user root
++env.logdir /var/log
++env.logfile maillog
++
++[netstat]
++group proc
++
++[amavis*]
++user root
++env.amavislog /var/log/maillog
++env.logfile /var/log/maillog
++
++[courier*]
++user root
++env.logfile /var/log/maillog
++
++[mailman]
++user mailman
++group (mailman)
++
++[bind9_rndc]
++group (named)
++env.querystats /var/lib/named/named.stats
++
++[squid*]
++group (squid)
++#env.squidport 3128
++#env.squiduser manager
++#env.squidpasswd <SECRET>
++
++[fw*]
++group proc
++
++[if*]
++group proc
++
++[dhcpd3]
++user root
++env.leasefile /var/lib/dhcpd/dhcpd.leases
++env.configfile /etc/dhcpd.conf
++
++[ip_*]
++user root
++
++[munin*]
++user munin
++
++[ping_*]
++group adm
++
++[port_*]
++group proc
++
++[processes]
++group proc
++
++[ps_*]
++group proc
++
++[psu_*]
++group proc
++
++[nfs*]
++group proc
++
++[entropy]
++group proc
++
++[open_*]
++group proc
++
++[nut*]
++env.upsname SmartUPS
++env.upshost 127.0.0.1
++
++[df*]
++#user root    # if you have mode 0000 /vservers dir
++group proc
++
++# Sane defaults for plugins from MuninExchange
++
++[apache_smaps]
++#user root    # if you have kernel with grsecurity
++group proc
++env.pname httpd.prefork
++env.puser http
++
++[dovecot]
++user root
++env.logfile /var/log/maillog
++
++[php_eaccelerator]
++env.user admin
++env.password eAccelerator
++env.url http://127.0.0.1/eaccelerator/control.php
++
++[proftpd*]
++user root
++env.logfile /var/log/xferlog
++
++[vsftpd*]
++user root
++env.logfile /var/log/vsftpd.log
++
++[postgrey*]
++user root
++env.logfile /var/log/maillog
++
++[nagiosstatus]
++user root
++env.statuslog /var/lib/nagios/status.dat
++
++[freeradius]
++user root
++env.radius_log /var/log/freeradius/radius.log
++
++[ipmitool_sensor*]
++user root
++timeout 20
++
++[openvpn_clients]
++user root
++env.logfile /var/log/openvpn/status.log
++
++[cupsys_pages]
++user root
+diff -urN munin-2.0.17/plugins/node.d/amavis.in munin-2.0.17-plugins/plugins/node.d/amavis.in
+--- munin-2.0.17/plugins/node.d/amavis.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/amavis.in      2013-08-17 13:18:51.820919315 +0200
+@@ -77,13 +77,12 @@
+ =cut
+ mktempfile () {
+-    cmd=`echo $MUNIN_MKTEMP | sed s/\\$1/$1/`
+-    $cmd
++    mktemp -p /tmp/ $1
+ }
+ AMAVIS_LOG=${amavislog:-/var/log/mail/mail.info}
+ LOGTAIL=${logtail:-logtail}
+-STATEFILE=$MUNIN_PLUGSTATE/amavis.offset
++STATEFILE=@@PLUGSTATE@@/amavis.offset
+ if [ "$1" = "autoconf" ]; then
+         if [ -f "${AMAVIS_LOG}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" ] ; then
+@@ -106,7 +105,7 @@
+ if [ "$1" = "config" ]; then
+       echo 'graph_title Amavis filter statistics'
+-      echo 'graph_vlabel \#'
++      echo 'graph_vlabel mails'
+       echo 'graph_category antivirus'
+       echo 'virus.label virus'
+       echo 'virus.info Number of viruses caught in email'
+@@ -124,7 +123,7 @@
+ spamm=U
+ spams=U
+-TEMP_FILE=$(mktempfile munin-amavis.XXXXXX)
++TEMP_FILE=$(mktempfile munin-amavis.XXXXXXXXXX)
+ if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ]
+ then
+diff -urN munin-2.0.17/plugins/node.d/apache_accesses.in munin-2.0.17-plugins/plugins/node.d/apache_accesses.in
+--- munin-2.0.17/plugins/node.d/apache_accesses.in     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/apache_accesses.in     2013-08-17 13:18:51.817585940 +0200
+@@ -89,6 +89,7 @@
+ my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://127.0.0.1:%d/server-status?auto";
+ my @PORTS = exists $ENV{'ports'} ? split(' ', $ENV{'ports'}) : (80);
++my $HOST = exists $ENV{'host'} ? $ENV{'host'} : undef;
+ if ( defined $ARGV[0] and $ARGV[0] eq "autoconf" )
+ {
+@@ -129,7 +130,11 @@
+ if ( defined $ARGV[0] and $ARGV[0] eq "config" )
+ {
+-      print "graph_title Apache accesses\n";
++      print "graph_title Apache accesses";
++      if ( $HOST ) {
++              print " for $HOST";
++      }
++      print "\n";
+       print "graph_args --base 1000\n";
+       print "graph_vlabel accesses / \${graph_period}\n";
+       print "graph_category apache\n";
+diff -urN munin-2.0.17/plugins/node.d/apache_processes.in munin-2.0.17-plugins/plugins/node.d/apache_processes.in
+--- munin-2.0.17/plugins/node.d/apache_processes.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/apache_processes.in    2013-08-17 13:18:51.817585940 +0200
+@@ -96,6 +96,7 @@
+ my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://127.0.0.1:%d/server-status?auto";
+ my @PORTS = exists $ENV{'ports'} ? split(' ', $ENV{'ports'}) : (80);
++my $HOST = exists $ENV{'host'} ? $ENV{'host'} : undef;
+ my $SHOWFREE = !exists $ENV{'showfree'} || $ENV{'showfree'};
+ if ( defined $ARGV[0] and $ARGV[0] eq "autoconf" )
+@@ -136,7 +137,11 @@
+ if ( defined $ARGV[0] and $ARGV[0] eq "config" )
+ {
+-        print "graph_title Apache processes\n";
++        print "graph_title Apache processes";
++      if ( $HOST ) {
++              print " for $HOST";
++      }
++      print "\n";
+         print "graph_args --base 1000 -l 0\n";
+               print "graph_category apache\n";
+       print "graph_order ";
+diff -urN munin-2.0.17/plugins/node.d/apache_volume.in munin-2.0.17-plugins/plugins/node.d/apache_volume.in
+--- munin-2.0.17/plugins/node.d/apache_volume.in       2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/apache_volume.in       2013-08-17 13:18:51.817585940 +0200
+@@ -89,6 +89,7 @@
+ my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://127.0.0.1:%d/server-status?auto";
+ my @PORTS = exists $ENV{'ports'} ? split(' ', $ENV{'ports'}) : (80);
++my $HOST = exists $ENV{'host'} ? $ENV{'host'} : undef;
+ if ( defined $ARGV[0] and $ARGV[0] eq "autoconf" )
+ {
+@@ -129,7 +130,11 @@
+ if ( defined $ARGV[0] and $ARGV[0] eq "config" )
+ {
+-      print "graph_title Apache volume\n";
++      print "graph_title Apache volume";
++      if ( $HOST ) {
++              print " for $HOST";
++      }
++      print "\n";
+       print "graph_args --base 1000\n";
+       print "graph_vlabel bytes per \${graph_period}\n";
+       print "graph_category apache\n";
+diff -urN munin-2.0.17/plugins/node.d/bind9.in munin-2.0.17-plugins/plugins/node.d/bind9.in
+--- munin-2.0.17/plugins/node.d/bind9.in       2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/bind9.in       2013-08-17 13:18:51.820919315 +0200
+@@ -53,7 +53,7 @@
+ use strict;
+ my $QUERYLOG = $ENV{logfile} || '/var/log/bind9/query.log';
+-my $STATEFILE= "$ENV{MUNIN_PLUGSTATE}/bind9.state";
++my $STATEFILE= "@@PLUGSTATE@@/bind9.state";
+ my $OTHER=0;
+ my %IN;
+@@ -63,7 +63,7 @@
+         open(Q, ">", $STATEFILE);
+         close(Q);
+     }
+-    open(Q,"< $STATEFILE") or die ("Cannot open state file");
++    open(Q,"< $STATEFILE") or return ("Cannot open state file");
+     while (<Q>) {
+         chomp;
+         my ($q,$n) = split(/\s+/,$_,2);
+diff -urN munin-2.0.17/plugins/node.d/courier_.in munin-2.0.17-plugins/plugins/node.d/courier_.in
+--- munin-2.0.17/plugins/node.d/courier_.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/courier_.in    2013-08-17 13:18:51.817585940 +0200
+@@ -55,7 +55,7 @@
+ COURIER_LOG=${logfile:-/var/log/mail.log}
+ SERVICE=${service:-`basename $0 | sed 's/^courier_//g'`}
+ OFFSET_FILE=${MUNIN_PLUGSTATE}/courier_${SERVICE}.offset
+-LOGTAIL=${logtail:-/usr/sbin/logtail}
++LOGTAIL=${logtail:-`which logtail`}
+ mktempfile () {
+ @@MKTEMP@@
+diff -urN munin-2.0.17/plugins/node.d/courier_mta_mailstats.in munin-2.0.17-plugins/plugins/node.d/courier_mta_mailstats.in
+--- munin-2.0.17/plugins/node.d/courier_mta_mailstats.in       2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/courier_mta_mailstats.in       2013-08-17 13:18:51.817585940 +0200
+@@ -108,7 +108,9 @@
+ if($startsize < $pos) {
+     # Log rotated
+-    parseLogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    if (-f $rotlogfile) {
++        parseLogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    }
+     $pos = 0;
+ }
+diff -urN munin-2.0.17/plugins/node.d/courier_mta_mailvolume.in munin-2.0.17-plugins/plugins/node.d/courier_mta_mailvolume.in
+--- munin-2.0.17/plugins/node.d/courier_mta_mailvolume.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/courier_mta_mailvolume.in      2013-08-17 13:18:51.817585940 +0200
+@@ -98,7 +98,9 @@
+ if($startsize < $pos) {
+     # Log rotated
+-    parseLogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    if (-f $rotlogfile) {
++        parseLogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    }
+     $pos = 0;
+ }
+diff -urN munin-2.0.17/plugins/node.d/cupsys_pages.in munin-2.0.17-plugins/plugins/node.d/cupsys_pages.in
+--- munin-2.0.17/plugins/node.d/cupsys_pages.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/cupsys_pages.in        2013-08-17 13:18:51.817585940 +0200
+@@ -100,7 +100,9 @@
+ }
+ if ($startsize < $pos) {
+     # Log rotated
+-    parselogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    if (-f $rotlogfile) {
++        parselogfile ($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    }
+     $pos = 0;
+ }
+@@ -146,7 +148,7 @@
+     while (tell(LOGFILE) < $stop) {
+       my $line = <LOGFILE>;
+       chomp ($line);
+-      if ($line =~ /^(\S+)\s+\S+\s+\d+\s+\[[^\]]+\]\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)/) {
++      if ($line =~ /^(\S+)\s+\S+\s+\S+\s+\[[^\]]+\]\s+(\d+)\s+(\d+)\s+(.+)$/) {
+           if(!defined($printers{$1}) && keys(%printers) < $MAXLABEL) {
+               $printers{$1} += int($2)*int($3);
+           } elsif(defined($printers{$1})) {
+diff -urN munin-2.0.17/plugins/node.d/foldingathome_rank.in munin-2.0.17-plugins/plugins/node.d/foldingathome_rank.in
+--- munin-2.0.17/plugins/node.d/foldingathome_rank.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/foldingathome_rank.in  2013-08-17 13:18:51.820919315 +0200
+@@ -13,7 +13,7 @@
+ #%# family=contrib
+ #%# capabilities=autoconf
+-statefile=$MUNIN_PLUGSTATE/plugin-fah_rank.state
++statefile=@@PLUGSTATE@@/plugin-fah_rank.state
+ if [ "$1" = "autoconf" ]; then
+     # No real check of anything
+diff -urN munin-2.0.17/plugins/node.d/mailman.in munin-2.0.17-plugins/plugins/node.d/mailman.in
+--- munin-2.0.17/plugins/node.d/mailman.in     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/mailman.in     2013-08-17 13:18:51.817585940 +0200
+@@ -38,7 +38,13 @@
+ # System paths
+ $logfile = $ENV{'logfile'} || "/var/log/mailman/post";
+ $libdir  = $ENV{'libdir'}  || "/var/lib/mailman";
+-$lister  = $ENV{'lister'}  || "/usr/lib/mailman/bin/list_members";
++$lister  = $ENV{'lister'}  || {
++      if (-f "/usr/lib64/mailman/bin/list_members") {
++              $lister  = "/usr/lib64/mailman/bin/list_members";
++      } else {
++              $lister  = "/usr/lib/mailman/bin/list_members";
++      }
++}
+ if (-f "$logfile.0")
+ {
+@@ -94,7 +100,9 @@
+     $startsize = 0;
+ } elsif($startsize < $pos) {
+     # Log rotated
+-    parseMailmanLog($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    if (-f $rotlogfile) {
++        parseMailmanLog($rotlogfile, $pos, (stat $rotlogfile)[7]);
++    }
+     $pos = 0;
+ }
+diff -urN munin-2.0.17/plugins/node.d/mysql_.in munin-2.0.17-plugins/plugins/node.d/mysql_.in
+--- munin-2.0.17/plugins/node.d/mysql_.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/mysql_.in      2013-08-17 13:18:51.820919315 +0200
+@@ -39,6 +39,7 @@
+     env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
+     env.mysqluser root
+     env.mysqlpassword geheim
++    env.mysqlnosuperpriv 1
+     env.cachenamespace munin_mysql_pri
+   [mysql2_*]
+     env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=13306
+@@ -156,6 +157,7 @@
+     'user'       => $ENV{'mysqluser'}       || 'root',
+     'password'   => $ENV{'mysqlpassword'}   || '',
+     'cache_namespace' => $ENV{'cachenamespace'} || 'munin_mysql',
++    'nosuper'    => $ENV{'mysqlnosuperpriv'} || 0,
+ );
+@@ -927,8 +929,10 @@
+     update_variables($dbh);
+     update_innodb($dbh);
+-    update_master($dbh);
+-    update_slave($dbh);
++    if (!$config{nosuper}) {
++      update_master($dbh);
++      update_slave($dbh);
++    }
+     $shared_memory_cache->set('data', $data);
+ }
+diff -urN munin-2.0.17/plugins/node.d/mysql_innodb.in munin-2.0.17-plugins/plugins/node.d/mysql_innodb.in
+--- munin-2.0.17/plugins/node.d/mysql_innodb.in        2013-08-17 13:19:03.501062149 +0200
++++ munin-2.0.17-plugins/plugins/node.d/mysql_innodb.in        2013-08-17 13:18:51.994254767 +0200
+@@ -1,4 +1,4 @@
+-#!@@GOODSH@@
++#!@@BASH@@
+ : << =cut
+diff -urN munin-2.0.17/plugins/node.d/mysql_slowqueries.in munin-2.0.17-plugins/plugins/node.d/mysql_slowqueries.in
+--- munin-2.0.17/plugins/node.d/mysql_slowqueries.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/mysql_slowqueries.in   2013-08-17 13:18:51.817585940 +0200
+@@ -64,5 +64,5 @@
+       exit 0
+ fi
+-/usr/bin/printf "queries.value "
++/bin/printf "queries.value "
+ ($MYSQLADMIN $MYSQLOPTS status 2>/dev/null || echo a a a a a a a a U) | awk '{print $9}'
+diff -urN munin-2.0.17/plugins/node.d/mysql_threads.in munin-2.0.17-plugins/plugins/node.d/mysql_threads.in
+--- munin-2.0.17/plugins/node.d/mysql_threads.in       2013-08-17 13:19:03.501062149 +0200
++++ munin-2.0.17-plugins/plugins/node.d/mysql_threads.in       2013-08-17 13:18:51.994254767 +0200
+@@ -74,5 +74,5 @@
+       exit 0
+ fi
+-/usr/bin/printf "threads.value "
++/bin/printf "threads.value "
+ ($MYSQLADMIN $MYSQLOPTS status 2>/dev/null || echo 'a a a U') | awk '{print $4}'
+diff -urN munin-2.0.17/plugins/node.d/ntp_.in munin-2.0.17-plugins/plugins/node.d/ntp_.in
+--- munin-2.0.17/plugins/node.d/ntp_.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_.in        2013-08-17 13:18:51.817585940 +0200
+@@ -57,26 +57,26 @@
+ use Net::IP;
+ if ($ARGV[0] and $ARGV[0] eq "autoconf") {
+-        `ntpq -c help >/dev/null 2>/dev/null`;
++        `/usr/sbin/ntpq -c help >/dev/null 2>/dev/null`;
+         if ($CHILD_ERROR eq "0") {
+-                if (`ntpq -n -c peers | wc -l` > 0) {
++                if (`/usr/sbin/ntpq -n -c peers | wc -l` > 0) {
+                         print "yes\n";
+                         exit 0;
+                 } else {
+-                        print "no (ntpq -p returned no peers)\n";
++                        print "no (/usr/sbin/ntpq -p returned no peers)\n";
+                         exit 0;
+                 }
+         } else {
+-                print "no (ntpq not found)\n";
++                print "no (/usr/sbin/ntpq not found)\n";
+                 exit 0;
+         }
+ }
+ if ($ARGV[0] and $ARGV[0] eq "suggest") {
+-        foreach my $line (`ntpq -c associations`) {
++        foreach my $line (`/usr/sbin/ntpq -c associations`) {
+                 if ($line =~ m/^\s*\d+/) {
+                         my (undef, undef, $assid, undef, undef, undef, undef, undef, undef, undef) = split(/\s+/, $line);
+-                        chomp(my $peerinfo = `ntpq -n -c "readvar $assid srcadr"`);
++                        chomp(my $peerinfo = `/usr/sbin/ntpq -n -c "readvar $assid srcadr"`);
+                         $peerinfo =~ s/\R/ /g;
+                         my ($peer_addr) = ($peerinfo =~ m/srcadr=(.*)/);
+                         print $peer_addr, "\n" unless $peer_addr eq "0.0.0.0";
+@@ -108,7 +108,7 @@
+ my $delay;
+ my $offset;
+ my $jitter;
+-my @associations = `ntpq -c associations`;
++my @associations = `/usr/sbin/ntpq -c associations`;
+ foreach my $line (@associations) {
+         if ($line =~ m/^\s*\d+/) {
+diff -urN munin-2.0.17/plugins/node.d/ntp_kernel_err.in munin-2.0.17-plugins/plugins/node.d/ntp_kernel_err.in
+--- munin-2.0.17/plugins/node.d/ntp_kernel_err.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_kernel_err.in      2013-08-17 13:18:51.820919315 +0200
+@@ -32,7 +32,7 @@
+ export PATH=/usr/local/sbin:$PATH
+ if [ "$1" = "autoconf" ]; then
+-    { ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
++    { /usr/sbin/ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
+     awk 'BEGIN { ev=1; }
+          /^estimated error:/ { ev=0; }
+          END { if (ev == 0) { print "yes";} else { print "no"; } exit ev; }'
+@@ -51,11 +51,11 @@
+ printf 'ntp_err.value '
+-if [ $(ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
++if [ $(/usr/sbin/ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
+ then
+-    cmd=ntpq
++    cmd=/usr/sbin/ntpq
+ else
+-    cmd=ntpdc
++    cmd=/usr/sbin/ntpdc
+ fi
+ $cmd -c kerninfo | awk '/^estimated error:/ { print $3 }'
+diff -urN munin-2.0.17/plugins/node.d/ntp_kernel_pll_freq.in munin-2.0.17-plugins/plugins/node.d/ntp_kernel_pll_freq.in
+--- munin-2.0.17/plugins/node.d/ntp_kernel_pll_freq.in 2013-08-17 13:19:03.501062149 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_kernel_pll_freq.in 2013-08-17 13:18:51.994254767 +0200
+@@ -39,7 +39,7 @@
+ export PATH=/usr/local/sbin:$PATH
+ if [ "$1" = "autoconf" ]; then
+-    { ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
++    { /usr/sbin/ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
+     awk 'BEGIN { ev=1; }
+          /^pll frequency:/ { ev=0; }
+          END { if (ev == 0) { print "yes";} else { print "no"; } exit ev; }'
+@@ -65,11 +65,11 @@
+ printf 'ntp_pll_freq.value '
+-if [ $(ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
++if [ $(/usr/sbin/ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
+ then
+-    cmd=ntpq
++    cmd=/usr/sbin/ntpq
+ else
+-    cmd=ntpdc
++    cmd=/usr/sbin/ntpdc
+ fi
+ $cmd -c kerninfo | awk -v fcomp=$fcomp '/^pll frequency:/ { print $3 + fcomp }'
+diff -urN munin-2.0.17/plugins/node.d/ntp_kernel_pll_off.in munin-2.0.17-plugins/plugins/node.d/ntp_kernel_pll_off.in
+--- munin-2.0.17/plugins/node.d/ntp_kernel_pll_off.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_kernel_pll_off.in  2013-08-17 13:18:51.820919315 +0200
+@@ -32,7 +32,7 @@
+ export PATH=/usr/local/sbin:$PATH
+ if [ "$1" = "autoconf" ]; then
+-    { ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
++    { /usr/sbin/ntpq -c kerninfo; ntpdc -c kerninfo; } 2>/dev/null |
+     awk 'BEGIN { ev=1; }
+          /^pll offset:/ { ev=0; }
+          END { if (ev == 0) { print "yes";} else { print "no"; } exit ev; }'
+@@ -51,11 +51,11 @@
+ printf 'ntp_pll_off.value '
+-if [ $(ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
++if [ $(/usr/sbin/ntpq -c version | grep --extended-regexp --only-matching '[[:digit:]]\.[[:digit:]]\.[[:digit:]]' | tr -d '.') -ge 427 ]
+ then
+-    cmd=ntpq
++    cmd=/usr/sbin/ntpq
+ else
+-    cmd=ntpdc
++    cmd=/usr/sbin/ntpdc
+ fi
+ $cmd -c kerninfo | awk '/^pll offset:/ { print $3 }'
+diff -urN munin-2.0.17/plugins/node.d/ntp_offset.in munin-2.0.17-plugins/plugins/node.d/ntp_offset.in
+--- munin-2.0.17/plugins/node.d/ntp_offset.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_offset.in  2013-08-17 13:18:51.820919315 +0200
+@@ -38,9 +38,9 @@
+ =cut
+ do_autoconf () {
+-    ntpq -c help >/dev/null 2>&1 || { echo 'no (no ntpq program)'; exit 0; }
++    /usr/sbin/ntpq -c help >/dev/null 2>&1 || { echo 'no (no ntpq program)'; exit 0; }
+-    case "$(ntpq -n -p 2>/dev/null | wc -l)" in
++    case "$(/usr/sbin/ntpq -n -p 2>/dev/null | wc -l)" in
+       0)
+             echo 'no (unable to list peers)'
+           exit 0
+@@ -57,7 +57,7 @@
+ }
+ do_config () {
+-    syspeer="$(ntpq -n -p | grep '^[*o]')"
++    syspeer="$(/usr/sbin/ntpq -n -p | grep '^[*o]')"
+     set - $syspeer
+@@ -86,7 +86,7 @@
+ do_ () {
+     # Fetch operation
+-    syspeer="$(ntpq -n -p | grep '^[*o]')"
++    syspeer="$(/usr/sbin/ntpq -n -p | grep '^[*o]')"
+     set - $syspeer
+diff -urN munin-2.0.17/plugins/node.d/ntp_states.in munin-2.0.17-plugins/plugins/node.d/ntp_states.in
+--- munin-2.0.17/plugins/node.d/ntp_states.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/ntp_states.in  2013-08-17 13:18:51.820919315 +0200
+@@ -72,10 +72,10 @@
+ #  1 63933  931a   yes   yes  none   outlyer    sys_peer  1
+ #  2 63934  943a   yes   yes  none candidate    sys_peer  3
+-        foreach my $line (`ntpq -c associations`) {
++        foreach my $line (`/usr/sbin/ntpq -c associations`) {
+                 if ($line =~ m/^\s*\d+/) {
+                         my (undef, undef, $assid, undef, undef, undef, undef, $condition_str, undef, undef) = split(/\s+/, $line);
+-                        chomp(my $peerinfo = `ntpq -n -c "readvar $assid srcadr"`);
++                        chomp(my $peerinfo = `/usr/sbin/ntpq -n -c "readvar $assid srcadr"`);
+                         $peerinfo =~ s/\s//g;
+                         my ($peer_addr) = ($peerinfo =~ m/srcadr=(.*)/);
+@@ -125,17 +125,17 @@
+ }
+ if ($ARGV[0] and $ARGV[0] eq "autoconf") {
+-        `ntpq -c help >/dev/null 2>/dev/null`;
++        `/usr/sbin/ntpq -c help >/dev/null 2>/dev/null`;
+         if ($CHILD_ERROR eq "0") {
+-                if (`ntpq -n -c peers | wc -l` > 0) {
++                if (`/usr/sbin/ntpq -n -c peers | wc -l` > 0) {
+                         print "yes\n";
+                         exit 0;
+                 } else {
+-                        print "no (ntpq -p returned no peers)\n";
++                        print "no (/usr/sbin/ntpq -p returned no peers)\n";
+                         exit 0;
+                 }
+         } else {
+-                print "no (ntpq not found)\n";
++                print "no (/usr/sbin/ntpq not found)\n";
+                 exit 0;
+         }
+ }
+diff -urN munin-2.0.17/plugins/node.d/nut_misc.in munin-2.0.17-plugins/plugins/node.d/nut_misc.in
+--- munin-2.0.17/plugins/node.d/nut_misc.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/nut_misc.in    2013-08-17 13:18:51.820919315 +0200
+@@ -38,7 +38,8 @@
+ my %status;
+ my %config = (
+-      upsname => $ENV{"upsname"} ? $ENV{"upsname"} : 'bertha@127.0.0.1',
++      upsname => $ENV{"upsname"} ? $ENV{"upsname"} : 'bertha',
++      upshost => $ENV{"upshost"} ? $ENV{"upshost"} : '127.0.0.1',
+       upsc => $ENV{"upsc"} ? $ENV{"upsc"} : 'upsc'
+ );
+@@ -48,11 +49,6 @@
+                               type => 'GAUGE',
+                               draw => 'LINE2'
+                        },
+-      'battery_voltage' => {
+-                              label => 'batt voltage - V',
+-                              type => 'GAUGE',
+-                              draw => 'LINE2'
+-                       },
+       'battery_runtime' => {
+                               label => 'runtime - min',
+                               type => 'GAUGE',
+@@ -76,7 +72,12 @@
+ );
+ if ( defined $ARGV[0] and $ARGV[0] eq 'config' ) {
+-      print "graph_title UPS Misc - $config{upsname}\n";
++      my $s = $config{upsname};
++      $s =~ s/_/ /g;
++      if ($config{upshost} ne "127.0.0.1" && $config{upshost} ne "localhost") {
++              $s .= " at $config{upshost}";
++      }
++      print "graph_title UPS Misc - $s\n";
+       #print "graph_args -l 110\n";
+       #print "graph_vlabel Misc\n";
+       foreach my $key (keys %graph) {
+@@ -89,7 +90,7 @@
+ }
+ sub fetch_values {
+-      my $data = `$config{upsc} $config{upsname}`;
++      my $data = `$config{upsc} $config{upsname}\@$config{upshost}`;
+       while ($data =~ /([a-z.]+): (.+)\b/g) {
+               my $label = $1;
+               my $value = $2;
+diff -urN munin-2.0.17/plugins/node.d/nut_volts.in munin-2.0.17-plugins/plugins/node.d/nut_volts.in
+--- munin-2.0.17/plugins/node.d/nut_volts.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/nut_volts.in   2013-08-17 13:18:51.820919315 +0200
+@@ -14,7 +14,8 @@
+ my %status;
+ my %config = (
+-      upsname => $ENV{"upsname"} ? $ENV{"upsname"} : 'bertha@127.0.0.1',
++      upsname => $ENV{"upsname"} ? $ENV{"upsname"} : 'bertha',
++      upshost => $ENV{"upshost"} ? $ENV{"upshost"} : '127.0.0.1',
+       upsc => $ENV{"upsc"} ? $ENV{"upsc"} : 'upsc'
+ );
+@@ -24,16 +25,6 @@
+                               type => 'GAUGE',
+                               draw => 'LINE2'
+                        },
+-      'input_voltage_maximum' => {
+-                              label => 'max input seen',
+-                              type => 'GAUGE',
+-                              draw => 'LINE1'
+-                       },
+-      'input_voltage_minimum' => {
+-                              label => 'min input seen',
+-                              type => 'GAUGE',
+-                              draw => 'LINE1'
+-                       },
+       'output_voltage' => {
+                               label => 'output',
+                               type => 'GAUGE',
+@@ -42,7 +33,12 @@
+ );
+ if ( defined $ARGV[0] and $ARGV[0] eq 'config' ) {
+-      print "graph_title UPS Voltages - $config{upsname}\n";
++      my $s = $config{upsname};
++      $s =~ s/_/ /g;
++      if ($config{upshost} ne "127.0.0.1" && $config{upshost} ne "localhost") {
++              $s .= " at $config{upshost}";
++      }
++      print "graph_title UPS Voltages - $s\n";
+       print "graph_args -l 115\n";
+       print "graph_vlabel Volts\n";
+       foreach my $key (keys %graph) {
+@@ -55,7 +51,7 @@
+ }
+ sub fetch_values {
+-      my $data = `$config{upsc} $config{upsname}`;
++      my $data = `$config{upsc} $config{upsname}\@$config{upshost}`;
+       while ($data =~ /([a-z.]+): (.+)\b/g) {
+               my $label = $1;
+               my $value = $2;
+diff -urN munin-2.0.17/plugins/node.d/perdition.in munin-2.0.17-plugins/plugins/node.d/perdition.in
+--- munin-2.0.17/plugins/node.d/perdition.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/perdition.in   2013-08-17 13:18:51.820919315 +0200
+@@ -56,7 +56,7 @@
+ # Set the location of the perdition logs
+ PERDITION_LOG=${logfile:-/var/log/perdition.log}
+ OFFSET_FILE=${MUNIN_PLUGSTATE}/perdition.offset
+-LOGTAIL=${logtail:-/usr/sbin/logtail}
++LOGTAIL=${logtail:-`which logtail`}
+ case $1 in
+     autoconf|detect)
+diff -urN munin-2.0.17/plugins/node.d/pop_stats.in munin-2.0.17-plugins/plugins/node.d/pop_stats.in
+--- munin-2.0.17/plugins/node.d/pop_stats.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/pop_stats.in   2013-08-17 13:18:51.820919315 +0200
+@@ -68,7 +68,9 @@
+ if ($startsize < $pos)
+ {
+       # Log rotated
+-      parseEximfile ($pop{'rotlogfile'}, $pos, (stat $pop{'rotlogfile'})[7]);
++      if (-f $pop{'rotlogfile'}) {
++              parseEximfile ($pop{'rotlogfile'}, $pos, (stat $pop{'rotlogfile'})[7]);
++      }
+       $pos = 0;
+ }
+diff -urN munin-2.0.17/plugins/node.d/postgres_scans_.in munin-2.0.17-plugins/plugins/node.d/postgres_scans_.in
+--- munin-2.0.17/plugins/node.d/postgres_scans_.in     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/postgres_scans_.in     2013-08-17 13:18:51.820919315 +0200
+@@ -65,7 +65,6 @@
+     vlabel   => 'Scans / sec',
+     basequery =>
+         "SELECT COALESCE(sum(seq_scan),0) AS sequential, COALESCE(sum(idx_scan),0) AS index FROM pg_stat_user_tables",
+-    paramdatabase => 1,
+     pivotquery    => 1,
+     configquery =>
+         "VALUES ('sequential','Sequential scans'), ('index','Index scans')",
+diff -urN munin-2.0.17/plugins/node.d/postgres_tuples_.in munin-2.0.17-plugins/plugins/node.d/postgres_tuples_.in
+--- munin-2.0.17/plugins/node.d/postgres_tuples_.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/postgres_tuples_.in    2013-08-17 13:18:51.820919315 +0200
+@@ -74,7 +74,6 @@
+                 . " COALESCE(sum(n_tup_del),0) AS deleted FROM pg_stat_user_tables",
+         ],
+     ],
+-    paramdatabase => 1,
+     pivotquery    => 1,
+     configquery   => [
+         "VALUES ('seqread','Tuples sequentally read'), ('idxfetch','Tuples index fetched'), ('inserted','Tuples inserted'),"
+diff -urN munin-2.0.17/plugins/node.d/slapd_.in munin-2.0.17-plugins/plugins/node.d/slapd_.in
+--- munin-2.0.17/plugins/node.d/slapd_.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d/slapd_.in      2013-08-17 13:18:51.820919315 +0200
+@@ -37,7 +37,7 @@
+ # Change these to reflect your LDAP ACL. The given DN must have
+ # read access to the Monitor branch.
+-my $basedn = "cn=Monitor";
++my $basedn = ($ENV{'basedn'} || "cn=Monitor");
+ my $server = ($ENV{'server'} || 'localhost');
+ my $userdn = ($ENV{'binddn'} || '');
+ my $userpw = ($ENV{'bindpw'} || '');
+diff -urN munin-2.0.17/plugins/node.d.linux/files_.in munin-2.0.17-plugins/plugins/node.d.linux/files_.in
+--- munin-2.0.17/plugins/node.d.linux/files_.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/files_.in        2013-08-17 13:18:51.820919315 +0200
+@@ -14,7 +14,7 @@
+ #%# capabilities=autoconf
+ PROC=${0##*/files_}
+-TMPFILE="$MUNIN_PLUGSTATE/munin-files_${PROC}.state"
++TMPFILE="@@PLUGSTATE@@/munin-files_${PROC}.state"
+ if [ "$1" = "autoconf" ]; then
+       if [ -x /usr/sbin/lsof ]; then
+diff -urN munin-2.0.17/plugins/node.d.linux/iostat.in munin-2.0.17-plugins/plugins/node.d.linux/iostat.in
+--- munin-2.0.17/plugins/node.d.linux/iostat.in        2013-08-17 13:19:03.504395523 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/iostat.in        2013-08-17 13:18:51.994254767 +0200
+@@ -173,7 +173,7 @@
+               if ($tmpnam =~ /\d+$/ and !$include_numbered) {
+                   # Special case for devices like cXdXpX,
+                   # like the cciss driver
+-                  next unless $tmpnam =~ /\/c\d+d\d+$/
++                  next unless $tmpnam =~ /\/.*d\d+$/
+               }
+               next unless grep { $_ } @fields;
+diff -urN munin-2.0.17/plugins/node.d.linux/ip_.in munin-2.0.17-plugins/plugins/node.d.linux/ip_.in
+--- munin-2.0.17/plugins/node.d.linux/ip_.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/ip_.in   2013-08-17 13:18:51.820919315 +0200
+@@ -127,14 +127,18 @@
+         # This is a fun hack to make the plugin ip6 compatible.
+         # Suggested in ticket #439 by "jodal".
+         eval 'iptables() {
+-            ip6tables "$@"
++            /usr/sbin/ip6tables "$@"
++        }'
++        ;;
++    *) eval 'iptables() {
++            /usr/sbin/iptables "$@"
+         }'
+         ;;
+ esac
+ if [[ "$1" == "autoconf" ]]; then
+     if [[ -r /proc/net/dev ]]; then
+-        if ! iptables -L ${INPUT} -v -n -x >/dev/null 2>/dev/null; then
++        if ! /usr/sbin/iptables -L ${INPUT} -v -n -x >/dev/null 2>/dev/null; then
+             echo "no (could not run iptables as user $(whoami))"
+             exit 0
+         else
+@@ -147,10 +151,10 @@
+     fi
+ fi
+-if [[ "$1" == "suggest" ]]; then
+-    iptables -L ${INPUT} -v -n -x 2>/dev/null | awk --posix '$8 ~ /^([0-9]{1,3}\.){3}[0-9]{1,3}$/ { if (done[$8]!=1) {print $8; done[$8]=1;}}'
+-    if [[ -x /sbin/ip6tables ]]; then
+-        ip6tables -L ${INPUT} -v -n -x 2>/dev/null | awk --posix '$7 ~ /\/128$/ { if (done[$7]!=1) {a=$7;gsub(/\/128$/, "", a); print a; done[$7]=1;}}'
++if [ "$1" = "suggest" ]; then
++    /usr/sbin/iptables -L ${INPUT} -v -n -x 2>/dev/null | awk --posix '$8 ~ /^([0-9]{1,3}\.){3}[0-9]{1,3}$/ { if (done[$8]!=1) {print $8; done[$8]=1;}}'
++    if [[ -x /usr/sbin/ip6tables ]]; then
++        /usr/sbin/ip6tables -L ${INPUT} -v -n -x 2>/dev/null | awk --posix '$7 ~ /\/128$/ { if (done[$7]!=1) {a=$7;gsub(/\/128$/, "", a); print a; done[$7]=1;}}'
+     fi
+     exit 0
+ fi
+@@ -183,5 +187,5 @@
+ # Escape .'s so they don't match _everything_?
+ IP=$(echo $IP | sed 's~\.~\\.~g')
+-iptables -L ${INPUT} -v -n -x   | awk "/$IP"'[ /]/ { print "in.value " $2; exit 0; }'
+-iptables -L ${OUTPUT} -v -n -x  | awk "/$IP"'[ /]/ { print "out.value " $2; exit 0; }'
++/usr/sbin/iptables -L ${INPUT} -v -n -x   | awk "/$IP"'[ \/]/ { print "in.value " $2; exit 0; }'
++/usr/sbin/iptables -L ${OUTPUT} -v -n -x  | awk "/$IP"'[ \/]/ { print "out.value " $2; exit 0; }'
+diff -urN munin-2.0.17/plugins/node.d.linux/load.in munin-2.0.17-plugins/plugins/node.d.linux/load.in
+--- munin-2.0.17/plugins/node.d.linux/load.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/load.in  2013-08-17 13:18:51.820919315 +0200
+@@ -59,20 +59,20 @@
+         # one machine answer for several)
+         # The title of the graph
+-        echo 'graph_title Load average'
++        echo "graph_title Load average"
+         # Arguments to "rrdtool graph". In this case, tell it that the
+         # lower limit of the graph is '0', and that 1k=1000 (not 1024)
+-        echo 'graph_args --base 1000 -l 0'
++        echo "graph_args --base 1000 -l 0"
+         # The Y-axis label
+-        echo 'graph_vlabel load'
++        echo "graph_vlabel load"
+         # We want Cur/Min/Avg/Max unscaled (i.e. 0.42 load instead of
+         # 420 milliload)
+-        echo 'graph_scale no'
++        echo "graph_scale no"
+         # Graph category. Defaults to 'other'
+-        echo 'graph_category system'
++        echo "graph_category system"
+         # The fields. "label" is used in the legend. "label" is the only
+         # required subfield.
+-        echo 'load.label load'
++        echo "load.label load"
+         # These two read the environment for warning values for the field
+         # "load".  If "load_warning" or "warning" aren't set in the
+         # environment, no warning levels are set.  Likewise for "load_critical"
+@@ -82,8 +82,8 @@
+         # This one is purely to add an explanation to the web page. The first
+         # one is for the graph itself, while the second one is for the field
+         # "load".
+-        echo 'graph_info The load average of the machine describes how many processes are in the run-queue (scheduled to run "immediately").'
+-        echo 'load.info 5 minute load average'
++        echo "graph_info The load average of the machine describes how many processes are in the run-queue (scheduled to run \"immediately\")."
++        echo "load.info 5 minute load average"
+         # Last, if run with the "config"-parameter, quit here (don't
+         # display any data)
+diff -urN munin-2.0.17/plugins/node.d.linux/nfs_client.in munin-2.0.17-plugins/plugins/node.d.linux/nfs_client.in
+--- munin-2.0.17/plugins/node.d.linux/nfs_client.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/nfs_client.in    2013-08-17 13:18:51.820919315 +0200
+@@ -31,7 +31,7 @@
+ proc="getattr setattr lookup access readlink read write create mkdir symlink mknod remove rmdir rename link readdir readdirplus fsstat fsinfo pathconf commit"
+ if [ "$1" = "autoconf" ]; then
+-      if [ -f "$NFS" ]; then
++      if [ -r "$NFS" ]; then
+               echo yes
+               exit 0
+       else
+@@ -51,11 +51,66 @@
+       exit 0
+ fi
+-awk '/proc3/ {
+-    split("'"$proc"'", names)
+-    split($0,values)
+-    for (e in names) {
+-        printf("%s.value %d\n", names[++i], values[i+3]);
+-    }
++awk '/proc2/ {
++      nfs_getattr+=$4
++      nfs_setattr+=$5
++      nfs_lookup+=$6
++      nfs_readlink+=$7
++      nfs_read+=$8
++      nfs_write+=$9
++      nfs_create+=$10
++      nfs_mkdir+=$11
++      nfs_symlink+=$12
++      nfs_remove+=$13
++      nfs_rmdir+=$14
++      nfs_rename+=$15
++      nfs_link+=$16
++      nfs_readdir+=$17
++      nfs_fsstat+=$18
++}
++/proc[34]/ {
++      nfs_getattr+=$4
++      nfs_setattr+=$5
++      nfs_lookup+=$6
++      nfs_access+=$7
++      nfs_readlink+=$8
++      nfs_read+=$9
++      nfs_write+=$10
++      nfs_create+=$11
++      nfs_mkdir+=$12
++      nfs_symlink+=$13
++      nfs_mknod+=$14
++      nfs_remove+=$15
++      nfs_rmdir+=$16
++      nfs_rename+=$17
++      nfs_link+=$18
++      nfs_readdir+=$19
++      nfs_readdirplus+=$20
++      nfs_fsstat+=$21
++      nfs_fsinfo+=$22
++      nfs_pathconf+=$23
++      nfs_commit+=$24
++}
++END {
++      print "getattr.value " nfs_getattr
++      print "setattr.value " nfs_setattr
++      print "lookup.value " nfs_lookup
++      print "access.value " nfs_access
++      print "readlink.value " nfs_readlink
++      print "read.value " nfs_read
++      print "write.value " nfs_write
++      print "create.value " nfs_create
++      print "mkdir.value " nfs_mkdir
++      print "symlink.value " nfs_symlink
++      print "mknod.value " nfs_mknod
++      print "remove.value " nfs_remove
++      print "rmdir.value " nfs_rmdir
++      print "rename.value " nfs_rename
++      print "link.value " nfs_link
++      print "readdir.value " nfs_readdir
++      print "readdirplus.value " nfs_readdirplus
++      print "fsstat.value " nfs_fsstat
++      print "fsinfo.value " nfs_fsinfo
++      print "pathconf.value " nfs_pathconf
++      print "commit.value " nfs_commit
+ }' $NFS
+-
+diff -urN munin-2.0.17/plugins/node.d.linux/nfsd.in munin-2.0.17-plugins/plugins/node.d.linux/nfsd.in
+--- munin-2.0.17/plugins/node.d.linux/nfsd.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/nfsd.in  2013-08-17 13:18:51.820919315 +0200
+@@ -31,7 +31,7 @@
+ proc="getattr setattr lookup access readlink read write create mkdir symlink mknod remove rmdir rename link readdir readdirplus fsstat fsinfo pathconf commit"
+ if [ "$1" = "autoconf" ]; then
+-      if [ -f "$NFSD" ]; then
++      if [ -r "$NFSD" ]; then
+               echo yes
+               exit 0
+       else
+@@ -51,9 +51,66 @@
+       exit 0
+ fi
+-awk '/proc3/ {
+-    split("'"$proc"'", names)
+-    split($0,values)
+-    for (e in names)
+-        printf("%s.value %d\n", names[++i], values[i+3]);
+-  }' $NFSD
++awk '/proc2/ {
++      nfs_getattr+=$4
++      nfs_setattr+=$5
++      nfs_lookup+=$6
++      nfs_readlink+=$7
++      nfs_read+=$8
++      nfs_write+=$9
++      nfs_create+=$10
++      nfs_mkdir+=$11
++      nfs_symlink+=$12
++      nfs_remove+=$13
++      nfs_rmdir+=$14
++      nfs_rename+=$15
++      nfs_link+=$16
++      nfs_readdir+=$17
++      nfs_fsstat+=$18
++}
++/proc[34]/ {
++      nfs_getattr+=$4
++      nfs_setattr+=$5
++      nfs_lookup+=$6
++      nfs_access+=$7
++      nfs_readlink+=$8
++      nfs_read+=$9
++      nfs_write+=$10
++      nfs_create+=$11
++      nfs_mkdir+=$12
++      nfs_symlink+=$13
++      nfs_mknod+=$14
++      nfs_remove+=$15
++      nfs_rmdir+=$16
++      nfs_rename+=$17
++      nfs_link+=$18
++      nfs_readdir+=$19
++      nfs_readdirplus+=$20
++      nfs_fsstat+=$21
++      nfs_fsinfo+=$22
++      nfs_pathconf+=$23
++      nfs_commit+=$24
++}
++END {
++      print "getattr.value " nfs_getattr
++      print "setattr.value " nfs_setattr
++      print "lookup.value " nfs_lookup
++      print "access.value " nfs_access
++      print "readlink.value " nfs_readlink
++      print "read.value " nfs_read
++      print "write.value " nfs_write
++      print "create.value " nfs_create
++      print "mkdir.value " nfs_mkdir
++      print "symlink.value " nfs_symlink
++      print "mknod.value " nfs_mknod
++      print "remove.value " nfs_remove
++      print "rmdir.value " nfs_rmdir
++      print "rename.value " nfs_rename
++      print "link.value " nfs_link
++      print "readdir.value " nfs_readdir
++      print "readdirplus.value " nfs_readdirplus
++      print "fsstat.value " nfs_fsstat
++      print "fsinfo.value " nfs_fsinfo
++      print "pathconf.value " nfs_pathconf
++      print "commit.value " nfs_commit
++}' $NFSD
+diff -urN munin-2.0.17/plugins/node.d.linux/vlan_inetuse_.in munin-2.0.17-plugins/plugins/node.d.linux/vlan_inetuse_.in
+--- munin-2.0.17/plugins/node.d.linux/vlan_inetuse_.in 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/vlan_inetuse_.in 2013-08-17 13:18:51.820919315 +0200
+@@ -37,8 +37,8 @@
+ my %in_octets = ();
+ my %out_octets = ();
+-open (IN, "/sbin/iptables -v -x -L $INTERFACE-in |") or 
+-      die "Could not run iptables: $!\n";
++open (IN, "/usr/sbin/iptables -v -x -L $INTERFACE-in |") or 
++      die "Could not run /usr/sbin/iptables: $!\n";
+ while (<IN>)
+ {
+       if (/^\s*\d+\s+(\d+)  +([a-z]+)\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+(?:\s+|)(.+|)$/)
+@@ -49,10 +49,10 @@
+       }
+ }
+ close IN;
+-die "Error running iptables. Dying\n" if $?;
++die "Error running /usr/sbin/iptables. Dying\n" if $?;
+-open (IN, "/sbin/iptables -v -x -L $INTERFACE-out |") or 
+-      die "Could not run iptables: $!\n";
++open (IN, "/usr/sbin/iptables -v -x -L $INTERFACE-out |") or 
++      die "Could not run /usr/sbin/iptables: $!\n";
+ while (<IN>)
+ {
+       if (/^\s*\d+\s+(\d+)  +([a-z]+)\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+(?:\s+|)(.+|)$/)
+@@ -67,7 +67,7 @@
+       }
+ }
+ close IN;
+-die "Error running iptables. Dying\n" if $?;
++die "Error running /usr/sbin/iptables. Dying\n" if $?;
+ if ($ARGV[0] and $ARGV[0] eq "config")
+ {
+diff -urN munin-2.0.17/plugins/node.d.linux/vlan_linkuse_.in munin-2.0.17-plugins/plugins/node.d.linux/vlan_linkuse_.in
+--- munin-2.0.17/plugins/node.d.linux/vlan_linkuse_.in 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/vlan_linkuse_.in 2013-08-17 13:18:51.820919315 +0200
+@@ -29,8 +29,8 @@
+ my %in_octets = ();
+ my %out_octets = ();
+-open (IN, "/sbin/iptables -v -x -L $INTERFACE-in |") or 
+-      die "Could not run iptables: $!\n";
++open (IN, "/usr/sbin/iptables -v -x -L $INTERFACE-in |") or 
++      die "Could not run /usr/sbin/iptables: $!\n";
+ while (<IN>)
+ {
+       if (/^\s*\d+\s+(\d+)  +([a-z]+)\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+(?:\s+|)(.+|)$/)
+@@ -58,10 +58,10 @@
+       }
+ }
+ close IN;
+-die "Error running iptables. Dying\n" if $?;
++die "Error running /usr/sbin/iptables. Dying\n" if $?;
+-open (IN, "/sbin/iptables -v -x -L $INTERFACE-out |") or 
+-      die "Could not run iptables: $!\n";
++open (IN, "/usr/sbin/iptables -v -x -L $INTERFACE-out |") or 
++      die "Could not run /usr/sbin/iptables: $!\n";
+ while (<IN>)
+ {
+       if (/^\s*\d+\s+(\d+)  +([a-z]+)\s+\S+\s+\S+\s+\S+\s+\S+\s+\S+(?:\s+|)(.+|)$/)
+@@ -84,5 +84,5 @@
+       }
+ }
+ close IN;
+-die "Error running iptables. Dying\n" if $?;
++die "Error running /usr/sbin/iptables. Dying\n" if $?;
+ # vim:syntax=perl
+diff -urN munin-2.0.17/plugins/node.d.linux/vserver_resources.in munin-2.0.17-plugins/plugins/node.d.linux/vserver_resources.in
+--- munin-2.0.17/plugins/node.d.linux/vserver_resources.in     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-plugins/plugins/node.d.linux/vserver_resources.in     2013-08-17 13:18:51.820919315 +0200
+@@ -245,6 +245,12 @@
+           echo 'graph_vlabel ANON pages'
+           echo 'graph_info Shows anonymous memory (human readable) used by each vserver.'
+           ;;
++      RMAP)
++          echo 'graph_title Mapped memory used by vserver'
++          echo 'graph_args --base 1024k -l 0'
++          echo 'graph_vlabel RMAP pages'
++          echo 'graph_info Shows mapped memory (human readable) used by each vserver.'
++          ;;
+       FILES)
+           echo 'graph_title Files used by vserver'
+           echo 'graph_args --base 1024k -l 0'
+@@ -281,6 +287,30 @@
+           echo 'graph_vlabel SHM pages'
+           echo 'graph_info Shows shared memory (human readable) used by each vserver.'
+           ;;
++      SEMA)
++          echo 'graph_title Semaphore arrays used by vserver'
++          echo 'graph_args --base 1024k -l 0'
++          echo 'graph_vlabel Semaphore arrays'
++          echo 'graph_info Shows semaphore arrays used by each vserver.'
++          ;;
++      SEMS)
++          echo 'graph_title Semaphores used by vserver'
++          echo 'graph_args --base 1024k -l 0'
++          echo 'graph_vlabel Semaphores'
++          echo 'graph_info Shows semaphores used by each vserver.'
++          ;;
++      DENT)
++          echo 'graph_title dentry structs used by vserver'
++          echo 'graph_args --base 1024k -l 0'
++          echo 'graph_vlabel dentry structs'
++          echo 'graph_info Shows dentry structs used by each vserver.'
++          ;;
++      ALL)
++          echo 'graph_title Resources used by vserver'
++          echo 'graph_args --base 1024k -l 0'
++          echo 'graph_vlabel Resources'
++          echo 'graph_info Shows rsources used by each vserver.'
++          ;;
+       *)
+           echo "$RESOURCE not defined."
+           exit 1
+@@ -299,53 +329,108 @@
+       case "$RESOURCE" in
+           PROC)
+-              echo "$NAME.label $LABEL: processes"
+-              echo "$NAME.info Number of processes used by $LABEL."
++              echo "${NAME}_PROC.label $LABEL: processes"
++              echo "${NAME}_PROC.info Number of processes used by $LABEL."
+               ;;
+           VM)
+-              echo "$NAME.label $LABEL: Virtual memory"
+-              echo "$NAME.info Size of virtual memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
+-              echo "$NAME.cdef $NAME,$pagesize,*"
++              echo "${NAME}_VM.label $LABEL: Virtual memory"
++              echo "${NAME}_VM.info Size of virtual memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
++              echo "${NAME}_VM.cdef ${NAME}_VM,$pagesize,*"
+               ;;
+           VML)
+-              echo "$NAME.label $LABEL: Locked memory"
+-              echo "$NAME.info Size of locked memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
+-              echo "$NAME.cdef $NAME,$pagesize,*"
++              echo "${NAME}_VML.label $LABEL: Locked memory"
++              echo "${NAME}_VML.info Size of locked memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
++              echo "${NAME}_VML.cdef ${NAME}_VML,$pagesize,*"
+               ;;
+           RSS)
+-              echo "$NAME.label $LABEL: Resident set size"
+-              echo "$NAME.info Size of resident set size used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
+-              echo "$NAME.cdef $NAME,$pagesize,*"
++              echo "${NAME}_RSS.label $LABEL: Resident set size"
++              echo "${NAME}_RSS.info Size of resident set size used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_RSS.cdef ${NAME}_RSS,$pagesize,*"
+               ;;
+           ANON)
+-              echo "$NAME.label $LABEL: Anonymous memory"
+-              echo "$NAME.info Size of anonymous memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
+-              echo "$NAME.cdef $NAME,$pagesize,*"
++              echo "${NAME}_ANON.label $LABEL: Anonymous memory"
++              echo "${NAME}_ANON.info Size of anonymous memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_ANON.cdef ${NAME}_ANON,$pagesize,*"
++              ;;
++          RMAP)
++              echo "${NAME}_RMAP.label $LABEL: Mapped memory"
++              echo "${NAME}_RMAP.info Size of mapped memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_RMAP.cdef ${NAME}_RMAP,$pagesize,*"
+               ;;
+           FILES)
+-              echo "$NAME.label $LABEL: Files"
+-              echo "$NAME.info Number of files used by $LABEL."
++              echo "${NAME}_FILES.label $LABEL: Files"
++              echo "${NAME}_FILES.info Number of files used by $LABEL."
+               ;;
+           OFD)
+-              echo "$NAME.label $LABEL: Open filedescriptors"
+-              echo "$NAME.info Number of open filedescriptors used by $LABEL."
++              echo "${NAME}_OFD.label $LABEL: Open filedescriptors"
++              echo "${NAME}_OFD.info Number of open filedescriptors used by $LABEL."
+               ;;
+           LOCKS)
+-              echo "$NAME.label $LABEL: Locks"
+-              echo "$NAME.info Number of locks used by $LABEL."
++              echo "${NAME}_LOCKS.label $LABEL: Locks"
++              echo "${NAME}_LOCKS.info Number of locks used by $LABEL."
+               ;;
+           SOCK)
+-              echo "$NAME.label $LABEL: Sockets"
+-              echo "$NAME.info Number of sockets used by $LABEL."
++              echo "${NAME}_SOCK.label $LABEL: Sockets"
++              echo "${NAME}_SOCK.info Number of sockets used by $LABEL."
+               ;;
+           MSGQ)
+-              echo "$NAME.label $LABEL: Message queues"
+-              echo "$NAME.info Number of message queues used by $LABEL."
++              echo "${NAME}_MSGQ.label $LABEL: Message queues"
++              echo "${NAME}_MSGQ.info Number of message queues used by $LABEL."
+               ;;
+           SHM)
+-              echo "$NAME.label $LABEL: Shared memory"
+-              echo "$NAME.info Size of shared memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
+-              echo "$NAME.cdef $1,$pagesize,*"
++              echo "${NAME}_SHM.label $LABEL: Shared memory"
++              echo "${NAME}_SHM.info Size of shared memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_SHM.cdef ${NAME}_SHM,$pagesize,*"
++              ;;
++          SEMA)
++              echo "${NAME}_SEMA.label $LABEL: Semaphore arrays"
++              echo "${NAME}_SEMA.info Number of semaphore arrays used by $LABEL."
++              ;;
++          SEMS)
++              echo "${NAME}_SEMS.label $LABEL: Semaphores"
++              echo "${NAME}_SEMS.info Number of semaphores used by $LABEL."
++              ;;
++          DENT)
++              echo "${NAME}_DENT.label $LABEL: dentry structs"
++              echo "${NAME}_DENT.info Number of dentries used by $LABEL."
++              ;;
++          ALL)
++              echo "${NAME}_PROC.label $LABEL: processes"
++              echo "${NAME}_PROC.info Number of processes used by $LABEL."
++              echo "${NAME}_VM.label $LABEL: Virtual memory"
++              echo "${NAME}_VM.info Size of virtual memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
++              echo "${NAME}_VM.cdef ${NAME}_VM,$pagesize,*"
++              echo "${NAME}_VML.label $LABEL: Locked memory"
++              echo "${NAME}_VML.info Size of locked memory used by $LABEL. (Number multipled by $pagesize to make it human readable)"
++              echo "${NAME}_VML.cdef ${NAME}_VML,$pagesize,*"
++              echo "${NAME}_RSS.label $LABEL: Resident set size"
++              echo "${NAME}_RSS.info Size of resident set size used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_RSS.cdef ${NAME}_RSS,$pagesize,*"
++              echo "${NAME}_ANON.label $LABEL: Anonymous memory"
++              echo "${NAME}_ANON.info Size of anonymous memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_ANON.cdef ${NAME}_ANON,$pagesize,*"
++              echo "${NAME}_RMAP.label $LABEL: Mapped memory"
++              echo "${NAME}_RMAP.info Size of mapped memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_RMAP.cdef ${NAME}_RMAP,$pagesize,*"
++              echo "${NAME}_FILES.label $LABEL: Files"
++              echo "${NAME}_FILES.info Number of files used by $LABEL."
++              echo "${NAME}_OFD.label $LABEL: Open filedescriptors"
++              echo "${NAME}_OFD.info Number of open filedescriptors used by $LABEL."
++              echo "${NAME}_LOCKS.label $LABEL: Locks"
++              echo "${NAME}_LOCKS.info Number of locks used by $LABEL."
++              echo "${NAME}_SOCK.label $LABEL: Sockets"
++              echo "${NAME}_SOCK.info Number of sockets used by $LABEL."
++              echo "${NAME}_MSGQ.label $LABEL: Message queues"
++              echo "${NAME}_MSGQ.info Number of message queues used by $LABEL."
++              echo "${NAME}_SHM.label $LABEL: Shared memory"
++              echo "${NAME}_SHM.info Size of shared memory used by $LABEL. (Number multiplied by $pagesize to make it human readable)"
++              echo "${NAME}_SHM.cdef ${NAME}_SHM,$pagesize,*"
++              echo "${NAME}_SEMA.label $LABEL: Semaphore arrays"
++              echo "${NAME}_SEMA.info Number of semaphore arrays used by $LABEL."
++              echo "${NAME}_SEMS.label $LABEL: Semaphores"
++              echo "${NAME}_SEMS.info Number of semaphores used by $LABEL."
++              echo "${NAME}_DENT.label $LABEL: dentry structs"
++              echo "${NAME}_DENT.info Number of dentries used by $LABEL."
+               ;;
+           *)
+               echo "$RESOURCE not defined."
+@@ -356,7 +441,7 @@
+       if [ ! -z "$LIMITS" -a "$LIMITS" = 1 ]; then
+           LIMIT=`cat /proc/virtual/$xid/limit | grep $RESOURCE | cut -f4`
+           if [ ${LIMIT:-0} -gt 0 ]; then
+-              echo "$NAME.critical $LIMIT"
++              echo "${NAME}_${RESOURCE}.critical $LIMIT"
+           fi
+       fi
+     done
+@@ -367,8 +452,15 @@
+ for xid in $XIDS ; do
+     LABEL=`cat /proc/virtual/$xid/$NAMELOC |grep NodeName |cut -f2`
+     NAME=`echo $LABEL | cut -d. -f1 |  tr '-' '_'`
+-    cat /proc/virtual/$xid/limit | awk -v name="${NAME}" -v resource="${RESOURCE}:" \
+-      '{ if ( $1 == resource )
+-            printf "%s.value %d\n", name, $2 }'
++    if [ $RESOURCE = "ALL" ]; then
++    cat /proc/virtual/$xid/limit | awk -v name="${NAME}" \
++      '{ if ( $1 ~ /[A-Z]*:/ ) {
++            resource = $1 ; gsub(/:/, "", resource);
++            printf "%s_%s.value %d\n", name, resource, $2
++           }}'
++    else
++    cat /proc/virtual/$xid/limit | awk -v name="${NAME}" -v resource="${RESOURCE}" \
++      '{ if ( $1 ~ resource )
++            printf "%s_%s.value %d\n", name, resource, $2 }'
++    fi
+ done
+-
diff --git a/munin-separate-configs.patch b/munin-separate-configs.patch
new file mode 100644 (file)
index 0000000..e5da670
--- /dev/null
@@ -0,0 +1,1126 @@
+diff -ur munin-2.0.17/common/lib/Munin/Common/Defaults.pm munin-2.0.17-sep/common/lib/Munin/Common/Defaults.pm
+--- munin-2.0.17/common/lib/Munin/Common/Defaults.pm   2013-08-17 12:26:06.386624187 +0200
++++ munin-2.0.17-sep/common/lib/Munin/Common/Defaults.pm       2013-08-17 12:19:22.386149494 +0200
+@@ -18,7 +18,8 @@
+ our $DROPDOWNLIMIT     = 1;
+ our $MUNIN_PREFIX     = '';
+-our $MUNIN_CONFDIR    = "$COMPONENT_ROOT/t/config/";
++our $MUNIN_MCONFDIR   = "$COMPONENT_ROOT/t/config/";
++our $MUNIN_NCONFDIR   = "$COMPONENT_ROOT/t/config/";
+ our $MUNIN_BINDIR     = '';
+ our $MUNIN_SBINDIR    = '';
+ our $MUNIN_DOCDIR     = '';
+Only in munin-2.0.17/common/lib/Munin/Common: Defaults.pm.orig
+diff -ur munin-2.0.17/doc/installation/configuration.rst munin-2.0.17-sep/doc/installation/configuration.rst
+--- munin-2.0.17/doc/installation/configuration.rst    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/doc/installation/configuration.rst        2013-08-17 12:23:16.773630125 +0200
+@@ -9,7 +9,7 @@
+ -------
+ Decide which plugins to use. The munin node runs all plugins present
+-in CONFDIR/plugins/
++in NCONFDIR/plugins/
+ The quick auto-plug-and-play solution:
+@@ -59,7 +59,7 @@
+ Add some nodes
+ --------------
+-Add some nodes to CONFDIR/munin.conf
++Add some nodes to MCONFDIR/munin.conf
+ [node.example.com]
+   address 192.0.2.4
+diff -ur munin-2.0.17/Makefile munin-2.0.17-sep/Makefile
+--- munin-2.0.17/Makefile      2013-08-17 12:26:06.386624187 +0200
++++ munin-2.0.17-sep/Makefile  2013-08-17 12:19:22.386149494 +0200
+@@ -56,7 +56,7 @@
+ # a new config.  Target _only_ suitable for maintainers.
+ unconfig:
+       rm -f $(HTMLDIR)/.htaccess
+-      rm -f $(CONFDIR)/munin.conf
++      rm -f $(MCONFDIR)/munin.conf
+ tags:
+       -rm -f TAGS
+@@ -71,14 +71,15 @@
+       mkdir -p $(LOGDIR)
+       mkdir -p $(STATEDIR)
+       mkdir -p $(SPOOLDIR)
+-      mkdir -p $(CONFDIR)
++      mkdir -p $(NCONFDIR)
++      mkdir -p $(MCONFDIR)
+       $(CHOWN) $(USER) $(LOGDIR) $(STATEDIR) $(SPOOLDIR)
+ install-master-prime: $(INFILES_MASTER) install-pre install-master
+       mkdir -p $(TEMPLATEDIR)
+       mkdir -p $(TEMPLATEDIR)/static
+       mkdir -p $(TEMPLATEDIR)/partial
+-      mkdir -p $(CONFDIR)/munin-conf.d
++      mkdir -p $(MCONFDIR)/munin-conf.d
+       mkdir -p $(LIBDIR)
+       mkdir -p $(BINDIR)
+       mkdir -p $(SBINDIR)
+@@ -111,7 +112,7 @@
+       $(INSTALL) -m 0644 master/DejaVuSans.ttf $(LIBDIR)/
+       test -f $(HTMLDIR)/.htaccess || $(INSTALL) -m 0644 build/master/www/munin-htaccess $(HTMLDIR)/.htaccess
+-      test -f "$(CONFDIR)/munin.conf"  || $(INSTALL) -m 0644 build/master/munin.conf $(CONFDIR)/
++      test -f "$(MCONFDIR)/munin.conf"  || $(INSTALL) -m 0644 build/master/munin.conf $(MCONFDIR)/
+       $(INSTALL) -m 0755 build/master/_bin/munin-cron $(SBINDIR)/
+       $(INSTALL) -m 0755 build/master/_bin/munin-check $(LIBDIR)/
+@@ -140,14 +141,14 @@
+ install-plugins-prime: install-plugins build $(PLUGINS) Makefile Makefile.config
+       @$(CHECKGROUP)
+-      mkdir -p $(CONFDIR)/plugins
+-      mkdir -p $(CONFDIR)/plugin-conf.d
++      mkdir -p $(NCONFDIR)/plugins
++      mkdir -p $(NCONFDIR)/plugin-conf.d
+       mkdir -p $(LIBDIR)/plugins
+       mkdir -p $(PLUGSTATE)
+       $(CHOWN) root:root $(PLUGSTATE)
+       $(CHMOD) 0755 $(PLUGSTATE)
+-      $(CHMOD) 0755 $(CONFDIR)/plugin-conf.d
++      $(CHMOD) 0755 $(NCONFDIR)/plugin-conf.d
+       for p in build/plugins/node.d/* build/plugins/node.d.$(OSTYPE)/* ; do \
+           if test -f "$$p" ; then                            \
+@@ -184,7 +185,7 @@
+ install-node-prime: install-node-pre install-node
+ install-node-pre: build/node/munin-node.conf install-pre
+-      test -f "$(CONFDIR)/munin-node.conf" || $(INSTALL) -m 0644 build/node/munin-node.conf $(CONFDIR)/
++      test -f "$(NCONFDIR)/munin-node.conf" || $(INSTALL) -m 0644 build/node/munin-node.conf $(NCONFDIR)/
+ install-common-prime: build-common install-common
+@@ -220,7 +221,8 @@
+       @echo "$< -> $@"
+       @mkdir -p build/`dirname $<`
+       @sed -e 's|@@PREFIX@@|$(PREFIX)|g'                      \
+-             -e 's|@@CONFDIR@@|$(CONFDIR)|g'                    \
++             -e 's|@@MCONFDIR@@|$(MCONFDIR)|g'                  \
++             -e 's|@@NCONFDIR@@|$(NCONFDIR)|g'                  \
+              -e 's|@@BINDIR@@|$(BINDIR)|g'                      \
+              -e 's|@@SBINDIR@@|$(SBINDIR)|g'                    \
+              -e 's|@@DOCDIR@@|$(DOCDIR)|g'                      \
+@@ -261,7 +263,8 @@
+ common/blib/lib/Munin/Common/Defaults.pm: common/lib/Munin/Common/Defaults.pm build-common-pre
+       rm -f common/blib/lib/Munin/Common/Defaults.pm
+       $(PERL) -pe 's{(PREFIX     \s+=\s).*}{\1q{$(PREFIX)};}x;   \
+-                  s{(CONFDIR    \s+=\s).*}{\1q{$(CONFDIR)};}x;     \
++                  s{(MCONFDIR    \s+=\s).*}{\1q{$(MCONFDIR)};}x;   \
++                  s{(NCONFDIR    \s+=\s).*}{\1q{$(NCONFDIR)};}x;   \
+                   s{(BINDIR     \s+=\s).*}{\1q{$(BINDIR)};}x;      \
+                   s{(SBINDIR    \s+=\s).*}{\1q{$(SBINDIR)};}x;     \
+                   s{(DOCDIR     \s+=\s).*}{\1q{$(DOCDIR)};}x;      \
+@@ -388,7 +391,7 @@
+       $(MAKE) $@ CONFIG=t/Makefile.config
+ else
+ test_plugins = id_default id_root env
+-old-test: t/*.t t/install $(addprefix $(CONFDIR)/plugins/,$(test_plugins))
++old-test: t/*.t t/install $(addprefix $(NCONFDIR)/plugins/,$(test_plugins))
+       @for test in t/*.t; do \
+               echo -n "$$test: "; \
+               PERL5LIB=$(PERLLIB) $(PERL) $$test;\
+@@ -396,10 +399,10 @@
+ endif
+ node-monkeywrench: install-node
+-      rm -rf $(CONFDIR)/plugins
++      rm -rf $(NCONFDIR)/plugins
+       rm -rf $(LIBDIR)/plugins
+       mkdir -p $(LIBDIR)/plugins
+-      mkdir -p $(CONFDIR)/plugins
++      mkdir -p $(NCONFDIR)/plugins
+       cp monkeywrench/plugin-break*_ $(LIBDIR)/plugins/
+       $(SBINDIR)/munin-node-configure --suggest
+       echo 'Done?'
+diff -ur munin-2.0.17/Makefile.config munin-2.0.17-sep/Makefile.config
+--- munin-2.0.17/Makefile.config       2013-08-17 12:26:06.386624187 +0200
++++ munin-2.0.17-sep/Makefile.config   2013-08-17 12:19:22.386149494 +0200
+@@ -20,7 +20,8 @@
+ PREFIX     = $(DESTDIR)/usr
+ # Where Munin keeps its configurations (server.conf, client.conf, ++)
+-CONFDIR    = $(DESTDIR)/etc/munin
++NCONFDIR    = $(DESTDIR)/etc/munin
++MCONFDIR    = $(DESTDIR)/etc/webapps/munin
+ # Server only - where to put munin-cron
+ BINDIR     = $(PREFIX)/bin
+Only in munin-2.0.17: Makefile.config.orig
+Only in munin-2.0.17: Makefile.orig
+diff -ur munin-2.0.17/master/_bin/munin-cgi-graph.in munin-2.0.17-sep/master/_bin/munin-cgi-graph.in
+--- munin-2.0.17/master/_bin/munin-cgi-graph.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/_bin/munin-cgi-graph.in    2013-08-17 12:19:22.386149494 +0200
+@@ -44,7 +44,7 @@
+ use Log::Log4perl qw( :easy );
+ my $GRAPHER = "$Munin::Common::Defaults::MUNIN_LIBDIR/munin-graph";
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $conffile = "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ my %period  = ( "day"   => 300,
+               "week"  => 1800,
+diff -ur munin-2.0.17/master/_bin/munin-check.in munin-2.0.17-sep/master/_bin/munin-check.in
+--- munin-2.0.17/master/_bin/munin-check.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/_bin/munin-check.in        2013-08-17 12:19:22.386149494 +0200
+@@ -163,7 +163,7 @@
+ norec=yes owner_ok @@PLUGSTATE@@ @@PLUGINUSER@@
+ norec=yes perm_ok @@PLUGSTATE@@ 775
+-norec=yes perm_ok @@CONFDIR@@/plugin-conf.d 755
++norec=yes perm_ok @@NCONFDIR@@/plugin-conf.d 755
+ echo "Check done.  Please note that this script only checks most things,"
+ echo "not all things."
+diff -ur munin-2.0.17/master/_bin/munin-graph.in munin-2.0.17-sep/master/_bin/munin-graph.in
+--- munin-2.0.17/master/_bin/munin-graph.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/_bin/munin-graph.in        2013-08-17 12:19:22.386149494 +0200
+@@ -51,7 +51,7 @@
+ use Log::Log4perl qw( :easy );
+ my $GRAPHER = "$Munin::Common::Defaults::MUNIN_LIBDIR/munin-graph";
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $conffile = "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ my %period  = ( "day"   => 300,
+               "week"  => 1800,
+diff -ur munin-2.0.17/master/_bin/munin-limits.in munin-2.0.17-sep/master/_bin/munin-limits.in
+--- munin-2.0.17/master/_bin/munin-limits.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/_bin/munin-limits.in       2013-08-17 12:19:22.386149494 +0200
+@@ -66,7 +66,7 @@
+ =item B<< --config <file> >>
+-Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin.conf]
++Use E<lt>fileE<gt> as configuration file. [@@MCONFDIR@@/munin.conf]
+ =item B<< --always-send <severity list> >>
+@@ -114,7 +114,7 @@
+ =head1 FILES
+-      @@CONFDIR@@/munin.conf
++      @@MCONFDIR@@/munin.conf
+       @@DBDIR@@/*
+       @@STATEDIR@@/*
+diff -ur munin-2.0.17/master/_bin/munin-update.in munin-2.0.17-sep/master/_bin/munin-update.in
+--- munin-2.0.17/master/_bin/munin-update.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/_bin/munin-update.in       2013-08-17 12:19:22.386149494 +0200
+@@ -139,7 +139,7 @@
+ =item B<< --config_file=<file> >>
+-Use E<lt>fileE<gt> as the configuration file. [@@CONFDIR@@/munin.conf]
++Use E<lt>fileE<gt> as the configuration file. [@@MCONFDIR@@/munin.conf]
+ =item B<< --[no]debug >>
+@@ -192,7 +192,7 @@
+ =head1 FILES
+-      @@CONFDIR@@/munin.conf
++      @@MCONFDIR@@/munin.conf
+       @@DBDIR@@/*
+       @@LOGDIR@@/munin-update
+       @@STATEDIR@@/*
+diff -ur munin-2.0.17/master/doc/munin.conf.pod.in munin-2.0.17-sep/master/doc/munin.conf.pod.in
+--- munin-2.0.17/master/doc/munin.conf.pod.in  2013-08-17 12:26:06.386624187 +0200
++++ munin-2.0.17-sep/master/doc/munin.conf.pod.in      2013-08-17 12:19:22.386149494 +0200
+@@ -27,7 +27,7 @@
+       [machine1.your.dom]
+               address localhost
+-The default location of F<munin.conf> is F<@@CONFDIR@@/munin.conf>.
++The default location of F<munin.conf> is F<@@MCONFDIR@@/munin.conf>.
+ If your placement deviates from this norm, use the "--config
+ E<lt>fileE<gt>"-option when running the munin-* programs.
+@@ -149,20 +149,20 @@
+ =item B<tls_private_key> <value>
+ This directive sets the location of the private key to be used for
+-TLS.  Default is @@CONFDIR@@/munin.pem.  The private key and
++TLS.  Default is @@MCONFDIR@@/munin.pem.  The private key and
+ certificate can be stored in the same file.  Affects: munin-update.
+ =item B<tls_certificate> <value>
+ This directive sets the location of the TLS certificate to be used for
+-TLS.  Default is @@CONFDIR@@/munin.pem.  The private key and
++TLS.  Default is @@MCONFDIR@@/munin.pem.  The private key and
+ certificate can be stored in the same file.  Affects: munin-update.
+ =item B<tls_ca_certificate> <value>
+ This directive sets the CA certificate to be used to verify the node's
+ certificate, if tls_verify_certificate is set to C<yes>.  Default is
+-@@CONFDIR@@/cacert.pem.  Affects: munin-update.
++@@MCONFDIR@@/cacert.pem.  Affects: munin-update.
+ =item B<tls_verify_depth> <value>
+Only in munin-2.0.17/master/doc: munin.conf.pod.in.orig
+diff -ur munin-2.0.17/master/doc/munin-cron.pod.in munin-2.0.17-sep/master/doc/munin-cron.pod.in
+--- munin-2.0.17/master/doc/munin-cron.pod.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/doc/munin-cron.pod.in      2013-08-17 12:19:22.386149494 +0200
+@@ -22,7 +22,7 @@
+ =item B<< --config <file> >>
+-Use E<lt>fileE<gt> as configuration file. [F<@@CONFDIR@@/munin.conf>]
++Use E<lt>fileE<gt> as configuration file. [F<@@MCONFDIR@@/munin.conf>]
+ =back
+diff -ur munin-2.0.17/master/extras/munin-update_old.in munin-2.0.17-sep/master/extras/munin-update_old.in
+--- munin-2.0.17/master/extras/munin-update_old.in     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/extras/munin-update_old.in 2013-08-17 12:19:22.386149494 +0200
+@@ -43,7 +43,7 @@
+ my $STATS;
+ my $cli_do_fork;
+ my $cli_timeout;
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $conffile = "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ my $config;
+ my $do_fork = 1;
+ my $serversocket  = "munin-server-socket.$$";
+@@ -159,7 +159,7 @@
+     --host <host>     Limit graphed hosts to <host>. Multiple --host options
+                       may be supplied.
+     --config <file>   Use <file> as configuration file. 
+-                      [$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf]
++                      [$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf]
+     --[no]debug               View debug messages. [--nodebug]
+     --[no]fork                Don't fork one instance for each host. [--fork]
+     --timeout=<seconds>       TCP timeout when talking to clients. [$timeout]
+@@ -752,11 +752,11 @@
+       my $ca_cert;
+       my $tls_verify;
+         $key = $cert = munin_get ($config, "tls_pem");
+-        $key = &munin_get ($config, "tls_private_key", "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem")
++        $key = &munin_get ($config, "tls_private_key", "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.pem")
+         unless defined $key;
+-        $cert = &munin_get ($config, "tls_certificate", "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem")
++        $cert = &munin_get ($config, "tls_certificate", "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.pem")
+         unless defined $cert;
+-        $ca_cert = &munin_get ($config, "tls_ca_certificate", "$Munin::Common::Defaults::MUNIN_CONFDIR/cacert.pem")
++        $ca_cert = &munin_get ($config, "tls_ca_certificate", "$Munin::Common::Defaults::MUNIN_MCONFDIR/cacert.pem")
+            unless defined $ca_cert;
+         $tls_verify=&munin_get ($config, "tls_verify_certificate", "no");
+         $depth=&munin_get ($config, "tls_verify_depth", 5);
+@@ -1088,7 +1088,7 @@
+ =item B<< --config <file> >>
+-Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin.conf]
++Use E<lt>fileE<gt> as configuration file. [@@MCONFDIR@@/munin.conf]
+ =item B<< --help >>
+@@ -1124,7 +1124,7 @@
+ =head1 FILES
+-      @@CONFDIR@@/munin.conf
++      @@MCONFDIR@@/munin.conf
+       @@DBDIR@@/*
+       @@LOGDIR@@/munin-update
+       @@STATEDIR@@/*
+diff -ur munin-2.0.17/master/lib/Munin/Master/Config.pm munin-2.0.17-sep/master/lib/Munin/Master/Config.pm
+--- munin-2.0.17/master/lib/Munin/Master/Config.pm     2013-08-17 12:26:06.476625774 +0200
++++ munin-2.0.17-sep/master/lib/Munin/Master/Config.pm 2013-08-17 12:19:22.386149494 +0200
+@@ -139,7 +139,7 @@
+           root_instance => 1, 
+           config      => bless ( {
+-              config_file      => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf",
++              config_file      => "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf",
+               dbdir            => $Munin::Common::Defaults::MUNIN_DBDIR,
+               debug            => 0,
+               fork             => 1,
+@@ -153,9 +153,9 @@
+               rundir           => $Munin::Common::Defaults::MUNIN_STATEDIR,
+               timeout          => 180,
+               tls              => 'disabled',
+-              tls_ca_certificate => "$Munin::Common::Defaults::MUNIN_CONFDIR/cacert.pem",
+-              tls_certificate  => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem",
+-              tls_private_key  => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem",
++              tls_ca_certificate => "$Munin::Common::Defaults::MUNIN_MCONFDIR/cacert.pem",
++              tls_certificate  => "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.pem",
++              tls_private_key  => "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.pem",
+               tls_verify_certificate => 0,
+               tls_verify_depth => 5,
+               tmpldir          => "$Munin::Common::Defaults::MUNIN_TEMPLATEDIR",
+Only in munin-2.0.17/master/lib/Munin/Master: Config.pm.orig
+diff -ur munin-2.0.17/master/lib/Munin/Master/GraphOld.pm munin-2.0.17-sep/master/lib/Munin/Master/GraphOld.pm
+--- munin-2.0.17/master/lib/Munin/Master/GraphOld.pm   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/lib/Munin/Master/GraphOld.pm       2013-08-17 12:19:22.386149494 +0200
+@@ -90,7 +90,7 @@
+ my $skip_stats     = 0;
+ my $stdout         = 0;
+ my $force_run_as_root = 0;
+-my $conffile       = $Munin::Common::Defaults::MUNIN_CONFDIR . "/munin.conf";
++my $conffile       = $Munin::Common::Defaults::MUNIN_MCONFDIR . "/munin.conf";
+ my $libdir         = $Munin::Common::Defaults::MUNIN_LIBDIR;
+ # Note: Nothing by default is more convenient and elliminates code while
+ # for cgi graphing - but it breaks how munin-graph expected stuff to work.
+diff -ur munin-2.0.17/master/lib/Munin/Master/HTMLOld.pm munin-2.0.17-sep/master/lib/Munin/Master/HTMLOld.pm
+--- munin-2.0.17/master/lib/Munin/Master/HTMLOld.pm    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/lib/Munin/Master/HTMLOld.pm        2013-08-17 12:19:22.389482886 +0200
+@@ -81,7 +81,7 @@
+ my @times = ("day", "week", "month", "year");
+ my $DEBUG      = 0;
+-my $conffile   = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $conffile   = "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ my $do_usage   = 0;
+ my $do_version = 0;
+ my $stdout     = 0;
+@@ -857,7 +857,7 @@
+     --service <service>       Compatibility. No effect.
+     --host <host>     Compatibility. No effect.
+     --config <file>   Use <file> as configuration file. 
+-                      [/etc/munin/munin.conf]
++                      [$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf]
+ ";
+     exit 0;
+@@ -892,7 +892,7 @@
+ =item B<< --config <file> >>
+-Use E<lt>fileE<gt> as configuration file. [/etc/munin/munin.conf]
++Use E<lt>fileE<gt> as configuration file. [@@MCONFDIR@@/munin.conf]
+ =item B<< --help >>
+@@ -915,7 +915,7 @@
+ =head1 FILES
+-      @@CONFDIR@@/munin.conf
++      @@MCONFDIR@@/munin.conf
+       @@DBDIR@@/datafile
+       @@LOGDIR@@/munin-html
+       @@HTMLDIR@@/*
+diff -ur munin-2.0.17/master/lib/Munin/Master/LimitsOld.pm munin-2.0.17-sep/master/lib/Munin/Master/LimitsOld.pm
+--- munin-2.0.17/master/lib/Munin/Master/LimitsOld.pm  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/lib/Munin/Master/LimitsOld.pm      2013-08-17 12:19:22.389482886 +0200
+@@ -52,7 +52,7 @@
+ use Munin::Common::Defaults;
+ my $DEBUG          = 0;
+-my $conffile       = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $conffile       = "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ my $do_usage       = 0;
+ my $do_version     = 0;
+ my @limit_hosts    = ();
+@@ -230,7 +230,7 @@
+     --contact <contact>       Limit notified contacts to <contact>. Multiple 
+                       --contact options may be supplied.
+     --config <file>   Use <file> as configuration file. 
+-                      [/etc/munin/munin.conf]
++                      [$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf]
+ ";
+     exit 0;
+Only in munin-2.0.17/master/lib/Munin/Master: Node.pm.orig
+diff -ur munin-2.0.17/master/lib/Munin/Master/Utils.pm munin-2.0.17-sep/master/lib/Munin/Master/Utils.pm
+--- munin-2.0.17/master/lib/Munin/Master/Utils.pm      2013-08-17 12:26:06.476625774 +0200
++++ munin-2.0.17-sep/master/lib/Munin/Master/Utils.pm  2013-08-17 12:19:22.389482886 +0200
+@@ -115,7 +115,7 @@
+       },
+ };
+-my $configfile="$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf";
++my $configfile="$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf";
+ # Fields to copy when "aliasing" a field
+ my @COPY_FIELDS    = ("label", "draw", "type", "rrdfile", "fieldname", "info");
+Only in munin-2.0.17/master/lib/Munin/Master: Utils.pm.orig
+diff -ur munin-2.0.17/master/munin.conf.in munin-2.0.17-sep/master/munin.conf.in
+--- munin-2.0.17/master/munin.conf.in  2013-08-17 12:26:06.476625774 +0200
++++ munin-2.0.17-sep/master/munin.conf.in      2013-08-17 12:19:22.389482886 +0200
+@@ -24,7 +24,7 @@
+ # cgitmpdir @@DBDIR@@/cgi-tmp
+ # (Exactly one) directory to include all files from.
+-includedir @@CONFDIR@@/munin-conf.d
++includedir @@MCONFDIR@@/munin-conf.d
+ # You can choose the time reference for "DERIVE" like graphs, and show
+ # "per minute", "per hour" values instead of the default "per second"
+Only in munin-2.0.17/master: munin.conf.in.orig
+diff -ur munin-2.0.17/master/t/munin_master_config.t munin-2.0.17-sep/master/t/munin_master_config.t
+--- munin-2.0.17/master/t/munin_master_config.t        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/t/munin_master_config.t    2013-08-17 12:23:31.933897977 +0200
+@@ -24,7 +24,7 @@
+     },
+     config => {
+-        config_file     => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.conf",
++        config_file     => "$Munin::Common::Defaults::MUNIN_MCONFDIR/munin.conf",
+         dbdir           => '/opt/munin/sandbox/var/opt/munin',
+         debug           => 0,
+         fork            => 1,
+diff -ur munin-2.0.17/master/www/munin-htaccess.in munin-2.0.17-sep/master/www/munin-htaccess.in
+--- munin-2.0.17/master/www/munin-htaccess.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/master/www/munin-htaccess.in      2013-08-17 12:19:22.389482886 +0200
+@@ -9,7 +9,7 @@
+ # 
+ # <directory @@HTMLDIR@@>
+-AuthUserFile @@CONFDIR@@/munin-htpasswd
++AuthUserFile @@MCONFDIR@@/munin-htpasswd
+ AuthName "Munin"
+ AuthType Basic
+ require valid-user
+diff -ur munin-2.0.17/node/bin/munindoc munin-2.0.17-sep/node/bin/munindoc
+--- munin-2.0.17/node/bin/munindoc     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/bin/munindoc 2013-08-17 12:19:22.389482886 +0200
+@@ -48,7 +48,7 @@
+ # Dirs in which to look for $plugin.pod and $plugin files.
+ my @DIRS = ("$Munin::Common::Defaults::MUNIN_LIBDIR/plugins",
+-          "$Munin::Common::Defaults::MUNIN_CONFDIR/plugins",
++          "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugins",
+             "$Munin::Common::Defaults::MUNIN_PERLLIB");
+ File::Find::find({wanted => \&wanted_pod}, @DIRS);
+diff -ur munin-2.0.17/node/doc/munin-node.conf.pod munin-2.0.17-sep/node/doc/munin-node.conf.pod
+--- munin-2.0.17/node/doc/munin-node.conf.pod  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/doc/munin-node.conf.pod      2013-08-17 12:24:04.784478220 +0200
+@@ -91,20 +91,20 @@
+ =item B<tls_private_key> <value>
+ This directive sets the location of the private key to be used for
+-TLS.  Default is @@CONFDIR@@/munin-node.pem.  The private key and
++TLS.  Default is @@NCONFDIR@@/munin-node.pem.  The private key and
+ certificate can be stored in the same file.
+ =item B<tls_certificate> <value>
+ This directive sets the location of the TLS certificate to be used for
+-TLS.  Default is @@CONFDIR@@/munin-node.pem.  The private key and
++TLS.  Default is @@NCONFDIR@@/munin-node.pem.  The private key and
+ certificate can be stored in the same file.
+ =item B<tls_ca_certificate> <value>
+ This directive sets the CA certificate to be used to verify the node's
+ certificate, if tls_verify_certificate is set to C<yes>.  Default is
+-@@CONFDIR@@/cacert.pem.
++@@NCONFDIR@@/cacert.pem.
+ =item B<tls_verify_depth> <value>
+diff -ur munin-2.0.17/node/extras/munin-node-simple.in munin-2.0.17-sep/node/extras/munin-node-simple.in
+--- munin-2.0.17/node/extras/munin-node-simple.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/extras/munin-node-simple.in  2013-08-17 12:19:22.389482886 +0200
+@@ -28,8 +28,8 @@
+ $| = 1;
+-my $clientdir = "@@CONFDIR@@/node.d";
+-my $conffile  = "@@CONFDIR@@/node-simple.conf";
++my $clientdir = "@@NCONFDIR@@/node.d";
++my $conffile  = "@@NCONFDIR@@/node-simple.conf";
+ my $version   = "@@VERSION@@";
+ # Empty environment
+diff -ur munin-2.0.17/node/lib/Munin/Node/Config.pm munin-2.0.17-sep/node/lib/Munin/Node/Config.pm
+--- munin-2.0.17/node/lib/Munin/Node/Config.pm 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/lib/Munin/Node/Config.pm     2013-08-17 12:19:22.389482886 +0200
+@@ -25,7 +25,7 @@
+         my ($class) = @_;
+         $instance ||= bless {
+-            config_file  => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf",
++            config_file  => "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.conf",
+         }, $class;
+         return $instance;
+diff -ur munin-2.0.17/node/lib/Munin/Node/Server.pm munin-2.0.17-sep/node/lib/Munin/Node/Server.pm
+--- munin-2.0.17/node/lib/Munin/Node/Server.pm 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/lib/Munin/Node/Server.pm     2013-08-17 12:19:22.389482886 +0200
+@@ -263,11 +263,11 @@
+     my $mode = $session->{tls_mode};
+     my $key        = $config->{tls_private_key}
+-                  || "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.pem";
++                  || "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.pem";
+     my $cert       = $config->{tls_certificate}
+-                  || "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.pem";
++                  || "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.pem";
+     my $ca_cert    = $config->{tls_ca_certificate}
+-                  || "$Munin::Common::Defaults::MUNIN_CONFDIR/cacert.pem";
++                  || "$Munin::Common::Defaults::MUNIN_NCONFDIR/cacert.pem";
+     my $tls_verify = $config->{tls_verify_certificate}
+                   || 0;
+     my $tls_match  = $config->{tls_match};
+diff -ur munin-2.0.17/node/lib/Munin/Node/Service.pm munin-2.0.17-sep/node/lib/Munin/Node/Service.pm
+--- munin-2.0.17/node/lib/Munin/Node/Service.pm        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/lib/Munin/Node/Service.pm    2013-08-17 12:24:22.264786886 +0200
+@@ -22,7 +22,7 @@
+     my ($class, %args) = @_;
+     # Set defaults
+-    $args{servicedir} ||= "$Munin::Common::Defaults::MUNIN_CONFDIR/plugins";
++    $args{servicedir} ||= "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugins";
+     $args{defuser}  ||= getpwnam $Munin::Common::Defaults::MUNIN_PLUGINUSER;
+     $args{defgroup} ||= getgrnam $Munin::Common::Defaults::MUNIN_GROUP;
+diff -ur munin-2.0.17/node/sbin/munin-node munin-2.0.17-sep/node/sbin/munin-node
+--- munin-2.0.17/node/sbin/munin-node  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/sbin/munin-node      2013-08-17 12:19:22.389482886 +0200
+@@ -36,8 +36,8 @@
+ use Munin::Node::Server;
+ my $servicedir;
+-my $sconfdir = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugin-conf.d";
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf";
++my $sconfdir = "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugin-conf.d";
++my $conffile = "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.conf";
+ my $DEBUG    = 0;
+ my $PIDEBUG  = 0;
+ my $paranoia = 0;
+@@ -164,7 +164,7 @@
+ =item B<< --config <configfile> >>
+-Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin-node.conf]
++Use E<lt>fileE<gt> as configuration file. [@@NCONFDIR@@/munin-node.conf]
+ =item B< --[no]paranoia >
+@@ -187,9 +187,9 @@
+ =head1 FILES
+-    @@CONFDIR@@/munin-node.conf
+-    @@CONFDIR@@/plugins/*
+-    @@CONFDIR@@/plugin-conf.d/*
++    @@NCONFDIR@@/munin-node.conf
++    @@NCONFDIR@@/plugins/*
++    @@NCONFDIR@@/plugin-conf.d/*
+     @@STATEDIR@@/munin-node.pid
+     @@LOGDIR@@/munin-node.log
+diff -ur munin-2.0.17/node/sbin/munin-node-configure munin-2.0.17-sep/node/sbin/munin-node-configure
+--- munin-2.0.17/node/sbin/munin-node-configure        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/sbin/munin-node-configure    2013-08-17 12:19:22.489484658 +0200
+@@ -76,9 +76,9 @@
+ sub parse_args
+ {
+-      my $conffile   = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf";
+-      my $servicedir = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugins";
+-      my $sconfdir   = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugin-conf.d";
++      my $conffile   = "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.conf";
++      my $servicedir = "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugins";
++      my $sconfdir   = "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugin-conf.d";
+       my $libdir     = "$Munin::Common::Defaults::MUNIN_LIBDIR/plugins";
+       my $debug = 0;
+@@ -492,15 +492,15 @@
+ =item B<< --config <file> >>
+-Override configuration file [@@CONFDIR@@/munin-node.conf]
++Override configuration file [@@NCONFDIR@@/munin-node.conf]
+ =item B<< --servicedir <dir> >>
+-Override plugin directory [@@CONFDIR@@/plugins/]
++Override plugin directory [@@NCONFDIR@@/plugins/]
+ =item B<< --sconfdir <dir> >>
+-Override plugin configuration directory [@@CONFDIR@@/plugin-conf.d/]
++Override plugin configuration directory [@@NCONFDIR@@/plugin-conf.d/]
+ =item B<< --libdir <dir> >>
+@@ -648,9 +648,9 @@
+ =head1 FILES
+-    @@CONFDIR@@/munin-node.conf
+-    @@CONFDIR@@/plugin-conf.d/*
+-    @@CONFDIR@@/plugins/*
++    @@NCONFDIR@@/munin-node.conf
++    @@NCONFDIR@@/plugin-conf.d/*
++    @@NCONFDIR@@/plugins/*
+     @@LIBDIR@@/plugins/plugins.history
+     @@LIBDIR@@/plugins/*
+diff -ur munin-2.0.17/node/sbin/munin-run munin-2.0.17-sep/node/sbin/munin-run
+--- munin-2.0.17/node/sbin/munin-run   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/sbin/munin-run       2013-08-17 12:19:22.489484658 +0200
+@@ -35,7 +35,7 @@
+ my $services;
+ my $servicedir;
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf";
++my $conffile = "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.conf";
+ my $DEBUG    = 0;
+ my $PIDEBUG  = 0;
+ my $paranoia = 0;
+@@ -98,7 +98,7 @@
+ sub parse_args
+ {
+     # Default configuration values
+-    my $sconfdir   = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugin-conf.d";
++    my $sconfdir   = "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugin-conf.d";
+     my $sconffile;
+     my ($plugin, $arg);
+@@ -189,15 +189,15 @@
+ =item B<< --config <configfile> >>
+-Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin-node.conf]
++Use E<lt>fileE<gt> as configuration file. [@@NCONFDIR@@/munin-node.conf]
+ =item B<< --servicedir <dir> >>
+-Use E<lt>dirE<gt> as plugin dir. [@@CONFDIR@@/plugins/]
++Use E<lt>dirE<gt> as plugin dir. [@@NCONFDIR@@/plugins/]
+ =item B<< --sconfdir <dir> >>
+-Use E<lt>dirE<gt> as plugin configuration dir. [@@CONFDIR@@/plugin-conf.d/]
++Use E<lt>dirE<gt> as plugin configuration dir. [@@NCONFDIR@@/plugin-conf.d/]
+ =item B<< --sconffile <file> >>
+@@ -230,9 +230,9 @@
+ =head1 FILES
+-    @@CONFDIR@@/munin-node.conf
+-    @@CONFDIR@@/plugins/*
+-    @@CONFDIR@@/plugin-conf.d/*
++    @@NCONFDIR@@/munin-node.conf
++    @@NCONFDIR@@/plugins/*
++    @@NCONFDIR@@/plugin-conf.d/*
+     @@STATEDIR@@/munin-node.pid
+     @@LOGDIR@@/munin-node.log
+diff -ur munin-2.0.17/node/sbin/munin-sched munin-2.0.17-sep/node/sbin/munin-sched
+--- munin-2.0.17/node/sbin/munin-sched 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/node/sbin/munin-sched     2013-08-17 12:24:54.562023692 +0200
+@@ -34,8 +34,8 @@
+ use Munin::Node::ProxySpooler;
+ my $servicedir;
+-my $sconfdir = "$Munin::Common::Defaults::MUNIN_CONFDIR/plugin-conf.d";
+-my $conffile = "$Munin::Common::Defaults::MUNIN_CONFDIR/munin-node.conf";
++my $sconfdir = "$Munin::Common::Defaults::MUNIN_NCONFDIR/plugin-conf.d";
++my $conffile = "$Munin::Common::Defaults::MUNIN_NCONFDIR/munin-node.conf";
+ my $spooldir = $Munin::Common::Defaults::MUNIN_SPOOLDIR;
+ my ($host, $port);
+@@ -164,7 +164,7 @@
+ =item B<< --config <configfile> >>
+-Use E<lt>fileE<gt> as configuration file. [@@CONFDIR@@/munin-node.conf]
++Use E<lt>fileE<gt> as configuration file. [@@NCONFDIR@@/munin-node.conf]
+ =item B< --[no]paranoia >
+@@ -182,9 +182,9 @@
+ =head1 FILES
+-    @@CONFDIR@@/munin-node.conf
+-    @@CONFDIR@@/plugins/*
+-    @@CONFDIR@@/plugin-conf.d/*
++    @@NCONFDIR@@/munin-node.conf
++    @@NCONFDIR@@/plugins/*
++    @@NCONFDIR@@/plugin-conf.d/*
+     @@STATEDIR@@/munin-sched.pid
+     @@LOGDIR@@/munin-sched.log
+diff -ur munin-2.0.17/plugins/node.d/exim_mailqueue.in munin-2.0.17-sep/plugins/node.d/exim_mailqueue.in
+--- munin-2.0.17/plugins/node.d/exim_mailqueue.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/exim_mailqueue.in  2013-08-17 12:19:22.489484658 +0200
+@@ -15,7 +15,7 @@
+   [exim_*]
+     user exim
+-Configuration parameters for a file in @@CONFDIR@@/plugin-conf.d/
++Configuration parameters for a file in @@NCONFDIR@@/plugin-conf.d/
+ if you need to override the defaults below:
+   [exim_mailqueue]
+diff -ur munin-2.0.17/plugins/node.d/ipmi_sensor_.in munin-2.0.17-sep/plugins/node.d/ipmi_sensor_.in
+--- munin-2.0.17/plugins/node.d/ipmi_sensor_.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/ipmi_sensor_.in    2013-08-17 12:19:22.489484658 +0200
+@@ -17,7 +17,7 @@
+ ipmitool probably needs to be run as root, and it may take more than
+ 10 seconds on some hosts.
+-Add the following to your @@CONFDIR@@/munin-node:
++Add the following to your @@NCONFDIR@@/munin-node:
+  [ipmi_sensor_*]
+   user root
+@@ -49,7 +49,7 @@
+ =head1 BUGS
+-Plugin reads @@CONFDIR@@/ipmi directly, instead of reading environment
++Plugin reads @@NCONFDIR@@/ipmi directly, instead of reading environment
+ variables.
+ =head1 MAGIC MARKERS
+@@ -72,7 +72,7 @@
+ CACHEDIR = os.environ['MUNIN_PLUGSTATE']
+ CACHEFILE = "plugin-ipmi_sensor.cache"
+ CACHEAGE = 120
+-CONFIG = '@@CONFDIR@@/ipmi'
++CONFIG = '@@NCONFDIR@@/ipmi'
+diff -ur munin-2.0.17/plugins/node.d/mysql_innodb.in munin-2.0.17-sep/plugins/node.d/mysql_innodb.in
+--- munin-2.0.17/plugins/node.d/mysql_innodb.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/mysql_innodb.in    2013-08-17 12:19:22.489484658 +0200
+@@ -34,7 +34,7 @@
+ =head1 CONFIGURATION
+-Configuration parameters for @@CONFDIR@@/mysql_innodb,
++Configuration parameters for @@NCONFDIR@@/mysql_innodb,
+ if you need to override the defaults below:
+  [mysql_innodb]
+diff -ur munin-2.0.17/plugins/node.d/mysql_isam_space_.in munin-2.0.17-sep/plugins/node.d/mysql_isam_space_.in
+--- munin-2.0.17/plugins/node.d/mysql_isam_space_.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/mysql_isam_space_.in       2013-08-17 12:19:22.489484658 +0200
+@@ -8,7 +8,7 @@
+ =head1 CONFIGURATION
+-Configuration parameters for @@CONFDIR@@/PLUGIN,
++Configuration parameters for @@NCONFDIR@@/PLUGIN,
+ if you need to override the defaults below:
+  [mysql_isam_space_*]
+diff -ur munin-2.0.17/plugins/node.d/mysql_threads.in munin-2.0.17-sep/plugins/node.d/mysql_threads.in
+--- munin-2.0.17/plugins/node.d/mysql_threads.in       2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/mysql_threads.in   2013-08-17 12:19:22.489484658 +0200
+@@ -9,7 +9,7 @@
+ =head1 CONFIGURATION
+-Configuration parameters for @@CONFDIR@@/mysql_threads, if you
++Configuration parameters for @@NCONFDIR@@/mysql_threads, if you
+ need to override the defaults below:
+  [mysql_threads]
+diff -ur munin-2.0.17/plugins/node.d/named.in munin-2.0.17-sep/plugins/node.d/named.in
+--- munin-2.0.17/plugins/node.d/named.in       2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/named.in   2013-08-17 12:19:22.489484658 +0200
+@@ -34,7 +34,7 @@
+ =head1 CONFIGURATION
+-Configuration parameters for @@CONFDIR@@/named,
++Configuration parameters for @@NCONFDIR@@/named,
+ if you need to override the defaults below:
+  [named]
+diff -ur munin-2.0.17/plugins/node.d/ntp_kernel_pll_freq.in munin-2.0.17-sep/plugins/node.d/ntp_kernel_pll_freq.in
+--- munin-2.0.17/plugins/node.d/ntp_kernel_pll_freq.in 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/ntp_kernel_pll_freq.in     2013-08-17 12:19:22.489484658 +0200
+@@ -12,7 +12,7 @@
+ No configuration
+-This plugin optionally reads the file @@CONFDIR@@/ntp-freq-comp, which
++This plugin optionally reads the file @@NCONFDIR@@/ntp-freq-comp, which
+ should contain a number to be added to the frequency read by ntpdc.
+ =head1 AUTHORS
+@@ -46,8 +46,8 @@
+     exit 0
+ fi
+-if [ -f @@CONFDIR@@/ntp-freq-comp ]; then
+-    fcomp=`cat @@CONFDIR@@/ntp-freq-comp`
++if [ -f @@NCONFDIR@@/ntp-freq-comp ]; then
++    fcomp=`cat @@NCONFDIR@@/ntp-freq-comp`
+ else
+     fcomp=0
+ fi
+diff -ur munin-2.0.17/plugins/node.d/postfix_mailstats.in munin-2.0.17-sep/plugins/node.d/postfix_mailstats.in
+--- munin-2.0.17/plugins/node.d/postfix_mailstats.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/postfix_mailstats.in       2013-08-17 12:19:22.489484658 +0200
+@@ -8,7 +8,7 @@
+ =head1 CONFIGURATION
+-Configuration parameters for @@CONFDIR@@/postfix_mailstats,
++Configuration parameters for @@NCONFDIR@@/postfix_mailstats,
+ if you need to override the defaults below:
+  [postfix_mailstats]
+diff -ur munin-2.0.17/plugins/node.d/psu_.in munin-2.0.17-sep/plugins/node.d/psu_.in
+--- munin-2.0.17/plugins/node.d/psu_.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/psu_.in    2013-08-17 12:19:22.489484658 +0200
+@@ -15,7 +15,7 @@
+ Example:
+- ln -s @@LIBDIR@@/plugins/psu_ @@CONFDIR@@/plugins/psu_foo
++ ln -s @@LIBDIR@@/plugins/psu_ @@NCONFDIR@@/plugins/psu_foo
+ ...will monitor the user "foo"
+diff -ur munin-2.0.17/plugins/node.d/squeezebox_.in munin-2.0.17-sep/plugins/node.d/squeezebox_.in
+--- munin-2.0.17/plugins/node.d/squeezebox_.in 2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/squeezebox_.in     2013-08-17 12:19:22.489484658 +0200
+@@ -20,7 +20,7 @@
+ non-default configuration, please use the environment variables
+ 'squeezebox_host' and 'squeezebox_port' to connect. Also, if your
+ nc(1) binary is not called "nc", or not the one in $PATH, please define it
+-in the plugin's environment file (@@CONFDIR@@/squeezebox or similar).
++in the plugin's environment file (@@NCONFDIR@@/squeezebox or similar).
+ Sample follows:
+diff -ur munin-2.0.17/plugins/node.d/varnish_.in munin-2.0.17-sep/plugins/node.d/varnish_.in
+--- munin-2.0.17/plugins/node.d/varnish_.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d/varnish_.in        2013-08-17 12:19:22.492818051 +0200
+@@ -54,7 +54,7 @@
+ You can link them yourself with something like this:
+   ln -s @@LIBDIR@@/plugins/varnish_ \
+-    @@CONFDIR@@/plugins/varnish_data_structures
++    @@NCONFDIR@@/plugins/varnish_data_structures
+ =head1 INTERPRETATION
+diff -ur munin-2.0.17/plugins/node.d.cygwin/df.in munin-2.0.17-sep/plugins/node.d.cygwin/df.in
+--- munin-2.0.17/plugins/node.d.cygwin/df.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.cygwin/df.in       2013-08-17 12:25:08.005594281 +0200
+@@ -13,7 +13,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ The plugin excludes per default the following special, read-only or
+ dynamically allocating file systems from graphing:
+diff -ur munin-2.0.17/plugins/node.d.debug/if.in munin-2.0.17-sep/plugins/node.d.debug/if.in
+--- munin-2.0.17/plugins/node.d.debug/if.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.debug/if.in        2013-08-17 12:25:17.379093018 +0200
+@@ -21,7 +21,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 MAGIC MARKERS
+diff -ur munin-2.0.17/plugins/node.d.debug/tc.in munin-2.0.17-sep/plugins/node.d.debug/tc.in
+--- munin-2.0.17/plugins/node.d.debug/tc.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.debug/tc.in        2013-08-17 12:25:26.375918427 +0200
+@@ -21,7 +21,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 MAGIC MARKERS
+diff -ur munin-2.0.17/plugins/node.d.linux/acpi.in munin-2.0.17-sep/plugins/node.d.linux/acpi.in
+--- munin-2.0.17/plugins/node.d.linux/acpi.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/acpi.in      2013-08-17 12:19:22.492818051 +0200
+@@ -17,7 +17,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 INTERPRETATION
+diff -ur munin-2.0.17/plugins/node.d.linux/apt.in munin-2.0.17-sep/plugins/node.d.linux/apt.in
+--- munin-2.0.17/plugins/node.d.linux/apt.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/apt.in       2013-08-17 12:19:22.492818051 +0200
+@@ -38,7 +38,7 @@
+ =head1 USAGE
+-Link this plugin in @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin in @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 NOTES
+diff -ur munin-2.0.17/plugins/node.d.linux/df.in munin-2.0.17-sep/plugins/node.d.linux/df.in
+--- munin-2.0.17/plugins/node.d.linux/df.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/df.in        2013-08-17 12:19:22.492818051 +0200
+@@ -28,7 +28,7 @@
+     env.warning 92
+     env.critical 98
+-Put it in a file in @@CONFDIR@@/plugin-conf.d/ and restart the munin-node.
++Put it in a file in @@NCONFDIR@@/plugin-conf.d/ and restart the munin-node.
+ You may specify filesystem specific warning and critical levels:
+@@ -55,7 +55,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 MAGIC MARKERS
+diff -ur munin-2.0.17/plugins/node.d.linux/df_inode.in munin-2.0.17-sep/plugins/node.d.linux/df_inode.in
+--- munin-2.0.17/plugins/node.d.linux/df_inode.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/df_inode.in  2013-08-17 12:25:37.609449943 +0200
+@@ -28,7 +28,7 @@
+     env.warning 92
+     env.critical 98
+-Put it in a file in @@CONFDIR@@/plugin-conf.d/ and restart the munin-node.
++Put it in a file in @@NCONFDIR@@/plugin-conf.d/ and restart the munin-node.
+ You may specify filesystem specific warning and critical levels:
+@@ -55,7 +55,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 MAGIC MARKERS
+diff -ur munin-2.0.17/plugins/node.d.linux/fw_conntrack.in munin-2.0.17-sep/plugins/node.d.linux/fw_conntrack.in
+--- munin-2.0.17/plugins/node.d.linux/fw_conntrack.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/fw_conntrack.in      2013-08-17 12:19:22.492818051 +0200
+@@ -11,7 +11,7 @@
+ =head2 CONFIGURATION EXAMPLE
+-@@CONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
++@@NCONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
+  [fw_*]
+   user root
+diff -ur munin-2.0.17/plugins/node.d.linux/fw_forwarded_local.in munin-2.0.17-sep/plugins/node.d.linux/fw_forwarded_local.in
+--- munin-2.0.17/plugins/node.d.linux/fw_forwarded_local.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/fw_forwarded_local.in        2013-08-17 12:19:22.492818051 +0200
+@@ -10,7 +10,7 @@
+ =head2 CONFIGURATION EXAMPLE
+-@@CONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
++@@NCONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
+  [fw_*]
+   user root
+diff -ur munin-2.0.17/plugins/node.d.linux/fw_packets.in munin-2.0.17-sep/plugins/node.d.linux/fw_packets.in
+--- munin-2.0.17/plugins/node.d.linux/fw_packets.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/fw_packets.in        2013-08-17 12:19:22.492818051 +0200
+@@ -11,7 +11,7 @@
+ =head1 CONFIGURATION EXAMPLE
+-@@CONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
++@@NCONFDIR@@/plugin-conf.d/global or other file in that dir must contain:
+  [fw*]
+   user root
+diff -ur munin-2.0.17/plugins/node.d.linux/iostat.in munin-2.0.17-sep/plugins/node.d.linux/iostat.in
+--- munin-2.0.17/plugins/node.d.linux/iostat.in        2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/iostat.in    2013-08-17 12:19:22.492818051 +0200
+@@ -24,7 +24,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 INTERPRETATION
+diff -ur munin-2.0.17/plugins/node.d.linux/iostat_ios.in munin-2.0.17-sep/plugins/node.d.linux/iostat_ios.in
+--- munin-2.0.17/plugins/node.d.linux/iostat_ios.in    2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/iostat_ios.in        2013-08-17 12:19:22.492818051 +0200
+@@ -15,7 +15,7 @@
+ =head1 USAGE
+-Link this into @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this into @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 INTERPRETATION
+diff -ur munin-2.0.17/plugins/node.d.linux/irqstats.in munin-2.0.17-sep/plugins/node.d.linux/irqstats.in
+--- munin-2.0.17/plugins/node.d.linux/irqstats.in      2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/plugins/node.d.linux/irqstats.in  2013-08-17 12:19:22.492818051 +0200
+@@ -15,7 +15,7 @@
+ =head1 USAGE
+-Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.
++Link this plugin to @@NCONFDIR@@/plugins/ and restart the munin-node.
+ =head1 INTERPRETATION
+diff -ur munin-2.0.17/resources/hpux-init.d_munin-node.in munin-2.0.17-sep/resources/hpux-init.d_munin-node.in
+--- munin-2.0.17/resources/hpux-init.d_munin-node.in   2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/resources/hpux-init.d_munin-node.in       2013-08-17 12:19:22.492818051 +0200
+@@ -6,7 +6,7 @@
+ PATH=/sbin:/bin:/usr/sbin:/usr/bin
+ NAME=munin-node
+ DAEMON=@@SBINDIR@@/$NAME
+-CONFFILE=@@CONFDIR@@/munin-node.conf
++CONFFILE=@@NCONFDIR@@/munin-node.conf
+ RUN_AS=$(awk '$1~/user/{print$2}' $CONFFILE)
+ PIDFILE=$(awk '$1~/pid/{print$2}' $CONFFILE)
+ MYCONF=/etc/rc.config.d/muninconf
+diff -ur munin-2.0.17/resources/linux-cron.d_munin-node.in munin-2.0.17-sep/resources/linux-cron.d_munin-node.in
+--- munin-2.0.17/resources/linux-cron.d_munin-node.in  2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/resources/linux-cron.d_munin-node.in      2013-08-17 12:19:22.492818051 +0200
+@@ -8,5 +8,5 @@
+ # an hour (12 invokations an hour, 1 in 12 chance that the update will
+ # happen), but ensure that there will never be more than two hour (7200
+ # seconds) interval between updates..
+-*/5 * * * *   root [ -x @@CONFDIR@@/plugins/apt ] && @@CONFDIR@@/plugins/apt update 7200 12 >/dev/null
++*/5 * * * *   root [ -x @@NCONFDIR@@/plugins/apt ] && @@NCONFDIR@@/plugins/apt update 7200 12 >/dev/null
+diff -ur munin-2.0.17/t/Makefile.config munin-2.0.17-sep/t/Makefile.config
+--- munin-2.0.17/t/Makefile.config     2013-07-19 18:30:03.000000000 +0200
++++ munin-2.0.17-sep/t/Makefile.config 2013-08-17 12:19:22.492818051 +0200
+@@ -9,7 +9,8 @@
+ PREFIX     = $(PWD)/t/install
+ # Where Munin keeps its configurations (server.conf, client.conf, ++)
+-CONFDIR    = $(PREFIX)/etc
++MCONFDIR    = $(PREFIX)/etc
++NCONFDIR    = $(PREFIX)/etc
+ # Client only - Where to put RRD files and other intenal data
+ DBDIR      = $(PREFIX)/var/lib
diff --git a/munin-templatedir.patch b/munin-templatedir.patch
new file mode 100644 (file)
index 0000000..eb94020
--- /dev/null
@@ -0,0 +1,144 @@
+diff -ur munin-1.4.0/common/lib/Munin/Common/Defaults.pm munin-1.4.0.template/common/lib/Munin/Common/Defaults.pm
+--- munin-1.4.0/common/lib/Munin/Common/Defaults.pm    2009-11-27 12:17:16.000000000 +0100
++++ munin-1.4.0.template/common/lib/Munin/Common/Defaults.pm   2009-11-30 15:53:32.281661475 +0100
+@@ -30,6 +30,7 @@
+ our $MUNIN_MANDIR     = '';
+ our $MUNIN_LOGDIR     = "$COMPONENT_ROOT/log/";
+ our $MUNIN_STATEDIR   = ''; 
++our $MUNIN_TEMPLATEDIR = ''; 
+ our $MUNIN_USER       = getpwuid $UID;
+ our $MUNIN_GROUP      = getgrgid $GID;
+ our $MUNIN_PLUGINUSER = getpwuid $UID;
+diff -ur munin-1.4.0/contrib/munin-every-services-all-boxes-build-html.in munin-1.4.0.template/contrib/munin-every-services-all-boxes-build-html.in
+--- munin-1.4.0/contrib/munin-every-services-all-boxes-build-html.in   2009-11-27 12:17:18.000000000 +0100
++++ munin-1.4.0.template/contrib/munin-every-services-all-boxes-build-html.in  2009-11-30 15:31:14.400724600 +0100
+@@ -23,7 +23,7 @@
+   chown @@USER@@.@@GROUP@@ @@HTMLDIR@@/every-services-all-boxes
+-in @@CONFDIR@@/templates/munin-overview.tmpl:
++in @@TEMPLATEDIR@@/munin-overview.tmpl:
+  <div class="box">
+     <a href=every-services-all-boxes>every services on all boxes</a>
+diff -ur munin-1.4.0/Makefile munin-1.4.0.template/Makefile
+--- munin-1.4.0/Makefile       2009-11-30 15:56:58.665729798 +0100
++++ munin-1.4.0.template/Makefile      2009-11-30 15:43:56.093673451 +0100
+@@ -72,9 +72,9 @@
+       $(CHOWN) $(USER) $(LOGDIR) $(STATEDIR)
+ install-master-prime: $(INFILES_MASTER) install-pre install-master
+-      mkdir -p $(CONFDIR)/templates
+-      mkdir -p $(CONFDIR)/static
+-      mkdir -p $(CONFDIR)/templates/partial
++      mkdir -p $(TEMPLATEDIR)
++      mkdir -p $(TEMPLATEDIR)/static
++      mkdir -p $(TEMPLATEDIR)/partial
+       mkdir -p $(CONFDIR)/munin-conf.d
+       mkdir -p $(LIBDIR)
+       mkdir -p $(BINDIR)
+@@ -87,15 +87,15 @@
+       $(CHMOD) 0755 $(DBDIR)
+       for p in master/www/*.tmpl ;  do \
+-              $(INSTALL) -m 0644 "$$p" $(CONFDIR)/templates/ ; \
++              $(INSTALL) -m 0644 "$$p" $(TEMPLATEDIR)/ ; \
+       done
+       for p in master/static/* ; do \
+-              $(INSTALL) -m 0644 "$$p" $(CONFDIR)/static/ ; \
++              $(INSTALL) -m 0644 "$$p" $(TEMPLATEDIR)/static/ ; \
+       done
+       for p in master/www/partial/*.tmpl; do \
+-              $(INSTALL) -m 0644 "$$p" $(CONFDIR)/templates/partial/ ; \
++              $(INSTALL) -m 0644 "$$p" $(TEMPLATEDIR)/partial/ ; \
+       done
+       $(INSTALL) -m 0755 master/DejaVuSansMono.ttf $(LIBDIR)/
+@@ -217,6 +217,7 @@
+              -e 's|@@GOODSH@@|$(GOODSH)|g'                      \
+              -e 's|@@BASH@@|$(BASH)|g'                          \
+              -e 's|@@HASSETR@@|$(HASSETR)|g'                    \
++             -e 's|@@TEMPLATEDIR@@|$(TEMPLATEDIR)|g'            \
+              $< > $@;
+@@ -255,7 +256,8 @@
+                   s{(PLUGINUSER       \s+=\s).*}{\1q{$(PLUGINUSER)};}x;  \
+                   s{(GOODSH   \s+=\s).*}{\1q{$(GOODSH)};}x;      \
+                   s{(BASH     \s+=\s).*}{\1q{$(BASH)};}x;        \
+-                  s{(HASSETR  \s+=\s).*}{\1q{$(HASSETR)};}x;'    \
++                  s{(HASSETR  \s+=\s).*}{\1q{$(HASSETR)};}x;     \
++                  s{(TEMPLATEDIR \s+=\s).*}{\1q{$(TEMPLATEDIR)};}x;'\
+                   $< > $@
+ build-doc: build-doc-stamp Makefile Makefile.config
+diff -ur munin-1.4.0/Makefile.config munin-1.4.0.template/Makefile.config
+--- munin-1.4.0/Makefile.config        2009-11-30 15:56:58.665729798 +0100
++++ munin-1.4.0.template/Makefile.config       2009-11-30 15:44:54.459859861 +0100
+@@ -40,6 +40,7 @@
+ # Server only - Output directory
+ HTMLDIR    = $(DESTDIR)/var/lib/munin/html
+ CGIDIR     = $(LIBDIR)/cgi
++TEMPLATEDIR= $(DESTDIR)/etc/webapps/munin/templates
+ # Server only - spool directory for data gathered from nodes by
+ # munin-gather - experimental.  Place on ramdisk to make munin
+diff -ur munin-1.4.0/master/doc/munin.conf.pod.in munin-1.4.0.template/master/doc/munin.conf.pod.in
+--- munin-1.4.0/master/doc/munin.conf.pod.in   2009-11-27 12:17:16.000000000 +0100
++++ munin-1.4.0.template/master/doc/munin.conf.pod.in  2009-11-30 15:51:40.016661676 +0100
+@@ -68,7 +68,7 @@
+ Directory for files tracking munin's current running state.  Required.
+-=item B<tmpldir> I<path> (Default: F<@@CONFDIR@@/templates>)
++=item B<tmpldir> I<path> (Default: F<@@TEMPLATEDIR@@>)
+ Directory for templates used to generate HTML pages.  Required.
+diff -ur munin-1.4.0/master/lib/Munin/Master/Config.pm munin-1.4.0.template/master/lib/Munin/Master/Config.pm
+--- munin-1.4.0/master/lib/Munin/Master/Config.pm      2009-11-27 12:17:17.000000000 +0100
++++ munin-1.4.0.template/master/lib/Munin/Master/Config.pm     2009-11-30 15:50:50.533791958 +0100
+@@ -156,8 +156,8 @@
+               tls_private_key  => "$Munin::Common::Defaults::MUNIN_CONFDIR/munin.pem",
+               tls_verify_certificate => 0,
+               tls_verify_depth => 5,
+-              tmpldir          => "$Munin::Common::Defaults::MUNIN_CONFDIR/templates",
+-              staticdir        => "$Munin::Common::Defaults::MUNIN_CONFDIR/static",
++              tmpldir          => "$Munin::Common::Defaults::MUNIN_TEMPLATEDIR",
++              staticdir        => "$Munin::Common::Defaults::MUNIN_TEMPLATEDIR/static",
+               cgitmpdir        => "$Munin::Common::Defaults::MUNIN_DBDIR/cgi-tmp",
+           }, $class ),
+diff -ur munin-1.4.0/master/lib/Munin/Master/Utils.pm munin-1.4.0.template/master/lib/Munin/Master/Utils.pm
+--- munin-1.4.0/master/lib/Munin/Master/Utils.pm       2009-11-27 12:17:18.000000000 +0100
++++ munin-1.4.0.template/master/lib/Munin/Master/Utils.pm      2009-11-30 15:49:47.135724128 +0100
+@@ -273,8 +273,8 @@
+     $config->{'rundir'}        ||= $Munin::Common::Defaults::MUNIN_STATEDIR;
+     $config->{'dbdir'}         ||= $Munin::Common::Defaults::MUNIN_DBDIR;
+     $config->{'logdir'}        ||= $Munin::Common::Defaults::MUNIN_LOGDIR;
+-    $config->{'tmpldir'}       ||= "$Munin::Common::Defaults::MUNIN_CONFDIR/templates/";
+-    $config->{'staticdir'}     ||= "$Munin::Common::Defaults::MUNIN_CONFDIR/static/";
++    $config->{'tmpldir'}       ||= "$Munin::Common::Defaults::MUNIN_TEMPLATEDIR";
++    $config->{'staticdir'}     ||= "$Munin::Common::Defaults::MUNIN_TEMPLATEDIR/static/";
+     $config->{'htmldir'}       ||= $Munin::Common::Defaults::MUNIN_HTMLDIR;
+     $config->{'spooldir'}      ||= $Munin::Common::Defaults::MUNIN_SSPOOLDIR;
+     $config->{'#%#parent'}     = undef;
+diff -ur munin-1.4.0/master/munin.conf.in munin-1.4.0.template/master/munin.conf.in
+--- munin-1.4.0/master/munin.conf.in   2009-11-27 12:17:18.000000000 +0100
++++ munin-1.4.0.template/master/munin.conf.in  2009-11-30 15:47:40.690849769 +0100
+@@ -11,11 +11,11 @@
+ # Where to look for the HTML templates
+ #
+-#tmpldir      @@CONFDIR@@/templates
++#tmpldir      @@TEMPLATEDIR@@
+ # Where to look for the static www files
+ #
+-#staticdir @@CONFDIR@@/static
++#staticdir @@TEMPLATEDIR@@/static
+ # temporary cgi files are here. note that it has to be writable by 
+ # the cgi user (usually nobody or httpd).
diff --git a/munin-timeout.patch b/munin-timeout.patch
new file mode 100644 (file)
index 0000000..992190e
--- /dev/null
@@ -0,0 +1,11 @@
+--- munin-1.4.0/master/lib/Munin/Master/Node.pm~       2009-11-27 12:17:17.000000000 +0100
++++ munin-1.4.0/master/lib/Munin/Master/Node.pm        2009-12-01 17:33:33.041187499 +0100
+@@ -27,7 +27,7 @@
+         pid     => undef,
+         writer  => undef,
+         master_capabilities => "multigraph dirtyconfig",
+-        io_timeout => 120,
++        io_timeout => $config->{timeout},
+       configref => $configref,
+     };
diff --git a/munin.cron b/munin.cron
new file mode 100644 (file)
index 0000000..e485204
--- /dev/null
@@ -0,0 +1,6 @@
+#
+# cron-jobs for munin
+#
+MAILTO=root
+
+*/5 * * * *     munin /usr/sbin/munin-cron
diff --git a/munin.logrotate b/munin.logrotate
new file mode 100644 (file)
index 0000000..18d55e6
--- /dev/null
@@ -0,0 +1,10 @@
+/var/log/munin/munin-cgi-graph.log
+/var/log/munin/munin-cgi-html.log
+/var/log/munin/munin-graph.log
+/var/log/munin/munin-html.log
+/var/log/munin/munin-limits.log
+/var/log/munin/munin-update.log {
+       su root http
+       olddir /var/log/archive/munin
+       create 660 munin http
+}
diff --git a/munin.spec b/munin.spec
new file mode 100644 (file)
index 0000000..738c64b
--- /dev/null
@@ -0,0 +1,366 @@
+# TODO
+# - R: perl* should be autogenerated?
+# - add plugins-java package and proper BRs
+#
+# Condtional build:
+%bcond_with    sybase          # add Sybase support to munin-node
+
+%include       /usr/lib/rpm/macros.perl
+Summary:       Munin - the Linpro RRD data agent
+Summary(pl.UTF-8):     Munin - agent danych RRD Linpro
+Name:          munin
+Version:       2.0.19
+Release:       3
+License:       GPL
+Group:         Applications/WWW
+Source0:       http://downloads.sourceforge.net/munin/%{name}-%{version}.tar.gz
+# Source0-md5: ab27d477052c0f5da4ed81edb7f95f1b
+Source1:       %{name}-node.init
+Source2:       %{name}.cron
+Source3:       %{name}-apache.conf
+Source4:       %{name}.logrotate
+Source5:       %{name}-node.logrotate
+Source6:       %{name}-lighttpd.conf
+Source7:       %{name}.tmpfiles
+Source8:       %{name}-httpd.conf
+Source9:       %{name}-node.service
+Source10:      %{name}-asyncd.service
+Source11:      %{name}-asyncd.init
+Patch0:                %{name}-Makefile.patch
+Patch1:                %{name}-plugins.patch
+Patch2:                %{name}-templatedir.patch
+Patch3:                %{name}-separate-configs.patch
+Patch4:                %{name}-timeout.patch
+URL:           http://munin.sourceforge.net/
+BuildRequires: perl-Encode
+BuildRequires: perl-Net-SNMP
+BuildRequires: perl-devel
+BuildRequires: rpm-perlprov
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.671
+BuildRequires: which
+Requires(triggerpostun):       sed >= 4.0
+Requires:      %{name}-common = %{version}-%{release}
+Requires:      fonts-TTF-DejaVu
+Requires:      perl-Date-Manip
+Requires:      perl-FCGI
+Requires:      perl-HTML-Template
+Requires:      perl-Net-Server
+Requires:      rrdtool >= 1.3.0
+Requires:      webapps
+Requires:      webserver(alias)
+Requires:      webserver(auth)
+Requires:      webserver(cgi)
+Requires:      webserver(expires)
+Suggests:      crondaemon
+Conflicts:     apache-base < 2.4.0-1
+Conflicts:     logrotate < 3.8.0
+BuildArch:     noarch
+BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%define                _noautoreq_perl DBD::Pg
+
+%define                _sysconfdir     /etc/%{name}
+%define                _webapps        /etc/webapps
+%define                _webapp         %{name}
+%define                _appdir         %{_datadir}/%{_webapp}
+%define                _htmldir        /var/lib/%{name}/html
+
+%description
+Munin, formerly known as The Linpro RRD server, queries a number of
+nodes, and processes the data using RRDtool and presents it on web
+pages.
+
+%description -l pl.UTF-8
+Munin, znany poprzednio jako serwer RRD Linpro, odpytuje wiele węzłów
+i przetwarza dane przy użyciu RRDtoola, a następnie prezentuje je na
+stronach WWW.
+
+%package common
+Summary:       Munin - the Linpro RRD data agent - common files
+Summary(pl.UTF-8):     Munin - agent danych RRD Linpro - wspólne pliki
+Group:         Daemons
+Requires(postun):      /usr/sbin/groupdel
+Requires(postun):      /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+
+%description common
+Munin, formerly known as The Linpro RRD server, queries a number of
+nodes, and processes the data using RRDtool and presents it on web
+pages.
+
+%description common -l pl.UTF-8
+Munin, znany poprzednio jako serwer RRD Linpro, odpytuje wiele węzłów
+i przetwarza dane przy użyciu RRDtoola, a następnie prezentuje je na
+stronach WWW.
+
+%package node
+Summary:       Linpro RRD data agent
+Summary(pl.UTF-8):     Agent danych RRD Linpro
+Group:         Daemons
+Requires(post,preun):  /sbin/chkconfig
+Requires:      %{name}-common = %{version}-%{release}
+Requires:      logtail
+Requires:      logtool
+#Requires:     perl-Config-General
+Requires:      perl-Net-Netmask
+Requires:      perl-Net-SNMP
+Requires:      perl-Net-Server
+Requires:      perl-libwww
+Requires:      procps >= 2.0.7
+Requires:      rc-scripts >= 0.4.0.15
+Requires:      sysstat
+Requires:      systemd-units >= 38
+Suggests:      perl-DBD-Pg
+Conflicts:     logrotate < 3.7-4
+
+%description node
+The Munin node package returns statistical data on the request of a
+Munin server.
+
+%description node -l pl.UTF-8
+Pakiet Munin dla węzła zwraca dane statystyczne na żądanie serwera
+Munin.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+
+%build
+%{__make} -j1 build \
+       PERL_MB_OPT="perl=%{__perl}" \
+       JCVALID=no
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,cron.d,logrotate.d},%{_bindir},%{_sbindir}} \
+       $RPM_BUILD_ROOT/var/log/archive/munin \
+       $RPM_BUILD_ROOT%{_webapps}/%{_webapp} \
+       $RPM_BUILD_ROOT%{systemdtmpfilesdir} \
+       $RPM_BUILD_ROOT%{systemdunitdir}
+
+%{__make} -j1 install \
+       JCVALID=no \
+       CHOWN=/bin/true \
+       DESTDIR=$RPM_BUILD_ROOT
+
+# move asyncd daemon do sbin
+%{__mv} $RPM_BUILD_ROOT{%{_datadir}/munin,%{_sbindir}}/munin-asyncd
+
+install -p %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/munin-asyncd
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/munin-node
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/cron.d/munin
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/munin
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/logrotate.d/munin-node
+
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+cp -p %{SOURCE8} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
+cp -p %{SOURCE6} $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
+
+cp -p %{SOURCE7} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+
+cp -p %{SOURCE9} $RPM_BUILD_ROOT%{systemdunitdir}/munin-node.service
+cp -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/munin-asyncd.service
+
+cp -p dists/tarball/plugins.conf $RPM_BUILD_ROOT%{_sysconfdir}
+ln -sf %{_sysconfdir}/plugins.conf $RPM_BUILD_ROOT%{_sysconfdir}/plugin-conf.d/munin-node
+
+for f in cgi-graph cgi-html graph html limits update ; do
+       touch $RPM_BUILD_ROOT/var/log/munin/munin-$f.log
+done
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%triggerin -- apache1 < 1.3.37-3, apache1-base
+%webapp_register apache %{_webapp}
+
+%triggerun -- apache1 < 1.3.37-3, apache1-base
+%webapp_unregister apache %{_webapp}
+
+%triggerin -- apache-base
+%webapp_register httpd %{_webapp}
+
+%triggerun -- apache-base
+%webapp_unregister httpd %{_webapp}
+
+%triggerin -- lighttpd
+%webapp_register lighttpd %{_webapp}
+
+%triggerun -- lighttpd
+%webapp_unregister lighttpd %{_webapp}
+
+%triggerpostun -- munin < 1.3.4-5
+# rescue app config
+if [ -f /etc/munin/munin.conf.rpmsave ]; then
+       mv -f %{_webapps}/%{_webapp}/munin.conf{,.rpmnew}
+       mv -f /etc/munin/munin.conf.rpmsave %{_webapps}/%{_webapp}/munin.conf
+
+       # fix paths in munin.conf
+       sed -i -e 's|dbdir.*|dbdir      /var/lib/munin/db|' \
+               -e 's|tmpldir.*|tmpldir %{_webapps}/%{_webapp}/templates|' \
+               %{_webapps}/%{_webapp}/munin.conf
+fi
+# move RRDs to new location
+cd /var/lib/munin
+for i in *; do
+       case "$i" in
+               db|html|plugin-state) ;;
+               *) mv -f "$i" db/ ;;
+       esac
+done
+
+%post
+for f in cgi-graph cgi-html graph html limits update ; do
+       touch /var/log/munin/munin-$f.log
+       chmod 660 /var/log/munin/munin-$f.log
+       chown munin:http /var/log/munin/munin-$f.log
+done
+
+%post node
+if [ "$1" = "1" ] ; then
+       /sbin/chkconfig --add munin-node
+       %{_sbindir}/munin-node-configure --shell | sh
+fi
+%service munin-node restart "Munin Node agent"
+%service munin-asyncd try-restart "Munin Asyncd agent"
+%systemd_post munin-node.service
+%systemd_service_restart munin-asyncd.service
+
+%preun node
+if [ "$1" = "0" ] ; then
+       %service munin-asyncd stop
+       %service munin-node stop
+       /sbin/chkconfig --del munin-node
+       /sbin/chkconfig --del munin-asyncd
+fi
+%systemd_preun munin-node.service munin-asyncd.service
+
+%postun node
+%systemd_reload
+
+%triggerpostun node -- munin-node < 2.0.17-1
+%systemd_trigger munin-node.service
+
+%pre common
+%groupadd -g 158 munin
+%useradd -o -u 158 -s /bin/false -g munin -c "Munin Node agent" -d /var/lib/munin munin
+
+%postun common
+if [ "$1" = "0" ]; then
+       %userremove munin
+       %groupremove munin
+fi
+
+%files
+%defattr(644,root,root,755)
+%dir %attr(750,munin,http) %{_webapps}/%{_webapp}
+%dir %attr(750,munin,http) %{_webapps}/%{_webapp}/munin-conf.d
+%dir %{_webapps}/%{_webapp}/templates
+%{_webapps}/%{_webapp}/templates/*.tmpl
+%dir %{_webapps}/%{_webapp}/templates/static
+%{_webapps}/%{_webapp}/templates/static/*.css
+%{_webapps}/%{_webapp}/templates/static/*.html
+%{_webapps}/%{_webapp}/templates/static/*.ico
+%{_webapps}/%{_webapp}/templates/static/*.js
+%{_webapps}/%{_webapp}/templates/static/*.png
+%dir %{_webapps}/%{_webapp}/templates/partial
+%{_webapps}/%{_webapp}/templates/partial/*.tmpl
+%config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/munin.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/munin
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/munin
+%attr(755,root,root) %{_sbindir}/munin-cron
+%attr(755,root,root) %{_datadir}/munin/munin-check
+%attr(755,root,root) %{_datadir}/munin/munin-graph
+%attr(755,root,root) %{_datadir}/munin/munin-html
+%attr(755,root,root) %{_datadir}/munin/munin-limits
+%attr(755,root,root) %{_datadir}/munin/munin-update
+%attr(755,root,root) %{_datadir}/munin/munin-datafile2storable
+%attr(755,root,root) %{_datadir}/munin/munin-storable2datafile
+%attr(755,munin,root) %dir %{_datadir}/munin/cgi
+%attr(755,munin,root) %{_datadir}/munin/cgi/munin-cgi-graph
+%attr(755,munin,root) %{_datadir}/munin/cgi/munin-cgi-html
+%attr(755,munin,root) %dir %{_htmldir}
+%{perl_vendorlib}/Munin/Master
+%{_mandir}/man3/Munin::Master*
+%{_mandir}/man5/munin.conf*
+%{_mandir}/man8/munin-check*
+%{_mandir}/man8/munin-cron*
+%{_mandir}/man8/munin-graph*
+%{_mandir}/man8/munin-html*
+%{_mandir}/man8/munin-limits*
+%{_mandir}/man8/munin-update*
+%{_mandir}/man8/munin.*
+%attr(771,munin,munin) %dir /var/lib/munin/db
+%attr(770,munin,http) %dir /var/lib/munin/db/cgi-tmp
+%attr(660,munin,http) %ghost /var/log/munin/munin-cgi-graph.log
+%attr(660,munin,http) %ghost /var/log/munin/munin-cgi-html.log
+%attr(660,munin,http) %ghost /var/log/munin/munin-graph.log
+%attr(660,munin,http) %ghost /var/log/munin/munin-html.log
+%attr(660,munin,http) %ghost /var/log/munin/munin-limits.log
+%attr(660,munin,http) %ghost /var/log/munin/munin-update.log
+
+%files common
+%defattr(644,root,root,755)
+%doc README ChangeLog logo* Checklist
+%dir %{_datadir}/munin
+%{systemdtmpfilesdir}/%{name}.conf
+%attr(770,munin,http) %dir /var/log/munin
+%attr(750,munin,http) %dir /var/log/archive/munin
+%attr(771,munin,munin) %dir /var/lib/munin
+%attr(770,munin,http) %dir /var/run/munin
+%dir %{perl_vendorlib}/Munin
+%{perl_vendorlib}/Munin/Common
+%{_mandir}/man3/Munin::Common*
+
+%files node
+%defattr(644,root,root,755)
+%dir %{_sysconfdir}
+%dir %{_sysconfdir}/plugins
+%dir %{_sysconfdir}/plugin-conf.d
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/munin-node.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugins.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/plugin-conf.d/munin-node
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/munin-node
+%attr(754,root,root) /etc/rc.d/init.d/munin-asyncd
+%attr(754,root,root) /etc/rc.d/init.d/munin-node
+%{systemdunitdir}/munin-asyncd.service
+%{systemdunitdir}/munin-node.service
+%attr(755,root,root) %{_bindir}/munindoc
+%attr(755,root,root) %{_sbindir}/munin-asyncd
+%attr(755,root,root) %{_sbindir}/munin-node
+%attr(755,root,root) %{_sbindir}/munin-node-configure
+%attr(755,root,root) %{_sbindir}/munin-run
+%attr(755,root,root) %{_sbindir}/munin-sched
+%{perl_vendorlib}/Munin/Node
+%{perl_vendorlib}/Munin/Plugin
+%{perl_vendorlib}/Munin/Plugin.pm
+%attr(755,root,root) %{_datadir}/munin/munin-async
+%dir %{_datadir}/munin/plugins
+%attr(755,root,root) %{_datadir}/munin/plugins/*
+%if !%{with sybase}
+%exclude %{_datadir}/munin/plugins/sybase_space
+%endif
+%dir %attr(770,munin,munin) /var/lib/munin/plugin-state
+%dir %attr(770,munin,munin) /var/spool/munin
+%{_mandir}/man1/munin-node*
+%{_mandir}/man1/munin-run*
+%{_mandir}/man1/munin-sched*
+%{_mandir}/man1/munindoc*
+%{_mandir}/man3/Munin::Node*
+%{_mandir}/man3/Munin::Plugin*
+%{_mandir}/man5/munin-node.conf*
+
+#%files plugins-java
+#%defattr(644,root,root,755)
+#%{_datadir}/munin/munin-jmx-plugins.jar
diff --git a/munin.tmpfiles b/munin.tmpfiles
new file mode 100644 (file)
index 0000000..4168b59
--- /dev/null
@@ -0,0 +1 @@
+d /var/run/munin 0770 munin http -