From 315aa4c52605a2469534ab96cf94719ad02098ee Mon Sep 17 00:00:00 2001 From: Micha Glave Date: Thu, 12 Apr 2012 17:09:45 +0200 Subject: [PATCH] new version shinken-1.0.1 (much cleaner) --- net-analyzer/shinken/Manifest | 6 +- net-analyzer/shinken/files/shinken.confd | 31 +++---- net-analyzer/shinken/files/shinken.initd | 25 +++--- ...nken-0.6.5.ebuild => shinken-1.0.1.ebuild} | 85 ++++++++++++------- 4 files changed, 86 insertions(+), 61 deletions(-) rename net-analyzer/shinken/{shinken-0.6.5.ebuild => shinken-1.0.1.ebuild} (53%) diff --git a/net-analyzer/shinken/Manifest b/net-analyzer/shinken/Manifest index 9a5945e..3b069b2 100644 --- a/net-analyzer/shinken/Manifest +++ b/net-analyzer/shinken/Manifest @@ -1,5 +1,7 @@ AUX shinken-0.6.5.patch 4004 RMD160 5e96245063b4ecf078387ea5e544e660b69589e5 SHA1 7a74294471276b24b8717252bb71a0eeb99ed16f SHA256 f76cf0a99d8787f80ba498acbd5aeb6651a588fc5f75c4d765d572400f3ea053 -AUX shinken.confd 2020 RMD160 5e4ecd7efbbab180dfde7bec1534d49c73beee2c SHA1 9617d65200fc4184e2a36adf28b335d355f69629 SHA256 6134be270eda7aec06cf2f7140af3bb60e132c0bd27cffebe5a55a5cf3bf215a -AUX shinken.initd 1280 RMD160 cca8a389b0fffeb2d32a5195603a2ef39ac5fdc8 SHA1 145ac4d202957fd03bd36fb35fdb38c6cf33a741 SHA256 421088d443a52bebc5966a59040ae8b05da6f3ae8c952a44295e1c99a20c1bfe +AUX shinken.confd 1983 RMD160 4158fd08841fce97f4f756d153f2be9e2b67f59f SHA1 6222d9738db7efecdf62bc46a5344ff5ae8fa2ad SHA256 30b17ec488faf4a6060789dea554e65771687971bf7615d8b1087da431520752 +AUX shinken.initd 1410 RMD160 e4bffd0de22d0c57ef4ae114ca87eea4013a1f9d SHA1 5ca19b7a903424e232c3601c1d5df7b30ee0ba75 SHA256 55dd1d5d393876c256722fab5185123b9aef38fe8a496a6148c3f843ce818ee0 DIST shinken-0.6.5.tar.gz 5155015 RMD160 73d3646d092aa0d92474b31257b8c73c252dbc19 SHA1 62ee08fb290570484cb50979ed75791cd83a6a18 SHA256 ff08fb8a9ec669732316d3b2bd4423572efc2123482cbb8128b71c08aad64deb +DIST shinken-1.0.1.tar.gz 8039760 RMD160 caae07573bdc040925e7854cc39c148f42a45626 SHA1 cf11d54160e9ee3725443ca6afc6be2c55532a72 SHA256 811da51e80f2b32a2c6d0114ce90efe9e091aefd82489d21df35e0426f99fbfb EBUILD shinken-0.6.5.ebuild 2249 RMD160 ee5355d1400511324c46b873fbae179cca91cf51 SHA1 c988e695fbba38e11de13ca226fb82fab0020b9c SHA256 9db817725f738f8243ffa4f731e896ed3b9cbb674270fabdcb3e25c8d784e622 +EBUILD shinken-1.0.1.ebuild 2530 RMD160 aec9439672470a67d8baf7dd39c321fc8cce7e84 SHA1 43c8d30fecd6e3428c8fcc694753e7fa95635a66 SHA256 4686cb66a7555e0fd2beed9f70a543337ddd33fd4377e4bd4fb6f46e721b98fc diff --git a/net-analyzer/shinken/files/shinken.confd b/net-analyzer/shinken/files/shinken.confd index 1e9239f..73b1c4f 100644 --- a/net-analyzer/shinken/files/shinken.confd +++ b/net-analyzer/shinken/files/shinken.confd @@ -1,7 +1,7 @@ # /etc/conf.d/shinken # location of the nagios configuration file -SHINKENCFG="/etc/shinken/nagios.cfg" +ARBITERCFG="/etc/shinken/nagios.cfg" # We got 2 configs because tools like Centreon don't generate all #configuration (only the shinken.cfg part) @@ -11,14 +11,9 @@ SHINKENSPECIFICCFG="/etc/shinken/shinken-specific.cfg" ARBITERDAEMON="/usr/bin/shinken-arbiter" #The ARBITER PID -if [ -r $SHINKENCFG ] ; then - tmppid=`grep 'lock_file=' $SHINKENCFG | grep -v '#' | tail -n 1 | awk -F '=' '{print $2}'` - ARBITERPID=${tmppid-/var/lib/shinken/arbiterd.pid} -else - ARBITERPID="/var/lib/shinken/arbiterd.pid" -fi +ARBITERPID="/var/run/shinken/arbiterd.pid" -ARBITERDEBUGFILE="/var/lib/shinken/arbiter-debug.log" +ARBITERDEBUGFILE="/var/log/shinken/arbiter-debug.log" ###SCHEDULER PART @@ -29,9 +24,9 @@ SCHEDULERCFG="/etc/shinken/schedulerd.ini" SCHEDULERDAEMON="/usr/bin/shinken-scheduler" #The SCHEDULER PID -SCHEDULERPID="/var/lib/shinken/schedulerd.pid" +SCHEDULERPID="/var/run/shinken/schedulerd.pid" -SCHEDULERDEBUGFILE="/var/lib/shinken/scheduler-debug.log" +SCHEDULERDEBUGFILE="/var/log/shinken/scheduler-debug.log" ###POLLER PART # location of the poller daemon configuration @@ -41,9 +36,9 @@ POLLERCFG="/etc/shinken/pollerd.ini" POLLERDAEMON="/usr/bin/shinken-poller" #The poller pid -POLLERPID="/var/lib/shinken/pollerd.pid" +POLLERPID="/var/run/shinken/pollerd.pid" -POLLERDEBUGFILE="/var/lib/shinken/poller-debug.log" +POLLERDEBUGFILE="/var/log/shinken/poller-debug.log" ###REACTIONNER PART @@ -54,9 +49,9 @@ REACTIONNERCFG="/etc/shinken/reactionnerd.ini" REACTIONNERDAEMON="/usr/bin/shinken-reactionner" #The reactionner pid -REACTIONNERPID="/var/lib/shinken/reactionnerd.pid" +REACTIONNERPID="/var/run/shinken/reactionnerd.pid" -REACTIONNERDEBUGFILE="/var/lib/shinken/reactionner-debug.log" +REACTIONNERDEBUGFILE="/var/log/shinken/reactionner-debug.log" ###BROKER PART @@ -67,9 +62,9 @@ BROKERCFG="/etc/shinken/brokerd.ini" BROKERDAEMON="/usr/bin/shinken-broker" #The broker pid -BROKERPID="/var/lib/shinken/brokerd.pid" +BROKERPID="/var/run/shinken/brokerd.pid" -BROKERDEBUGFILE="/var/lib/shinken/broker-debug.log" +BROKERDEBUGFILE="/var/log/shinken/broker-debug.log" ###RECEIVER PART @@ -80,9 +75,9 @@ RECEIVERCFG="/etc/shinken/receiverd.ini" RECEIVERDAEMON="/usr/bin/shinken-receiver" #The broker pid -RECEIVERPID="/var/lib/shinken/receiverd.pid" +RECEIVERPID="/var/run/shinken/receiverd.pid" -RECEIVERDEBUGFILE="/var/lib/shinken/receiver-debug.log" +RECEIVERDEBUGFILE="/var/log/shinken/receiver-debug.log" # nicelevel to run nagios daemon with NICENESS=5 diff --git a/net-analyzer/shinken/files/shinken.initd b/net-analyzer/shinken/files/shinken.initd index 454a8d8..b24bcd8 100644 --- a/net-analyzer/shinken/files/shinken.initd +++ b/net-analyzer/shinken/files/shinken.initd @@ -1,5 +1,5 @@ #!/sbin/runscript -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ @@ -10,16 +10,21 @@ PIDPATH=${PIDPATH:-/var/run/shinken} PIDFILE=${PIDPATH}/${MODULE} LANG=en_US.UTF8 -opts="${opts} check" +extra_commands="check" eval DEBUGFILE="\${${_MODULE}DEBUGFILE}" eval CONFIGFILE="\${${_MODULE}CFG}" eval PIDFILE="\${${_MODULE}PID}" SHINKENM="/usr/bin/shinken-${MODULE}" -if [ $MODULE = "arbiter" ]; then - CONFIGFILE="${SHINKENCFG} --config ${SHINKENSPECIFICCFG}" -fi NEED="net" -PIDFILE=$(grep '^pidfile=' ${CONFIGFILE} | awk -F= '{ print $2 }') + +if [ -r "${CONFIGFILE}" ] ; then + tmppid=`grep 'pidfile=' ${CONFIGFILE} | grep -v '#' | tail -n 1 | awk -F '=' '{print $2}'` + PIDFILE=${tmppid:-$PIDFILE} +fi + +if [ $MODULE = "arbiter" ]; then + CONFIGFILE="${CONFIGFILE} --config ${SHINKENSPECIFICCFG}" +fi depend() { need net @@ -30,8 +35,8 @@ start() { ebegin "all shinken-services started" return 0 fi - ebegin "starting shinken ${MODULE}" - start-stop-daemon --start --exec ${SHINKENM} --pidfile ${PIDFILE} \ + ebegin "Starting shinken ${MODULE}" + start-stop-daemon --start --exec ${SHINKENM} --quiet --pidfile ${PIDFILE} \ -- --config ${CONFIGFILE} --daemon eend $? } @@ -42,11 +47,11 @@ stop() { return 0 fi ebegin "Stopping shinken ${MODULE}" - start-stop-daemon --stop --exec ${SHINKENM} --pidfile ${PIDFILE} + start-stop-daemon --stop --exec ${SHINKENM} --quiet --pidfile ${PIDFILE} eend $? } check() { - "$BIN/shinken-arbiter" -v -c "$SHINKENCFG" -c "$SHINKENSPECIFICCFG" $DEBUGCMD 2>&1 + "/usr/bin/shinken-arbiter" -v --config "${ARBITERCFG}" --config "${SHINKENSPECIFICCFG}" $DEBUGCMD 2>&1 return $? } diff --git a/net-analyzer/shinken/shinken-0.6.5.ebuild b/net-analyzer/shinken/shinken-1.0.1.ebuild similarity index 53% rename from net-analyzer/shinken/shinken-0.6.5.ebuild rename to net-analyzer/shinken/shinken-1.0.1.ebuild index f84afef..e18f6f9 100644 --- a/net-analyzer/shinken/shinken-0.6.5.ebuild +++ b/net-analyzer/shinken/shinken-1.0.1.ebuild @@ -14,53 +14,55 @@ SRC_URI="http://shinken-monitoring.org/pub/${P}.tar.gz" LICENSE="AGPLv3" SLOT="0" -IUSE="livestat" +IUSE="livestat +arbiter broker poller reactionner receiver scheduler" KEYWORDS="~amd64 ~x86" - RDEPEND=" dev-python/pyro:3 livestat? ( dev-python/simplejson dev-python/pysqlite ) + poller? ( net-analyzer/nagios-plugins ) " DEPEND="${RDEPEND} !net-analyzer/nagios" -SHINKENMODULES="scheduler poller reactionner broker" +SHINKENMODULES="arbiter broker poller reactionner receiver scheduler" -src_unpack() { - unpack ${A} - cd ${S} - epatch "${FILESDIR}/${P}.patch" +src_configure() { + local -i modnum=0 + + for mod in ${SHINKENMODULES}; do + if use $mod; then + let modnum++ + fi + done + if [[ "${modnum}" -lt 1 ]]; then + eerror + eerror "No shinken module selected, aborting...." + ewarn "Supported modules are ${SHINKENMODULES}" + eerror + fi } -pkg_setup() { - python_pkg_setup - enewgroup shinken - enewuser shinken -1 -1 -1 shinken -} - -src_prepare() { - # remove unneded doubletts - rm bin/*.py - # fixing path - sed -i \ - -e "s:^\(# \?\)\?local_log=\(%(workdir)s/\)\?\(.\+\):local_log=/var/log/${PN}/\3:" \ - -e "s:^\(# \?\)\?workdir=\(.\+\):local_log=/var/lib/${PN}:" \ - -e "s:^\(# \?\)\?pidfile=\(%(workdir)s/\)\?\(.\+\):pidfile=/var/run/${PN}/\3:" \ - -e "s:^\(# \?\)\?user=\([^ ]\+\)\(.\+\)\?:user=\2:" \ - -e "s:^\(# \?\)\?group=\([^ ]\+\)\(.\+\)\?:group=\2:" \ - etc/*d.ini || die +src_compile() { + elog "nothing to compile." } src_install() { - distutils_src_install + distutils_src_install --root=${D} # remove windows-specific configs - rm ${D}/etc/${PN}/*-windows.ini rm -rf ${D}$(python_get_sitedir)/skonf - keepdir /var/lib/${PN} + # remove windows-specific configs + rm ${D}etc/${PN}/*-windows.ini + rm ${D}etc/${PN}/*-windows.cfg + + # cleanup files not needed. + rm ${D}etc/init.d/* + rm -rf ${D}etc/default + + keepdir "/var/lib/${PN}" fowners shinken:shinken "/var/lib/${PN}" fperms 750 "/var/lib/${PN}" keepdir "/var/run/${PN}" @@ -72,16 +74,37 @@ src_install() { insinto "/usr/lib/nagios/plugins" doins libexec/*.sh libexec/*.py dobin bin/nagios - manpages="scheduler receiver reactionner poller discovery broker arbiter" + + for mod in ${SHINKENMODULES}; do + if ! use $mod; then + rm -f ${D}/etc/${PN}/${mod}d.ini + [ $mod != 'arbiter' ] && rm -f ${D}/usr/bin/${PN}-${mod} + fi + done + + manpages="discovery" + for mod in ${SHINKENMODULES}; do + if use $mod; then + manpages="${manpages} $mod" + fi + done + for mod in $manpages; do - newman for_debian/man/shinken-${mod}.8shinken shinken-${mod}.8 + newman doc/man/shinken-${mod}.8shinken shinken-${mod}.8 done newconfd ${FILESDIR}/${PN}.confd ${PN} - newinitd ${FILESDIR}/${PN}.initd ${PN}.arbiter + newinitd ${FILESDIR}/${PN}.initd ${PN} cd ${D}/etc/init.d for mod in ${SHINKENMODULES}; do - ln -s ${PN}.arbiter ${PN}.${mod} || die + if use $mod; then + ln -s ${PN} ${PN}.${mod} || die + fi done } +pkg_setup() { + python_pkg_setup + enewgroup shinken + enewuser shinken -1 -1 -1 shinken +}