commit:     c8c054f0466ec205c28a56a876de653c069dc264
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 19 02:59:48 2024 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Thu Dec 19 03:01:38 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8c054f0

net-analyzer/ndoutils: add 2.1.4

Closes: https://bugs.gentoo.org/946581
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 net-analyzer/ndoutils/Manifest                     |   1 +
 .../ndoutils/files/c23-compatibility.patch         |  40 ++++++++
 net-analyzer/ndoutils/ndoutils-2.1.4.ebuild        | 103 +++++++++++++++++++++
 3 files changed, 144 insertions(+)

diff --git a/net-analyzer/ndoutils/Manifest b/net-analyzer/ndoutils/Manifest
index cfd355276a0c..f96b584772be 100644
--- a/net-analyzer/ndoutils/Manifest
+++ b/net-analyzer/ndoutils/Manifest
@@ -1 +1,2 @@
 DIST ndoutils-2.1.3.tar.gz 2182999 BLAKE2B 
390548b9018d4434d5d0f69abee1d1a11f4e240150941f7f2f9e2662eb2cdb2f29b24244e094d5bdf8bfaf6c3be7bc8ebd9e6d510d66edad8bc9cf3245d5c2c3
 SHA512 
727f2051876ff32cafaf9993a69b721ae4ea81031fade12262dbb4c5399c601f3c1af362d9d550e1d6d56fac8fe044d515dc10fc43e7d4d3e981bc9a89db88de
+DIST ndoutils-2.1.4.tar.gz 2188648 BLAKE2B 
751e206c6f2827c1a1277e7b5f1d72285c21fa22a8f50d7c488c35ad66353392279bf9f6ecdce978874d0c90da15a95369f46f758994d33b861154161919e98b
 SHA512 
cb6991d9d79f4c438833035fb8434b1cf0f5c27393506a422c134c2c49a5eec2a9f068a59a304515bba62b4f114204b86ec1e2cd7f68b61b329ac1a7b30ef5eb

diff --git a/net-analyzer/ndoutils/files/c23-compatibility.patch 
b/net-analyzer/ndoutils/files/c23-compatibility.patch
new file mode 100644
index 000000000000..39d568acd73b
--- /dev/null
+++ b/net-analyzer/ndoutils/files/c23-compatibility.patch
@@ -0,0 +1,40 @@
+From c9e6b3476a36c9be81714c87ff75d3d1986e376d Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <[email protected]>
+Date: Wed, 18 Dec 2024 21:29:56 -0500
+Subject: [PATCH] include/queue.h: ensure prototypes match implementations
+
+In the latest C23 standard, the prototype
+
+  int get_queue_id();
+
+indicates that get_queue_id takes no arguments. This of course
+disagrees with its implementation, which takes one argument. C23 will
+be the default mode in GCC-15, where this leads to a build failure:
+
+  queue.c:57:5: error: conflicting types for 'get_queue_id'; have 'int(int)'
+   57 | int get_queue_id(int id) {
+      |     ^~~~~~~~~~~~
+  In file included from queue.c:30:
+  ../include/queue.h:40:5: note: previous declaration of 'get_queue_id' with
+  type 'int(void)'
+   40 | int get_queue_id();
+      |     ^~~~~~~~~~~~
+
+To fix it, we update the prototype for get_queue_id().
+---
+ include/queue.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/queue.h b/include/queue.h
+index 5f94e4d..4219c5b 100644
+--- a/include/queue.h
++++ b/include/queue.h
+@@ -37,7 +37,7 @@ struct queue_msg
+ void del_queue();
+ 
+ /* initialize new queue or open existing */
+-int get_queue_id();
++int get_queue_id(int);
+ 
+ /* insert into queue */
+ void push_into_queue(char*);

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"
+}

Reply via email to