Files @ dc53e5004f02
Branch filter:

Location: portage-overlay.git/net-analyzer/centreon/centreon-2.3.9-r3.ebuild

dc53e5004f02 8.5 KiB application/vnd.gentoo.ebuild Show Annotation Show as Raw Download as Raw
chain
update net-misc/pyload to 0.4.9
# 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 $
EAPI=2

inherit depend.apache depend.php systemd

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"

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.3*[xmlwriter?,mysql,ldap?,posix,snmp,soap,truetype]
	>=dev-php/PEAR-PEAR-1.8.1
	dev-php/smarty
	>=dev-php/PEAR-Archive_Tar-1.1
	>=dev-php/PEAR-Archive_Zip-0.1.2
	>=dev-php/PEAR-Auth_SASL-1.0.1
	>=dev-php/PEAR-Console_Getopt-1.2
	>=dev-php/PEAR-DB-1.7.6
	>=dev-php/PEAR-DB_DataObject-1.8.4
	>=dev-php/PEAR-DB_DataObject_FormBuilder-1.0.0_rc4
	>=dev-php/PEAR-Date-1.4.6
	>=dev-php/PEAR-HTML_Common-1.2.2
	>=dev-php/PEAR-HTML_QuickForm-3.2.5
	>=dev-php/PEAR-HTML_QuickForm_advmultiselect-1.1.0
	>=dev-php/PEAR-HTML_Table-1.6.1
	>=dev-php/PEAR-Log-1.9.11
	>=dev-php/PEAR-MDB2-2.0.0
	>=dev-php/PEAR-Net_Ping-2.4.1
	>=dev-php/PEAR-Net_SMTP-1.2.8
	>=dev-php/PEAR-Net_Socket-1.0.1
	>=dev-php/PEAR-Net_Traceroute-0.21
	>=dev-php/PEAR-SOAP-0.10.1
	>=dev-php/PEAR-Validate-0.6.2
	>=dev-php/PEAR-XML_RPC-1.4.5
	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

	sed -i "s:/etc/init.d/centstorage:/etc/init.d/centreon:" \
		"${D}${OREON_PATH}/cron/centreonPurge.sh"

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

src_install() {
	install_centreon
	install_plugins
	install_traps
	install_daemons
	install_cron
	systemd_dotmpfilesd "${FILESDIR}/centreon.conf"
}

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
}