summaryrefslogtreecommitdiff
path: root/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'net-analyzer/ndoutils/ndoutils-2.1.4.ebuild')
-rw-r--r--net-analyzer/ndoutils/ndoutils-2.1.4.ebuild103
1 files changed, 103 insertions, 0 deletions
diff --git a/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild b/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild
new file mode 100644
index 000000000000..3dbb09ef8ec0
--- /dev/null
+++ b/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+DESCRIPTION="Nagios addon to store Nagios data in a database"
+HOMEPAGE="https://github.com/NagiosEnterprises/ndoutils"
+SRC_URI="https://github.com/NagiosEnterprises/${PN}/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
+
+DEPEND="
+ dev-db/mysql-connector-c
+ dev-perl/DBD-mysql
+ dev-perl/DBI"
+
+# The default value of the --with-ndo2db-{user,group} flag is "nagios".
+# For unrelated reasons, we actually patch out the build-time dependency
+# on the user/group, but it should still be there at runtime.
+RDEPEND="${DEPEND}
+ acct-user/nagios
+ acct-group/nagios
+ virtual/mysql"
+
+PATCHES=(
+ "${FILESDIR}"/format-security.patch
+ "${FILESDIR}"/sample-config-piddir.patch
+ "${FILESDIR}"/openrc-init.patch
+ "${FILESDIR}"/c23-compatibility.patch
+)
+
+src_prepare() {
+ default
+
+ # ./configure is ancient and doesn't know that e.g. riscv exists
+ eautoreconf
+}
+
+src_configure() {
+ # The localstatedir is where our socket will be created by the
+ # nagios daemon, so we put it in /var/lib/nagios where the "nagios"
+ # user will be able to write.
+ #
+ # And normally, we would use /run for the pid file, but the daemon
+ # drops permissions before creating it, so the piddir also needs
+ # to be writable by the nagios user.
+ #
+ # Oh, and the build fails without --enable-mysql, so don't try.
+ #
+ econf --enable-mysql \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-piddir=/var/lib/nagios
+}
+
+src_compile() {
+ # Avoid "emake all" so that we don't build the stuff for nagios-2.x
+ # and nagios-3.x, some of which throws QA warnings. We don't use it
+ # anyway.
+ emake -C src file2sock log2ndo ndo2db-4x ndomod-4x.o sockdebug
+}
+
+src_install() {
+ # The documentation isn't installed by the build system
+ HTML_DOCS=( docs/html/. )
+ default
+
+ dodoc Changelog UPGRADING \
+ "docs/NDOUTILS DB Model.pdf" "docs/NDOUtils Documentation.pdf"
+
+ systemd_newunit startup/default-service ndoutils.service
+
+ insinto /etc/nagios
+ newins config/ndo2db.cfg-sample ndo2db.cfg
+ newins config/ndomod.cfg-sample ndomod.cfg
+ newinitd startup/openrc-init ndo2db
+ newconfd startup/openrc-conf ndo2db
+
+ insinto /usr/share/ndoutils
+ doins -r db
+
+ # These need to be executable...
+ exeinto /usr/share/ndoutils/db
+ doexe db/{installdb,prepsql,upgradedb}
+
+ # Use symlinks because the installdb/upgradedb scripts use relative
+ # paths to the SQL queries.
+ dosym ../share/ndoutils/db/installdb /usr/bin/ndoutils-installdb
+ dosym ../share/ndoutils/db/upgradedb /usr/bin/ndoutils-upgradedb
+
+ keepdir /var/lib/nagios
+}
+
+pkg_postinst() {
+ elog "To include NDO in your Nagios setup, you'll need to activate"
+ elog "the NDO broker module in /etc/nagios/nagios.cfg:"
+ elog " broker_module=/usr/bin/ndomod.o config_file=/etc/nagios/ndomod.cfg"
+}