270 lines
7.7 KiB
Bash
270 lines
7.7 KiB
Bash
# Copyright 1999-2014 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Id$
|
|
|
|
EAPI=5
|
|
|
|
inherit depend.apache eutils multilib toolchain-funcs user
|
|
|
|
MY_P=${PN/-core}-${PV}
|
|
DESCRIPTION="Nagios Core - Check daemon, CGIs, docs"
|
|
HOMEPAGE="http://www.nagios.org/"
|
|
|
|
# The name of the directory into which our Gentoo icons will be
|
|
# extracted, and also the basename of the archive containing it.
|
|
GENTOO_ICONS="${PN}-gentoo-icons-20141125"
|
|
SRC_URI="mirror://sourceforge/nagios/${MY_P}.tar.gz
|
|
web? ( https://dev.gentoo.org/~mjo/distfiles/${GENTOO_ICONS}.tar )"
|
|
|
|
LICENSE="GPL-2"
|
|
SLOT="0"
|
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
|
|
IUSE="classicui lighttpd perl +web vim-syntax"
|
|
|
|
# In pkg_postinst(), we change the group of the Nagios configuration
|
|
# directory to that of the web server user. It can't belong to both
|
|
# apache/lighttpd groups at the same time, so we block this combination
|
|
# for our own sanity.
|
|
#
|
|
# This could be made to work, but we would need a better way to allow
|
|
# the web user read-only access to Nagios's configuration directory.
|
|
#
|
|
REQUIRED_USE="apache2? ( !lighttpd )"
|
|
|
|
# sys-devel/libtool dependency is bug #401237.
|
|
#
|
|
# Note, we require one of the apache2 CGI modules:
|
|
#
|
|
# * mod_cgi
|
|
# * mod_cgid
|
|
# * mod_fcgid
|
|
#
|
|
# We just don't care /which/ one. And of course PHP supports both CGI
|
|
# (USE=cgi) and FastCGI (USE=fpm). We're pretty lenient with the
|
|
# dependencies, and expect the user not to do anything /too/
|
|
# stupid. (For example, installing Apache with only FastCGI support, and
|
|
# PHP with only CGI support.)
|
|
#
|
|
DEPEND="sys-devel/libtool
|
|
virtual/mailx
|
|
perl? ( dev-lang/perl )
|
|
web? (
|
|
media-libs/gd[jpeg,png]
|
|
lighttpd? ( www-servers/lighttpd[php] )
|
|
apache2? (
|
|
|| (
|
|
>=www-servers/apache-2.4[apache2_modules_alias,apache2_modules_cgi]
|
|
>=www-servers/apache-2.4[apache2_modules_alias,apache2_modules_cgid]
|
|
>=www-servers/apache-2.4[apache2_modules_alias,apache2_modules_fcgid]
|
|
)
|
|
|
|
|| ( dev-lang/php[apache2] dev-lang/php[cgi] dev-lang/php[fpm] )
|
|
)
|
|
)"
|
|
RDEPEND="${DEPEND}
|
|
!net-analyzer/nagios-imagepack
|
|
vim-syntax? ( app-vim/nagios-syntax )"
|
|
|
|
want_apache2
|
|
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
pkg_setup() {
|
|
depend.apache_pkg_setup
|
|
|
|
enewgroup nagios
|
|
enewuser nagios -1 /bin/bash /var/nagios/home nagios
|
|
}
|
|
|
|
src_prepare(){
|
|
# Upstream bug, fixes a QA warning:
|
|
#
|
|
# http://tracker.nagios.org/view.php?id=650
|
|
#
|
|
epatch "${FILESDIR}"/use-MAKE-instead-of-bare-make.patch
|
|
|
|
# Upstream bug:
|
|
#
|
|
# http://tracker.nagios.org/view.php?id=651
|
|
#
|
|
# Gentoo bug #388321.
|
|
#
|
|
epatch "${FILESDIR}"/use-INSTALL-to-install-themes.patch
|
|
|
|
# Upstream bug:
|
|
#
|
|
# http://tracker.nagios.org/view.php?id=534
|
|
#
|
|
# Gentoo bug #530640.
|
|
epatch "${FILESDIR}"/fix-bogus-perf-data-warnings.patch
|
|
}
|
|
|
|
src_configure() {
|
|
local myconf
|
|
|
|
if use perl; then
|
|
myconf="${myconf} --enable-embedded-perl --with-perlcache"
|
|
fi
|
|
|
|
if use !apache2 && use !lighttpd ; then
|
|
myconf="${myconf} --with-command-group=nagios"
|
|
else
|
|
if use apache2 ; then
|
|
myconf="${myconf} --with-command-group=apache"
|
|
myconf="${myconf} --with-httpd-conf=/etc/apache2/conf.d"
|
|
elif use lighttpd ; then
|
|
myconf="${myconf} --with-command-group=lighttpd"
|
|
fi
|
|
fi
|
|
|
|
econf ${myconf} \
|
|
--prefix=/usr \
|
|
--bindir=/usr/sbin \
|
|
--sbindir=/usr/$(get_libdir)/nagios/cgi-bin \
|
|
--datadir=/usr/share/nagios/htdocs \
|
|
--localstatedir=/var/nagios \
|
|
--sysconfdir=/etc/nagios \
|
|
--libexecdir=/usr/$(get_libdir)/nagios/plugins
|
|
}
|
|
|
|
src_compile() {
|
|
emake CC=$(tc-getCC) nagios
|
|
|
|
if use web; then
|
|
# Only compile the CGIs when USE=web is set.
|
|
emake CC=$(tc-getCC) DESTDIR="${D}" cgis
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
dodoc Changelog INSTALLING LEGAL README.asciidoc UPGRADING
|
|
|
|
emake DESTDIR="${D}" install-base
|
|
emake DESTDIR="${D}" install-basic
|
|
emake DESTDIR="${D}" install-config
|
|
emake DESTDIR="${D}" install-commandmode
|
|
|
|
if use web; then
|
|
emake DESTDIR="${D}" install-cgis
|
|
|
|
# install-html installs the new exfoliation theme
|
|
emake DESTDIR="${D}" install-html
|
|
|
|
if use classicui; then
|
|
# This overwrites the already-installed exfoliation theme
|
|
emake DESTDIR="${D}" install-classicui
|
|
fi
|
|
|
|
# Install cute Gentoo icons (bug #388323), setting their
|
|
# owner, group, and mode to match those of the rest of Nagios's
|
|
# images.
|
|
insopts --group=nagios --owner=nagios --mode=0664
|
|
insinto /usr/share/nagios/htdocs/images/logos
|
|
doins "${WORKDIR}/${GENTOO_ICONS}"/*.*
|
|
insopts --mode=0644 # Back to the default...
|
|
fi
|
|
|
|
newinitd "${FILESDIR}"/nagios4 nagios
|
|
newconfd "${FILESDIR}"/conf.d nagios
|
|
|
|
if use web ; then
|
|
if use apache2 ; then
|
|
# Install the Nagios configuration file for Apache.
|
|
insinto "${APACHE_MODULES_CONFDIR}"
|
|
doins "${FILESDIR}"/99_nagios4.conf
|
|
elif use lighttpd ; then
|
|
# Install the Nagios configuration file for Lighttpd.
|
|
insinto /etc/lighttpd
|
|
newins "${FILESDIR}/lighttpd_nagios4.conf" nagios.conf
|
|
else
|
|
ewarn "${CATEGORY}/${PF} only supports apache or lighttpd"
|
|
ewarn "out of the box. Since you are not using one of them, you"
|
|
ewarn "will have to configure your webserver yourself."
|
|
fi
|
|
fi
|
|
|
|
for dir in etc/nagios var/nagios ; do
|
|
chown -R nagios:nagios "${D}/${dir}" \
|
|
|| die "failed chown of ${D}/${dir}"
|
|
done
|
|
|
|
chown -R root:root "${D}/usr/$(get_libdir)/nagios" \
|
|
|| die "failed chown of ${D}/usr/$(get_libdir)/nagios"
|
|
|
|
# The following two find...exec statements will die properly as long
|
|
# as chmod is only called once (that is, as long as the argument
|
|
# list is small enough).
|
|
find "${D}/usr/$(get_libdir)/nagios" -type d \
|
|
-exec chmod 755 '{}' + || die 'failed to make nagios dirs traversable'
|
|
|
|
if use web; then
|
|
find "${D}/usr/$(get_libdir)/nagios/cgi-bin" -type f \
|
|
-exec chmod 755 '{}' + || die 'failed to make cgi-bins executable'
|
|
fi
|
|
|
|
keepdir /etc/nagios
|
|
keepdir /var/nagios
|
|
keepdir /var/nagios/archives
|
|
keepdir /var/nagios/rw
|
|
keepdir /var/nagios/spool/checkresults
|
|
|
|
if use !apache2 && use !lighttpd; then
|
|
chown -R nagios:nagios "${D}"/var/nagios/rw \
|
|
|| die "failed chown of ${D}/var/nagios/rw"
|
|
else
|
|
if use apache2 ; then
|
|
chown -R nagios:apache "${D}"/var/nagios/rw \
|
|
|| die "failed chown of ${D}/var/nagios/rw"
|
|
elif use lighttpd ; then
|
|
chown -R nagios:lighttpd "${D}"/var/nagios/rw \
|
|
|| die "failed chown of ${D}/var/nagios/rw"
|
|
fi
|
|
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() {
|
|
|
|
if use web; then
|
|
elog "Note that your web server user requires read-only access to"
|
|
elog "${ROOT}etc/nagios."
|
|
|
|
if use apache2 || use lighttpd ; then
|
|
elog
|
|
elog "To that end, we have changed the group of ${ROOT}etc/nagios"
|
|
elog "to that of your web server user."
|
|
elog
|
|
if use apache2; then
|
|
chown nagios:apache "${ROOT}etc/nagios" \
|
|
|| die "failed to change group of ${ROOT}etc/nagios"
|
|
|
|
elog "To enable the Nagios web front-end, please edit"
|
|
elog "${ROOT}etc/conf.d/apache2 and add \"-D NAGIOS -D PHP5\""
|
|
elog "to APACHE2_OPTS. Then Nagios will be available at,"
|
|
elog
|
|
elif use lighttpd; then
|
|
chown nagios:lighttpd "${ROOT}etc/nagios" \
|
|
|| die "failed to change group of ${ROOT}etc/nagios"
|
|
elog "To enable the Nagios web front-end, please add"
|
|
elog "'include \"nagios.conf\"' to the lighttpd configuration"
|
|
elog "file at ${ROOT}etc/lighttpd/lighttpd.conf. Then Nagios"
|
|
elog "will be available at,"
|
|
elog
|
|
fi
|
|
|
|
elog " http://localhost/nagios/"
|
|
else
|
|
elog "Since you're not using either Apache or Lighttpd, you"
|
|
elog "will have to grant the necessary permissions yourself."
|
|
fi
|
|
fi
|
|
|
|
elog
|
|
elog "If your kernel has /proc protection, nagios"
|
|
elog "will not be happy as it relies on accessing the proc"
|
|
elog "filesystem. You can fix this by adding nagios into"
|
|
elog "the group wheel, but this is not recomended."
|
|
elog
|
|
}
|