-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2010 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.12-r1.ebuild,v 1.6 2009/06/30 14:10:32 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/nagios-core/nagios-core-3.2.1.ebuild,v 1.1 2010/04/02 17:03:52 dertobi123 Exp $
-EAPI="1"
+EAPI="2"
inherit eutils depend.apache toolchain-funcs
-MY_P=${PN/-core}-${PV/_}
+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"
+SRC_URI="mirror://sourceforge/nagios/${MY_P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="alpha amd64 ppc ppc64 sparc x86"
-IUSE="debug perl +web vim-syntax"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="debug lighttpd perl +web vim-syntax"
DEPEND="virtual/mailx
web? (
- >=media-libs/jpeg-6b-r3
- >=media-libs/libpng-1.2.5-r4
- >=media-libs/gd-1.8.3-r5
- perl? ( net-analyzer/traceroute )
+ >=media-libs/gd-1.8.3-r5[jpeg,png]
+ lighttpd? ( www-servers/lighttpd dev-lang/php[cgi] )
+ apache2? ( || ( dev-lang/php[apache2] dev-lang/php[cgi] ) )
)
perl? ( >=dev-lang/perl-5.6.1-r7 )"
RDEPEND="${DEPEND}
pkg_setup() {
depend.apache_pkg_setup
- # Check if gd has been compiled with jpeg and png support
- if use web; then
- if ! built_with_use media-libs/gd jpeg png; then
- eerror "Your gd has been compiled without jpeg and/or png support."
- eerror "Please re-emerge gd:"
- eerror "# USE="jpeg png" emerge gd"
- die "pkg_setup failed"
- fi
- fi
-
enewgroup nagios
enewuser nagios -1 /bin/bash /var/nagios/home nagios
}
-src_unpack() {
- unpack ${A}
- cd "${S}"
-
- epatch "${FILESDIR}"/2.x-series-nsca.patch
-
- # Fix remote execution in statuswml.cgi, bug #275288
- epatch "${FILESDIR}/statuswml-bug275288.patch"
-
+src_prepare() {
local strip="$(echo '$(MAKE) strip-post-install')"
sed -i -e "s:${strip}::" {cgi,base}/Makefile.in || die "sed failed in Makefile.in"
}
-src_compile() {
+src_configure() {
local myconf
- if use perl
- then
+ if use perl ; then
myconf="${myconf} --enable-embedded-perl --with-perlcache"
fi
myconf="${myconf} --enable-DEBUG5"
fi
- if use apache2 ; then
- myconf="${myconf} --with-command-group=apache"
- else
+ 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/nagios \
+ --prefix=/usr \
+ --bindir=/usr/sbin \
+ --sbindir=/usr/$(get_libdir)/nagios/cgi-bin \
+ --datadir=/usr/share/nagios/htdocs \
--localstatedir=/var/nagios \
--sysconfdir=/etc/nagios \
- --datadir=/usr/nagios/share \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
|| die "./configure failed"
+}
+src_compile() {
emake CC=$(tc-getCC) nagios || die "make failed"
if use web ; then
# Only compile the CGI's if "web" useflag is set.
- make CC=$(tc-getCC) DESTDIR="${D}" cgis || die
+ emake CC=$(tc-getCC) DESTDIR="${D}" cgis || die
fi
-
- emake -C contrib all || die "contrib make filed"
-
}
src_install() {
dodoc Changelog INSTALLING LEGAL README UPGRADING
- docinto contrib
- dodoc contrib/README
- if ! use web; then
+ if ! use web ; then
sed -i -e 's/cd $(SRC_CGI) && $(MAKE) $@/# line removed due missing web use flag/' \
-e 's/cd $(SRC_HTM) && $(MAKE) $@/# line removed due missing web use flag/' \
Makefile
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
+ emake DESTDIR="${D}" install
+ emake DESTDIR="${D}" install-config
+ emake DESTDIR="${D}" install-commandmode
- #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
-
- doinitd "${FILESDIR}"/nagios
-
- chmod 644 "${S}"/contrib/*.cgi
- into /usr/nagios
- for bin in `find contrib/ -type f -perm 0755 -maxdepth 1` ; do
- dobin "$bin"
- done
+ newinitd "${FILESDIR}"/nagios3 nagios
+ newconfd "${FILESDIR}"/conf.d nagios
# Apache Module
if use web ; then
if use apache2 ; then
insinto "${APACHE_MODULES_CONFDIR}"
- doins "${FILESDIR}"/99_nagios.conf
+ doins "${FILESDIR}"/99_nagios3.conf
+ elif use lighttpd ; then
+ insinto /etc/lighttpd
+ newins "${FILESDIR}/lighttpd_nagios3-r1.conf" nagios.conf
else
- ewarn "${CATEGORY}/${PF} only supports apache-2.x webserver"
- ewarn "out-of-the-box. Since you are not using apache, you"
+ ewarn "${CATEGORY}/${PF} only supports Apache-2.x or Lighttpd webserver"
+ ewarn "out-of-the-box. Since you are not using one of them, you"
ewarn "have to configure your webserver accordingly yourself."
fi
- if use perl; then
- into /usr/nagios ; dosbin contrib/traceroute.cgi
- 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/nagios
- find "${D}"/usr/nagios -type d -print0 | xargs -0 chmod 755
- find "${D}"/usr/nagios/*bin -type f -print0 | xargs -0 chmod 755
- find "${D}"/usr/nagios/share -type f -print0 | xargs -0 chmod 644
+ chown -R root:root "${D}"/usr/$(get_libdir)/nagios
+ find "${D}"/usr/$(get_libdir)/nagios -type d -print0 | xargs -0 chmod 755
+ find "${D}"/usr/$(get_libdir)/nagios/cgi-bin -type f -print0 | xargs -0 chmod 755
keepdir /etc/nagios
keepdir /var/nagios
keepdir /var/nagios/archives
- keepdir /usr/nagios/share/ssi
keepdir /var/nagios/rw
+ keepdir /var/nagios/spool/checkresults
- if use apache2 ; then
- chown -R nagios:apache "${D}"/var/nagios/rw || die "Failed Chown of ${D}/var/nagios/rw"
+ if use !apache2 && use !lighttpd; then
+ chown -R nagios:nagios "${D}"/var/nagios/rw || die "Failed chown of ${D}/var/nagios/rw"
else
- chown -R nagios:nagios "${D}"/var/nagios/rw || die "Failed Chown of ${D}/var/nagios/rw"
+ 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"
-
- cat << EOF > "${T}"/55-nagios-core-revdep
-SEARCH_DIRS="/usr/nagios/bin /usr/nagios/libexec"
-EOF
-
- insinto /etc/revdep-rebuild
- doins "${T}"/55-nagios-core-revdep
}
pkg_postinst() {
- elog
- elog "The example config files are located at /usr/share/doc/${PF}/sample-configs/."
- elog
- elog "Also, if you want nagios to start at boot time"
+ elog "If you want nagios to start at boot time"
elog "remember to execute:"
elog " rc-update add nagios default"
elog
- if use web; then
+ if use web ; then
elog "This does not include cgis that are perl-dependent"
elog "Currently traceroute.cgi is perl-dependent"
elog "To have ministatus.cgi requires copying of ministatus.c"
elog "read-access to /etc/nagios."
elog
- if use apache2 ; then
+ if use apache2 || use lighttpd ; then
elog "There are several possible solutions to accomplish this,"
elog "choose the one you are most comfortable with:"
- elog " usermod -G nagios apache"
- elog "or"
- elog " chown nagios:apache /etc/nagios"
elog
- elog "Also edit /etc/conf.d/apache2 and add \"-D NAGIOS\""
+ if use apache2 ; then
+ elog " usermod -G nagios apache"
+ elog "or"
+ elog " chown nagios:apache /etc/nagios"
+ elog
+ elog "Also edit /etc/conf.d/apache2 and add \"-D NAGIOS\""
+ elif use lighttpd ; then
+ elog " usermod -G nagios lighttpd "
+ elog "or"
+ elog " chown nagios:lighttpd /etc/nagios"
+ fi
elog
elog "That will make nagios's web front end visable via"
elog "http://localhost/nagios/"
elog "filesystem. You can fix this by adding nagios into"
elog "the group wheel, but this is not recomended."
elog
-
- elog
- ewarn "Use /usr/nagios/bin/convertcfg for configuration file conversion"
}
-pkg_prerm() {
- [[ "${ROOT}" == "/" ]] && /etc/init.d/nagios stop
+pkg_postinst() {
+ einfo "Fixing permissions"
+ chown nagios:nagios "${ROOT}"var/nagios
}
--- /dev/null
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-analyzer/nagios/nagios-3.2.1.ebuild,v 1.1 2010/04/02 17:04:31 dertobi123 Exp $
+
+inherit multilib
+
+DESCRIPTION="The Nagios metapackage - merge this to pull install all of the nagios packages"
+HOMEPAGE="http://www.nagios.org"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE=""
+
+RDEPEND="~net-analyzer/nagios-core-${PV}
+ >=net-analyzer/nagios-plugins-1.4.13-r1
+ >=net-analyzer/nagios-imagepack-1.0-r100"
+
+pkg_setup() {
+ # Avoid upgrading from Nagios <3 as the directory structure has changed
+ if has_version '<net-analyzer/nagios-3.0' ; then
+ if [[ "${FORCE_UPGRADE}" ]] ; then
+ echo
+ ewarn "you are upgrading from an incompatible version and have"
+ ewarn "FORCE_UPGRADE set, will build this package while Nagios is running."
+ echo
+ else
+ echo
+ eerror "You are upgrading from an incompatible version."
+ eerror "Please be advised that installation paths have changed to a more FHS"
+ eerror "compliant structure and you won't be able to easily upgrade to"
+ eerror "Nagios 3 therefore. You will have to change your configuration"
+ eerror "to reflect this change, for example Nagios plugins are now installed"
+ eerror "into /usr/$(get_libdir)/nagios/plugins/ instead of /usr/nagios/libexec."
+ echo
+ eerror "If you want to upgrade now, emerge nagios with:"
+ eerror " FORCE_UPGRADE=1 emerge nagios"
+ die "Upgrading from an incompatible version!"
+ echo
+ fi
+ fi
+}
+
+pkg_postrm() {
+ elog "Note: this is a META ebuild for ${P}."
+ elog "to remove it completely or before re-emerging"
+ elog "either use 'depclean', or remove/re-emerge these packages:"
+ elog
+ for dep in ${RDEPEND}; do
+ elog " ${dep}"
+ done
+ echo
+}