git: 55338de6ad30 - main - net-mgmt/nrpe: Resurrect port with new version

From: Muhammad Moinur Rahman <bofh_at_FreeBSD.org>
Date: Wed, 03 May 2023 01:30:12 UTC
The branch main has been updated by bofh:

URL: https://cgit.FreeBSD.org/ports/commit/?id=55338de6ad307f8e296f41dd83ce7efa1d9918a8

commit 55338de6ad307f8e296f41dd83ce7efa1d9918a8
Author:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
AuthorDate: 2023-05-03 01:15:59 +0000
Commit:     Muhammad Moinur Rahman <bofh@FreeBSD.org>
CommitDate: 2023-05-03 01:29:51 +0000

    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).
---
 MOVED                                         |  1 -
 net-mgmt/Makefile                             |  1 +
 net-mgmt/nrpe/Makefile                        | 71 +++++++++++++++++++++++++++
 net-mgmt/nrpe/distinfo                        |  3 ++
 net-mgmt/nrpe/files/nrpe.in                   | 51 +++++++++++++++++++
 net-mgmt/nrpe/files/patch-include_common.h.in | 18 +++++++
 net-mgmt/nrpe/files/patch-src_check__nrpe.c   | 11 +++++
 net-mgmt/nrpe/files/patch-src_nrpe.c          | 11 +++++
 net-mgmt/nrpe/files/pkg-message.in            | 12 +++++
 net-mgmt/nrpe/pkg-descr                       |  7 +++
 net-mgmt/nrpe/pkg-plist                       |  4 ++
 11 files changed, 189 insertions(+), 1 deletion(-)

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%%