From 30ccdac03721f8a8b6398ba844a93282ce4c3919 Mon Sep 17 00:00:00 2001 From: Jeremy Olexa Date: Thu, 19 Apr 2012 15:20:20 -0500 Subject: [net-analyzer/munin] experimental version bump, YMMV --- net-analyzer/munin/Manifest | 1 + net-analyzer/munin/files/logrotate.d-munin | 21 +++ .../munin-1.4.7-munin-version-identifier.patch | 41 ++++++ .../munin/files/munin-2.0_rc-Makefile.patch | 79 +++++++++++ net-analyzer/munin/files/munin-2.0_rc-crontab | 11 ++ net-analyzer/munin/files/munin-2.0_rc-plugins.conf | 68 ++++++++++ net-analyzer/munin/files/munin-node_conf.d_2.0_rc | 8 ++ net-analyzer/munin/files/munin-node_init.d_2.0_rc | 41 ++++++ net-analyzer/munin/munin-2.0_rc5.ebuild | 147 +++++++++++++++++++++ 9 files changed, 417 insertions(+) create mode 100644 net-analyzer/munin/Manifest create mode 100644 net-analyzer/munin/files/logrotate.d-munin create mode 100644 net-analyzer/munin/files/munin-1.4.7-munin-version-identifier.patch create mode 100644 net-analyzer/munin/files/munin-2.0_rc-Makefile.patch create mode 100644 net-analyzer/munin/files/munin-2.0_rc-crontab create mode 100644 net-analyzer/munin/files/munin-2.0_rc-plugins.conf create mode 100644 net-analyzer/munin/files/munin-node_conf.d_2.0_rc create mode 100644 net-analyzer/munin/files/munin-node_init.d_2.0_rc create mode 100644 net-analyzer/munin/munin-2.0_rc5.ebuild diff --git a/net-analyzer/munin/Manifest b/net-analyzer/munin/Manifest new file mode 100644 index 0000000..6eb6d10 --- /dev/null +++ b/net-analyzer/munin/Manifest @@ -0,0 +1 @@ +DIST munin-2.0-rc5.tar.gz 1316401 RMD160 e591a38b8a999979646dc48e9c809fe042f4e71c SHA1 75e34e5540140759648d0e144dab6e240ea99914 SHA256 3bebd9586d1f9ca5de9e7c7905d53d92de161a950aaee7d9186553bb2b80723a diff --git a/net-analyzer/munin/files/logrotate.d-munin b/net-analyzer/munin/files/logrotate.d-munin new file mode 100644 index 0000000..c1a8816 --- /dev/null +++ b/net-analyzer/munin/files/logrotate.d-munin @@ -0,0 +1,21 @@ +/var/log/munin/munin-node.log { + daily + missingok + rotate 7 + compress + copytruncate + notifempty + create 640 root root + postrotate + /etc/init.d/munin-node restart 1>/dev/null || true + endscript +} + +/var/log/munin/munin-update.log /var/log/munin/munin-graph.log /var/log/munin/munin-html.log /var/log/munin/munin-limits.log { + daily + missingok + rotate 7 + compress + notifempty + nocreate +} diff --git a/net-analyzer/munin/files/munin-1.4.7-munin-version-identifier.patch b/net-analyzer/munin/files/munin-1.4.7-munin-version-identifier.patch new file mode 100644 index 0000000..22c4d73 --- /dev/null +++ b/net-analyzer/munin/files/munin-1.4.7-munin-version-identifier.patch @@ -0,0 +1,41 @@ +From 480f78e713b9e9a425ad425342afac70420a4043 Mon Sep 17 00:00:00 2001 +From: Jeremy Olexa +Date: Wed, 18 Apr 2012 16:30:57 +0000 +Subject: [PATCH] Fix warnings from previous patch + +Use of uninitialized value $Munin::Common::Defaults::MUNIN_VERSION in +sprintf at /etc/munin/plugins/nginx_status line 110. +--- + plugins/node.d/nginx_request.in | 2 ++ + plugins/node.d/nginx_status.in | 2 ++ + 2 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/plugins/node.d/nginx_request.in b/plugins/node.d/nginx_request.in +index 402ce54..d3933e1 100644 +--- a/plugins/node.d/nginx_request.in ++++ b/plugins/node.d/nginx_request.in +@@ -55,6 +55,8 @@ license. Munin is GPLv2 licensed. + + =cut + ++use Munin::Plugin; ++ + my $ret = undef; + + if (! eval "require LWP::UserAgent;"){ +diff --git a/plugins/node.d/nginx_status.in b/plugins/node.d/nginx_status.in +index 0d5d966..a427fc0 100644 +--- a/plugins/node.d/nginx_status.in ++++ b/plugins/node.d/nginx_status.in +@@ -55,6 +55,8 @@ license. Munin is GPLv2 licensed. + + =cut + ++use Munin::Plugin; ++ + my $ret = undef; + + if (! eval "require LWP::UserAgent;"){ +-- +1.7.3.4 + diff --git a/net-analyzer/munin/files/munin-2.0_rc-Makefile.patch b/net-analyzer/munin/files/munin-2.0_rc-Makefile.patch new file mode 100644 index 0000000..ee10bff --- /dev/null +++ b/net-analyzer/munin/files/munin-2.0_rc-Makefile.patch @@ -0,0 +1,79 @@ +From 30762ce57c3d8ad2701dc1466ab5cee66e0ffd52 Mon Sep 17 00:00:00 2001 +From: Jeremy Olexa +Date: Thu, 19 Apr 2012 15:46:34 +0000 +Subject: [PATCH] Fix up Makefile.config for Gentoo Linux + +--- + Makefile.config | 22 +++++++++++----------- + 1 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/Makefile.config b/Makefile.config +index c35e228..e748d16 100644 +--- a/Makefile.config ++++ b/Makefile.config +@@ -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 +@@ -29,20 +29,20 @@ BINDIR = $(PREFIX)/bin + SBINDIR = $(PREFIX)/sbin + + # Where to put text and html documentation +-DOCDIR = $(PREFIX)/doc ++DOCDIR = $(PREFIX)/share/doc/munin-$(VERSION) + + # 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)/libexec/munin + + # Server only - Output directory +-HTMLDIR = $(PREFIX)/www/docs +-CGIDIR = $(PREFIX)/www/cgi ++HTMLDIR = $(DESTDIR)/var/www/localhost/htdocs/munin ++CGIDIR = $(DESTDIR)/var/www/localhost/cgi-bin + + # Where to put RRD files and other internal data, both master and node +-DBDIR = $(DESTDIR)/var/opt/munin ++DBDIR = $(DESTDIR)/var/lib/munin + + # Client only - Where the spool files are written. Must be writable by + # group "munin", and should be preserved between reboots +@@ -53,7 +53,7 @@ SPOOLDIR = $(DBDIR)/spool + PLUGSTATE = $(DBDIR)/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". +@@ -92,11 +92,11 @@ GOODSH := $(shell PATH=`getconf PATH 2>/dev/null || echo $(PATH)` sh -c 'typ + 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 +-OSTYPE := $(shell uname | tr '[A-Z]' '[a-z]' | cut -f 1 -d _) ++OSTYPE := $(shell uname | LANG=C tr '[A-Z]' '[a-z]' | cut -f 1 -d _) + + # How to figure out the hostname. (Only used in default configuration + # files) +-- +1.7.3.4 + diff --git a/net-analyzer/munin/files/munin-2.0_rc-crontab b/net-analyzer/munin/files/munin-2.0_rc-crontab new file mode 100644 index 0000000..1c156e7 --- /dev/null +++ b/net-analyzer/munin/files/munin-2.0_rc-crontab @@ -0,0 +1,11 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/munin/files/munin-1.3.3-crontab,v 1.1 2007/02/25 11:00:28 robbat2 Exp $ + +# Force the shell to bash +SHELL=/bin/bash +# Mail reports to root@, not munin@ +MAILTO=root + +# This runs the munin task every 5 minutes. +*/5 * * * * [ -x /usr/bin/munin-cron ] && /usr/bin/munin-cron diff --git a/net-analyzer/munin/files/munin-2.0_rc-plugins.conf b/net-analyzer/munin/files/munin-2.0_rc-plugins.conf new file mode 100644 index 0000000..b0bcaed --- /dev/null +++ b/net-analyzer/munin/files/munin-2.0_rc-plugins.conf @@ -0,0 +1,68 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/munin/files/munin-1.3.2-plugins.conf,v 1.5 2010/10/18 03:22:28 darkside Exp $ +# +# This file contains configuration options for the plugins. Three +# options are understood by munin-node itself: +# +# user # Set the user to run the plugin as +# group # Set the group to run the plugin as +# command # Run instead of the plugin. %c +# expands to what would normally be run. +# env. # Sets in the plugin's environment, see the +# individual plugins to find out which variables they +# care about. +# +# + +[smart_*] +user root +group disk + +# Example for a 3ware 8000-series card, with 2 disks +# use /dev/twe0 as the actual device +# and replicate this entry for each drive, increasing the number in -d +#[smart_3ware-0_twe0] +#user root +#group root +#env.smartargs -H -i -c -l error -l selftest -l selective -a -d 3ware,0 +#[smart_3ware-1_twe0] +#user root +#group root +#env.smartargs -H -i -c -l error -l selftest -l selective -a -d 3ware,1 + +[bind9*] +user root + +[iostat*] +user munin +group munin + +[iostat_ios] +user root +group disk + +[vlan*] +user root + +[postfix*] +user root +env.logfile maillog + +[sendmail*] +env.mspqueue /var/spool/clientmqueue + +[mysql*] +#env.mysqlopts -u someuser + +[exim*] +group mail + +[cps*] +user root + +# More 3ware examples +#[hddtemp_smartctl] +#env.drives twe0_0 twe0_1 hda +#env.type_twe0_0 3ware,0 +#env.type_twe0_1 3ware,1 diff --git a/net-analyzer/munin/files/munin-node_conf.d_2.0_rc b/net-analyzer/munin/files/munin-node_conf.d_2.0_rc new file mode 100644 index 0000000..a984bdb --- /dev/null +++ b/net-analyzer/munin/files/munin-node_conf.d_2.0_rc @@ -0,0 +1,8 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/munin/files/munin-node_conf.d_1.4.6-r2,v 1.1 2011/08/17 15:45:54 darkside Exp $ + +# Set to the nice level for daemon +NICE_LEVEL=1 + +# vim: filetype=gentoo-conf-d: diff --git a/net-analyzer/munin/files/munin-node_init.d_2.0_rc b/net-analyzer/munin/files/munin-node_init.d_2.0_rc new file mode 100644 index 0000000..409570d --- /dev/null +++ b/net-analyzer/munin/files/munin-node_init.d_2.0_rc @@ -0,0 +1,41 @@ +#!/sbin/runscript +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/munin/files/munin-node_init.d_1.4.6-r2,v 1.1 2011/08/17 15:45:54 darkside Exp $ + +get_munin_config() { + awk '$1 == "'$1'" { s=$2 } END { print s }' "$CFGFILE" +} + +: ${NAME:="munin-node"} +: ${CFGFILE:=/etc/munin/munin-node.conf} +: ${PIDFILE:=$(get_munin_config pid_file)} +: ${NICE_LEVEL:=0} + +depend() { + config "$CFGFILE" + + need net + before cron + + [ "$(get_munin_config log_file)" == "Sys::Syslog" ] && \ + use logger +} + +start() { + local piddir=$(dirname ${PIDFILE}) + [ -d ${piddir} ] || mkdir -p ${piddir} + + ebegin "Starting $NAME" + start-stop-daemon --nicelevel $NICE_LEVEL --start --pidfile $PIDFILE --exec /usr/sbin/$NAME -- \ + --config "$CFGFILE" + eend $? +} + +stop() { + ebegin "Stopping $NAME" + start-stop-daemon --stop --pidfile $PIDFILE + eend $? +} + +# vim: filetype=gentoo-init-d: diff --git a/net-analyzer/munin/munin-2.0_rc5.ebuild b/net-analyzer/munin/munin-2.0_rc5.ebuild new file mode 100644 index 0000000..5efbe57 --- /dev/null +++ b/net-analyzer/munin/munin-2.0_rc5.ebuild @@ -0,0 +1,147 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-analyzer/munin/munin-1.4.6-r5.ebuild,v 1.1 2012/04/09 23:15:27 flameeyes Exp $ + +EAPI=4 + +inherit eutils + +MY_P=${P/_/-} + +DESCRIPTION="Munin Server Monitoring Tool" +HOMEPAGE="http://munin-monitoring.org/" +SRC_URI="mirror://sourceforge/munin/${MY_P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~mips ~ppc ~x86" +IUSE="asterisk doc irc java memcached minimal mysql postgres ssl" + +# Upstream's listing of required modules is NOT correct! +# Some of the postgres plugins use DBD::Pg, while others call psql directly. +# Some of the mysql plugins use DBD::mysql, while others call mysqladmin directly. +DEPEND_COM="dev-lang/perl + sys-process/procps + asterisk? ( dev-perl/Net-Telnet ) + irc? ( dev-perl/Net-IRC ) + java? ( >=virtual/jdk-1.5 ) + mysql? ( virtual/mysql + dev-perl/Cache-Cache + dev-perl/DBD-mysql ) + ssl? ( dev-perl/Net-SSLeay ) + postgres? ( dev-perl/DBD-Pg dev-db/postgresql-base ) + memcached? ( dev-perl/Cache-Memcached ) + dev-perl/DateManip + dev-perl/File-Copy-Recursive + dev-perl/Net-CIDR + dev-perl/Net-Netmask + dev-perl/Net-SNMP + dev-perl/libwww-perl + dev-perl/net-server + dev-perl/DBI + virtual/perl-Digest-MD5 + virtual/perl-Getopt-Long + virtual/perl-MIME-Base64 + virtual/perl-Storable + virtual/perl-Text-Balanced + virtual/perl-Time-HiRes + !minimal? ( dev-perl/HTML-Template + net-analyzer/rrdtool[perl] + dev-perl/Log-Log4perl )" + +# Keep this seperate, as previous versions have had other deps here +DEPEND="${DEPEND_COM} + virtual/perl-Module-Build" +RDEPEND="${DEPEND_COM} + !minimal? ( virtual/cron )" + +S="${WORKDIR}/${MY_P}" + +pkg_setup() { + enewgroup munin + enewuser munin 177 -1 /var/lib/munin munin +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-2.0_rc-Makefile.patch + + epatch "${FILESDIR}"/${PN}-1.4.7-munin-version-identifier.patch + + # Don't build java plugins if not requested via USE. + if ! use java; then + sed -i -e 's: build-plugins-java : :' \ + -e 's: install-plugins-java : :' Makefile || die + fi + + # Bug 304447, fix for gentoo PS location + sed -i -e 's,/usr/bin/ps,/bin/ps,g' \ + "${S}"/plugins/node.d/ifx_concurrent_sessions_.in || die + + # bug 367785, cleanup make output by disabling HP-UX cruft + sed -i "/plugins\/\*\.adv/d" Makefile || die +} + +src_compile() { + emake -j1 + if use doc; then + emake build-doc + fi + +} + +src_install() { + local dirs + dirs="/var/log/munin/ /var/lib/munin/" + dirs="${dirs} /var/lib/munin/plugin-state/" + dirs="${dirs} /var/run/munin/plugin-state/" + dirs="${dirs} /var/run/munin/spool/" + dirs="${dirs} /etc/munin/plugin-conf.d/" + dirs="${dirs} /etc/munin/munin-conf.d/" + dirs="${dirs} /etc/munin/plugins/" + keepdir ${dirs} + + if use minimal; then + emake DESTDIR="${D}" install-common-prime install-node-prime \ + install-plugins-prime + else + emake DESTDIR="${D}" install + fi + fowners munin:munin ${dirs} + + insinto /etc/munin/plugin-conf.d/ + newins "${FILESDIR}"/${PN}-2.0_rc-plugins.conf munin-node + + # make sure we've got everything in the correct directory + insinto /var/lib/munin + newins "${FILESDIR}"/${PN}-2.0_rc-crontab crontab + newinitd "${FILESDIR}"/munin-node_init.d_2.0_rc munin-node + newconfd "${FILESDIR}"/munin-node_conf.d_2.0_rc munin-node + dodoc README ChangeLog INSTALL logo.eps logo.svg build/resources/apache* + + # bug 254968 + insinto /etc/logrotate.d/ + newins "${FILESDIR}"/logrotate.d-munin munin || die +} + +pkg_config() { + einfo "Press enter to install the default crontab for the munin master" + einfo "installation from /var/lib/munin/crontab" + einfo "If you have a large site, you may wish to customize it." + read + # dcron is very fussy about syntax + # the following is the only form that works in BOTH dcron and vixie-cron + crontab - -u munin