aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuhammad Moinur Rahman <bofh@FreeBSD.org>2023-05-03 01:15:59 +0000
committerMuhammad Moinur Rahman <bofh@FreeBSD.org>2023-05-03 01:29:51 +0000
commit55338de6ad307f8e296f41dd83ce7efa1d9918a8 (patch)
treef50e6e3a54a27f0d8da63f3cf6adaf0b20deb92c
parent1dbf979f9a182182f21da1d604bce53eab0f4769 (diff)
net-mgmt/nrpe: Resurrect port with new version
THIS WILL REPLACE net-mgmt/nrpe3 WHICH FAILS TO BUILD WITH OpenSSL 3.0.0 and later. nrpe is used to execute Nagios plugins on remote hosts and report the results to the main Nagios server. From the Nagios homepage: Allows you to execute "local" plugins (like check_disk, check_procs, etc.) on remote hosts. The check_nrpe plugin is called from Nagios and actually makes the plugin requests to the remote host. Requires that nrpe be running on the remote host (either as a standalone daemon or as a service under inetd).
-rw-r--r--MOVED1
-rw-r--r--net-mgmt/Makefile1
-rw-r--r--net-mgmt/nrpe/Makefile71
-rw-r--r--net-mgmt/nrpe/distinfo3
-rw-r--r--net-mgmt/nrpe/files/nrpe.in51
-rw-r--r--net-mgmt/nrpe/files/patch-include_common.h.in18
-rw-r--r--net-mgmt/nrpe/files/patch-src_check__nrpe.c11
-rw-r--r--net-mgmt/nrpe/files/patch-src_nrpe.c11
-rw-r--r--net-mgmt/nrpe/files/pkg-message.in12
-rw-r--r--net-mgmt/nrpe/pkg-descr7
-rw-r--r--net-mgmt/nrpe/pkg-plist4
11 files changed, 189 insertions, 1 deletions
diff --git a/MOVED b/MOVED
index 795923d2aaf7..88b2fb8ad5fe 100644
--- a/MOVED
+++ b/MOVED
@@ -4518,7 +4518,6 @@ misc/p5-Asterisk|misc/p5-asterisk-perl|2017-12-29|Rename to match upstream namin
www/npm2|www/npm|2017-12-31|Has expired: use www/npm or www/npm-node* instead
www/npm3|www/npm|2017-12-31|Has expired: use www/npm or www/npm-node* instead
net/rubygem-fog-aws0|net/rubygem-fog-aws|2017-12-31|Has expired: use net/rubygem-fog-aws or net/rubygem-fog-aws1 instead
-net-mgmt/nrpe|net-mgmt/nrpe3|2018-01-01|nrpe 2.0 not maintained, use nrpe 3.0
net-mgmt/nrpe-ssl|net-mgmt/nrpe3|2018-01-01|nrpe 2.0 not maintained, use nrpe 3.0
security/gnupg20|security/gnupg|2018-01-01|Has expired: Will reach EOL upstream on 2017-12-31
dns/dualserver|dns/dnsmasq|2018-01-01|Has expired: Please migrate to dns/dnsmasq; over the years dualserver has become unmaintainable
diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile
index d5478f146663..4a58050f10b5 100644
--- a/net-mgmt/Makefile
+++ b/net-mgmt/Makefile
@@ -206,6 +206,7 @@
SUBDIR += nfsen
SUBDIR += ng_ipacct
SUBDIR += nitpicker
+ SUBDIR += nrp3
SUBDIR += nrpe3
SUBDIR += nsca
SUBDIR += nsca-client
diff --git a/net-mgmt/nrpe/Makefile b/net-mgmt/nrpe/Makefile
new file mode 100644
index 000000000000..796f569d74e4
--- /dev/null
+++ b/net-mgmt/nrpe/Makefile
@@ -0,0 +1,71 @@
+PORTNAME= nrpe
+PORTVERSION= 4.1.0
+DISTVERSIONPREFIX= nrpe-
+CATEGORIES= net-mgmt
+
+MAINTAINER= bofh@FreeBSD.org
+COMMENT?= Nagios Remote Plugin Executor
+WWW= https://www.nagios.org/
+
+LICENSE= GPLv2+
+LICENSE_FILE= ${WRKSRC}/LICENSE.md
+
+USES= perl5
+USE_GITHUB= yes
+GH_ACCOUNT= NagiosEnterprises
+USE_PERL5= build
+USE_RC_SUBR= nrpe
+
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+=--bindir=${PREFIX}/sbin \
+ --libexecdir=${PREFIX}/libexec/nagios \
+ --sysconfdir=${PREFIX}/etc \
+ --with-nrpe-user=${NAGIOSUSER} \
+ --with-nrpe-group=${NAGIOSGROUP}
+
+SUB_FILES= pkg-message
+SUB_LIST+= PIDDIR=${NRPE_PIDDIR}
+
+USERS= ${NAGIOSUSER}
+GROUPS= ${NAGIOSGROUP}
+
+PLIST_SUB= NAGIOSUSER=${NAGIOSUSER} \
+ NAGIOSGROUP=${NAGIOSGROUP} \
+ NRPE_PIDDIR=${NRPE_PIDDIR}
+
+OPTIONS_DEFINE= SSL ARGS
+OPTIONS_DEFAULT=NAGPLUGINS SSL
+OPTIONS_RADIO= PLUGINS
+OPTIONS_RADIO_PLUGINS= MONPLUGINS NAGPLUGINS
+
+ARGS_DESC= Enable command argument processing
+MONPLUGINS_DESC=Use net-mgmt/monitoring-plugins
+NAGPLUGINS_DESC=Use net-mgmt/nagios-plugins
+
+ARGS_CONFIGURE_ENABLE= command-args
+MONPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/monitoring-plugins
+NAGPLUGINS_RUN_DEPENDS= ${LOCALBASE}/libexec/nagios/check_nagios:net-mgmt/nagios-plugins
+SSL_USES= ssl
+SSL_CONFIGURE_ENABLE= ssl
+SSL_CONFIGURE_WITH= ssl=${OPENSSLBASE} ssl-inc=${OPENSSLINC} ssl-lib=${OPENSSLLIB}
+SSL_CFLAGS= -I${OPENSSLINC}
+
+NAGIOSUSER?= nagios
+NAGIOSGROUP?= nagios
+
+NRPE_PIDDIR?= /var/run/nrpe
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/var/run/nrpe.pid|${NRPE_PIDDIR}/nrpe.pid|g' \
+ -e 's|/usr/lib/nagios/plugins/|${LOCALBASE}/libexec/nagios/|g' \
+ -e 's|/usr/bin/sudo|${LOCALBASE}/bin/sudo|g' \
+ ${WRKSRC}/sample-config/nrpe.cfg.in
+
+do-install:
+ ${INSTALL} -d ${STAGEDIR}${NRPE_PIDDIR}
+ ${INSTALL_PROGRAM} ${WRKSRC}/src/nrpe ${STAGEDIR}${PREFIX}/sbin/nrpe
+ ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/nagios
+ ${INSTALL_PROGRAM} ${WRKSRC}/src/check_nrpe ${STAGEDIR}${PREFIX}/libexec/nagios/check_nrpe
+ ${INSTALL_DATA} ${WRKSRC}/sample-config/nrpe.cfg ${STAGEDIR}${PREFIX}/etc/nrpe.cfg.sample
+
+.include <bsd.port.mk>
diff --git a/net-mgmt/nrpe/distinfo b/net-mgmt/nrpe/distinfo
new file mode 100644
index 000000000000..e18e6769b6d6
--- /dev/null
+++ b/net-mgmt/nrpe/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1683075519
+SHA256 (NagiosEnterprises-nrpe-nrpe-4.1.0_GH0.tar.gz) = 500c1845ddbb57e1df8098d107c860498dbad1ea9e4a42c2d59e8d0c19a87259
+SIZE (NagiosEnterprises-nrpe-nrpe-4.1.0_GH0.tar.gz) = 528263
diff --git a/net-mgmt/nrpe/files/nrpe.in b/net-mgmt/nrpe/files/nrpe.in
new file mode 100644
index 000000000000..50be3d8cce5f
--- /dev/null
+++ b/net-mgmt/nrpe/files/nrpe.in
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# PROVIDE: nrpe
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable nrpe:
+# nrpe_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable nrpe.
+# nrpe_flags (str): Not set by default.
+# nrpe_configfile (str): Set to "%%PREFIX%%/etc/nrpe.cfg" by default.
+
+. /etc/rc.subr
+
+name=nrpe
+rcvar=nrpe_enable
+
+load_rc_config "${name}"
+
+: ${nrpe_enable:=NO}
+: ${nrpe_configfile:=%%PREFIX%%/etc/nrpe.cfg}
+
+required_files="${nrpe_configfile}"
+
+command="%%PREFIX%%/sbin/nrpe"
+command_args="-c ${nrpe_configfile} -d"
+extra_commands=reload
+sig_reload=HUP
+
+start_precmd=nrpe_prestart
+stop_precmd=find_pidfile
+
+find_pidfile()
+{
+ [ -n "$nrpe_pidfile" ] &&
+ warn "No longer necessary to set nrpe_pidfile in rc.conf[.local]"
+
+ if get_pidfile_from_conf pid_file ${nrpe_configfile}; then
+ pidfile="$_pidfile_from_conf"
+ else
+ pidfile='%%PIDDIR%%/nrpe.pid'
+ fi
+}
+
+nrpe_prestart()
+{
+ find_pidfile
+ install -d -o ${nrpe_user:-nagios} ${pidfile%/*}
+}
+
+run_rc_command "$1"
diff --git a/net-mgmt/nrpe/files/patch-include_common.h.in b/net-mgmt/nrpe/files/patch-include_common.h.in
new file mode 100644
index 000000000000..00616801dbfc
--- /dev/null
+++ b/net-mgmt/nrpe/files/patch-include_common.h.in
@@ -0,0 +1,18 @@
+--- include/common.h.in.orig 2022-07-18 19:27:53 UTC
++++ include/common.h.in
+@@ -34,10 +34,15 @@
+ # define OPENSSL_NO_DEPRECATED
+ #endif
+ #include <@SSL_INC_PREFIX@@SSL_HDR@>
++#include <@SSL_INC_PREFIX@crypto.h>
+ # ifdef SSL_TYPE_openssl
+ # include <@SSL_INC_PREFIX@err.h>
+ # include <@SSL_INC_PREFIX@rand.h>
+ # include <@SSL_INC_PREFIX@engine.h>
++# include <@SSL_INC_PREFIX@crypto.h>
++# if defined (LIBRESSL_VERSION_NUMBER)
++# include <@SSL_INC_PREFIX@opensslfeatures.h>
++# endif
+ # endif
+ #endif
+
diff --git a/net-mgmt/nrpe/files/patch-src_check__nrpe.c b/net-mgmt/nrpe/files/patch-src_check__nrpe.c
new file mode 100644
index 000000000000..4e3fe9480fed
--- /dev/null
+++ b/net-mgmt/nrpe/files/patch-src_check__nrpe.c
@@ -0,0 +1,11 @@
+--- src/check_nrpe.c.orig 2022-07-18 19:27:53 UTC
++++ src/check_nrpe.c
+@@ -899,7 +899,7 @@ void setup_ssl()
+ exit(timeout_return_code);
+ }
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000
++#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
+
+ SSL_CTX_set_max_proto_version(ctx, 0);
+
diff --git a/net-mgmt/nrpe/files/patch-src_nrpe.c b/net-mgmt/nrpe/files/patch-src_nrpe.c
new file mode 100644
index 000000000000..912e70f7e3ea
--- /dev/null
+++ b/net-mgmt/nrpe/files/patch-src_nrpe.c
@@ -0,0 +1,11 @@
+--- src/nrpe.c.orig 2022-07-18 19:27:53 UTC
++++ src/nrpe.c
+@@ -357,7 +357,7 @@ void init_ssl(void)
+ exit(STATE_CRITICAL);
+ }
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000
++#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
+
+ SSL_CTX_set_max_proto_version(ctx, 0);
+
diff --git a/net-mgmt/nrpe/files/pkg-message.in b/net-mgmt/nrpe/files/pkg-message.in
new file mode 100644
index 000000000000..ac998ea47098
--- /dev/null
+++ b/net-mgmt/nrpe/files/pkg-message.in
@@ -0,0 +1,12 @@
+[
+{ type: install
+ message: <<EOM
+ Enable NRPE in /etc/rc.conf with the following line:
+
+ nrpe_enable="YES"
+
+ A sample configuration is available in %%PREFIX%%/etc/nrpe.cfg.sample.
+ Copy to nrpe.cfg where required and edit to suit your needs.
+EOM
+}
+]
diff --git a/net-mgmt/nrpe/pkg-descr b/net-mgmt/nrpe/pkg-descr
new file mode 100644
index 000000000000..86c0868c4833
--- /dev/null
+++ b/net-mgmt/nrpe/pkg-descr
@@ -0,0 +1,7 @@
+nrpe is used to execute Nagios plugins on remote hosts and report the results
+to the main Nagios server. From the Nagios homepage:
+
+Allows you to execute "local" plugins (like check_disk, check_procs, etc.) on
+remote hosts. The check_nrpe plugin is called from Nagios and actually makes
+the plugin requests to the remote host. Requires that nrpe be running on the
+remote host (either as a standalone daemon or as a service under inetd).
diff --git a/net-mgmt/nrpe/pkg-plist b/net-mgmt/nrpe/pkg-plist
new file mode 100644
index 000000000000..d5be1c32b002
--- /dev/null
+++ b/net-mgmt/nrpe/pkg-plist
@@ -0,0 +1,4 @@
+@sample etc/nrpe.cfg.sample
+libexec/nagios/check_nrpe
+sbin/nrpe
+@dir(%%NAGIOSUSER%%,%%NAGIOSGROUP%%,755) %%NRPE_PIDDIR%%