File diff 000000000000 → 000000000000
net-analyzer/centreon/centreon-2.1.3.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2008 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/centreon/centreon-1.4.2.4.ebuild,v 1.3 2008/04/03 08:30:17 hollow Exp $
 

	
 
inherit depend.apache depend.php
 

	
 
DESCRIPTION="Centreon is a monitoring web-frontend based on the nagios monitoring engine"
 
HOMEPAGE="http://www.centreon.org"
 
SRC_URI="http://download.centreon.com/${PN}/${P}.tar.gz"
 

	
 
EAPI=2
 
LICENSE="GPL-2"
 
SLOT="0"
 
KEYWORDS="~amd64 ~x86"
 
IUSE="ldap xmlwriter"
 

	
 
#version 1 cannot be upgraded
 
DEPEND="!<net-analyzer/centreon-2"
 

	
 
RDEPEND="
 
	>=net-analyzer/nagios-3
 
	net-analyzer/rrdtool[perl]
 
	net-analyzer/net-snmp[perl]
 
	net-analyzer/snmptt
 
	net-analyzer/ndoutils
 
	app-admin/sudo
 
	>=dev-lang/php-5[xmlwriter?,mysql,ldap?,posix,snmp,soap,truetype]
 
	>=dev-php/PEAR-PEAR-1.8.1
 
	dev-php/smarty
 
	dev-php/PEAR-Archive_Tar
 
	dev-php/PEAR-Console_Getopt
 
	>=dev-php/PEAR-DB-1.7.6
 
	>=dev-php/PEAR-DB_DataObject_FormBuilder-1.0.0_rc4
 
	>=dev-php/PEAR-Date-1.4.6
 
	>=dev-php/PEAR-HTML_QuickForm_advmultiselect-1.1.0
 
	>=dev-php/PEAR-HTML_Table-1.6.1
 
	>=dev-php/PEAR-MDB2-2.0.0
 
	>=dev-php/PEAR-Net_Ping-2.4.1
 
	>=dev-php/PEAR-Net_Traceroute-0.21
 
	>=dev-php/PEAR-SOAP-0.10.1
 
	>=dev-php/PEAR-Validate-0.6.2
 
	dev-perl/Config-IniFiles
 
	dev-perl/Crypt-DES
 
	dev-perl/DBI
 
	dev-perl/Digest-HMAC
 
	dev-perl/Digest-SHA1
 
	dev-perl/GD
 
	dev-perl/IO-Socket-INET6
 
	dev-perl/Net-SNMP
 
	dev-perl/Socket6"
 

	
 
need_apache2
 
need_php5
 

	
 
setup_vars() {
 
	INSTALL_DIR_OREON="/usr/share/centreon"
 
	INSTALL_DIR_CENTREON="/usr/share/centreon"
 
	OREON_PATH=${INSTALL_DIR_OREON}
 
	CENTREON_ETC="/etc/centreon"
 
	CENTREON_VARLIB="/var/lib/centreon"
 
	VARLIB_CENTERON=${CENTERON_VARLIB}
 
	CENTREON_LOG="/var/log/centreon"
 
	CENTREON_PATH=${OREON_PATH}
 
	CENTREON_RUNDIR="/var/run/centreon"
 
	CENTREON_GENDIR="/var/cache/centreon"
 
	CENTSTORAGE_RRD="${CENTREON_GENDIR}/rrd"
 
	CENTSTORAGE_LIB="${CENTREON_RRD}"
 
	CENTPLUGINS_TMP="${CENTREON_GENDIR}/tmp"
 
	CENTPLUGINSTRAPS_BINDIR="/usr/sbin"
 

	
 
	INSTALL_DIR_NAGIOS="/usr/share/nagios"
 
	NAGIOS_ETC="/etc/nagios"
 
	NAGIOS_VAR="/var/nagios"
 
	NAGIOS_BIN="/usr/sbin"
 
	NAGIOS_BINARY="${NAGIOS_BIN}/nagios"
 
	NAGIOSTATS_BINARY="${NAGIOS_BINARY}tats"
 
	NAGIOS_PLUGINS="/usr/lib/nagios/plugins"
 
	NAGIOS_PLUGIN=${NAGIOS_PLUGINS}
 
	NAGIOS_IMG="${INSTALL_DIR_NAGIOS}/htdocs/images"
 
	NAGIOS_INIT_SCRIPT="/etc/init.d/nagios"
 
	NAGIOS_USER="nagios"
 
	NAGIOS_GROUP="nagios"
 

	
 
	NDOMOD_BINARY="/usr/bin/ndomod-3x.o"
 
	BIN_RRDTOOL="/usr/bin/rrdtool"
 
	BIN_MAIL="/bin/mail"
 
	BIN_SSH="/usr/bin/ssh"
 
	BIN_SCP="/usr/bin/scp"
 
	MAILER="/bin/mail"
 
}
 

	
 
pkg_setup() {
 
	require_php_sapi_from apache2 cli
 
	require_gd
 

	
 
	setup_vars
 
}
 

	
 
varsubst() {
 
	local path=$1
 

	
 
	for var in "$@"; do
 
		sed -i -e "s:@${var}@:$(eval echo \$${var}):g" "${D}${path}"
 
	done
 
}
 

	
 
install_centreon() {
 
	cd "${S}"
 

	
 
	# copy www and doc files
 
	insinto "${OREON_PATH}"
 
	doins -r www
 
	dosym /usr/share/nagios/htdocs/docs "${OREON_PATH}"/doc
 

	
 
	# sanitize file modes
 
	find "${D}${OREON_PATH}" -type d -exec chmod 755 {} \;
 
	find "${D}${OREON_PATH}" -type f -exec chmod 644 {} \;
 

	
 
	# keep important directories
 
	keepdir "${OREON_PATH}"/www/modules
 
	keepdir /var/log/centreon
 
	keepdir /var/cache/centreon/rrd
 
	keepdir /var/cache/centreon/smarty/{cache,config,compile}
 
	keepdir /var/cache/centreon/generate/{nagiosCFG,osm}
 
	keepdir /var/cache/centreon/tmp
 
	keepdir /var/cache/centreon/upload/nagiosCFG
 
	dosym /var/cache/centreon/generate /var/cache/centreon/filesGeneration
 

	
 
	# prepare SQL files
 
	varsubst "${OREON_PATH}"/www/install/insertBaseConf.sql \
 
		NAGIOS_{USER,GROUP,ETC,BIN,VAR,PLUGIN,PLUGINS,IMG,BINARY,INIT_SCRIPT} \
 
		INSTALL_DIR_NAGIOS INSTALL_DIR_{OREON,CENTREON} \
 
		BIN_RRDTOOL BIN_MAIL MAILER NDOMOD_BINARY NAGIOSTATS_BINARY
 

	
 
	varsubst "${OREON_PATH}"/www/install/createTablesCentstorage.sql \
 
		NAGIOS_VAR CENTSTORAGE_RRD
 

	
 
	# fix paths in php files
 
	varsubst "${OREON_PATH}"/www/include/configuration/configCGI/formCGI.php \
 
		NAGIOS_ETC INSTALL_DIR_NAGIOS
 

	
 
	varsubst "${OREON_PATH}"/www/include/options/oreon/upGrade/preUpdate.php \
 
		OREON_PATH
 
        for i in $(find www/ -type f); do
 
                varsubst "${OREON_PATH}"/${i} CENTREON_{ETC,VARLIB,GENDIR,LOG} \
 
			MAILER CENTPLUGINSTRAPS_BINDIR
 
        done
 

	
 
	# fix preinstalled smarty
 
	sed -i "s:\.\./GPL_LIB/Smarty/libs/:Smarty/:" \
 
		"${D}${OREON_PATH}/www/header.php"
 
	sed -i "s:\(\(../\)\+\|$centreon_path/\)GPL_LIB/SmartyCache:/var/cache/centreon/smarty:" \
 
                  "${D}${OREON_PATH}/www/include/common/common-Func.php"
 
	sed -i "s:$centreon_path . 'GPL_LIB/Smarty/libs/':'Smarty/':" \
 
		"${D}${OREON_PATH}/www/include/monitoring/external_cmd/popup/popup.php"
 

	
 

	
 
	# install apache config
 
	insinto "${APACHE_MODULES_CONFDIR}"
 
	doins "${FILESDIR}"/99_centreon.conf
 

	
 
	# install global installation config
 
	insinto "${OREON_PATH}"/www/install
 
	newins "${FILESDIR}"/initial-installconf.php install.conf.php
 

	
 
	# set permissions
 
	fowners -R apache:apache \
 
		/var/cache/centreon \
 
		"${OREON_PATH}"/www
 

	
 
	fowners -R nagios:apache \
 
		/var/log/centreon
 
}
 

	
 
install_plugins() {
 
	cd "${S}"
 

	
 
	# install plugin configuration
 
	insinto /etc/centreon
 
	doins ./plugins/src/centreon.conf
 
	rm -f ./plugins/src/centreon.conf
 
	dosym "${NAGIOS_PLUGINS}/centreon.conf" /etc/centreon/centreon.conf
 

	
 
	varsubst /etc/centreon/centreon.conf \
 
		INSTALL_DIR_NAGIOS INSTALL_DIR_OREON \
 
		NAGIOS_ETC NAGIOS_PLUGINS
 

	
 
	fowners -R apache:apache \
 
		/etc/centreon
 

	
 
	# install nagios plugins
 
	exeinto "${NAGIOS_PLUGINS}"
 

	
 
	for plugin in ./plugins/src/*; do
 
		if [[ ! -d "${plugin}" ]]; then
 
			doexe "${plugin}"
 
			varsubst "${NAGIOS_PLUGINS}/$(basename "${plugin}")" \
 
				NAGIOS_PLUGINS NAGIOS_VAR CENTREON_ETC \
 
				CENTPLUGINS_TMP
 
		fi
 
	done
 
}
 

	
 
install_traps() {
 
	cd "${S}"
 

	
 
	# install snmp traps plugins
 
	dodir "${NAGIOS_PLUGINS}"/traps
 
	dodir /etc/snmp/centreon
 
	dosym /etc/snmp/centreon /etc/snmp/centreon_traps
 

	
 
	# install snmp configs
 
	insinto /etc/snmp/centreon
 
	doins plugins/src/traps/conf/snmptt.ini
 
	fowners -R apache:nagios /etc/snmp/centreon
 

	
 
	insinto /etc/snmp/
 
	doins plugins/src/traps/conf/snmp.conf
 
	doins plugins/src/traps/conf/snmptrapd.conf
 
}
 

	
 
install_daemons() {
 
	cd "${S}"
 

	
 
	# install daemon
 
	insinto /usr
 
	dosbin bin/*
 
	for i in $(find bin/ -type f); do
 
	        varsubst /usr/sbin/$(basename "${i}") \
 
			CENTREON_{LOG,PATH,RUNDIR,ETC,VARLIB,DIR} \
 
			NAGIOS_{USER,GROUP} BIN_{SSH,SCP} CENTPLUGINS_TMP \
 
			CENTSTORAGE_LIB
 
        done
 
	# install daemon library files
 
	insinto /usr/share/centreon/lib
 
	doins lib/*
 

	
 
	# install init script
 
	newinitd "${FILESDIR}"/centreon.initd centreon
 

	
 
	# keep important directories
 
	keepdir /etc/centreon
 
	keepdir /var/run/centreon
 
	keepdir /var/log/centreon
 
	keepdir /var/lib/centreon
 
	keepdir /var/lib/centreon/database
 

	
 
	# set permissions
 
	fowners -R nagios:nagios \
 
		/var/run/centreon \
 
		/var/log/centreon \
 
		/var/lib/centreon/database
 
}
 

	
 
install_cron() {
 
	cd "${S}"
 

	
 
	insinto "${OREON_PATH}"
 
	doins -r cron
 

	
 
	fperms +x "${OREON_PATH}"/cron/*
 

	
 
	for i in $(find cron/ -type f); do
 
		varsubst "${OREON_PATH}"/${i} \
 
			CENTREON_{PATH,ETC,VARLIB,LOG,RUNDIR} \
 
			VARLIB_CENTREON
 
	done
 

	
 
	insinto /etc/cron.d
 
	newins "${FILESDIR}"/centreon-2.cron centreon
 
}
 

	
 
src_install() {
 
	install_centreon
 
	install_plugins
 
	install_traps
 
	install_daemons
 
	install_cron
 
}
 

	
 
pkg_config() {
 
	setup_vars
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_ETC}"
 
	chown nagios:apache "${ROOT}${NAGIOS_ETC}"
 
	chmod 0775 "${ROOT}${NAGIOS_ETC}"
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}"
 
	chown nagios:apache "${ROOT}${NAGIOS_PLUGINS}"
 
	chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"
 

	
 
	einfo "Setting permissions on ${ROOT}${NAGIOS_PLUGINS}/contrib"
 
	chown nagios:apache "${ROOT}${NAGIOS_PLUGINS}"/contrib
 
	chmod 0775 "${ROOT}${NAGIOS_PLUGINS}"/contrib
 

	
 
	einfo "Adding user apache to group nagios"
 
	usermod -a -G nagios apache
 

	
 
	SUDOERS="${ROOT}etc/sudoers"
 

	
 
	if ! grep -q CENTREON "${SUDOERS}"; then
 
		einfo "Adding sudo configuration"
 
		echo >> "${SUDOERS}"
 
		echo "# centreon configuration" >> "${SUDOERS}"
 
		echo "User_Alias  CENTREON=apache" >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/nagios restart" >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/nagios reload"  >> "${SUDOERS}"
 
		echo "CENTREON    ALL = NOPASSWD: /etc/init.d/snmptrapd restart" >> "${SUDOERS}"
 
	fi
 
}