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).
2023Q3
Muhammad Moinur Rahman 2023-05-03 03:15:59 +02:00
parent 1dbf979f9a
commit 55338de6ad
11 changed files with 189 additions and 1 deletions

1
MOVED
View File

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

View File

@ -206,6 +206,7 @@
SUBDIR += nfsen
SUBDIR += ng_ipacct
SUBDIR += nitpicker
SUBDIR += nrp3
SUBDIR += nrpe3
SUBDIR += nsca
SUBDIR += nsca-client

71
net-mgmt/nrpe/Makefile Normal file
View File

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

3
net-mgmt/nrpe/distinfo Normal file
View File

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

View File

@ -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"

View File

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

View File

@ -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);

View File

@ -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);

View File

@ -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
}
]

7
net-mgmt/nrpe/pkg-descr Normal file
View File

@ -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).

4
net-mgmt/nrpe/pkg-plist Normal file
View File

@ -0,0 +1,4 @@
@sample etc/nrpe.cfg.sample
libexec/nagios/check_nrpe
sbin/nrpe
@dir(%%NAGIOSUSER%%,%%NAGIOSGROUP%%,755) %%NRPE_PIDDIR%%