226 lines
5.8 KiB
Bash
226 lines
5.8 KiB
Bash
|
# Copyright 1999-2007 Gentoo Foundation
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
# $Header: /var/cvsroot/gentoo-x86/net-analyzer/nagios-core/nagios-core-2.5-r1.ebuild,v 1.1 2007/02/03 07:04:42 mjolnir Exp $
|
||
|
|
||
|
inherit eutils apache-module toolchain-funcs gnuconfig
|
||
|
|
||
|
MY_P=${PN/-core}-${PV/_}
|
||
|
DESCRIPTION="Nagios Core - Check daemon, CGIs, docs"
|
||
|
HOMEPAGE="http://www.nagios.org/"
|
||
|
SRC_URI="mirror://sourceforge/nagios/${MY_P}.tar.gz"
|
||
|
# mirror://gentoo/nagios-2.0b.cfg-sample.gz"
|
||
|
|
||
|
LICENSE="GPL-2"
|
||
|
SLOT="0"
|
||
|
KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
|
||
|
IUSE="noweb perl debug apache2"
|
||
|
# mysql postgres
|
||
|
DEPEND="virtual/mailx
|
||
|
!noweb? (
|
||
|
>=media-libs/jpeg-6b-r3
|
||
|
>=media-libs/libpng-1.2.5-r4
|
||
|
>=media-libs/gd-1.8.3-r5
|
||
|
${NEED_APACHE_DEPEND}
|
||
|
perl? ( net-analyzer/traceroute )
|
||
|
)
|
||
|
perl? ( >=dev-lang/perl-5.6.1-r7 )"
|
||
|
|
||
|
S="${WORKDIR}/${MY_P}"
|
||
|
|
||
|
pkg_setup() {
|
||
|
# If there's a gd lib on the system, it will try to build with it.
|
||
|
# check if gdlib-config is on, and then check its output.
|
||
|
if [[ -x ${ROOT}usr/bin/gdlib-config ]]; then
|
||
|
if [[ ! $(${ROOT}usr/bin/gdlib-config --libs | grep -- -ljpeg) ]]; then
|
||
|
eerror "Your gd has been compiled without jpeg support."
|
||
|
eerror "Please re-emerge gd:"
|
||
|
eerror "# USE="jpeg" emerge gd"
|
||
|
die "pkg_setup failed"
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
enewgroup nagios
|
||
|
|
||
|
if use noweb; then
|
||
|
enewuser nagios -1 /bin/bash /dev/null nagios
|
||
|
else
|
||
|
enewuser nagios -1 /bin/bash /dev/null nagios,apache
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
src_unpack() {
|
||
|
unpack ${A}
|
||
|
cd ${S}
|
||
|
epatch ${FILESDIR}/2.x-series-nsca.patch
|
||
|
# ppc64 needs this
|
||
|
gnuconfig_update
|
||
|
}
|
||
|
|
||
|
src_compile() {
|
||
|
local myconf
|
||
|
|
||
|
if use perl
|
||
|
then
|
||
|
myconf="${myconf} --enable-embedded-perl --with-perlcache"
|
||
|
fi
|
||
|
|
||
|
if use debug; then
|
||
|
myconf="${myconf} --enable-DEBUG0"
|
||
|
myconf="${myconf} --enable-DEBUG1"
|
||
|
myconf="${myconf} --enable-DEBUG2"
|
||
|
myconf="${myconf} --enable-DEBUG3"
|
||
|
myconf="${myconf} --enable-DEBUG4"
|
||
|
myconf="${myconf} --enable-DEBUG5"
|
||
|
fi
|
||
|
|
||
|
if use noweb; then
|
||
|
myconf="${myconf} --with-command-grp=nagios"
|
||
|
else
|
||
|
myconf="${myconf} --with-command-grp=apache"
|
||
|
fi
|
||
|
|
||
|
./configure ${myconf} \
|
||
|
--host=${CHOST} \
|
||
|
--prefix=/usr/nagios \
|
||
|
--localstatedir=/var/nagios \
|
||
|
--sysconfdir=/etc/nagios \
|
||
|
--infodir=/usr/share/info \
|
||
|
--mandir=/usr/share/man \
|
||
|
${myconf} || die "./configure failed"
|
||
|
|
||
|
emake CC=$(tc-getCC) nagios || die "make failed"
|
||
|
|
||
|
if use !noweb ; then
|
||
|
# Only compile the CGI's if "noweb" useflag is not set.
|
||
|
make CC=$(tc-getCC) DESTDIR=${D} cgis || die
|
||
|
fi
|
||
|
|
||
|
emake -C contrib all || "contrib make filed"
|
||
|
|
||
|
}
|
||
|
|
||
|
src_install() {
|
||
|
dodoc Changelog INSTALLING LEGAL LICENSE README UPGRADING
|
||
|
docinto contrib
|
||
|
dodoc contrib/README
|
||
|
|
||
|
if use noweb; then
|
||
|
sed -i -e 's/cd $(SRC_CGI) && $(MAKE) $@/# line removed due to noweb use flag/' \
|
||
|
-e 's/cd $(SRC_HTM) && $(MAKE) $@/# line removed due to noweb use flag/' \
|
||
|
Makefile
|
||
|
fi
|
||
|
|
||
|
sed -i -e 's/^contactgroups$//g' Makefile
|
||
|
|
||
|
make DESTDIR=${D} install
|
||
|
make DESTDIR=${D} install-config
|
||
|
make DESTDIR=${D} install-commandmode
|
||
|
|
||
|
docinto sample-configs
|
||
|
dodoc ${D}/etc/nagios/*
|
||
|
rm ${D}/etc/nagios/*
|
||
|
|
||
|
newdoc ${WORKDIR}/nagios-2.0b.cfg-sample nagios.cfg-sample
|
||
|
|
||
|
#contribs are not configured by the configure script, we'll configure them overselves...
|
||
|
find ${S}/contrib/ -type f | xargs sed -e 's:/usr/local/nagios/var/rw:/var/nagios/rw:;
|
||
|
s:/usr/local/nagios/libexec:/usr/nagios/libexec:;
|
||
|
s:/usr/local/nagios/etc:/etc/nagios:;
|
||
|
s:/usr/local/nagios/sbin:/usr/nagios/sbin:;' -i
|
||
|
|
||
|
insinto /usr/share/doc/${PF}/contrib
|
||
|
doins -r contrib/eventhandlers
|
||
|
|
||
|
exeinto /etc/init.d
|
||
|
doexe ${FILESDIR}/nagios
|
||
|
|
||
|
insinto /etc/conf.d
|
||
|
newins ${FILESDIR}/conf.d nagios
|
||
|
|
||
|
chmod 644 ${S}/contrib/*.cgi
|
||
|
into /usr/nagios
|
||
|
for bin in `find contrib/ -type f -perm 0755 -maxdepth 1` ; do
|
||
|
dobin $bin
|
||
|
done
|
||
|
|
||
|
# Apache Module
|
||
|
if use !noweb; then
|
||
|
if use apache2; then
|
||
|
insinto ${APACHE2_MODULES_CONFDIR}
|
||
|
doins ${FILESDIR}/99_nagios.conf
|
||
|
else
|
||
|
insinto ${APACHE1_MODULES_CONFDIR}
|
||
|
doins ${FILESDIR}/nagios.conf
|
||
|
fi
|
||
|
if use perl; then
|
||
|
into /usr/nagios ; dosbin contrib/traceroute.cgi
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
for dir in etc/nagios usr/nagios var/nagios ; do
|
||
|
chown -R nagios:nagios ${D}/${dir} || die "Failed chown of ${D}/${dir}"
|
||
|
done
|
||
|
|
||
|
keepdir /etc/nagios
|
||
|
keepdir /var/nagios
|
||
|
keepdir /var/nagios/archives
|
||
|
keepdir /usr/nagios/share/ssi
|
||
|
keepdir /var/nagios/rw
|
||
|
|
||
|
if use noweb; then
|
||
|
chown -R nagios:nagios ${D}/var/nagios/rw || die "Failed Chown of ${D}/var/nagios/rw"
|
||
|
else
|
||
|
chown -R nagios:apache ${D}/var/nagios/rw || die "Failed Chown of ${D}/var/nagios/rw"
|
||
|
fi
|
||
|
|
||
|
chmod ug+s ${D}/var/nagios/rw || die "Failed Chmod of ${D}/var/nagios/rw"
|
||
|
chmod 0750 ${D}/etc/nagios || die "Failed chmod of ${D}/etc/nagios"
|
||
|
}
|
||
|
|
||
|
pkg_postinst() {
|
||
|
einfo
|
||
|
einfo "The example config files are located at /usr/share/doc/${PF}/sample-configs/."
|
||
|
einfo
|
||
|
einfo "Also, if you want nagios to start at boot time"
|
||
|
einfo "remember to execute:"
|
||
|
einfo " rc-update add nagios default"
|
||
|
einfo
|
||
|
|
||
|
if use !noweb; then
|
||
|
einfo "This does not include cgis that are perl-dependent"
|
||
|
einfo "Currently traceroute.cgi is perl-dependent"
|
||
|
einfo "To have ministatus.cgi requires copying of ministatus.c"
|
||
|
einfo "to cgi directory for compiling."
|
||
|
|
||
|
if use apache2; then
|
||
|
einfo " Edit /etc/conf.d/apache2 and add \"-D NAGIOS\""
|
||
|
else
|
||
|
einfo " Edit /etc/conf.d/apache and add \"-D NAGIOS\""
|
||
|
fi
|
||
|
|
||
|
einfo
|
||
|
einfo "That will make nagios's web front end visable via"
|
||
|
einfo "http://localhost/nagios/"
|
||
|
einfo
|
||
|
|
||
|
else
|
||
|
einfo "Please note that you have installed Nagios without web interface."
|
||
|
einfo "Please don't file any bugs about having no web interface when you do this."
|
||
|
einfo "Thank you!"
|
||
|
fi
|
||
|
|
||
|
einfo
|
||
|
einfo "If your kernel has /proc protection, nagios"
|
||
|
einfo "will not be happy as it relies on accessing the proc"
|
||
|
einfo "filesystem. You can fix this by adding nagios into"
|
||
|
einfo "the group wheel, but this is not recomended."
|
||
|
einfo
|
||
|
|
||
|
einfo
|
||
|
ewarn "Use /usr/nagios/bin/convertcfg for configuration file conversion"
|
||
|
}
|
||
|
|
||
|
pkg_prerm() {
|
||
|
/etc/init.d/nagios stop
|
||
|
}
|