commit:     68e8ba7f7a390e8b2c60f43f90385d627a1512c2
Author:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 27 18:19:41 2025 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Mon Oct 27 18:42:17 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=68e8ba7f

net-analyzer/monitoring-plugins: new "rpc" USE flag

The path to rpcinfo is detected at build time and if it is not found,
check_rpc won't work. We add a USE flag to pull in net-nds/rpcbind at
both build and run-time.

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

 net-analyzer/monitoring-plugins/metadata.xml       |   4 +
 .../monitoring-plugins-2.4.0-r2.ebuild             | 116 +++++++++++++++++++++
 2 files changed, 120 insertions(+)

diff --git a/net-analyzer/monitoring-plugins/metadata.xml 
b/net-analyzer/monitoring-plugins/metadata.xml
index b8ca2be8aea7..98d6b7aed562 100644
--- a/net-analyzer/monitoring-plugins/metadata.xml
+++ b/net-analyzer/monitoring-plugins/metadata.xml
@@ -30,6 +30,10 @@
     <flag name="ipv6">
       Enable ipv6 checks.
     </flag>
+    <flag name="rpc">
+      Install <pkg>net-nds/rpcbind</pkg> required for monitoring RPC
+      services. Disabling the flag does not remove any plugin file.
+    </flag>
     <flag name="ssh">
       Install <pkg>net-misc/openssh</pkg> required for monitoring SSH
       servers. Disabling the flag does not remove any plugins.

diff --git a/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild 
b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild
new file mode 100644
index 000000000000..a86935897c03
--- /dev/null
+++ b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="50+ standard plugins for Icinga, Naemon, Nagios, Shinken, Sensu"
+HOMEPAGE="https://www.monitoring-plugins.org/";
+SRC_URI="https://www.monitoring-plugins.org/download/${P}.tar.gz";
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~sparc ~x86"
+IUSE="curl gnutls ipv6 ldap mysql dns fping game postgres radius rpc samba 
snmp ssh +ssl"
+
+# Most of the plugins use automagic dependencies, i.e. the plugin will
+# get built if the binary it uses is installed. For example, check_snmp
+# will be built only if snmpget from net-analyzer/net-snmp[-minimal] is
+# installed. End result: most of our runtime dependencies are required
+# at build time as well.
+#
+# REAL_DEPEND contains the dependencies that are actually needed to
+# build. DEPEND contains those plus the automagic dependencies.
+#
+REAL_DEPEND="dev-lang/perl
+       curl? (
+               dev-libs/uriparser
+               net-misc/curl
+       )
+       ldap? ( net-nds/openldap:= )
+       mysql? ( || ( dev-db/mysql-connector-c dev-db/mariadb-connector-c ) )
+       postgres? ( dev-db/postgresql:= )
+       ssl? (
+               !gnutls? (
+                       dev-libs/openssl:0=
+               )
+               gnutls? ( net-libs/gnutls )
+       )
+       radius? ( net-dialup/freeradius-client )"
+
+DEPEND="${REAL_DEPEND}
+       dns? ( net-dns/bind )
+       game? ( games-util/qstat )
+       fping? ( net-analyzer/fping )
+       rpc? ( net-nds/rpcbind )
+       samba? ( net-fs/samba )
+       ssh? ( virtual/openssh )
+       snmp? ( dev-perl/Net-SNMP
+                       net-analyzer/net-snmp[-minimal] )"
+
+# Basically everything collides with nagios-plugins.
+RDEPEND="${DEPEND}
+       acct-group/nagios
+       acct-user/nagios
+       !net-analyzer/nagios-plugins"
+
+# At least one test is interactive.
+RESTRICT="test"
+
+# These all come from gnulib and the ./configure checks are working as
+# intended when the functions aren't present. Bugs 921190 and 936891.
+QA_CONFIG_IMPL_DECL_SKIP=(
+       MIN
+       fpurge
+       static_assert
+       statvfs64
+       alignof
+)
+
+src_configure() {
+       append-flags -fno-strict-aliasing
+
+       # Use an array to prevent econf from mangling the ping args.
+       local myconf=()
+
+       if use ssl; then
+               myconf+=( $(use_with !gnutls openssl /usr)
+                                 $(use_with gnutls gnutls /usr) )
+       else
+               myconf+=( --without-openssl )
+               myconf+=( --without-gnutls )
+       fi
+
+       # The autodetection for these two commands can hang if localhost is
+       # down or ICMP traffic is filtered (bug #468296). But also the path
+       # likes to move around on us (bug #883729).
+       myconf+=( --with-ping-command="$(command -v ping) -4 -n -U -w %d -c %d 
%s" )
+
+       if use ipv6; then
+               myconf+=( --with-ping6-command="$(command -v ping) -6 -n -U -w 
%d -c %d %s" )
+       fi
+
+       econf \
+               $(use_with curl libcurl) \
+               $(use_with curl uriparser) \
+               $(use_with mysql) \
+               $(use_with ipv6) \
+               $(use_with ldap) \
+               $(use_with postgres pgsql /usr) \
+               $(use_with radius) \
+               "${myconf[@]}" \
+               --libexecdir="/usr/$(get_libdir)/nagios/plugins" \
+               --sysconfdir="/etc/nagios"
+}
+
+DOCS=( ACKNOWLEDGEMENTS AUTHORS CODING ChangeLog FAQ \
+               NEWS README REQUIREMENTS SUPPORT THANKS )
+
+pkg_postinst() {
+       elog "This ebuild has a number of USE flags that determine what you"
+       elog "are able to monitor. Depending on what you want to monitor, some"
+       elog "or all of these USE flags need to be set."
+       elog
+       elog "The plugins are installed in 
${EROOT}/usr/$(get_libdir)/nagios/plugins"
+}

Reply via email to