Imported Debian patch 3.0.1-3
This commit is contained in:
commit
9a2dafa86c
41
.gitignore
vendored
Normal file
41
.gitignore
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Makefile
|
||||||
|
config.log
|
||||||
|
config.status
|
||||||
|
include/config.h
|
||||||
|
include/common.h
|
||||||
|
include/dh.h
|
||||||
|
nrpe.spec
|
||||||
|
paths
|
||||||
|
uninstall
|
||||||
|
.cproject
|
||||||
|
.project
|
||||||
|
nrpe.cbp
|
||||||
|
nrpe.layout
|
||||||
|
package/solaris/Makefile
|
||||||
|
sample-config/nrpe.cfg
|
||||||
|
src/Makefile
|
||||||
|
src/check_nrpe
|
||||||
|
src/nrpe
|
||||||
|
autom4te.cache/
|
||||||
|
nbproject/
|
||||||
|
.settings/
|
||||||
|
startup/bsd-init
|
||||||
|
startup/debian-init
|
||||||
|
startup/default-inetd
|
||||||
|
startup/default-init
|
||||||
|
startup/default-service
|
||||||
|
startup/default-socket
|
||||||
|
startup/default-socket-svc
|
||||||
|
startup/default-xinetd
|
||||||
|
startup/mac-init.plist
|
||||||
|
startup/mac-inetd.plist
|
||||||
|
startup/newbsd-init
|
||||||
|
startup/openbsd-init
|
||||||
|
startup/openrc-conf
|
||||||
|
startup/openrc-init
|
||||||
|
startup/rh-upstart-init
|
||||||
|
startup/solaris-inetd.xml
|
||||||
|
startup/solaris-init.xml
|
||||||
|
startup/tmpfile.conf
|
||||||
|
startup/upstart-init
|
||||||
|
|
76
Changelog
76
Changelog
@ -2,11 +2,83 @@
|
|||||||
NRPE Changelog
|
NRPE Changelog
|
||||||
**************
|
**************
|
||||||
|
|
||||||
|
3.0.1 - 2016-09-08
|
||||||
|
------------------
|
||||||
|
FIXES
|
||||||
|
- _set_rc: command not found reported by init script (John Frickson)
|
||||||
|
- Version string contains name (John Frickson)
|
||||||
|
- Changes to get 'rpmbuild' to work - nrpe.spec file outdated (John Frickson)
|
||||||
|
- typo in startup/default-xinetd.in (Philippe Kueck)
|
||||||
|
- debug output missing command name (Philippe Kueck)
|
||||||
|
- /usr/lib/tmpfiles.d/ndo2db.conf should have 'd' type, not 'D' (John Frickson)
|
||||||
|
- Fixes in parse_allowed_hosts() and called functions (Jobst Schmalenbach / John Frickson)
|
||||||
|
- nrpe.cfg: 'debug' statement needs to be first in file (Jobst Schmalenbach / John Frickson)
|
||||||
|
|
||||||
|
|
||||||
|
3.0 - 2016-08-01
|
||||||
|
-----------------
|
||||||
|
SECURITY
|
||||||
|
- Fix for CVE-2014-2913
|
||||||
|
- Added function to clean the environment before forking. (John Frickson)
|
||||||
|
|
||||||
|
ENHANCEMENTS
|
||||||
|
- Added support for optional config file to check_nrpe. With the new SSL
|
||||||
|
parameters, the line was getting long. The config file is specified with
|
||||||
|
--config-file=<path> or -f <path> parameters. The config file must look
|
||||||
|
like command line options, but the options can be on separate lines. It
|
||||||
|
MUST NOT include --config-file (-f), --command (-c) or --args (-a). If any
|
||||||
|
options are in both the config file and on the command line, the command line
|
||||||
|
options are used.
|
||||||
|
- make can now add users and groups using "make install-groups-users" (John Frickson)
|
||||||
|
- Added "nrpe-uninstall" script to the same directory nrpe get installed to (John Frickson)
|
||||||
|
- Updated code so configure && make will work on AIX, HP-UX, Solaris, OS X.
|
||||||
|
There should be no errors or warnings. Let me know if any errors or
|
||||||
|
warning appear (John Frickson)
|
||||||
|
- Added command-line option to prevent forking, since some of the init
|
||||||
|
replacements (such as systemd, etc.) don't want daemons to fork (John Frickson)
|
||||||
|
- Added autoconf macros and additional files to better support multi-platform
|
||||||
|
config and compile. The default will still set up to install to
|
||||||
|
/usr/local/nagios but I added a new configure option:
|
||||||
|
'--enable-install-method=<method>'. If <method> is 'opt', everything will
|
||||||
|
install to '/opt/nagios'. If <method> is 'os', installation will be to O/S-
|
||||||
|
and distribution-specific locations, such as /usr/sbin, /usr/lib/nagios,
|
||||||
|
/etc/nagios, and so on.
|
||||||
|
- Added additional init and inetd config files to support more systems,
|
||||||
|
including SuSE, Debian, Slackware, Gentoo, *BSD, AIX, HP-UX, Solaris, OS X.
|
||||||
|
- Added listen_queue_size as configuration option (Vadim Antipov, Kaspersky Lab)
|
||||||
|
- Reworked SSL/TLS. See the README.SSL.md file for full info. (John Frickson)
|
||||||
|
- Added support for version 3 variable sized packets up to 64KB. nrpe will
|
||||||
|
accept either version from check_nrpe. check_nrpe will try to send a
|
||||||
|
version 3 packet first, and fall back to version 2. check_nrpe can be forced
|
||||||
|
to only send version 2 packets if the switch `-2` is used. (John Frickson)
|
||||||
|
- Added extended timeout syntax in the -t <secs>:<status> format. (ABrist)
|
||||||
|
|
||||||
|
FIXES
|
||||||
|
- Fixed configure to check more places for SSL headers/libs. (John Frickson)
|
||||||
|
- Added ifdefs for complete_SSL_shutdown to compile without SSL. (Matthew L. Daniel)
|
||||||
|
- Renamed configure.in to configure.ac and added check for sigaction (John Frickson)
|
||||||
|
- Replaced all instances of signal() with sigaction() + blocking (John Frickson)
|
||||||
|
- check_nrpe does not parse passed arguments correctly (John Frickson)
|
||||||
|
- NRPE should not start if cannot write pid file (John Frickson)
|
||||||
|
- Fixed out-of-bounds error (return code 255) for some failures (John Frickson)
|
||||||
|
- Connection Timeout and Connection Refused messages need a new line (Andrew Widdersheim)
|
||||||
|
- allowed_hosts doesn't work, if one of the hostnames can't be resolved by dns (John Frickson)
|
||||||
|
- allowed_hosts doesn't work with a hostname resolving to an IPv6 address (John Frickson)
|
||||||
|
- Return UNKNOWN when issues occur (Andrew Widdersheim)
|
||||||
|
- NRPE returns OK if check can't be executed (Andrew Widdersheim)
|
||||||
|
- nrpe 2.15 [regression in Added SRC support on AIX - 2.14] (frphoebus)
|
||||||
|
- compile nrpe - Solaris 9 doesn't have isblank() (lilo, John Frickson)
|
||||||
|
- sample configuration for check_load has crazy sample load avg (ernestoongaro)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.15 - 09/06/2013
|
2.15 - 09/06/2013
|
||||||
-----------------
|
-----------------
|
||||||
- Now compiles on HP-UX (Grant Byers)
|
- Now compiles on HP-UX (Grant Byers)
|
||||||
- Added support for IPv6 (Leo Baltus, Eric Stanley)
|
- Added support for IPv6 (Leo Baltus, Eric Stanley)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.14 - 12/21/2012
|
2.14 - 12/21/2012
|
||||||
-----------------
|
-----------------
|
||||||
- Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley)
|
- Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley)
|
||||||
@ -15,6 +87,8 @@ NRPE Changelog
|
|||||||
- Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley)
|
- Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley)
|
||||||
- Updated logging to support compiling on AIX (Eric Stanley)
|
- Updated logging to support compiling on AIX (Eric Stanley)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.13 - 11/11/2011
|
2.13 - 11/11/2011
|
||||||
-----------------
|
-----------------
|
||||||
- Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov)
|
- Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov)
|
||||||
@ -22,6 +96,7 @@ NRPE Changelog
|
|||||||
- Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton)
|
- Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.12 - 03/10/2008
|
2.12 - 03/10/2008
|
||||||
-----------------
|
-----------------
|
||||||
- Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki)
|
- Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki)
|
||||||
@ -35,6 +110,7 @@ NRPE Changelog
|
|||||||
- Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki)
|
- Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.10 - 10/19/2007
|
2.10 - 10/19/2007
|
||||||
-----------------
|
-----------------
|
||||||
- Moved PDF docs to docs/ subdirectory, added OpenOffice source document
|
- Moved PDF docs to docs/ subdirectory, added OpenOffice source document
|
||||||
|
186
Makefile.in
186
Makefile.in
@ -9,77 +9,187 @@
|
|||||||
SRC_BASE=./src/
|
SRC_BASE=./src/
|
||||||
SRC_INCLUDE=./include/
|
SRC_INCLUDE=./include/
|
||||||
|
|
||||||
|
# Mainly used for rpmbuild
|
||||||
|
# DESTDIR=
|
||||||
|
|
||||||
CC=@CC@
|
CC=@CC@
|
||||||
CFLAGS=@CFLAGS@ @DEFS@
|
CFLAGS=@CFLAGS@ @DEFS@
|
||||||
LDFLAGS=@LDFLAGS@ @LIBS@
|
LDFLAGS=@LDFLAGS@ @LIBS@
|
||||||
|
|
||||||
prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
CFGDIR=@sysconfdir@
|
|
||||||
BINDIR=@bindir@
|
|
||||||
SBINDIR=@sbindir@
|
|
||||||
LIBEXECDIR=@libexecdir@
|
|
||||||
INSTALL=@INSTALL@
|
INSTALL=@INSTALL@
|
||||||
|
GREP=@GREP@
|
||||||
|
EGREP=@EGREP@
|
||||||
|
|
||||||
|
prefix=$(DESTDIR)@prefix@
|
||||||
|
exec_prefix=$(DESTDIR)@exec_prefix@
|
||||||
|
CFGDIR=$(DESTDIR)@pkgsysconfdir@
|
||||||
|
BINDIR=$(DESTDIR)@bindir@
|
||||||
|
SBINDIR=$(DESTDIR)@sbindir@
|
||||||
|
LIBEXECDIR=$(DESTDIR)@libexecdir@
|
||||||
NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@
|
NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@
|
||||||
NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@
|
NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@
|
||||||
|
OPSYS=@opsys@
|
||||||
|
DIST=@dist_type@
|
||||||
|
NRPE_USER=@nrpe_user@
|
||||||
|
NRPE_GROUP=@nrpe_group@
|
||||||
|
NAGIOS_USER=@nagios_user@
|
||||||
|
NAGIOS_GROUP=@nagios_group@
|
||||||
|
|
||||||
INIT_DIR=@init_dir@
|
INIT_TYPE=@init_type@
|
||||||
|
INIT_DIR=$(DESTDIR)@initdir@
|
||||||
INIT_OPTS=-o root -g root
|
INIT_OPTS=-o root -g root
|
||||||
|
INIT_FILE=@initname@
|
||||||
|
INETD_TYPE=@inetd_type@
|
||||||
|
INETD_DIR=$(DESTDIR)@inetddir@
|
||||||
|
INETD_FILE=@inetdname@
|
||||||
|
SRC_INETD=@src_inetd@
|
||||||
|
SRC_INIT=@src_init@
|
||||||
|
|
||||||
|
|
||||||
|
default:
|
||||||
|
@echo;\
|
||||||
|
echo Please enter 'make [option]' where [option] is one of:;\
|
||||||
|
echo;\
|
||||||
|
echo " all builds nrpe and check_nrpe";\
|
||||||
|
echo " nrpe builds nrpe only";\
|
||||||
|
echo " check_nrpe builds check_nrpe only";\
|
||||||
|
echo " install-groups-users add the users and groups if they do not exist";\
|
||||||
|
echo " install install nrpe and check_nrpe";\
|
||||||
|
echo " install-plugin install the check_nrpe plugin";\
|
||||||
|
echo " install-daemon install the nrpe daemon";\
|
||||||
|
echo " install-config install the nrpe configuration file";\
|
||||||
|
echo " install-inetd install the startup files for inetd, launchd, etc.";\
|
||||||
|
echo " install-init install the startup files for init, systemd, etc.";\
|
||||||
|
echo
|
||||||
|
|
||||||
all:
|
all:
|
||||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
cd $(SRC_BASE); $(MAKE)
|
||||||
|
|
||||||
|
@echo "";\
|
||||||
|
echo "*** Compile finished ***";\
|
||||||
|
echo "";\
|
||||||
|
echo "You can now continue with the installation or upgrade process.";\
|
||||||
|
echo "";\
|
||||||
|
echo "Read the PDF documentation (NRPE.pdf) for information on the next";\
|
||||||
|
echo "steps you should take to complete the installation or upgrade.";\
|
||||||
|
echo ""
|
||||||
|
|
||||||
@echo ""
|
|
||||||
@echo "*** Compile finished ***"
|
|
||||||
@echo ""
|
|
||||||
@echo "If the NRPE daemon and client compiled without any errors, you"
|
|
||||||
@echo "can continue with the installation or upgrade process."
|
|
||||||
@echo ""
|
|
||||||
@echo "Read the PDF documentation (NRPE.pdf) for information on the next"
|
|
||||||
@echo "steps you should take to complete the installation or upgrade."
|
|
||||||
@echo ""
|
|
||||||
nrpe:
|
nrpe:
|
||||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
cd $(SRC_BASE); $(MAKE)
|
||||||
|
|
||||||
check_nrpe:
|
check_nrpe:
|
||||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
cd $(SRC_BASE); $(MAKE)
|
||||||
|
|
||||||
|
|
||||||
install-plugin:
|
install-plugin:
|
||||||
cd $(SRC_BASE) && $(MAKE) $@
|
cd $(SRC_BASE); $(MAKE) $@
|
||||||
|
|
||||||
install-daemon:
|
install-daemon:
|
||||||
cd $(SRC_BASE) && $(MAKE) $@
|
cd $(SRC_BASE); $(MAKE) $@
|
||||||
|
|
||||||
install:
|
install:
|
||||||
cd $(SRC_BASE) && $(MAKE) $@
|
cd $(SRC_BASE); $(MAKE) $@
|
||||||
|
|
||||||
install-xinetd:
|
install-init:
|
||||||
$(INSTALL) -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
|
@if test $(SRC_INIT) = unknown; then \
|
||||||
|
echo No init file to install; \
|
||||||
install-daemon-config:
|
exit 1; \
|
||||||
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(CFGDIR)
|
fi
|
||||||
$(INSTALL) -m 644 $(NRPE_INSTALL_OPTS) sample-config/nrpe.cfg $(DESTDIR)$(CFGDIR)
|
@if test $(INIT_TYPE) = upstart; then\
|
||||||
|
echo $(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
solaris-package:
|
$(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
@if [ `uname -s` != "SunOS" ] ; then \
|
echo initctl reload-configuration; \
|
||||||
echo "It is recommended you be running on Solaris to build a Solaris package"; \
|
initctl reload-configuration; \
|
||||||
|
elif test $(INIT_TYPE) = systemd; then\
|
||||||
|
echo $(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
$(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
elif test $(INIT_TYPE) = smf10 -o $(INIT_TYPE) = smf11; then \
|
||||||
|
echo $(INSTALL) -m 775 -g sys -d $(INIT_DIR);\
|
||||||
|
$(INSTALL) -m 775 -g sys -d $(INIT_DIR);\
|
||||||
|
echo $(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
$(INSTALL) -m 644 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
echo svccfg import $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
svccfg import $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
echo "*** Run 'svcadm enable nrpe' to start it"; \
|
||||||
else\
|
else\
|
||||||
cd package/solaris; $(MAKE) build ; $(MAKE) pkg ; cd ../..; \
|
echo $(INSTALL) -m 755 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
$(INSTALL) -m 755 startup/$(SRC_INIT) $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
if test $(INIT_TYPE) = newbsd; then\
|
||||||
|
if test $(DIST) = openbsd; then\
|
||||||
|
echo "# nrpe@bsd_enable@=NO" >> /etc/rc.conf;\
|
||||||
|
echo "nrpe@bsd_enable@=\"-d -c $(CFGDIR)/nrpe.cfg\"" >> /etc/rc.conf;\
|
||||||
|
echo "Make sure to enable the nrpe daemon";\
|
||||||
|
else\
|
||||||
|
echo "nrpe@bsd_enable@=YES" >> /etc/rc.conf;\
|
||||||
|
echo "nrpe_configfile=$(CFGDIR)/nrpe.cfg" >> /etc/rc.conf;\
|
||||||
|
fi;\
|
||||||
|
elif test $(INIT_TYPE) = launchd; then\
|
||||||
|
launchctl load $(INIT_DIR)/$(INIT_FILE); \
|
||||||
|
else\
|
||||||
|
if test -f /sbin/chkconfig ; then \
|
||||||
|
/sbin/chkconfig nrpe on;\
|
||||||
|
else\
|
||||||
|
echo "Make sure to enable the nrpe daemon";\
|
||||||
|
fi;\
|
||||||
|
fi;\
|
||||||
|
fi
|
||||||
|
|
||||||
|
install-inetd:
|
||||||
|
@if test $(SRC_INETD) = unknown; then \
|
||||||
|
echo No inetd file to install; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@if test $(INETD_TYPE) = inetd; then \
|
||||||
|
$(EGREP) -q "^\W*nrpe\s+" $(INETD_DIR)/$(INETD_FILE) 2>/dev/null || \
|
||||||
|
cat startup/$(SRC_INETD) >> $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
elif test $(INETD_TYPE) = systemd; then \
|
||||||
|
SRC_INETD_FILE=`echo "$(SRC_INETD)" | sed -e 's/socket/socket-svc/'`; \
|
||||||
|
echo $(INSTALL) -m 644 startup/$$SRC_INETD_FILE $(INETD_DIR)/$(INIT_FILE); \
|
||||||
|
$(INSTALL) -m 644 startup/$$SRC_INETD_FILE $(INETD_DIR)/$(INIT_FILE); \
|
||||||
|
elif test $(INETD_TYPE) = smf10 -o $(INETD_TYPE) = smf11; then \
|
||||||
|
echo $(INSTALL) -m 775 -g sys -d $(INETD_DIR);\
|
||||||
|
$(INSTALL) -m 775 -g sys -d $(INETD_DIR);\
|
||||||
|
echo $(INSTALL) -m 644 startup/$(SRC_INETD) $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
$(INSTALL) -m 644 startup/$(SRC_INETD) $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
$(INSTALL) -m 775 -d $(INETD_DIR);\
|
||||||
|
echo svccfg import $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
svccfg import $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
echo "*** Run 'svcadm enable nrpe' to start it"; \
|
||||||
|
elif test $(INIT_TYPE) = launchd; then\
|
||||||
|
$(INSTALL) -m 644 startup/$(SRC_INETD) $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
launchctl load $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
else\
|
||||||
|
echo $(INSTALL) -m 644 startup/$(SRC_INETD) $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
$(INSTALL) -m 644 startup/$(SRC_INETD) $(INETD_DIR)/$(INETD_FILE); \
|
||||||
|
fi
|
||||||
|
@$(EGREP) -q "^nrpe[\t ]+@nrpe_port@/tcp" /etc/services || \
|
||||||
|
echo "***** MAKE SURE 'nrpe @nrpe_port@/tcp' IS IN YOUR /etc/services FILE"
|
||||||
|
|
||||||
|
install-config:
|
||||||
|
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(CFGDIR)
|
||||||
|
$(INSTALL) -m 644 $(NRPE_INSTALL_OPTS) sample-config/nrpe.cfg $(CFGDIR)
|
||||||
|
|
||||||
|
install-groups-users:
|
||||||
|
@macros/add_group_user $(DIST) $(NAGIOS_USER) $(NAGIOS_GROUP)
|
||||||
|
@if test "$(NAGIOS_USER)" != "$(NRPE_USER)" -o "$(NAGIOS_GROUP)" != "$(NRPE_GROUP)"; then\
|
||||||
|
macros/add_group_user $(DIST) $(NRPE_USER) $(NRPE_GROUP);\
|
||||||
fi
|
fi
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
cd $(SRC_BASE); $(MAKE) $@; cd ..
|
cd $(SRC_BASE); $(MAKE) $@; cd ..
|
||||||
cd package/solaris; $(MAKE) $@ ; cd ../..
|
|
||||||
rm -f core
|
rm -f core
|
||||||
rm -f *~ */*~
|
rm -f *~ */*~
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
cd $(SRC_BASE); $(MAKE) $@; cd ..
|
cd $(SRC_BASE); $(MAKE) $@; cd ..
|
||||||
cd package/solaris; $(MAKE) $@ ; cd ../..
|
rm -rf autom4te.cache
|
||||||
rm -f config.log config.status config.cache nrpe.cfg nrpe.xinetd subst $(SRC_INCLUDE)/config.h init-script init-script.debian init-script.freebsd init-script.suse
|
rm -f config.log config.status config.cache sample-config/nrpe.cfg $(SRC_INCLUDE)/config.h
|
||||||
rm -f sample-config/*.cfg sample-config/*.xinetd
|
rm -f startup/bsd-init startup/debian-init startup/default-init startup/default-inetd
|
||||||
|
rm -f startup/default-service startup/default-socket startup/default-socket-svc
|
||||||
|
rm -f startup/default-xinetd startup/mac-init.plist startup/mac-inetd.plist
|
||||||
|
rm -f startup/newbsd-init startup/openbsd-init startup/openrc-conf
|
||||||
|
rm -f startup/openrc-init startup/rh-upstart-init startup/solaris-init.xml
|
||||||
|
rm -f startup/solaris-inetd.xml startup/tmpfile.conf startup/upstart-init
|
||||||
|
rm -f nrpe.spec uninstall include/common.h
|
||||||
rm -f Makefile
|
rm -f Makefile
|
||||||
|
|
||||||
devclean: distclean
|
devclean: distclean
|
||||||
|
234
README
234
README
@ -1,234 +0,0 @@
|
|||||||
-----------
|
|
||||||
NRPE README
|
|
||||||
-----------
|
|
||||||
|
|
||||||
|
|
||||||
** UPDATED DOCUMENTATION!
|
|
||||||
|
|
||||||
For installation instructions and information on the design overview
|
|
||||||
of the NRPE addon, please read the PDF documentation that is found in
|
|
||||||
this directory: NRPE.pdf
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Purpose
|
|
||||||
-------
|
|
||||||
The purpose of this addon is to allow you to execute Nagios
|
|
||||||
plugins on a remote host in as transparent a manner as possible.
|
|
||||||
|
|
||||||
|
|
||||||
Contents
|
|
||||||
--------
|
|
||||||
|
|
||||||
There are two pieces to this addon:
|
|
||||||
|
|
||||||
1) NRPE - This program runs as a background process on the
|
|
||||||
remote host and processes command execution requests
|
|
||||||
from the check_nrpe plugin on the Nagios host.
|
|
||||||
Upon receiving a plugin request from an authorized
|
|
||||||
host, it will execute the command line associated
|
|
||||||
with the command name it received and send the
|
|
||||||
program output and return code back to the
|
|
||||||
check_nrpe plugin
|
|
||||||
|
|
||||||
2) check_nrpe - This is a plugin that is run on the Nagios host
|
|
||||||
and is used to contact the NRPE process on remote
|
|
||||||
hosts. The plugin requests that a plugin be
|
|
||||||
executed on the remote host and wait for the NRPE
|
|
||||||
process to execute the plugin and return the result.
|
|
||||||
The plugin then uses the output and return code
|
|
||||||
from the plugin execution on the remote host for
|
|
||||||
its own output and return code.
|
|
||||||
|
|
||||||
|
|
||||||
Compiling
|
|
||||||
---------
|
|
||||||
|
|
||||||
The code is very basic and may not work on your particular
|
|
||||||
system without some tweaking. I just haven't put a lot of effort
|
|
||||||
into this addond. Most Linux users should be able to compile
|
|
||||||
NRPE and the check_nrpe plugin with the following commands...
|
|
||||||
|
|
||||||
./configure
|
|
||||||
make all
|
|
||||||
|
|
||||||
The binaries will be located in the src/ directory after you
|
|
||||||
run 'make all' and will have to be installed manually somewhere
|
|
||||||
on your system.
|
|
||||||
|
|
||||||
|
|
||||||
NOTE: Since the check_nrpe plugin and nrpe daemon run on different
|
|
||||||
machines (the plugin runs on the Nagios host and the daemon
|
|
||||||
runs on the remote host), you will have to compile the nrpe
|
|
||||||
daemon on the target machine.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Installing
|
|
||||||
----------
|
|
||||||
|
|
||||||
The check_nrpe plugin should be placed on the Nagios host along
|
|
||||||
with your other plugins. In most cases, this will be in the
|
|
||||||
/usr/local/nagios/libexec directory.
|
|
||||||
|
|
||||||
The nrpe program and the configuration file (nrpe.cfg) should
|
|
||||||
be placed somewhere on the remote host. Note that you will also
|
|
||||||
have to install some plugins on the remote host if you want to
|
|
||||||
make much use of this addon.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Configuring
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Sample config files for the NRPE daemon are located in the
|
|
||||||
sample-config/ subdirectory.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Running Under INETD or XINETD
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
If you plan on running nrpe under inetd or xinetd and making use
|
|
||||||
of TCP wrappers, you need to do the following things:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1) Add a line to your /etc/services file as follows (modify the port
|
|
||||||
number as you see fit)
|
|
||||||
|
|
||||||
nrpe 5666/tcp # NRPE
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2) Add entries for the NRPE daemon to either your inetd or xinetd
|
|
||||||
configuration files. Which one your use will depend on which
|
|
||||||
superserver is installed on your system. Both methods are described
|
|
||||||
below. NOTE: If you run nrpe under inetd or xinetd, the server_port
|
|
||||||
and allowed_hosts variables in the nrpe configuration file are
|
|
||||||
ignored.
|
|
||||||
|
|
||||||
|
|
||||||
***** INETD *****
|
|
||||||
If your system uses the inetd superserver WITH tcpwrappers, add an
|
|
||||||
entry to /etc/inetd.conf as follows:
|
|
||||||
|
|
||||||
nrpe stream tcp nowait <user> /usr/sbin/tcpd <nrpebin> -c <nrpecfg> --inetd
|
|
||||||
|
|
||||||
If your system uses the inetd superserver WITHOUT tcpwrappers, add an
|
|
||||||
entry to /etc/inetd.conf as follows:
|
|
||||||
|
|
||||||
nrpe stream tcp nowait <user> <nrpebin> -c <nrpecfg> --inetd
|
|
||||||
|
|
||||||
|
|
||||||
- Replace <user> with the name of the user that the nrpe server should run as.
|
|
||||||
Example: nagios
|
|
||||||
- Replace <nrpebin> with the path to the nrpe binary on your system.
|
|
||||||
Example: /usr/local/nagios/nrpe
|
|
||||||
- Replace <nrpecfg> with the path to the nrpe config file on your system.
|
|
||||||
Example: /usr/local/nagios/nrpe.cfg
|
|
||||||
|
|
||||||
|
|
||||||
***** XINETD *****
|
|
||||||
If your system uses xinetd instead of inetd, you'll probably
|
|
||||||
want to create a file called 'nrpe' in your /etc/xinetd.d
|
|
||||||
directory that contains the following entries:
|
|
||||||
|
|
||||||
|
|
||||||
# default: on
|
|
||||||
# description: NRPE
|
|
||||||
service nrpe
|
|
||||||
{
|
|
||||||
flags = REUSE
|
|
||||||
socket_type = stream
|
|
||||||
wait = no
|
|
||||||
user = <user>
|
|
||||||
server = <nrpebin>
|
|
||||||
server_args = -c <nrpecfg> --inetd
|
|
||||||
log_on_failure += USERID
|
|
||||||
disable = no
|
|
||||||
only_from = <ipaddress1> <ipaddress2> ...
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
- Replace <user> with the name of the user that the nrpe server should run as.
|
|
||||||
- Replace <nrpebin> with the path to the nrpe binary on your system.
|
|
||||||
- Replace <nrpecfg> with the path to the nrpe config file on your system.
|
|
||||||
- Replace the <ipaddress> fields with the IP addresses of hosts which
|
|
||||||
are allowed to connect to the NRPE daemon. This only works if xinetd was
|
|
||||||
compiled with support for tcpwrappers.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3) Restart inetd or xinetd will the following command (pick the
|
|
||||||
on that is appropriate for your system:
|
|
||||||
|
|
||||||
/etc/rc.d/init.d/inet restart
|
|
||||||
|
|
||||||
/etc/rc.d/init.d/xinetd restart
|
|
||||||
|
|
||||||
OpenBSD users can use the following command to restart inetd:
|
|
||||||
|
|
||||||
kill -HUP `cat /var/run/inet.pid`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
4) Add entries to your /etc/hosts.allow and /etc/hosts.deny
|
|
||||||
file to enable TCP wrapper protection for the nrpe service.
|
|
||||||
This is optional, although highly recommended.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Configuring Things On The Nagios Host
|
|
||||||
---------------------------------------
|
|
||||||
|
|
||||||
Examples for configuring the nrpe daemon are found in the sample
|
|
||||||
nrpe.cfg file included in this distribution. That config file
|
|
||||||
resides on the remote host(s) along with the nrpe daemon. The
|
|
||||||
check_nrpe plugin gets installed on the Nagios host. In order
|
|
||||||
to use the check_nrpe plugin from within Nagios, you'll have
|
|
||||||
to define a few things in the host config file. An example
|
|
||||||
command definition for the check_nrpe plugin would look like this:
|
|
||||||
|
|
||||||
define command{
|
|
||||||
command_name check_nrpe
|
|
||||||
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
|
||||||
}
|
|
||||||
|
|
||||||
In any service definitions that use the nrpe plugin/daemon to
|
|
||||||
get their results, you would set the service check command portion
|
|
||||||
of the definition to something like this (sample service definition
|
|
||||||
is simplified for this example):
|
|
||||||
|
|
||||||
define service{
|
|
||||||
host_name someremotehost
|
|
||||||
service_description someremoteservice
|
|
||||||
check_command check_nrpe!yourcommand
|
|
||||||
... etc ...
|
|
||||||
}
|
|
||||||
|
|
||||||
where "yourcommand" is a name of a command that you define in
|
|
||||||
your nrpe.cfg file on the remote host (see the docs in the
|
|
||||||
sample nrpe.cfg file for more information).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Questions?
|
|
||||||
----------
|
|
||||||
|
|
||||||
If you have questions about this addon, or problems getting things
|
|
||||||
working, first try searching the nagios-users mailing list archives.
|
|
||||||
Details on searching the list archives can be found at
|
|
||||||
http://www.nagios.org
|
|
||||||
|
|
||||||
If all else fails, you can email me and I'll try and respond as
|
|
||||||
soon as I get a chance.
|
|
||||||
|
|
||||||
-- Ethan Galstad (nagios@nagios.org)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
34
README.SSL
34
README.SSL
@ -1,34 +0,0 @@
|
|||||||
NRPE With SSL/TLS
|
|
||||||
|
|
||||||
NRPE now has the option for Encrypting Network traffic using
|
|
||||||
SSL/TLS from openssl.
|
|
||||||
|
|
||||||
The Encryption is done using a set encryption routine of
|
|
||||||
AES-256 Bit Encryption using SHA and Anon-DH. This encrypts
|
|
||||||
all traffic using the NRPE sockets from the client to the server.
|
|
||||||
|
|
||||||
Since we are using Anon-DH this allows for an encrypted
|
|
||||||
SSL/TLS Connection without using pre-generated keys or
|
|
||||||
certificates. The key generation information used by the
|
|
||||||
program to dynaically create keys on daemon startup can be found
|
|
||||||
in the dh.h file in the nrpe src directory. This file was created
|
|
||||||
using the command:
|
|
||||||
|
|
||||||
openssl dhparam -C 512
|
|
||||||
|
|
||||||
which outputs the C code in dh.h. For your own security you can replace
|
|
||||||
that file with your own dhparam generated code.
|
|
||||||
|
|
||||||
As of this time you will need to have the latest greatest version of
|
|
||||||
OpenSSL (tested against version 0.9.7a) since not all versions have
|
|
||||||
the AES algorythm in them.
|
|
||||||
|
|
||||||
I am not aware that at this time this code is restricted under export
|
|
||||||
restrictions but I leave that verification process up to you.
|
|
||||||
|
|
||||||
Thoughts and suggestions are welcome and I can be reached on the
|
|
||||||
Nagios and NagiosPlug Mailing Lists.
|
|
||||||
|
|
||||||
- Derrick
|
|
||||||
|
|
||||||
|
|
283
README.SSL.md
Normal file
283
README.SSL.md
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
NRPE With SSL/TLS
|
||||||
|
=================
|
||||||
|
|
||||||
|
##Contents
|
||||||
|
1. [Introduction](#intro)
|
||||||
|
2. [NRPE Changes](#nrpe)
|
||||||
|
3. [check_nrpe Changes](#chk)
|
||||||
|
4. [Certificate Generation Example](#xmp)
|
||||||
|
|
||||||
|
<a id=intro></a>
|
||||||
|
|
||||||
|
------------
|
||||||
|
###Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
NRPE has had basic support for SSL/TLS for some time now, but it was
|
||||||
|
severely lacking. It only allowed anonymous Diffie Hellman (ADH) key
|
||||||
|
exchange, it used a fixed 512-bit key (generated at `./configure`
|
||||||
|
time and extremely insecure) and originally allowed SSLv2. In 2004,
|
||||||
|
SSLv2 and SSLv3 support was disabled.
|
||||||
|
|
||||||
|
nrpe and check_nrpe have been updated to offer much more secure
|
||||||
|
encryption and more options. And the updates are done in a backward-
|
||||||
|
compatible way, allowing you to migrate to the newer versions
|
||||||
|
without having to do it all at once, and possibly miss updating some
|
||||||
|
machines, causing lost reporting.
|
||||||
|
|
||||||
|
<a id=nrpe></a>
|
||||||
|
|
||||||
|
------------------------------------------
|
||||||
|
###CHANGES IN THE CURRENT VERSION OF NRPE
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
Running `./configure` will now create a 2048-bit DH key instead
|
||||||
|
of the old 512-bit key. The most current versions of openSSL will
|
||||||
|
still not allow it. In my testing, openSSL 1.0.1e allowed DH keys
|
||||||
|
of 512 bits, and 1.0.1k would not allow 2048 bit keys. In addition
|
||||||
|
we now call `SSL_CTX_set_options(ctx, SSL_OP_SINGLE_DH_USE)` so a
|
||||||
|
new key is generated on each connection, based on the 2048-bit
|
||||||
|
key generated.
|
||||||
|
|
||||||
|
The NRPE configuration file has added new SSL/TLS options. The
|
||||||
|
defaults currently will allow old check_nrpe plugins to continue to
|
||||||
|
connect to the nrpe daemon, but can report on "old style"
|
||||||
|
connections, or enforce more secure communication as your migration
|
||||||
|
progresses. The new options are in the "SSL/TLS OPTIONS" section of
|
||||||
|
nrpe.cfg, about two-thirds of the way down.
|
||||||
|
|
||||||
|
If you are upgrading NRPE from a prior version, you can run the
|
||||||
|
`update-cfg.pl` script to add the new parameters to your nrpe.cfg.
|
||||||
|
|
||||||
|
The `ssl_version` directive lets you set which versions of SSL/TLS
|
||||||
|
you want to allow. SSLv2, SSLv3, TLSv1, TLSv1.1 and TLSv1.2 are
|
||||||
|
allowed, or those litereals with a `+` after them (as in TLSv1.1+).
|
||||||
|
Without the `+`, that version _only_ will be used. With the `+`,
|
||||||
|
that version _or above_ will be used. openSSL will always negotiate
|
||||||
|
the highest available allowed version available on both ends. This
|
||||||
|
directive currently defaults to `TLSv1+`.
|
||||||
|
|
||||||
|
The `ssl_use_adh` directive is **DEPRECATED**, even though it is new.
|
||||||
|
Possible values are `0` to not allow ADH at all, `1` to allow ADH,
|
||||||
|
and `2` to require ADH. The `2` should never be required, but it's
|
||||||
|
there just in case it's needed, for whatever reason. `1` is currently
|
||||||
|
the default, which allows older check_nrpe plugins to connect using
|
||||||
|
ADH. When all the plugins are migrated to the newer version, it
|
||||||
|
should be set to `0`. In an upcoming version of NRPE, ADH will no
|
||||||
|
longer be allowed at all. Note that if you use a `2` here, NRPE will
|
||||||
|
override any `ssl_cipher_list` entries (below) to *only* allow ADH.
|
||||||
|
|
||||||
|
The `ssl_cipher_list` directive lets you specify which ciphers you
|
||||||
|
want to allow. It currently defaults to `ALL:!MD5:@STRENGTH` but can
|
||||||
|
take any value allowed by openSSL. In an upcoming version of NRPE, it
|
||||||
|
will be changed to something more secure, something like
|
||||||
|
`ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH`. Note that
|
||||||
|
if you have `ssl_use_adh=2`, this string will be overridden with
|
||||||
|
`ADH` which only only allow ADH.
|
||||||
|
|
||||||
|
The `ssl_cacert_file`, `ssl_cert_file` and `ssl_privatekey_file`
|
||||||
|
directives are used to specify which *.pem files are to be used for
|
||||||
|
Public-Key Encryption (PKE). Setting these will allow clients to use
|
||||||
|
PKE to communicate with the server, similar to how the HTTPS
|
||||||
|
protocol works.
|
||||||
|
|
||||||
|
The `ssl_client_certs` directive specifies whether or not a client
|
||||||
|
certificate will be requested when a client tries to connect. A value
|
||||||
|
of `0` means the nrpe daemon will not ask for or require a client
|
||||||
|
certificate. A `1` will cause it to ask for a client certificate, but
|
||||||
|
not require one. A `2` will require the client to present a valid
|
||||||
|
certificate. This currently defaults to `0`. If you want to use
|
||||||
|
client certificates and are upgrading the clients over time, you can
|
||||||
|
set this to `1` once many have been upgraded, then set to `2` to
|
||||||
|
force the use of client certs. Note that the client certs _must_ be
|
||||||
|
signed by the CA cert specified in the `ssl_cacert_file` directive.
|
||||||
|
|
||||||
|
The `ssl_logging` directive allows you to log some additional data
|
||||||
|
to syslog. OR (or add) values together to have more than one option
|
||||||
|
enabled. Values are `0` for no additional logging (the default),
|
||||||
|
`1` to log startup SSL/TLS parameters from the nrpe.cfg file, `2` to
|
||||||
|
log the SSL/TLS version of connections, `4` to log which cipher is
|
||||||
|
being used for the connection, `8` to log if the plugin has a cert, and
|
||||||
|
`16` to log details of plugin's certificate. `-1` will enable all.
|
||||||
|
This can be especially helpful during plugin migration, so you can
|
||||||
|
tell which plugins have certificates, what SSL/TLS version is being
|
||||||
|
used, and which ciphers are being used.
|
||||||
|
|
||||||
|
<a id=chk></a>
|
||||||
|
|
||||||
|
------------------------------------------------
|
||||||
|
###CHANGES IN THE CURRENT VERSION OF CHECK_NRPE
|
||||||
|
------------------------------------------------
|
||||||
|
|
||||||
|
The check_nrpe plugin has also been updated to provide more secure
|
||||||
|
encryption and allow the use of client certificates. The command line
|
||||||
|
has several new options, which are outlined below. Both the long and
|
||||||
|
short arguments are presented.
|
||||||
|
|
||||||
|
`--no-adh` or `-d` will disable the use of ADH. This option is
|
||||||
|
**DEPRECATED**, even though it's new. It will be removed in a
|
||||||
|
future version.
|
||||||
|
|
||||||
|
`--ssl-version=<ver>` or `-S <ver>` specifies minimum SSL/TLS version
|
||||||
|
to use. See the `ssl_version` directive above for possible values.
|
||||||
|
|
||||||
|
`--cipher-list=<value.` or `-L <value>` determines which ciphers will
|
||||||
|
and won't be allowed. See the `ssl_cipher_list` directive above.
|
||||||
|
|
||||||
|
`--client-cert=<path>` or `-C <path>` specifies an optional client
|
||||||
|
certificate to use. If this value is entered, the next one below is
|
||||||
|
required.
|
||||||
|
|
||||||
|
`--key-file=<path>` or `-K <path>` specifies the client certificate
|
||||||
|
key file to use. This goes along with `--client-cert` above.
|
||||||
|
|
||||||
|
`--ca-cert-file=<path>` or `-A <path>` specifies the CA certificate
|
||||||
|
to use in order to validate the nrpe daemon's public key.
|
||||||
|
|
||||||
|
`--no-adh` or `-d` is **DEPRECATED**
|
||||||
|
|
||||||
|
`--use-adh` or `-d [num]` is **DEPRECATED**, even though it is new.
|
||||||
|
If you use `-d` or `-d 0` it acts the same way as as the old `-d`.
|
||||||
|
Otherwise, use `1` to allow ADH, and `2` to require ADH.
|
||||||
|
|
||||||
|
`--ssl-logging=<num>` or `-s <num>` allows you to log some additional
|
||||||
|
data to syslog. OR (or add) values together to have more than one
|
||||||
|
option enabled. See the description of the `ssl_logging` directive
|
||||||
|
from NRPE above.
|
||||||
|
|
||||||
|
<a id=xmp></a>
|
||||||
|
|
||||||
|
----------------------------------
|
||||||
|
###Certificate Generation Example
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
**Note** _The following example does not follow best practice for
|
||||||
|
creating and running a CA or creating certificates. It is for testing
|
||||||
|
or possibly for use in a small environment. Sloppy security is as bad
|
||||||
|
as no security._
|
||||||
|
|
||||||
|
In this example, we are going to put everything in the
|
||||||
|
`/usr/local/nagios/etc/ssl` directory. You may want to use the more
|
||||||
|
common `/etc/ssl` directory, or somewhere else entirely.
|
||||||
|
|
||||||
|
We are going to assume your company name is Foo Widgets, LLC; the
|
||||||
|
server running the nagios process (and thus the check_nrpe program)
|
||||||
|
is called `nag_serv`; and there are two Linux machines that will
|
||||||
|
run the nrpe daemon: `db_server` and `bobs_workstation`.
|
||||||
|
|
||||||
|
|
||||||
|
####Set up the directories
|
||||||
|
|
||||||
|
As root, do the following:
|
||||||
|
|
||||||
|
mkdir -p -m 750 /usr/local/nagios/etc/ssl
|
||||||
|
chown root.nagios /usr/local/nagios/etc/ssl
|
||||||
|
cd /usr/local/nagios/etc/ssl
|
||||||
|
mkdir -m 750 ca
|
||||||
|
chown root.root ca
|
||||||
|
mkdir -m 750 server_certs
|
||||||
|
chown root.nagios server_certs
|
||||||
|
mkdir -m 750 client_certs
|
||||||
|
chown root.nagios client_certs
|
||||||
|
|
||||||
|
|
||||||
|
####Create Certificate Authority
|
||||||
|
|
||||||
|
If you want to validate client or server certificates, you will need
|
||||||
|
to create a Certificate Authority (CA) that will sign all client and
|
||||||
|
server certificates. If your organization already has a CA, you can
|
||||||
|
use that.
|
||||||
|
|
||||||
|
As root, do the following:
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl/ca
|
||||||
|
openssl req -x509 -newkey rsa:4096 -keyout ca_key.pem \
|
||||||
|
-out ca_cert.pem -utf8 -days 3650
|
||||||
|
|
||||||
|
When asked, enter a passphrase. Then follow the prompts. You will
|
||||||
|
probably want to include `CA` or `Certificate Authority` in for
|
||||||
|
`Organizational Unit Name` and `Common Name`. For example:
|
||||||
|
|
||||||
|
Organization Name (eg, company) []:Foo Widgets LLC
|
||||||
|
Organizational Unit Name (eg, section) []:Foo Certificate Authority
|
||||||
|
Common Name (e.g. server FQDN or YOUR name) []:Foo Nagios CA
|
||||||
|
|
||||||
|
|
||||||
|
####Create NRPE Server Certificate Requests
|
||||||
|
|
||||||
|
For each of the hosts that will be running the nrpe daemon, you will
|
||||||
|
need a server certificate. You can create a key, and the CSR
|
||||||
|
(Certificate Signing Request) separately, but the following commands
|
||||||
|
will do both with one command. As root, do the following:
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl/server_certs
|
||||||
|
openssl req -new -newkey rsa:2048 -keyout db_server.key \
|
||||||
|
-out db_server.csr -nodes
|
||||||
|
openssl req -new -newkey rsa:2048 -keyout bobs_workstation.key \
|
||||||
|
-out bobs_workstation.csr -nodes
|
||||||
|
|
||||||
|
Follow the prompts. The `-nodes` at the end of the lines tells
|
||||||
|
openssl to generate the key without a passphrase. Leave it off if you
|
||||||
|
want someone to enter a passphrase whenever the machine boots.
|
||||||
|
|
||||||
|
Now you need to sign the CSRs with your CA key.
|
||||||
|
|
||||||
|
If you have the default `/etc/openssl.cnf`, either change it, or as root, do:
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl
|
||||||
|
mkdir demoCA
|
||||||
|
mkdir demoCA/newcerts
|
||||||
|
touch demoCA/index.txt
|
||||||
|
echo "01" > demoCA/serial
|
||||||
|
chown -R root.root demoCA
|
||||||
|
chmod 700 demoCA
|
||||||
|
chmod 700 demoCA/newcerts
|
||||||
|
chmod 600 demoCA/serial
|
||||||
|
chmod 600 demoCA/index.txt
|
||||||
|
|
||||||
|
Now, sign the CSRs. As root, do the following:
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl
|
||||||
|
openssl ca -days 365 -notext -md sha256 \
|
||||||
|
-keyfile ca/ca_key.pem -cert ca/ca_cert.pem \
|
||||||
|
-in server_certs/db_server.csr \
|
||||||
|
-out server_certs/db_server.pem
|
||||||
|
chown root.nagios server_certs/db_server.pem
|
||||||
|
chmod 440 server_certs/db_server.pem
|
||||||
|
openssl ca -days 365 -notext -md sha256 \
|
||||||
|
-keyfile ca/ca_key.pem -cert ca/ca_cert.pem \
|
||||||
|
-in server_certs/bobs_workstation.csr \
|
||||||
|
-out server_certs/bobs_workstation.pem
|
||||||
|
chown root.nagios server_certs/bobs_workstation.pem
|
||||||
|
chmod 440 server_certs/bobs_workstation.pem
|
||||||
|
|
||||||
|
Now, copy the `db_server.pem` and `db_server.key` files to the
|
||||||
|
db_server machine, and the `bobs_workstation.pem` and
|
||||||
|
`bobs_workstation.key` files to bobs_workstation. Copy the
|
||||||
|
`ca/ca_cert.pem` file to both machines.
|
||||||
|
|
||||||
|
|
||||||
|
####Create NRPE Client Certificate Requests
|
||||||
|
|
||||||
|
Now you need to do the same thing for the machine that will be
|
||||||
|
running the check_nrpe program.
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl/client_certs
|
||||||
|
openssl req -new -newkey rsa:2048 -keyout nag_serv.key \
|
||||||
|
-out nag_serv.csr -nodes
|
||||||
|
|
||||||
|
cd /usr/local/nagios/etc/ssl
|
||||||
|
openssl ca -extensions usr_cert -days 365 -notext -md sha256 \
|
||||||
|
-keyfile ca/ca_key.pem -cert ca/ca_cert.pem \
|
||||||
|
-in client_certs/nag_serv.csr \
|
||||||
|
-out client_certs/nag_serv.pem
|
||||||
|
chown root.nagios client_certs/nag_serv.pem
|
||||||
|
chmod 440 client_certs/nag_serv.pem
|
||||||
|
|
||||||
|
Now, copy the `nag_serv.pem`, `nag_serv.key` and `ca/ca_cert.pem`
|
||||||
|
files to the nag_serv machine, if you did the above on a different
|
||||||
|
computer.
|
||||||
|
|
||||||
|
Put the location of each computers' three files in the `nrpe.cfg`
|
||||||
|
file or in the check_nrpe command line. You should now have
|
||||||
|
encryption and, if desired, key validation.
|
@ -1,18 +0,0 @@
|
|||||||
Compiling on Solaris
|
|
||||||
|
|
||||||
Several changes may be necessary in order to compile NRPE on Solaris.
|
|
||||||
This information is known to apply to Solaris 10 and may apply to other
|
|
||||||
verisions of Solaris. This has been tested on Solaris 10 x86.
|
|
||||||
|
|
||||||
There are three things that you may need to compile NRPE on Solaris:
|
|
||||||
|
|
||||||
1. Add /usr/sfw/bin to your path
|
|
||||||
$ PATH="$PATH:/usr/sfw/bin"
|
|
||||||
2. Specify the binary to be used for make-ing
|
|
||||||
$ MAKE=gmake ./configure
|
|
||||||
3. Use gmake to build the code
|
|
||||||
$ gmake all
|
|
||||||
|
|
||||||
Thanks to Kevin Pendleton at UtahSysAdmin.com
|
|
||||||
(http://www.utahsysadmin.com/2008/03/14/configuring-nagios-plugins-nrpe-on-solaris-10/)
|
|
||||||
for the instructions on finding the SSL libraries.
|
|
206
README.md
Normal file
206
README.md
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
NRPE README
|
||||||
|
===========
|
||||||
|
|
||||||
|
For installation instructions and information on the design overview
|
||||||
|
of the NRPE addon, please read the PDF documentation that is found in
|
||||||
|
this directory: `docs/NRPE.pdf`
|
||||||
|
|
||||||
|
If you are upgrading from a previous version, run 'update-cfg.pl' to
|
||||||
|
add the new SSL parameters to your config file.
|
||||||
|
|
||||||
|
|
||||||
|
Purpose
|
||||||
|
-------
|
||||||
|
The purpose of this addon is to allow you to execute Nagios
|
||||||
|
plugins on a remote host in as transparent a manner as possible.
|
||||||
|
|
||||||
|
|
||||||
|
Contents
|
||||||
|
--------
|
||||||
|
|
||||||
|
There are two pieces to this addon:
|
||||||
|
|
||||||
|
1) **NRPE** - This program runs as a background process on the
|
||||||
|
remote host and processes command execution requests
|
||||||
|
from the check_nrpe plugin on the Nagios host.
|
||||||
|
Upon receiving a plugin request from an authorized
|
||||||
|
host, it will execute the command line associated
|
||||||
|
with the command name it received and send the
|
||||||
|
program output and return code back to the
|
||||||
|
check_nrpe plugin
|
||||||
|
|
||||||
|
2) **check_nrpe** - This is a plugin that is run on the Nagios host
|
||||||
|
and is used to contact the NRPE process on remote
|
||||||
|
hosts. The plugin requests that a plugin be
|
||||||
|
executed on the remote host and wait for the NRPE
|
||||||
|
process to execute the plugin and return the result.
|
||||||
|
The plugin then uses the output and return code
|
||||||
|
from the plugin execution on the remote host for
|
||||||
|
its own output and return code.
|
||||||
|
|
||||||
|
|
||||||
|
Compiling
|
||||||
|
---------
|
||||||
|
|
||||||
|
The code is very basic and may not work on your particular
|
||||||
|
system without some tweaking. If you are having any problems
|
||||||
|
compiling on your system, please let us know, hopefully with
|
||||||
|
fixes. Most users should be able to compile NRPE and the
|
||||||
|
check_nrpe plugin with the following commands...
|
||||||
|
|
||||||
|
./configure
|
||||||
|
make all
|
||||||
|
|
||||||
|
The binaries will be located in the `src/` directory after you
|
||||||
|
run `make all` and will have to be installed manually somewhere
|
||||||
|
on your system.
|
||||||
|
|
||||||
|
_NOTE: Since the check_nrpe plugin and nrpe daemon run on different
|
||||||
|
machines (the plugin runs on the Nagios host and the daemon
|
||||||
|
runs on the remote host), you will have to compile the nrpe
|
||||||
|
daemon on the target machine._
|
||||||
|
|
||||||
|
|
||||||
|
Installing
|
||||||
|
----------
|
||||||
|
|
||||||
|
The check_nrpe plugin should be placed on the Nagios host along
|
||||||
|
with your other plugins. In most cases, this will be in the
|
||||||
|
`/usr/local/nagios/libexec` directory.
|
||||||
|
|
||||||
|
The nrpe program and the configuration file `nrpe.cfg` should
|
||||||
|
be placed somewhere on the remote host. Note that you will also
|
||||||
|
have to install some plugins on the remote host if you want to
|
||||||
|
make much use of this addon.
|
||||||
|
|
||||||
|
|
||||||
|
Configuring
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Sample config files for the NRPE daemon are located in the
|
||||||
|
`sample-config/` subdirectory.
|
||||||
|
|
||||||
|
|
||||||
|
Running Under INETD or XINETD
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
If you plan on running nrpe under inetd or xinetd and making use
|
||||||
|
of TCP wrappers, you need to add a line to your `/etc/services`
|
||||||
|
file as follows (modify the port number as you see fit)
|
||||||
|
|
||||||
|
nrpe 5666/tcp # NRPE
|
||||||
|
|
||||||
|
The run `make install-inetd` to copy the appropriate file, or
|
||||||
|
add the appropriate line to your `/etc/inetd.conf`.
|
||||||
|
|
||||||
|
_NOTE: If you run nrpe under inetd or xinetd, the server_port
|
||||||
|
and allowed_hosts variables in the nrpe configuration file are
|
||||||
|
ignored._
|
||||||
|
|
||||||
|
|
||||||
|
#### INETD
|
||||||
|
|
||||||
|
After running `make install-inetd`, your `/etc/inetd.conf` file will
|
||||||
|
contain lines similar to the following:
|
||||||
|
|
||||||
|
```
|
||||||
|
#
|
||||||
|
# Enable the following entry to enable the nrpe daemon
|
||||||
|
#nrpe stream tcp nowait nagios /usr/local/nagios/bin/nrpe nrpe -c /usr/local/nagios/etc/nr
|
||||||
|
# Enable the following entry if the nrpe daemon didn't link with libwrap
|
||||||
|
#nrpe stream tcp nowait nagios /usr/sbin/tcpd /usr/local/nagios/bin/nrpe -c /usr/local/nag
|
||||||
|
```
|
||||||
|
|
||||||
|
Un-comment the appropriate line, then Restart inetd:
|
||||||
|
|
||||||
|
/etc/rc.d/init.d/inet restart
|
||||||
|
|
||||||
|
OpenBSD users can use the following command to restart inetd:
|
||||||
|
|
||||||
|
kill -HUP `cat /var/run/inet.pid`
|
||||||
|
|
||||||
|
Then add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
|
||||||
|
file to enable TCP wrapper protection for the nrpe service.
|
||||||
|
This is optional, although highly recommended.
|
||||||
|
|
||||||
|
|
||||||
|
#### XINETD
|
||||||
|
|
||||||
|
If your system uses xinetd instead of inetd, `make install-inetd`
|
||||||
|
will create a file called `nrpe` in your `/etc/xinetd.d`
|
||||||
|
directory that contains a file similar to this:
|
||||||
|
|
||||||
|
```
|
||||||
|
# default: off
|
||||||
|
# description: NRPE (Nagios Remote Plugin Executor)
|
||||||
|
service nrpe
|
||||||
|
{
|
||||||
|
disable = yes
|
||||||
|
socket_type = stream
|
||||||
|
port = @NRPE_PORT@
|
||||||
|
wait = no
|
||||||
|
user = nagios
|
||||||
|
group = nagios
|
||||||
|
server = /usr/local/nagios/bin/nrpe
|
||||||
|
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
|
||||||
|
only_from = 127.0.0.1
|
||||||
|
log_on_failure += USERID
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Replace `disable = yes` with `disable = no`
|
||||||
|
- Replace the `127.0.0.1` field with the IP addresses of hosts which
|
||||||
|
are allowed to connect to the NRPE daemon. This only works if xinetd was
|
||||||
|
compiled with support for tcpwrappers.
|
||||||
|
- Add entries to your `/etc/hosts.allow` and `/etc/hosts.deny`
|
||||||
|
file to enable TCP wrapper protection for the nrpe service.
|
||||||
|
This is optional, although highly recommended.
|
||||||
|
|
||||||
|
Restart xinetd:
|
||||||
|
|
||||||
|
/etc/rc.d/init.d/xinetd restart
|
||||||
|
|
||||||
|
|
||||||
|
Configuring Things On The Nagios Host
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
Examples for configuring the nrpe daemon are found in the sample
|
||||||
|
`nrpe.cfg` file included in this distribution. That config file
|
||||||
|
resides on the remote host(s) along with the nrpe daemon. The
|
||||||
|
check_nrpe plugin gets installed on the Nagios host. In order
|
||||||
|
to use the check_nrpe plugin from within Nagios, you will have
|
||||||
|
to define a few things in the host config file. An example
|
||||||
|
command definition for the check_nrpe plugin would look like this:
|
||||||
|
|
||||||
|
define command{
|
||||||
|
command_name check_nrpe
|
||||||
|
command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
||||||
|
}
|
||||||
|
|
||||||
|
In any service definitions that use the nrpe plugin/daemon to
|
||||||
|
get their results, you would set the service check command portion
|
||||||
|
of the definition to something like this (sample service definition
|
||||||
|
is simplified for this example):
|
||||||
|
|
||||||
|
define service{
|
||||||
|
host_name someremotehost
|
||||||
|
service_description someremoteservice
|
||||||
|
check_command check_nrpe!yourcommand
|
||||||
|
... etc ...
|
||||||
|
}
|
||||||
|
|
||||||
|
where `yourcommand` is a name of a command that you define in
|
||||||
|
your nrpe.cfg file on the remote host (see the docs in the
|
||||||
|
sample nrpe.cfg file for more information).
|
||||||
|
|
||||||
|
|
||||||
|
Questions?
|
||||||
|
----------
|
||||||
|
|
||||||
|
If you have questions about this addon, or problems getting things
|
||||||
|
working, first try searching the nagios-users mailing list archives.
|
||||||
|
Details on searching the list archives can be found at
|
||||||
|
http://www.nagios.org
|
||||||
|
|
||||||
|
If you don't find an answer there, post a message in the Nagios
|
||||||
|
Plugin Development forum at https://support.nagios.com/forum/viewforum.php?f=35
|
@ -1,25 +1,20 @@
|
|||||||
********************
|
|
||||||
NRPE SECURITY README
|
NRPE SECURITY README
|
||||||
********************
|
====================
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### TCP WRAPPER SUPPORT ###
|
||||||
|
|
||||||
|
|
||||||
TCP WRAPPER SUPPORT
|
NRPE 2.x includes native support for TCP wrappers. Once you
|
||||||
===================
|
compile NRPE you can check to see if it has wrapper support
|
||||||
|
built in by running the daemon from the command line without
|
||||||
NRPE 2.x includes native support for TCP wrappers. The older
|
any arguments like this:
|
||||||
host access list directive was removed from the config file.
|
|
||||||
Make sure your system supports TCP wrappers before running NRPE.
|
|
||||||
Once you compile NRPE you can check to see if it has wrapper
|
|
||||||
support built in by running the daemon from the command line
|
|
||||||
without any arguments like this:
|
|
||||||
|
|
||||||
./nrpe --help
|
./nrpe --help
|
||||||
|
|
||||||
|
|
||||||
|
#### COMMAND ARGUMENTS ####
|
||||||
|
|
||||||
COMMAND ARGUMENTS
|
|
||||||
=================
|
|
||||||
|
|
||||||
NRPE 2.0 includes the ability for clients to supply arguments to
|
NRPE 2.0 includes the ability for clients to supply arguments to
|
||||||
commands which should be run. Please note that this feature
|
commands which should be run. Please note that this feature
|
||||||
@ -27,47 +22,43 @@ should be considered a security risk, and you should only use
|
|||||||
it if you know what you're doing!
|
it if you know what you're doing!
|
||||||
|
|
||||||
|
|
||||||
BASH COMMAND SUBSTITUTION
|
#### BASH COMMAND SUBSTITUTION ####
|
||||||
-------------------------
|
|
||||||
|
|
||||||
Even with the metacharacter restrictions below, if command arguments
|
Even with the metacharacter restrictions below, if command arguments
|
||||||
are enabled, it is still possible to send bash command substitions
|
are enabled, it is still possible to send bash command substitutions
|
||||||
in the form $(...) as an agrument. This is explicity disabled by
|
in the form `$(...)` as an argument. This is explicitly disabled by
|
||||||
default, but can be enabled by a configure-time option and a
|
default, but can be enabled by a configure-time option and a
|
||||||
configuration file option. Enabling this option is VERY RISKY and
|
configuration file option. Enabling this option is **VERY RISKY**
|
||||||
its use is HIGHLY DISCOURAGED.
|
and its use is **HIGHLY DISCOURAGED**.
|
||||||
|
|
||||||
|
|
||||||
ENABLING ARGUMENTS
|
#### ENABLING ARGUMENTS ####
|
||||||
------------------
|
|
||||||
|
|
||||||
To enable support for command argument in the daemon, you must
|
To enable support for command argument in the daemon, you must
|
||||||
do two things:
|
do two things:
|
||||||
|
|
||||||
1. Run the configure script with the --enable-command-args
|
1. Run the configure script with the `--enable-command-args`
|
||||||
option
|
option
|
||||||
|
|
||||||
2. Set the 'dont_blame_nrpe' directive in the NRPE config
|
2. Set the `dont_blame_nrpe` directive in the NRPE config
|
||||||
file to 1.
|
file to `1`.
|
||||||
|
|
||||||
|
|
||||||
ENABLING BASH COMMAND SUBSTITUTION
|
#### ENABLING BASH COMMAND SUBSTITUTION ####
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
To enable support for arguments containing bash command substitions,
|
To enable support for arguments containing bash command substitions,
|
||||||
you must do two things:
|
you must do two things:
|
||||||
|
|
||||||
1. Enable arguments as described above
|
1. Enable arguments as described above
|
||||||
|
|
||||||
2. Include the --enable-bash-command-substitution configure
|
2. Include the `--enable-bash-command-substitution` configure
|
||||||
option when running the configure script
|
option when running the configure script
|
||||||
|
|
||||||
3. Set the 'allow_bash_command_substitutions' directive in the
|
3. Set the `allow_bash_command_substitutions` directive in the
|
||||||
NRPE config file to 1.
|
NRPE config file to `1`.
|
||||||
|
|
||||||
|
|
||||||
ILLEGAL METACHARS
|
#### ILLEGAL METACHARS ####
|
||||||
-----------------
|
|
||||||
|
|
||||||
To help prevent some nasty things from being done by evil
|
To help prevent some nasty things from being done by evil
|
||||||
clients, the following metacharacters are not allowed
|
clients, the following metacharacters are not allowed
|
||||||
@ -79,8 +70,7 @@ Any client request which contains the abovementioned metachars
|
|||||||
is discarded.
|
is discarded.
|
||||||
|
|
||||||
|
|
||||||
USER/GROUP RESTRICTIONS
|
#### USER/GROUP RESTRICTIONS ####
|
||||||
-----------------------
|
|
||||||
|
|
||||||
The NRPE daemon cannot be run with (effective) root user/group
|
The NRPE daemon cannot be run with (effective) root user/group
|
||||||
privileges. You must run the daemon with an account that does
|
privileges. You must run the daemon with an account that does
|
||||||
@ -89,21 +79,19 @@ directives in the config file to specify which user/group the
|
|||||||
daemon should run as.
|
daemon should run as.
|
||||||
|
|
||||||
|
|
||||||
ENCRYPTION
|
#### ENCRYPTION ####
|
||||||
----------
|
|
||||||
|
|
||||||
If you do enable support for command arguments in the NRPE daemon,
|
If you do enable support for command arguments in the NRPE daemon,
|
||||||
make sure that you encrypt communications either by using:
|
make sure that you encrypt communications either by using:
|
||||||
|
|
||||||
1. Stunnel (see http://www.stunnel.org for more info)
|
1. Stunnel (see http://www.stunnel.org for more info)
|
||||||
2. Native SSL support
|
2. Native SSL support (See the `README.SSL.md` file for more info)
|
||||||
|
|
||||||
Do NOT assume that just because the daemon is behind a firewall
|
*Do NOT* assume that just because the daemon is behind a firewall
|
||||||
that you are safe! Always encrypt NRPE traffic!
|
that you are safe! Always encrypt NRPE traffic!
|
||||||
|
|
||||||
|
|
||||||
USING ARGUMENTS
|
#### USING ARGUMENTS ####
|
||||||
---------------
|
|
||||||
|
|
||||||
How do you use command arguments? Well, lets say you define a
|
How do you use command arguments? Well, lets say you define a
|
||||||
command in the NRPE config file that looks like this:
|
command in the NRPE config file that looks like this:
|
||||||
@ -123,9 +111,3 @@ like this:
|
|||||||
|
|
||||||
You can supply up to 16 arguments to be passed to the command
|
You can supply up to 16 arguments to be passed to the command
|
||||||
for substitution in $ARG$ macros ($ARG1$ - $ARG16$).
|
for substitution in $ARG$ macros ($ARG1$ - $ARG16$).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Ethan Galstad (nagios@nagios.org)
|
|
||||||
|
|
43
THANKS
Normal file
43
THANKS
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
Alex Weber
|
||||||
|
Andrea Morgan-Brist
|
||||||
|
Andrew Boyce-Lewis
|
||||||
|
Andrew Ryder
|
||||||
|
Andrew Widdersheim
|
||||||
|
Bartosz Woronicz
|
||||||
|
Bill Mitchell
|
||||||
|
Bjoern Beutel
|
||||||
|
Brian Seklecki
|
||||||
|
Derrick Bennett
|
||||||
|
Eric Mislivec
|
||||||
|
Eric Stanley
|
||||||
|
Gerhard Lausser
|
||||||
|
Graham Collinson
|
||||||
|
Grant Byers
|
||||||
|
Grégory Starck
|
||||||
|
James Peterson
|
||||||
|
Jari Takkala
|
||||||
|
Jason Cook
|
||||||
|
John Maag
|
||||||
|
Jon Andrews
|
||||||
|
Kaspersky Lab
|
||||||
|
Kevin Pendleton
|
||||||
|
Konstantin Malov
|
||||||
|
Krzysztof Oledzki
|
||||||
|
Leo Baltus
|
||||||
|
Mark Plaksin
|
||||||
|
Matthew L. Daniel
|
||||||
|
Matthias Flacke
|
||||||
|
Niels Endres
|
||||||
|
Patric Wust
|
||||||
|
Peter Palfrader
|
||||||
|
Rene Klootwijk
|
||||||
|
Robert Peaslee
|
||||||
|
Ryan McGarry
|
||||||
|
Ryan Ordway
|
||||||
|
Sean Finney
|
||||||
|
Spenser Reinhardt
|
||||||
|
Subhendu Ghosh
|
||||||
|
Thierry Bertaud
|
||||||
|
Ton Voon
|
||||||
|
Vadim Antipov
|
||||||
|
jaclu@grm.se
|
7
aclocal.m4
vendored
Executable file
7
aclocal.m4
vendored
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
m4_include([macros/ax_nagios_get_os])
|
||||||
|
m4_include([macros/ax_nagios_get_distrib])
|
||||||
|
m4_include([macros/ax_nagios_get_init])
|
||||||
|
m4_include([macros/ax_nagios_get_inetd])
|
||||||
|
m4_include([macros/ax_nagios_get_paths])
|
||||||
|
m4_include([macros/ax_nagios_get_files])
|
||||||
|
m4_include([macros/ax_nagios_get_ssl])
|
688
config.guess → build-aux/config.guess
vendored
688
config.guess → build-aux/config.guess
vendored
File diff suppressed because it is too large
Load Diff
399
config.sub → build-aux/config.sub
vendored
399
config.sub → build-aux/config.sub
vendored
@ -1,43 +1,40 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
# Copyright 1992-2014 Free Software Foundation, Inc.
|
||||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
timestamp='2006-01-02'
|
timestamp='2014-12-03'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# under the terms of the GNU General Public License as published by
|
||||||
# can handle that machine. It does not imply ALL GNU software can.
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
#
|
|
||||||
# This file is free software; you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# This program is distributed in the hope that it will be useful,
|
# This program is distributed in the hope that it will be useful, but
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
# GNU General Public License for more details.
|
# General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, write to the Free Software
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
|
||||||
# 02110-1301, USA.
|
|
||||||
#
|
#
|
||||||
# As a special exception to the GNU General Public License, if you
|
# As a special exception to the GNU General Public License, if you
|
||||||
# distribute this file as part of a program that contains a
|
# distribute this file as part of a program that contains a
|
||||||
# configuration script generated by Autoconf, you may include it under
|
# configuration script generated by Autoconf, you may include it under
|
||||||
# the same distribution terms that you use for the rest of that program.
|
# the same distribution terms that you use for the rest of that
|
||||||
|
# program. This Exception is an additional permission under section 7
|
||||||
|
# of the GNU General Public License, version 3 ("GPLv3").
|
||||||
|
|
||||||
|
|
||||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
# Please send patches to <config-patches@gnu.org>.
|
||||||
# diff and a properly formatted ChangeLog entry.
|
|
||||||
#
|
#
|
||||||
# Configuration subroutine to validate and canonicalize a configuration type.
|
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||||
# Supply the specified configuration type as an argument.
|
# Supply the specified configuration type as an argument.
|
||||||
# If it is invalid, we print an error message on stderr and exit with code 1.
|
# If it is invalid, we print an error message on stderr and exit with code 1.
|
||||||
# Otherwise, we print the canonical config type on stdout and succeed.
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
|
# You can get the latest version of this script from:
|
||||||
|
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||||
|
|
||||||
# This file is supposed to be the same for all GNU packages
|
# This file is supposed to be the same for all GNU packages
|
||||||
# and recognize all the CPU types, system types and aliases
|
# and recognize all the CPU types, system types and aliases
|
||||||
# that are meaningful with *any* GNU software.
|
# that are meaningful with *any* GNU software.
|
||||||
@ -71,8 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||||||
version="\
|
version="\
|
||||||
GNU config.sub ($timestamp)
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
Copyright 1992-2014 Free Software Foundation, Inc.
|
||||||
Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This is free software; see the source for copying conditions. There is NO
|
This is free software; see the source for copying conditions. There is NO
|
||||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
@ -119,12 +115,18 @@ esac
|
|||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
||||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
||||||
|
knetbsd*-gnu* | netbsd*-gnu* | \
|
||||||
|
kopensolaris*-gnu* | \
|
||||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
;;
|
;;
|
||||||
|
android-linux)
|
||||||
|
os=-linux-android
|
||||||
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
||||||
if [ $basic_machine != $1 ]
|
if [ $basic_machine != $1 ]
|
||||||
@ -147,10 +149,13 @@ case $os in
|
|||||||
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
|
||||||
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
|
||||||
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
|
||||||
-apple | -axis | -knuth | -cray)
|
-apple | -axis | -knuth | -cray | -microblaze*)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
;;
|
;;
|
||||||
|
-bluegene*)
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
-sim | -cisco | -oki | -wec | -winbond)
|
-sim | -cisco | -oki | -wec | -winbond)
|
||||||
os=
|
os=
|
||||||
basic_machine=$1
|
basic_machine=$1
|
||||||
@ -213,6 +218,12 @@ case $os in
|
|||||||
-isc*)
|
-isc*)
|
||||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||||
;;
|
;;
|
||||||
|
-lynx*178)
|
||||||
|
os=-lynxos178
|
||||||
|
;;
|
||||||
|
-lynx*5)
|
||||||
|
os=-lynxos5
|
||||||
|
;;
|
||||||
-lynx*)
|
-lynx*)
|
||||||
os=-lynxos
|
os=-lynxos
|
||||||
;;
|
;;
|
||||||
@ -237,59 +248,90 @@ case $basic_machine in
|
|||||||
# Some are omitted here because they have special meanings below.
|
# Some are omitted here because they have special meanings below.
|
||||||
1750a | 580 \
|
1750a | 580 \
|
||||||
| a29k \
|
| a29k \
|
||||||
|
| aarch64 | aarch64_be \
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||||
| am33_2.0 \
|
| am33_2.0 \
|
||||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
|
| arc | arceb \
|
||||||
|
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
|
||||||
|
| avr | avr32 \
|
||||||
|
| be32 | be64 \
|
||||||
| bfin \
|
| bfin \
|
||||||
| c4x | clipper \
|
| c4x | c8051 | clipper \
|
||||||
| d10v | d30v | dlx | dsp16xx \
|
| d10v | d30v | dlx | dsp16xx \
|
||||||
| fr30 | frv \
|
| epiphany \
|
||||||
|
| fido | fr30 | frv \
|
||||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
|
| hexagon \
|
||||||
| i370 | i860 | i960 | ia64 \
|
| i370 | i860 | i960 | ia64 \
|
||||||
| ip2k | iq2000 \
|
| ip2k | iq2000 \
|
||||||
| m32r | m32rle | m68000 | m68k | m88k | maxq | mb | microblaze | mcore \
|
| k1om \
|
||||||
|
| le32 | le64 \
|
||||||
|
| lm32 \
|
||||||
|
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||||
|
| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
|
||||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
| mips16 \
|
| mips16 \
|
||||||
| mips64 | mips64el \
|
| mips64 | mips64el \
|
||||||
| mips64vr | mips64vrel \
|
| mips64octeon | mips64octeonel \
|
||||||
| mips64orion | mips64orionel \
|
| mips64orion | mips64orionel \
|
||||||
|
| mips64r5900 | mips64r5900el \
|
||||||
|
| mips64vr | mips64vrel \
|
||||||
| mips64vr4100 | mips64vr4100el \
|
| mips64vr4100 | mips64vr4100el \
|
||||||
| mips64vr4300 | mips64vr4300el \
|
| mips64vr4300 | mips64vr4300el \
|
||||||
| mips64vr5000 | mips64vr5000el \
|
| mips64vr5000 | mips64vr5000el \
|
||||||
| mips64vr5900 | mips64vr5900el \
|
| mips64vr5900 | mips64vr5900el \
|
||||||
| mipsisa32 | mipsisa32el \
|
| mipsisa32 | mipsisa32el \
|
||||||
| mipsisa32r2 | mipsisa32r2el \
|
| mipsisa32r2 | mipsisa32r2el \
|
||||||
|
| mipsisa32r6 | mipsisa32r6el \
|
||||||
| mipsisa64 | mipsisa64el \
|
| mipsisa64 | mipsisa64el \
|
||||||
| mipsisa64r2 | mipsisa64r2el \
|
| mipsisa64r2 | mipsisa64r2el \
|
||||||
|
| mipsisa64r6 | mipsisa64r6el \
|
||||||
| mipsisa64sb1 | mipsisa64sb1el \
|
| mipsisa64sb1 | mipsisa64sb1el \
|
||||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
|
| mipsr5900 | mipsr5900el \
|
||||||
| mipstx39 | mipstx39el \
|
| mipstx39 | mipstx39el \
|
||||||
| mn10200 | mn10300 \
|
| mn10200 | mn10300 \
|
||||||
|
| moxie \
|
||||||
| mt \
|
| mt \
|
||||||
| msp430 \
|
| msp430 \
|
||||||
|
| nds32 | nds32le | nds32be \
|
||||||
|
| nios | nios2 | nios2eb | nios2el \
|
||||||
| ns16k | ns32k \
|
| ns16k | ns32k \
|
||||||
| or32 \
|
| open8 | or1k | or1knd | or32 \
|
||||||
| pdp10 | pdp11 | pj | pjl \
|
| pdp10 | pdp11 | pj | pjl \
|
||||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||||
| pyramid \
|
| pyramid \
|
||||||
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
|
| riscv32 | riscv64 \
|
||||||
|
| rl78 | rx \
|
||||||
|
| score \
|
||||||
|
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||||
| sh64 | sh64le \
|
| sh64 | sh64le \
|
||||||
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
|
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||||
| sparcv8 | sparcv9 | sparcv9b \
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||||
| strongarm \
|
| spu \
|
||||||
| tahoe | thumb | tic4x | tic80 | tron \
|
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
|
||||||
| v850 | v850e \
|
| ubicom32 \
|
||||||
|
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||||
|
| visium \
|
||||||
| we32k \
|
| we32k \
|
||||||
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
|
| x86 | xc16x | xstormy16 | xtensa \
|
||||||
| z8k)
|
| z8k | z80)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
m32c)
|
c54x)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=tic54x-unknown
|
||||||
;;
|
;;
|
||||||
m6811 | m68hc11 | m6812 | m68hc12)
|
c55x)
|
||||||
# Motorola 68HC11/12.
|
basic_machine=tic55x-unknown
|
||||||
|
;;
|
||||||
|
c6x)
|
||||||
|
basic_machine=tic6x-unknown
|
||||||
|
;;
|
||||||
|
leon|leon[3-9])
|
||||||
|
basic_machine=sparc-$basic_machine
|
||||||
|
;;
|
||||||
|
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-none
|
os=-none
|
||||||
;;
|
;;
|
||||||
@ -299,6 +341,21 @@ case $basic_machine in
|
|||||||
basic_machine=mt-unknown
|
basic_machine=mt-unknown
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
strongarm | thumb | xscale)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
;;
|
||||||
|
xgate)
|
||||||
|
basic_machine=$basic_machine-unknown
|
||||||
|
os=-none
|
||||||
|
;;
|
||||||
|
xscaleeb)
|
||||||
|
basic_machine=armeb-unknown
|
||||||
|
;;
|
||||||
|
|
||||||
|
xscaleel)
|
||||||
|
basic_machine=armel-unknown
|
||||||
|
;;
|
||||||
|
|
||||||
# We use `pc' rather than `unknown'
|
# We use `pc' rather than `unknown'
|
||||||
# because (1) that's what they normally are, and
|
# because (1) that's what they normally are, and
|
||||||
# (2) the word "unknown" tends to confuse beginning users.
|
# (2) the word "unknown" tends to confuse beginning users.
|
||||||
@ -313,65 +370,87 @@ case $basic_machine in
|
|||||||
# Recognize the basic CPU types with company name.
|
# Recognize the basic CPU types with company name.
|
||||||
580-* \
|
580-* \
|
||||||
| a29k-* \
|
| a29k-* \
|
||||||
|
| aarch64-* | aarch64_be-* \
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
|
||||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||||
| avr-* \
|
| avr-* | avr32-* \
|
||||||
|
| be32-* | be64-* \
|
||||||
| bfin-* | bs2000-* \
|
| bfin-* | bs2000-* \
|
||||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
||||||
| clipper-* | craynv-* | cydra-* \
|
| c8051-* | clipper-* | craynv-* | cydra-* \
|
||||||
| d10v-* | d30v-* | dlx-* \
|
| d10v-* | d30v-* | dlx-* \
|
||||||
| elxsi-* \
|
| elxsi-* \
|
||||||
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
|
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||||
| h8300-* | h8500-* \
|
| h8300-* | h8500-* \
|
||||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||||
|
| hexagon-* \
|
||||||
| i*86-* | i860-* | i960-* | ia64-* \
|
| i*86-* | i860-* | i960-* | ia64-* \
|
||||||
| ip2k-* | iq2000-* \
|
| ip2k-* | iq2000-* \
|
||||||
| m32r-* | m32rle-* \
|
| k1om-* \
|
||||||
|
| le32-* | le64-* \
|
||||||
|
| lm32-* \
|
||||||
|
| m32c-* | m32r-* | m32rle-* \
|
||||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
||||||
|
| microblaze-* | microblazeel-* \
|
||||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||||
| mips16-* \
|
| mips16-* \
|
||||||
| mips64-* | mips64el-* \
|
| mips64-* | mips64el-* \
|
||||||
| mips64vr-* | mips64vrel-* \
|
| mips64octeon-* | mips64octeonel-* \
|
||||||
| mips64orion-* | mips64orionel-* \
|
| mips64orion-* | mips64orionel-* \
|
||||||
|
| mips64r5900-* | mips64r5900el-* \
|
||||||
|
| mips64vr-* | mips64vrel-* \
|
||||||
| mips64vr4100-* | mips64vr4100el-* \
|
| mips64vr4100-* | mips64vr4100el-* \
|
||||||
| mips64vr4300-* | mips64vr4300el-* \
|
| mips64vr4300-* | mips64vr4300el-* \
|
||||||
| mips64vr5000-* | mips64vr5000el-* \
|
| mips64vr5000-* | mips64vr5000el-* \
|
||||||
| mips64vr5900-* | mips64vr5900el-* \
|
| mips64vr5900-* | mips64vr5900el-* \
|
||||||
| mipsisa32-* | mipsisa32el-* \
|
| mipsisa32-* | mipsisa32el-* \
|
||||||
| mipsisa32r2-* | mipsisa32r2el-* \
|
| mipsisa32r2-* | mipsisa32r2el-* \
|
||||||
|
| mipsisa32r6-* | mipsisa32r6el-* \
|
||||||
| mipsisa64-* | mipsisa64el-* \
|
| mipsisa64-* | mipsisa64el-* \
|
||||||
| mipsisa64r2-* | mipsisa64r2el-* \
|
| mipsisa64r2-* | mipsisa64r2el-* \
|
||||||
|
| mipsisa64r6-* | mipsisa64r6el-* \
|
||||||
| mipsisa64sb1-* | mipsisa64sb1el-* \
|
| mipsisa64sb1-* | mipsisa64sb1el-* \
|
||||||
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||||||
|
| mipsr5900-* | mipsr5900el-* \
|
||||||
| mipstx39-* | mipstx39el-* \
|
| mipstx39-* | mipstx39el-* \
|
||||||
| mmix-* \
|
| mmix-* \
|
||||||
| mt-* \
|
| mt-* \
|
||||||
| msp430-* \
|
| msp430-* \
|
||||||
|
| nds32-* | nds32le-* | nds32be-* \
|
||||||
|
| nios-* | nios2-* | nios2eb-* | nios2el-* \
|
||||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||||
|
| open8-* \
|
||||||
|
| or1k*-* \
|
||||||
| orion-* \
|
| orion-* \
|
||||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
|
||||||
| pyramid-* \
|
| pyramid-* \
|
||||||
| romp-* | rs6000-* \
|
| rl78-* | romp-* | rs6000-* | rx-* \
|
||||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
|
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||||
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
|
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||||
| sparclite-* \
|
| sparclite-* \
|
||||||
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
|
||||||
| tahoe-* | thumb-* \
|
| tahoe-* \
|
||||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||||
|
| tile*-* \
|
||||||
| tron-* \
|
| tron-* \
|
||||||
| v850-* | v850e-* | vax-* \
|
| ubicom32-* \
|
||||||
|
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||||
|
| vax-* \
|
||||||
|
| visium-* \
|
||||||
| we32k-* \
|
| we32k-* \
|
||||||
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
|
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||||
| xstormy16-* | xtensa-* \
|
| xstormy16-* | xtensa*-* \
|
||||||
| ymp-* \
|
| ymp-* \
|
||||||
| z8k-*)
|
| z8k-* | z80-*)
|
||||||
;;
|
;;
|
||||||
m32c-*)
|
# Recognize the basic CPU types without company name, with glob match.
|
||||||
|
xtensa*)
|
||||||
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
# Recognize the various machine names and aliases which stand
|
# Recognize the various machine names and aliases which stand
|
||||||
# for a CPU type and a company and sometimes even an OS.
|
# for a CPU type and a company and sometimes even an OS.
|
||||||
@ -435,6 +514,10 @@ case $basic_machine in
|
|||||||
basic_machine=m68k-apollo
|
basic_machine=m68k-apollo
|
||||||
os=-bsd
|
os=-bsd
|
||||||
;;
|
;;
|
||||||
|
aros)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
os=-aros
|
||||||
|
;;
|
||||||
aux)
|
aux)
|
||||||
basic_machine=m68k-apple
|
basic_machine=m68k-apple
|
||||||
os=-aux
|
os=-aux
|
||||||
@ -443,10 +526,35 @@ case $basic_machine in
|
|||||||
basic_machine=ns32k-sequent
|
basic_machine=ns32k-sequent
|
||||||
os=-dynix
|
os=-dynix
|
||||||
;;
|
;;
|
||||||
|
blackfin)
|
||||||
|
basic_machine=bfin-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
blackfin-*)
|
||||||
|
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
bluegene*)
|
||||||
|
basic_machine=powerpc-ibm
|
||||||
|
os=-cnk
|
||||||
|
;;
|
||||||
|
c54x-*)
|
||||||
|
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
;;
|
||||||
|
c55x-*)
|
||||||
|
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
;;
|
||||||
|
c6x-*)
|
||||||
|
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
;;
|
||||||
c90)
|
c90)
|
||||||
basic_machine=c90-cray
|
basic_machine=c90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
|
cegcc)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
os=-cegcc
|
||||||
|
;;
|
||||||
convex-c1)
|
convex-c1)
|
||||||
basic_machine=c1-convex
|
basic_machine=c1-convex
|
||||||
os=-bsd
|
os=-bsd
|
||||||
@ -475,8 +583,8 @@ case $basic_machine in
|
|||||||
basic_machine=craynv-cray
|
basic_machine=craynv-cray
|
||||||
os=-unicosmp
|
os=-unicosmp
|
||||||
;;
|
;;
|
||||||
cr16c)
|
cr16 | cr16-*)
|
||||||
basic_machine=cr16c-unknown
|
basic_machine=cr16-unknown
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
crds | unos)
|
crds | unos)
|
||||||
@ -514,6 +622,10 @@ case $basic_machine in
|
|||||||
basic_machine=m88k-motorola
|
basic_machine=m88k-motorola
|
||||||
os=-sysv3
|
os=-sysv3
|
||||||
;;
|
;;
|
||||||
|
dicos)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
os=-dicos
|
||||||
|
;;
|
||||||
djgpp)
|
djgpp)
|
||||||
basic_machine=i586-pc
|
basic_machine=i586-pc
|
||||||
os=-msdosdjgpp
|
os=-msdosdjgpp
|
||||||
@ -629,7 +741,6 @@ case $basic_machine in
|
|||||||
i370-ibm* | ibm*)
|
i370-ibm* | ibm*)
|
||||||
basic_machine=i370-ibm
|
basic_machine=i370-ibm
|
||||||
;;
|
;;
|
||||||
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
|
||||||
i*86v32)
|
i*86v32)
|
||||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||||
os=-sysv32
|
os=-sysv32
|
||||||
@ -668,6 +779,17 @@ case $basic_machine in
|
|||||||
basic_machine=m68k-isi
|
basic_machine=m68k-isi
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
leon-*|leon[3-9]-*)
|
||||||
|
basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
|
||||||
|
;;
|
||||||
|
m68knommu)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
m68knommu-*)
|
||||||
|
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
m88k-omron*)
|
m88k-omron*)
|
||||||
basic_machine=m88k-omron
|
basic_machine=m88k-omron
|
||||||
;;
|
;;
|
||||||
@ -679,10 +801,21 @@ case $basic_machine in
|
|||||||
basic_machine=ns32k-utek
|
basic_machine=ns32k-utek
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
microblaze*)
|
||||||
|
basic_machine=microblaze-xilinx
|
||||||
|
;;
|
||||||
|
mingw64)
|
||||||
|
basic_machine=x86_64-pc
|
||||||
|
os=-mingw64
|
||||||
|
;;
|
||||||
mingw32)
|
mingw32)
|
||||||
basic_machine=i386-pc
|
basic_machine=i686-pc
|
||||||
os=-mingw32
|
os=-mingw32
|
||||||
;;
|
;;
|
||||||
|
mingw32ce)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
os=-mingw32ce
|
||||||
|
;;
|
||||||
miniframe)
|
miniframe)
|
||||||
basic_machine=m68000-convergent
|
basic_machine=m68000-convergent
|
||||||
;;
|
;;
|
||||||
@ -704,6 +837,10 @@ case $basic_machine in
|
|||||||
basic_machine=powerpc-unknown
|
basic_machine=powerpc-unknown
|
||||||
os=-morphos
|
os=-morphos
|
||||||
;;
|
;;
|
||||||
|
moxiebox)
|
||||||
|
basic_machine=moxie-unknown
|
||||||
|
os=-moxiebox
|
||||||
|
;;
|
||||||
msdos)
|
msdos)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-msdos
|
os=-msdos
|
||||||
@ -711,10 +848,18 @@ case $basic_machine in
|
|||||||
ms1-*)
|
ms1-*)
|
||||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||||
;;
|
;;
|
||||||
|
msys)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
os=-msys
|
||||||
|
;;
|
||||||
mvs)
|
mvs)
|
||||||
basic_machine=i370-ibm
|
basic_machine=i370-ibm
|
||||||
os=-mvs
|
os=-mvs
|
||||||
;;
|
;;
|
||||||
|
nacl)
|
||||||
|
basic_machine=le32-unknown
|
||||||
|
os=-nacl
|
||||||
|
;;
|
||||||
ncr3000)
|
ncr3000)
|
||||||
basic_machine=i486-ncr
|
basic_machine=i486-ncr
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
@ -779,6 +924,12 @@ case $basic_machine in
|
|||||||
np1)
|
np1)
|
||||||
basic_machine=np1-gould
|
basic_machine=np1-gould
|
||||||
;;
|
;;
|
||||||
|
neo-tandem)
|
||||||
|
basic_machine=neo-tandem
|
||||||
|
;;
|
||||||
|
nse-tandem)
|
||||||
|
basic_machine=nse-tandem
|
||||||
|
;;
|
||||||
nsr-tandem)
|
nsr-tandem)
|
||||||
basic_machine=nsr-tandem
|
basic_machine=nsr-tandem
|
||||||
;;
|
;;
|
||||||
@ -809,6 +960,14 @@ case $basic_machine in
|
|||||||
basic_machine=i860-intel
|
basic_machine=i860-intel
|
||||||
os=-osf
|
os=-osf
|
||||||
;;
|
;;
|
||||||
|
parisc)
|
||||||
|
basic_machine=hppa-unknown
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
|
parisc-*)
|
||||||
|
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
os=-linux
|
||||||
|
;;
|
||||||
pbd)
|
pbd)
|
||||||
basic_machine=sparc-tti
|
basic_machine=sparc-tti
|
||||||
;;
|
;;
|
||||||
@ -853,9 +1012,10 @@ case $basic_machine in
|
|||||||
;;
|
;;
|
||||||
power) basic_machine=power-ibm
|
power) basic_machine=power-ibm
|
||||||
;;
|
;;
|
||||||
ppc) basic_machine=powerpc-unknown
|
ppc | ppcbe) basic_machine=powerpc-unknown
|
||||||
;;
|
;;
|
||||||
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
ppc-* | ppcbe-*)
|
||||||
|
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
ppcle | powerpclittle | ppc-le | powerpc-little)
|
ppcle | powerpclittle | ppc-le | powerpc-little)
|
||||||
basic_machine=powerpcle-unknown
|
basic_machine=powerpcle-unknown
|
||||||
@ -880,7 +1040,11 @@ case $basic_machine in
|
|||||||
basic_machine=i586-unknown
|
basic_machine=i586-unknown
|
||||||
os=-pw32
|
os=-pw32
|
||||||
;;
|
;;
|
||||||
rdos)
|
rdos | rdos64)
|
||||||
|
basic_machine=x86_64-pc
|
||||||
|
os=-rdos
|
||||||
|
;;
|
||||||
|
rdos32)
|
||||||
basic_machine=i386-pc
|
basic_machine=i386-pc
|
||||||
os=-rdos
|
os=-rdos
|
||||||
;;
|
;;
|
||||||
@ -910,6 +1074,10 @@ case $basic_machine in
|
|||||||
sb1el)
|
sb1el)
|
||||||
basic_machine=mipsisa64sb1el-unknown
|
basic_machine=mipsisa64sb1el-unknown
|
||||||
;;
|
;;
|
||||||
|
sde)
|
||||||
|
basic_machine=mipsisa32-sde
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
sei)
|
sei)
|
||||||
basic_machine=mips-sei
|
basic_machine=mips-sei
|
||||||
os=-seiux
|
os=-seiux
|
||||||
@ -921,6 +1089,9 @@ case $basic_machine in
|
|||||||
basic_machine=sh-hitachi
|
basic_machine=sh-hitachi
|
||||||
os=-hms
|
os=-hms
|
||||||
;;
|
;;
|
||||||
|
sh5el)
|
||||||
|
basic_machine=sh5le-unknown
|
||||||
|
;;
|
||||||
sh64)
|
sh64)
|
||||||
basic_machine=sh64-unknown
|
basic_machine=sh64-unknown
|
||||||
;;
|
;;
|
||||||
@ -942,6 +1113,9 @@ case $basic_machine in
|
|||||||
basic_machine=i860-stratus
|
basic_machine=i860-stratus
|
||||||
os=-sysv4
|
os=-sysv4
|
||||||
;;
|
;;
|
||||||
|
strongarm-* | thumb-*)
|
||||||
|
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
|
;;
|
||||||
sun2)
|
sun2)
|
||||||
basic_machine=m68000-sun
|
basic_machine=m68000-sun
|
||||||
;;
|
;;
|
||||||
@ -998,17 +1172,9 @@ case $basic_machine in
|
|||||||
basic_machine=t90-cray
|
basic_machine=t90-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
tic54x | c54x*)
|
tile*)
|
||||||
basic_machine=tic54x-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
os=-coff
|
os=-linux-gnu
|
||||||
;;
|
|
||||||
tic55x | c55x*)
|
|
||||||
basic_machine=tic55x-unknown
|
|
||||||
os=-coff
|
|
||||||
;;
|
|
||||||
tic6x | c6x*)
|
|
||||||
basic_machine=tic6x-unknown
|
|
||||||
os=-coff
|
|
||||||
;;
|
;;
|
||||||
tx39)
|
tx39)
|
||||||
basic_machine=mipstx39-unknown
|
basic_machine=mipstx39-unknown
|
||||||
@ -1077,6 +1243,9 @@ case $basic_machine in
|
|||||||
xps | xps100)
|
xps | xps100)
|
||||||
basic_machine=xps100-honeywell
|
basic_machine=xps100-honeywell
|
||||||
;;
|
;;
|
||||||
|
xscale-* | xscalee[bl]-*)
|
||||||
|
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
||||||
|
;;
|
||||||
ymp)
|
ymp)
|
||||||
basic_machine=ymp-cray
|
basic_machine=ymp-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
@ -1085,6 +1254,10 @@ case $basic_machine in
|
|||||||
basic_machine=z8k-unknown
|
basic_machine=z8k-unknown
|
||||||
os=-sim
|
os=-sim
|
||||||
;;
|
;;
|
||||||
|
z80-*-coff)
|
||||||
|
basic_machine=z80-unknown
|
||||||
|
os=-sim
|
||||||
|
;;
|
||||||
none)
|
none)
|
||||||
basic_machine=none-none
|
basic_machine=none-none
|
||||||
os=-none
|
os=-none
|
||||||
@ -1123,10 +1296,10 @@ case $basic_machine in
|
|||||||
we32k)
|
we32k)
|
||||||
basic_machine=we32k-att
|
basic_machine=we32k-att
|
||||||
;;
|
;;
|
||||||
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||||
basic_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sparc | sparcv8 | sparcv9 | sparcv9b)
|
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||||
basic_machine=sparc-sun
|
basic_machine=sparc-sun
|
||||||
;;
|
;;
|
||||||
cydra)
|
cydra)
|
||||||
@ -1173,6 +1346,9 @@ case $os in
|
|||||||
# First match some system type aliases
|
# First match some system type aliases
|
||||||
# that might get confused with valid system types.
|
# that might get confused with valid system types.
|
||||||
# -solaris* is a basic system type, with this one exception.
|
# -solaris* is a basic system type, with this one exception.
|
||||||
|
-auroraux)
|
||||||
|
os=-auroraux
|
||||||
|
;;
|
||||||
-solaris1 | -solaris1.*)
|
-solaris1 | -solaris1.*)
|
||||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||||
;;
|
;;
|
||||||
@ -1193,29 +1369,31 @@ case $os in
|
|||||||
# Each alternative MUST END IN A *, to match a version number.
|
# Each alternative MUST END IN A *, to match a version number.
|
||||||
# -sysv* is not here because it comes later, after sysvr4.
|
# -sysv* is not here because it comes later, after sysvr4.
|
||||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
|
||||||
|
| -sym* | -kopensolaris* | -plan9* \
|
||||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||||
| -aos* \
|
| -aos* | -aros* \
|
||||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||||
| -openbsd* | -solidbsd* \
|
| -bitrig* | -openbsd* | -solidbsd* \
|
||||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
||||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||||
| -chorusos* | -chorusrdb* \
|
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
|
||||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
|
||||||
|
| -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
|
||||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||||
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
|
||||||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||||
| -skyos* | -haiku* | -rdos*)
|
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
@ -1339,12 +1517,14 @@ case $os in
|
|||||||
-aros*)
|
-aros*)
|
||||||
os=-aros
|
os=-aros
|
||||||
;;
|
;;
|
||||||
-kaos*)
|
|
||||||
os=-kaos
|
|
||||||
;;
|
|
||||||
-zvmoe)
|
-zvmoe)
|
||||||
os=-zvmoe
|
os=-zvmoe
|
||||||
;;
|
;;
|
||||||
|
-dicos*)
|
||||||
|
os=-dicos
|
||||||
|
;;
|
||||||
|
-nacl*)
|
||||||
|
;;
|
||||||
-none)
|
-none)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -1367,6 +1547,12 @@ else
|
|||||||
# system, and we'll never get to this point.
|
# system, and we'll never get to this point.
|
||||||
|
|
||||||
case $basic_machine in
|
case $basic_machine in
|
||||||
|
score-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
spu-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
*-acorn)
|
*-acorn)
|
||||||
os=-riscix1.2
|
os=-riscix1.2
|
||||||
;;
|
;;
|
||||||
@ -1379,6 +1565,21 @@ case $basic_machine in
|
|||||||
c4x-* | tic4x-*)
|
c4x-* | tic4x-*)
|
||||||
os=-coff
|
os=-coff
|
||||||
;;
|
;;
|
||||||
|
c8051-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
hexagon-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
|
tic54x-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
tic55x-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
|
tic6x-*)
|
||||||
|
os=-coff
|
||||||
|
;;
|
||||||
# This must come before the *-dec entry.
|
# This must come before the *-dec entry.
|
||||||
pdp10-*)
|
pdp10-*)
|
||||||
os=-tops20
|
os=-tops20
|
||||||
@ -1397,13 +1598,13 @@ case $basic_machine in
|
|||||||
;;
|
;;
|
||||||
m68000-sun)
|
m68000-sun)
|
||||||
os=-sunos3
|
os=-sunos3
|
||||||
# This also exists in the configure program, but was not the
|
|
||||||
# default.
|
|
||||||
# os=-sunos4
|
|
||||||
;;
|
;;
|
||||||
m68*-cisco)
|
m68*-cisco)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
|
mep-*)
|
||||||
|
os=-elf
|
||||||
|
;;
|
||||||
mips*-cisco)
|
mips*-cisco)
|
||||||
os=-elf
|
os=-elf
|
||||||
;;
|
;;
|
||||||
@ -1533,7 +1734,7 @@ case $basic_machine in
|
|||||||
-sunos*)
|
-sunos*)
|
||||||
vendor=sun
|
vendor=sun
|
||||||
;;
|
;;
|
||||||
-aix*)
|
-cnk*|-aix*)
|
||||||
vendor=ibm
|
vendor=ibm
|
||||||
;;
|
;;
|
||||||
-beos*)
|
-beos*)
|
131
build-aux/custom_help.m4
Executable file
131
build-aux/custom_help.m4
Executable file
@ -0,0 +1,131 @@
|
|||||||
|
# _AC_INIT_HELP
|
||||||
|
# -------------
|
||||||
|
# Handle the `configure --help' message.
|
||||||
|
m4_define([_AC_INIT_HELP],
|
||||||
|
[m4_divert_push([HELP_BEGIN])dnl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Report the --help message.
|
||||||
|
#
|
||||||
|
if test "$ac_init_help" = "long"; then
|
||||||
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
|
cat <<_ACEOF
|
||||||
|
\`configure' configures m4_ifset([AC_PACKAGE_STRING],
|
||||||
|
[AC_PACKAGE_STRING],
|
||||||
|
[this package]) to adapt to many kinds of systems.
|
||||||
|
|
||||||
|
Usage: $[0] [[OPTION]]... [[VAR=VALUE]]...
|
||||||
|
|
||||||
|
[To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
||||||
|
VAR=VALUE. See below for descriptions of some of the useful variables.
|
||||||
|
|
||||||
|
Defaults for the options are specified in brackets.
|
||||||
|
|
||||||
|
Configuration:
|
||||||
|
-h, --help display this help and exit
|
||||||
|
--help=short display options specific to this package
|
||||||
|
--help=recursive display the short help of all the included packages
|
||||||
|
-V, --version display version information and exit
|
||||||
|
-q, --quiet, --silent do not print \`checking ...' messages
|
||||||
|
--cache-file=FILE cache test results in FILE [disabled]
|
||||||
|
-C, --config-cache alias for \`--cache-file=config.cache'
|
||||||
|
-n, --no-create do not create output files
|
||||||
|
--srcdir=DIR find the sources in DIR [configure dir or \`..']
|
||||||
|
|
||||||
|
Installation directories:
|
||||||
|
--prefix=PREFIX install architecture-independent files in PREFIX
|
||||||
|
[/usr/local/nagios]
|
||||||
|
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
|
||||||
|
[PREFIX]
|
||||||
|
|
||||||
|
By default, \`make install' will install all the files in
|
||||||
|
\`/usr/local/nagios/bin', \`/usr/local/nagios/lib' etc. You can specify
|
||||||
|
an installation prefix other than \`/usr/local/nagios' using \`--prefix',
|
||||||
|
for instance \`--prefix=$HOME'.
|
||||||
|
|
||||||
|
For better control, use the options below.
|
||||||
|
|
||||||
|
Fine tuning of the installation directories:
|
||||||
|
--bindir=DIR user executables [EPREFIX/bin]
|
||||||
|
--sbindir=DIR system admin executables [EPREFIX/sbin]
|
||||||
|
--libexecdir=DIR plugins, brokers, CGI [EPREFIX/libexec]
|
||||||
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
|
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
|
||||||
|
--datadir=DIR r/o arch.-independent data [DATAROOTDIR/PKG_NAME]
|
||||||
|
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
cat <<\_ACEOF]
|
||||||
|
m4_divert_pop([HELP_BEGIN])dnl
|
||||||
|
dnl The order of the diversions here is
|
||||||
|
dnl - HELP_BEGIN
|
||||||
|
dnl which may be extended by extra generic options such as with X or
|
||||||
|
dnl AC_ARG_PROGRAM. Displayed only in long --help.
|
||||||
|
dnl
|
||||||
|
dnl - HELP_CANON
|
||||||
|
dnl Support for cross compilation (--build, --host and --target).
|
||||||
|
dnl Display only in long --help.
|
||||||
|
dnl
|
||||||
|
dnl - HELP_ENABLE
|
||||||
|
dnl which starts with the trailer of the HELP_BEGIN, HELP_CANON section,
|
||||||
|
dnl then implements the header of the non generic options.
|
||||||
|
dnl
|
||||||
|
dnl - HELP_WITH
|
||||||
|
dnl
|
||||||
|
dnl - HELP_VAR
|
||||||
|
dnl
|
||||||
|
dnl - HELP_VAR_END
|
||||||
|
dnl
|
||||||
|
dnl - HELP_END
|
||||||
|
dnl initialized below, in which we dump the trailer (handling of the
|
||||||
|
dnl recursion for instance).
|
||||||
|
m4_divert_push([HELP_ENABLE])dnl
|
||||||
|
_ACEOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$ac_init_help"; then
|
||||||
|
m4_ifset([AC_PACKAGE_STRING],
|
||||||
|
[ case $ac_init_help in
|
||||||
|
short | recursive ) echo "Configuration of AC_PACKAGE_STRING:";;
|
||||||
|
esac])
|
||||||
|
cat <<\_ACEOF
|
||||||
|
m4_divert_pop([HELP_ENABLE])dnl
|
||||||
|
m4_divert_push([HELP_END])dnl
|
||||||
|
|
||||||
|
Report bugs to m4_ifset([AC_PACKAGE_BUGREPORT], [<AC_PACKAGE_BUGREPORT>],
|
||||||
|
[the package provider]).dnl
|
||||||
|
m4_ifdef([AC_PACKAGE_NAME], [m4_ifset([AC_PACKAGE_URL], [
|
||||||
|
AC_PACKAGE_NAME home page: <AC_PACKAGE_URL>.])dnl
|
||||||
|
m4_if(m4_index(m4_defn([AC_PACKAGE_NAME]), [GNU ]), [0], [
|
||||||
|
General help using GNU software: <http://www.gnu.org/gethelp/>.])])
|
||||||
|
_ACEOF
|
||||||
|
ac_status=$?
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$ac_init_help" = "recursive"; then
|
||||||
|
# If there are subdirs, report their specific --help.
|
||||||
|
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
|
||||||
|
test -d "$ac_dir" ||
|
||||||
|
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
|
||||||
|
continue
|
||||||
|
_AC_SRCDIRS(["$ac_dir"])
|
||||||
|
cd "$ac_dir" || { ac_status=$?; continue; }
|
||||||
|
# Check for guested configure.
|
||||||
|
if test -f "$ac_srcdir/configure.gnu"; then
|
||||||
|
echo &&
|
||||||
|
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
|
||||||
|
elif test -f "$ac_srcdir/configure"; then
|
||||||
|
echo &&
|
||||||
|
$SHELL "$ac_srcdir/configure" --help=recursive
|
||||||
|
else
|
||||||
|
AC_MSG_WARN([no configuration information is in $ac_dir])
|
||||||
|
fi || ac_status=$?
|
||||||
|
cd "$ac_pwd" || { ac_status=$?; break; }
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
|
m4_divert_pop([HELP_END])dnl
|
||||||
|
])# _AC_INIT_HELP
|
501
build-aux/install-sh
Executable file
501
build-aux/install-sh
Executable file
@ -0,0 +1,501 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2013-12-25.23; # UTC
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# 'make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch.
|
||||||
|
|
||||||
|
tab=' '
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
IFS=" $tab$nl"
|
||||||
|
|
||||||
|
# Set DOITPROG to "echo" to test this script.
|
||||||
|
|
||||||
|
doit=${DOITPROG-}
|
||||||
|
doit_exec=${doit:-exec}
|
||||||
|
|
||||||
|
# Put in absolute file names if you don't have them in your path;
|
||||||
|
# or use environment vars.
|
||||||
|
|
||||||
|
chgrpprog=${CHGRPPROG-chgrp}
|
||||||
|
chmodprog=${CHMODPROG-chmod}
|
||||||
|
chownprog=${CHOWNPROG-chown}
|
||||||
|
cmpprog=${CMPPROG-cmp}
|
||||||
|
cpprog=${CPPROG-cp}
|
||||||
|
mkdirprog=${MKDIRPROG-mkdir}
|
||||||
|
mvprog=${MVPROG-mv}
|
||||||
|
rmprog=${RMPROG-rm}
|
||||||
|
stripprog=${STRIPPROG-strip}
|
||||||
|
|
||||||
|
posix_mkdir=
|
||||||
|
|
||||||
|
# Desired mode of installed file.
|
||||||
|
mode=0755
|
||||||
|
|
||||||
|
chgrpcmd=
|
||||||
|
chmodcmd=$chmodprog
|
||||||
|
chowncmd=
|
||||||
|
mvcmd=$mvprog
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
stripcmd=
|
||||||
|
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dst_arg=
|
||||||
|
|
||||||
|
copy_on_change=false
|
||||||
|
is_target_a_directory=possibly
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
-c (ignored)
|
||||||
|
-C install only if different (preserve the last data modification time)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||||
|
RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test $# -ne 0; do
|
||||||
|
case $1 in
|
||||||
|
-c) ;;
|
||||||
|
|
||||||
|
-C) copy_on_change=true;;
|
||||||
|
|
||||||
|
-d) dir_arg=true;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit $?;;
|
||||||
|
|
||||||
|
-m) mode=$2
|
||||||
|
case $mode in
|
||||||
|
*' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
|
||||||
|
echo "$0: invalid mode: $mode" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog;;
|
||||||
|
|
||||||
|
-t)
|
||||||
|
is_target_a_directory=always
|
||||||
|
dst_arg=$2
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
shift;;
|
||||||
|
|
||||||
|
-T) is_target_a_directory=never;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit $?;;
|
||||||
|
|
||||||
|
--) shift
|
||||||
|
break;;
|
||||||
|
|
||||||
|
-*) echo "$0: invalid option: $1" >&2
|
||||||
|
exit 1;;
|
||||||
|
|
||||||
|
*) break;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# We allow the use of options -d and -T together, by making -d
|
||||||
|
# take the precedence; this is for compatibility with GNU install.
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
if test -n "$dst_arg"; then
|
||||||
|
echo "$0: target directory not allowed when installing a directory." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||||
|
# When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dst_arg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dst_arg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dst_arg=$arg
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $dst_arg in
|
||||||
|
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $# -eq 0; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call 'install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
if test $# -gt 1 || test "$is_target_a_directory" = always; then
|
||||||
|
if test ! -d "$dst_arg"; then
|
||||||
|
echo "$0: $dst_arg: Is not a directory." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
do_exit='(exit $ret); exit $ret'
|
||||||
|
trap "ret=129; $do_exit" 1
|
||||||
|
trap "ret=130; $do_exit" 2
|
||||||
|
trap "ret=141; $do_exit" 13
|
||||||
|
trap "ret=143; $do_exit" 15
|
||||||
|
|
||||||
|
# Set umask so as not to create temps with too-generous modes.
|
||||||
|
# However, 'strip' requires both read and write access to temps.
|
||||||
|
case $mode in
|
||||||
|
# Optimize common cases.
|
||||||
|
*644) cp_umask=133;;
|
||||||
|
*755) cp_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw='% 200'
|
||||||
|
fi
|
||||||
|
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||||
|
*)
|
||||||
|
if test -z "$stripcmd"; then
|
||||||
|
u_plus_rw=
|
||||||
|
else
|
||||||
|
u_plus_rw=,u+rw
|
||||||
|
fi
|
||||||
|
cp_umask=$mode$u_plus_rw;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names problematic for 'test' and other utilities.
|
||||||
|
case $src in
|
||||||
|
-* | [=\(\)!]) src=./$src;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
dstdir=$dst
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
else
|
||||||
|
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dst_arg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst=$dst_arg
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test "$is_target_a_directory" = never; then
|
||||||
|
echo "$0: $dst_arg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dstdir=$dst
|
||||||
|
dst=$dstdir/`basename "$src"`
|
||||||
|
dstdir_status=0
|
||||||
|
else
|
||||||
|
dstdir=`dirname "$dst"`
|
||||||
|
test -d "$dstdir"
|
||||||
|
dstdir_status=$?
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
obsolete_mkdir_used=false
|
||||||
|
|
||||||
|
if test $dstdir_status != 0; then
|
||||||
|
case $posix_mkdir in
|
||||||
|
'')
|
||||||
|
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||||
|
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||||
|
umask=`umask`
|
||||||
|
case $stripcmd.$umask in
|
||||||
|
# Optimize common cases.
|
||||||
|
*[2367][2367]) mkdir_umask=$umask;;
|
||||||
|
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||||
|
|
||||||
|
*[0-7])
|
||||||
|
mkdir_umask=`expr $umask + 22 \
|
||||||
|
- $umask % 100 % 40 + $umask % 20 \
|
||||||
|
- $umask % 10 % 4 + $umask % 2
|
||||||
|
`;;
|
||||||
|
*) mkdir_umask=$umask,go-w;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# With -d, create the new directory with the user-specified mode.
|
||||||
|
# Otherwise, rely on $mkdir_umask.
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
mkdir_mode=-m$mode
|
||||||
|
else
|
||||||
|
mkdir_mode=
|
||||||
|
fi
|
||||||
|
|
||||||
|
posix_mkdir=false
|
||||||
|
case $umask in
|
||||||
|
*[123567][0-7][0-7])
|
||||||
|
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||||
|
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||||
|
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||||
|
|
||||||
|
if (umask $mkdir_umask &&
|
||||||
|
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
if test -z "$dir_arg" || {
|
||||||
|
# Check for POSIX incompatibilities with -m.
|
||||||
|
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||||
|
# other-writable bit of parent directory when it shouldn't.
|
||||||
|
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||||
|
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||||
|
case $ls_ld_tmpdir in
|
||||||
|
d????-?r-*) different_mode=700;;
|
||||||
|
d????-?--*) different_mode=755;;
|
||||||
|
*) false;;
|
||||||
|
esac &&
|
||||||
|
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||||
|
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||||
|
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
then posix_mkdir=:
|
||||||
|
fi
|
||||||
|
rmdir "$tmpdir/d" "$tmpdir"
|
||||||
|
else
|
||||||
|
# Remove any dirs left behind by ancient mkdir implementations.
|
||||||
|
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||||
|
fi
|
||||||
|
trap '' 0;;
|
||||||
|
esac;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if
|
||||||
|
$posix_mkdir && (
|
||||||
|
umask $mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||||
|
)
|
||||||
|
then :
|
||||||
|
else
|
||||||
|
|
||||||
|
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||||
|
# or it failed possibly due to a race condition. Create the
|
||||||
|
# directory the slow way, step by step, checking for races as we go.
|
||||||
|
|
||||||
|
case $dstdir in
|
||||||
|
/*) prefix='/';;
|
||||||
|
[-=\(\)!]*) prefix='./';;
|
||||||
|
*) prefix='';;
|
||||||
|
esac
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
IFS=/
|
||||||
|
set -f
|
||||||
|
set fnord $dstdir
|
||||||
|
shift
|
||||||
|
set +f
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
prefixes=
|
||||||
|
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
test X"$d" = X && continue
|
||||||
|
|
||||||
|
prefix=$prefix$d
|
||||||
|
if test -d "$prefix"; then
|
||||||
|
prefixes=
|
||||||
|
else
|
||||||
|
if $posix_mkdir; then
|
||||||
|
(umask=$mkdir_umask &&
|
||||||
|
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
test -d "$prefix" || exit 1
|
||||||
|
else
|
||||||
|
case $prefix in
|
||||||
|
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||||
|
*) qprefix=$prefix;;
|
||||||
|
esac
|
||||||
|
prefixes="$prefixes '$qprefix'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
prefix=$prefix/
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -n "$prefixes"; then
|
||||||
|
# Don't fail if two instances are running concurrently.
|
||||||
|
(umask $mkdir_umask &&
|
||||||
|
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||||
|
test -d "$dstdir" || exit 1
|
||||||
|
obsolete_mkdir_used=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||||
|
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||||
|
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||||
|
else
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||||
|
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# If -C, don't bother to copy if it wouldn't change the file.
|
||||||
|
if $copy_on_change &&
|
||||||
|
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||||
|
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||||
|
set -f &&
|
||||||
|
set X $old && old=:$2:$4:$5:$6 &&
|
||||||
|
set X $new && new=:$2:$4:$5:$6 &&
|
||||||
|
set +f &&
|
||||||
|
test "$old" = "$new" &&
|
||||||
|
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
rm -f "$dsttmp"
|
||||||
|
else
|
||||||
|
# Rename the file to the real destination.
|
||||||
|
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||||
|
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
{
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
test ! -f "$dst" ||
|
||||||
|
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||||
|
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||||
|
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||||
|
} ||
|
||||||
|
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||||
|
(exit 1); exit 1
|
||||||
|
}
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dst"
|
||||||
|
}
|
||||||
|
fi || exit 1
|
||||||
|
|
||||||
|
trap '' 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
391
configure.ac
Normal file
391
configure.ac
Normal file
@ -0,0 +1,391 @@
|
|||||||
|
dnl Process this -*-m4-*- file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
dnl Disable caching
|
||||||
|
define([AC_CACHE_LOAD],)
|
||||||
|
define([AC_CACHE_SAVE],)
|
||||||
|
|
||||||
|
m4_include([build-aux/custom_help.m4])
|
||||||
|
AC_INIT([nrpe],[3.0.1],[nagios-users@lists.sourceforge.net],[nrpe],[https://www.nagios.org/downloads/nagios-core-addons/])
|
||||||
|
AC_CONFIG_SRCDIR([src/nrpe.c])
|
||||||
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
AC_PREFIX_DEFAULT(/usr/local/nagios)
|
||||||
|
|
||||||
|
PKG_NAME=nrpe
|
||||||
|
PKG_VERSION="3.0.1"
|
||||||
|
PKG_HOME_URL="http://www.nagios.org/"
|
||||||
|
PKG_REL_DATE="09-08-2016"
|
||||||
|
RPM_RELEASE=1
|
||||||
|
|
||||||
|
LANG=C
|
||||||
|
LC_ALL=C
|
||||||
|
LC_COLLATE=C
|
||||||
|
LC_CTYPE=C
|
||||||
|
LC_MESSAGES=C
|
||||||
|
LC_MONETARY=C
|
||||||
|
LC_NUMERIC=C
|
||||||
|
LC_TIME=C
|
||||||
|
|
||||||
|
AC_SUBST(PKG_NAME)
|
||||||
|
AC_SUBST(PKG_VERSION)
|
||||||
|
AC_SUBST(PKG_HOME_URL)
|
||||||
|
AC_SUBST(PKG_REL_DATE)
|
||||||
|
AC_SUBST(RPM_RELEASE)
|
||||||
|
AC_SUBST(INSTALL)
|
||||||
|
AC_SUBST(SNPRINTF_O)
|
||||||
|
AC_SUBST(LDFLAGS)
|
||||||
|
AC_SUBST(OTHERLIBS)
|
||||||
|
AC_SUBST(SOCKETLIBS)
|
||||||
|
AC_SUBST(LIBWRAPLIBS)
|
||||||
|
AC_SUBST(NRPE_INSTALL_OPTS)
|
||||||
|
AC_SUBST(log_facility)
|
||||||
|
AC_SUBST(nrpe_user)
|
||||||
|
AC_SUBST(nrpe_group)
|
||||||
|
AC_SUBST(nrpe_port)
|
||||||
|
AC_SUBST(nagios_user)
|
||||||
|
AC_SUBST(nagios_group)
|
||||||
|
AC_SUBST(NAGIOS_INSTALL_OPTS)
|
||||||
|
AC_SUBST(TARGET_VER)
|
||||||
|
AC_SUBST(TARGET_OS)
|
||||||
|
AC_SUBST(TARGET_ARCH)
|
||||||
|
AC_SUBST(TARGET_PLATFORM)
|
||||||
|
|
||||||
|
dnl Figure out how to invoke "install" and what install options to use.
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
|
dnl Get O/S, Distribution, init, inetd, system-specific directories
|
||||||
|
AC_NAGIOS_GET_OS
|
||||||
|
AC_NAGIOS_GET_DISTRIB_TYPE
|
||||||
|
AC_NAGIOS_GET_INIT
|
||||||
|
AC_NAGIOS_GET_INETD
|
||||||
|
AC_NAGIOS_GET_PATHS
|
||||||
|
AC_NAGIOS_GET_FILES
|
||||||
|
|
||||||
|
if test "$dist_type" = solaris -a "$dist_ver" != smf11; then
|
||||||
|
AC_DEFINE(SOLARIS_10,yes)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Do they just want to see where things will go?
|
||||||
|
if test x${showdirs_only} = xyes; then
|
||||||
|
AC_CONFIG_FILES([paths])
|
||||||
|
AC_OUTPUT()
|
||||||
|
chmod 755 paths
|
||||||
|
./paths
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CONFIG_HEADERS([include/config.h])
|
||||||
|
AC_CONFIG_FILES([Makefile
|
||||||
|
src/Makefile
|
||||||
|
nrpe.spec
|
||||||
|
uninstall
|
||||||
|
sample-config/nrpe.cfg
|
||||||
|
startup/bsd-init
|
||||||
|
startup/debian-init
|
||||||
|
startup/default-init
|
||||||
|
startup/default-inetd
|
||||||
|
startup/default-service
|
||||||
|
startup/default-socket
|
||||||
|
startup/default-socket-svc
|
||||||
|
startup/default-xinetd
|
||||||
|
startup/mac-init.plist
|
||||||
|
startup/mac-inetd.plist
|
||||||
|
startup/newbsd-init
|
||||||
|
startup/openbsd-init
|
||||||
|
startup/openrc-conf
|
||||||
|
startup/openrc-init
|
||||||
|
startup/solaris-init.xml
|
||||||
|
startup/solaris-inetd.xml
|
||||||
|
startup/tmpfile.conf
|
||||||
|
startup/upstart-init
|
||||||
|
startup/rh-upstart-init
|
||||||
|
include/common.h
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
|
dnl Checks for header files.
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_HEADER_TIME
|
||||||
|
AC_HEADER_SYS_WAIT
|
||||||
|
AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h)
|
||||||
|
AC_CHECK_HEADERS(netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h)
|
||||||
|
AC_CHECK_HEADERS(tcpd.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h)
|
||||||
|
AC_CHECK_HEADERS(sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h)
|
||||||
|
AC_CHECK_HEADERS(paths.h)
|
||||||
|
|
||||||
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
AC_STRUCT_TM
|
||||||
|
AC_TYPE_MODE_T
|
||||||
|
AC_TYPE_PID_T
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_TYPE_SIGNAL
|
||||||
|
AC_TYPE_GETGROUPS
|
||||||
|
|
||||||
|
dnl Check lengths for later tests of u_int32_t and int32_t
|
||||||
|
AC_CHECK_SIZEOF(int)
|
||||||
|
AC_CHECK_SIZEOF(short)
|
||||||
|
AC_CHECK_SIZEOF(long)
|
||||||
|
|
||||||
|
dnl Define u_int32_t if we don't have it already (Solaris, etc.)
|
||||||
|
AC_CHECK_TYPE(uint32_t,unsigned int)
|
||||||
|
AC_CHECK_TYPE(u_int32_t,unsigned int)
|
||||||
|
if test "$ac_cv_type_u_int32_t" = no ; then
|
||||||
|
if test "$ac_cv_type_u_int32_t" = yes ; then
|
||||||
|
AC_DEFINE(U_INT32_T_IS_UINT32_T,[1],[u_int32_t is uint32_t])
|
||||||
|
else
|
||||||
|
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||||
|
AC_DEFINE(U_INT32_T_IS_UINT,[1],[u_int32_t is uint])
|
||||||
|
else
|
||||||
|
if test "$ac_cv_sizeof_long" = 4 ; then
|
||||||
|
AC_DEFINE(U_INT32_T_IS_ULONG,[1],[u_int32_t is ulong])
|
||||||
|
else
|
||||||
|
if test "$ac_cv_sizeof_short" = 4 ; then
|
||||||
|
AC_DEFINE(U_INT32_T_IS_USHORT,[1],[u_int32_t is ushort])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Define int32_t if we don't have it already
|
||||||
|
AC_CHECK_TYPE(int32_t,int)
|
||||||
|
if test "$ac_cv_type_int32_t" = no ; then
|
||||||
|
if test "$ac_cv_sizeof_int" = 4 ; then
|
||||||
|
AC_DEFINE(INT32_T_IS_UINT,[1],[int32_t is uint])
|
||||||
|
else
|
||||||
|
if test "$ac_cv_sizeof_long" = 4 ; then
|
||||||
|
AC_DEFINE(INT32_T_IS_ULONG,[1],[int32_t is ulong])
|
||||||
|
else
|
||||||
|
if test "$ac_cv_sizeof_short" = 4 ; then
|
||||||
|
AC_DEFINE(INT32_T_IS_USHORT,[1],[int32_t is ushort])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Check for struct sockaddr_storate
|
||||||
|
AC_CHECK_TYPES([struct sockaddr_storage],[],[],[#include <sys/socket.h>])
|
||||||
|
|
||||||
|
dnl Should we use seteuid() or setresuid()?
|
||||||
|
AC_CHECK_FUNC(seteuid,
|
||||||
|
AC_DEFINE(SETEUID(id),[seteuid(id)]),
|
||||||
|
AC_DEFINE(SETEUID(id),[setresuid((uid_t) -1, id, (uid_t) -1)])
|
||||||
|
)
|
||||||
|
|
||||||
|
dnl Check for asprintf() and friends...
|
||||||
|
AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
|
||||||
|
AC_TRY_LINK([#include <stdarg.h>
|
||||||
|
va_list ap1,ap2;], [va_copy(ap1,ap2);],
|
||||||
|
ac_cv_HAVE_VA_COPY=yes,
|
||||||
|
ac_cv_HAVE_VA_COPY=no)])
|
||||||
|
if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
|
||||||
|
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
|
||||||
|
else
|
||||||
|
AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
|
||||||
|
AC_TRY_LINK([#include <stdarg.h>
|
||||||
|
va_list ap1,ap2;], [__va_copy(ap1,ap2);],
|
||||||
|
ac_cv_HAVE___VA_COPY=yes,
|
||||||
|
ac_cv_HAVE___VA_COPY=no)])
|
||||||
|
if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
|
||||||
|
AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CHECK_FUNC(vsnprintf,,SNPRINTF_O=./snprintf.o)
|
||||||
|
AC_CHECK_FUNC(snprintf,,SNPRINTF_O=./snprintf.o)
|
||||||
|
AC_CHECK_FUNC(asprintf,,SNPRINTF_O=./snprintf.o)
|
||||||
|
AC_CHECK_FUNC(vasprintf,,SNPRINTF_O=./snprintf.o)
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
|
||||||
|
AC_TRY_RUN([
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
void foo(const char *format, ...) {
|
||||||
|
va_list ap;
|
||||||
|
int len;
|
||||||
|
char buf[5];
|
||||||
|
|
||||||
|
va_start(ap, format);
|
||||||
|
len = vsnprintf(buf, 0, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
if (len != 5) exit(1);
|
||||||
|
|
||||||
|
va_start(ap, format);
|
||||||
|
len = vsnprintf(0, 0, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
if (len != 5) exit(1);
|
||||||
|
|
||||||
|
if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
main() { foo("hello"); }
|
||||||
|
],
|
||||||
|
ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
|
||||||
|
if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
|
||||||
|
AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl AC_CHECK_FUNC(snprintf,AC_DEFINE(HAVE_SNPRINTF),SNPRINTF_O=./snprintf.o)
|
||||||
|
|
||||||
|
dnl Check for getopt_long (Solaris)
|
||||||
|
AC_CHECK_FUNCS([getopt_long],,AC_CHECK_LIB([iberty],[getopt_long],OTHERLIBS="$OTHERLIBS -liberty"))
|
||||||
|
|
||||||
|
dnl Checks for library functions.
|
||||||
|
AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
|
||||||
|
AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
|
||||||
|
AC_CHECK_LIB(wrap,main,[
|
||||||
|
LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
|
||||||
|
AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library])
|
||||||
|
AC_TRY_LINK([#include <tcpd.h>
|
||||||
|
],[int a = rfc931_timeout;],AC_DEFINE(HAVE_RFC931_TIMEOUT))
|
||||||
|
])
|
||||||
|
AC_CHECK_FUNCS(strdup strstr strtoul strtok_r initgroups closesocket sigaction)
|
||||||
|
|
||||||
|
dnl socklen_t check - from curl
|
||||||
|
AC_CHECK_TYPE([socklen_t], ,[
|
||||||
|
AC_MSG_CHECKING([for socklen_t equivalent])
|
||||||
|
AC_CACHE_VAL([curl_cv_socklen_t_equiv],
|
||||||
|
[
|
||||||
|
# Systems have either "struct sockaddr *" or
|
||||||
|
# "void *" as the second argument to getpeername
|
||||||
|
curl_cv_socklen_t_equiv=
|
||||||
|
for arg2 in "struct sockaddr" void; do
|
||||||
|
for t in int size_t unsigned long "unsigned long"; do
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_SYS_SOCKET_H
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int getpeername (int, $arg2 *, $t *);
|
||||||
|
],[
|
||||||
|
$t len;
|
||||||
|
getpeername(0,0,&len);
|
||||||
|
],[
|
||||||
|
curl_cv_socklen_t_equiv="$t"
|
||||||
|
break
|
||||||
|
])
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if test "x$curl_cv_socklen_t_equiv" = x; then
|
||||||
|
AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_MSG_RESULT($curl_cv_socklen_t_equiv)
|
||||||
|
AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
|
||||||
|
[type to use in place of socklen_t if not defined])],
|
||||||
|
[#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>])
|
||||||
|
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for type of socket size)
|
||||||
|
AC_TRY_COMPILE([#include <stdlib.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
],
|
||||||
|
[int a = send(1, (const void *)0, (size_t *) 0, (int *) 0);],
|
||||||
|
[AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Socket Size Type]) AC_MSG_RESULT(size_t)],
|
||||||
|
[AC_DEFINE(SOCKET_SIZE_TYPE, int, [Socket Size Type]) AC_MSG_RESULT(int)])
|
||||||
|
|
||||||
|
dnl Does user want to check for SSL?
|
||||||
|
AC_ARG_ENABLE([ssl],
|
||||||
|
AS_HELP_STRING([--enable-ssl],[enables native SSL support]),[
|
||||||
|
if test x$enableval = xyes; then
|
||||||
|
check_for_ssl=yes
|
||||||
|
else
|
||||||
|
check_for_ssl=no
|
||||||
|
fi
|
||||||
|
],check_for_ssl=yes)
|
||||||
|
|
||||||
|
dnl Optional SSL library and include paths
|
||||||
|
if test x$check_for_ssl = xyes; then
|
||||||
|
# need_dh should only be set for NRPE
|
||||||
|
need_dh=yes
|
||||||
|
AC_NAGIOS_GET_SSL
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_WITH([log_facility],
|
||||||
|
AS_HELP_STRING([--with-log-facility=<facility>],
|
||||||
|
[sets NRPE syslog facility]),
|
||||||
|
[log_facility=$withval],
|
||||||
|
[log_facility=daemon])
|
||||||
|
AC_DEFINE_UNQUOTED(NRPE_LOG_FACILITY,["$log_facility"],[NRPE syslog facility])
|
||||||
|
|
||||||
|
AC_ARG_WITH([nrpe_user],
|
||||||
|
AS_HELP_STRING([--with-nrpe-user=<user>],[sets user name to run NRPE]),
|
||||||
|
[nrpe_user=$withval],
|
||||||
|
[nrpe_user=nagios])
|
||||||
|
|
||||||
|
AC_ARG_WITH([nrpe_group],
|
||||||
|
AS_HELP_STRING([--with-nrpe-group=<group>],[sets group name to run NRPE]),
|
||||||
|
[nrpe_group=$withval],
|
||||||
|
[nrpe_group=nagios])
|
||||||
|
|
||||||
|
AC_ARG_WITH([nrpe_port],
|
||||||
|
AS_HELP_STRING([--with-nrpe-port=<port>],
|
||||||
|
[sets port number for NRPE to listen on]),
|
||||||
|
[nrpe_port=$withval],
|
||||||
|
[nrpe_port=5666])
|
||||||
|
NRPE_INSTALL_OPTS="-o $nrpe_user -g $nrpe_group"
|
||||||
|
AC_DEFINE_UNQUOTED(DEFAULT_SERVER_PORT,$nrpe_port,[Default port for NRPE daemon])
|
||||||
|
|
||||||
|
AC_ARG_WITH([nagios_user],
|
||||||
|
AS_HELP_STRING([--with-nagios-user=<user>],
|
||||||
|
[sets user name for file permissions]),
|
||||||
|
[nagios_user=$withval],
|
||||||
|
[nagios_user=nagios])
|
||||||
|
AC_ARG_WITH([nagios_group],
|
||||||
|
AS_HELP_STRING([--with-nagios-group=<grp>],
|
||||||
|
[sets group name file permissions]),
|
||||||
|
[nagios_group=$withval],
|
||||||
|
[nagios_group=nagios])
|
||||||
|
NAGIOS_INSTALL_OPTS="-o $nagios_user -g $nagios_group"
|
||||||
|
|
||||||
|
dnl On HP-UX the compile will fail with a 'Duplicate symbol "setenv"' error
|
||||||
|
dnl in '/usr/local/lib/libwrap.a(setenv.o)' and '/usr/local/lib/libiberty.a(setenv.o)'
|
||||||
|
dnl so allow duplicate symbols, and use the first one
|
||||||
|
if test "`uname -s`" = "HP-UX" ; then
|
||||||
|
LDFLAGS="$LDFLAGS -Wl,+allowdups";
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([command-args],
|
||||||
|
AS_HELP_STRING([--enable-command-args],[allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!]),
|
||||||
|
AC_DEFINE_UNQUOTED(ENABLE_COMMAND_ARGUMENTS,[1],[Enable command-line arguments]))
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([bash-command-substitution],
|
||||||
|
AS_HELP_STRING([--enable-bash-command-substitution],[allows clients to pass bash command substitutions of the form $(command). *** THIS IS A HIGH SECURITY RISK! *** Read the SECURITY file before using this option!]),
|
||||||
|
AC_DEFINE_UNQUOTED(ENABLE_BASH_COMMAND_SUBSTITUTION,[1],[Enable bash command substitution]))
|
||||||
|
|
||||||
|
|
||||||
|
AC_PATH_PROG(PERL,perl)
|
||||||
|
AC_OUTPUT()
|
||||||
|
|
||||||
|
dnl Review options
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
AC_MSG_RESULT([*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:])
|
||||||
|
|
||||||
|
echo "";\
|
||||||
|
echo " General Options:";\
|
||||||
|
echo " -------------------------"
|
||||||
|
|
||||||
|
AC_MSG_RESULT([ NRPE port: $nrpe_port])
|
||||||
|
AC_MSG_RESULT([ NRPE user: $nrpe_user])
|
||||||
|
AC_MSG_RESULT([ NRPE group: $nrpe_group])
|
||||||
|
AC_MSG_RESULT([ Nagios user: $nagios_user])
|
||||||
|
AC_MSG_RESULT([ Nagios group: $nagios_group])
|
||||||
|
|
||||||
|
|
||||||
|
echo "";\
|
||||||
|
echo "";\
|
||||||
|
echo "Review the options above for accuracy. If they look okay,";\
|
||||||
|
echo "type 'make all' to compile the NRPE daemon and client";\
|
||||||
|
echo "or type 'make' to get a list of make options.";\
|
||||||
|
echo ""
|
481
configure.in
481
configure.in
@ -1,481 +0,0 @@
|
|||||||
dnl Process this -*-m4-*- file with autoconf to produce a configure script.
|
|
||||||
|
|
||||||
dnl Disable caching
|
|
||||||
define([AC_CACHE_LOAD],)
|
|
||||||
define([AC_CACHE_SAVE],)
|
|
||||||
|
|
||||||
AC_INIT([nrpe],[2.15],[nagios-users@lists.sourceforge.net],[nrpe],[http://www.nagios.org])
|
|
||||||
AC_CONFIG_SRCDIR([src/nrpe.c])
|
|
||||||
AC_CONFIG_HEADERS([include/config.h])
|
|
||||||
AC_CONFIG_FILES([Makefile
|
|
||||||
subst
|
|
||||||
src/Makefile
|
|
||||||
package/solaris/Makefile
|
|
||||||
init-script
|
|
||||||
init-script.debian
|
|
||||||
init-script.suse
|
|
||||||
nrpe.spec
|
|
||||||
sample-config/nrpe.cfg
|
|
||||||
sample-config/nrpe.xinetd])
|
|
||||||
AC_PREFIX_DEFAULT(/usr/local/nagios)
|
|
||||||
|
|
||||||
PKG_NAME=nrpe
|
|
||||||
PKG_VERSION="2.15"
|
|
||||||
PKG_HOME_URL="http://www.nagios.org/"
|
|
||||||
PKG_REL_DATE="09-06-2013"
|
|
||||||
RPM_RELEASE=1
|
|
||||||
AC_SUBST(PKG_NAME)
|
|
||||||
AC_SUBST(PKG_VERSION)
|
|
||||||
AC_SUBST(PKG_HOME_URL)
|
|
||||||
AC_SUBST(PKG_REL_DATE)
|
|
||||||
AC_SUBST(RPM_RELEASE)
|
|
||||||
|
|
||||||
dnl Figure out how to invoke "install" and what install options to use.
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_SUBST(INSTALL)
|
|
||||||
|
|
||||||
dnl What OS are we running?
|
|
||||||
AC_CANONICAL_HOST
|
|
||||||
|
|
||||||
dnl Checks for programs.
|
|
||||||
AC_PROG_CC
|
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
|
|
||||||
dnl Checks for header files.
|
|
||||||
AC_HEADER_STDC
|
|
||||||
AC_HEADER_TIME
|
|
||||||
AC_HEADER_SYS_WAIT
|
|
||||||
AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h signal.h stdint.h strings.h string.h syslog.h tcpd.h unistd.h arpa/inet.h netinet/in.h socket.h sys/types.h sys/time.h sys/resource.h sys/wait.h sys/socket.h sys/stat.h)
|
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_C_CONST
|
|
||||||
AC_STRUCT_TM
|
|
||||||
AC_TYPE_MODE_T
|
|
||||||
AC_TYPE_PID_T
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_TYPE_SIGNAL
|
|
||||||
AC_TYPE_GETGROUPS
|
|
||||||
|
|
||||||
dnl Check lengths for later tests of u_int32_t and int32_t
|
|
||||||
AC_CHECK_SIZEOF(int)
|
|
||||||
AC_CHECK_SIZEOF(short)
|
|
||||||
AC_CHECK_SIZEOF(long)
|
|
||||||
|
|
||||||
dnl Define u_int32_t if we don't have it already (Solaris, etc.)
|
|
||||||
AC_CHECK_TYPE(uint32_t,unsigned int)
|
|
||||||
AC_CHECK_TYPE(u_int32_t,unsigned int)
|
|
||||||
if test "$ac_cv_type_u_int32_t" = no ; then
|
|
||||||
if test "$ac_cv_type_u_int32_t" = yes ; then
|
|
||||||
AC_DEFINE(U_INT32_T_IS_UINT32_T,[1],[u_int32_t is uint32_t])
|
|
||||||
else
|
|
||||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
|
||||||
AC_DEFINE(U_INT32_T_IS_UINT,[1],[u_int32_t is uint])
|
|
||||||
else
|
|
||||||
if test "$ac_cv_sizeof_long" = 4 ; then
|
|
||||||
AC_DEFINE(U_INT32_T_IS_ULONG,[1],[u_int32_t is ulong])
|
|
||||||
else
|
|
||||||
if test "$ac_cv_sizeof_short" = 4 ; then
|
|
||||||
AC_DEFINE(U_INT32_T_IS_USHORT,[1],[u_int32_t is ushort])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Define int32_t if we don't have it already
|
|
||||||
AC_CHECK_TYPE(int32_t,int)
|
|
||||||
if test "$ac_cv_type_int32_t" = no ; then
|
|
||||||
if test "$ac_cv_sizeof_int" = 4 ; then
|
|
||||||
AC_DEFINE(INT32_T_IS_UINT,[1],[int32_t is uint])
|
|
||||||
else
|
|
||||||
if test "$ac_cv_sizeof_long" = 4 ; then
|
|
||||||
AC_DEFINE(INT32_T_IS_ULONG,[1],[int32_t is ulong])
|
|
||||||
else
|
|
||||||
if test "$ac_cv_sizeof_short" = 4 ; then
|
|
||||||
AC_DEFINE(INT32_T_IS_USHORT,[1],[int32_t is ushort])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
dnl Check for asprintf() and friends...
|
|
||||||
AC_CACHE_CHECK([for va_copy],ac_cv_HAVE_VA_COPY,[
|
|
||||||
AC_TRY_LINK([#include <stdarg.h>
|
|
||||||
va_list ap1,ap2;], [va_copy(ap1,ap2);],
|
|
||||||
ac_cv_HAVE_VA_COPY=yes,
|
|
||||||
ac_cv_HAVE_VA_COPY=no)])
|
|
||||||
if test x"$ac_cv_HAVE_VA_COPY" = x"yes"; then
|
|
||||||
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
|
|
||||||
else
|
|
||||||
AC_CACHE_CHECK([for __va_copy],ac_cv_HAVE___VA_COPY,[
|
|
||||||
AC_TRY_LINK([#include <stdarg.h>
|
|
||||||
va_list ap1,ap2;], [__va_copy(ap1,ap2);],
|
|
||||||
ac_cv_HAVE___VA_COPY=yes,
|
|
||||||
ac_cv_HAVE___VA_COPY=no)])
|
|
||||||
if test x"$ac_cv_HAVE___VA_COPY" = x"yes"; then
|
|
||||||
AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CHECK_FUNC(vsnprintf,,SNPRINTF_O=./snprintf.o)
|
|
||||||
AC_CHECK_FUNC(snprintf,,SNPRINTF_O=./snprintf.o)
|
|
||||||
AC_CHECK_FUNC(asprintf,,SNPRINTF_O=./snprintf.o)
|
|
||||||
AC_CHECK_FUNC(vasprintf,,SNPRINTF_O=./snprintf.o)
|
|
||||||
|
|
||||||
AC_CACHE_CHECK([for C99 vsnprintf],ac_cv_HAVE_C99_VSNPRINTF,[
|
|
||||||
AC_TRY_RUN([
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
void foo(const char *format, ...) {
|
|
||||||
va_list ap;
|
|
||||||
int len;
|
|
||||||
char buf[5];
|
|
||||||
|
|
||||||
va_start(ap, format);
|
|
||||||
len = vsnprintf(buf, 0, format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
if (len != 5) exit(1);
|
|
||||||
|
|
||||||
va_start(ap, format);
|
|
||||||
len = vsnprintf(0, 0, format, ap);
|
|
||||||
va_end(ap);
|
|
||||||
if (len != 5) exit(1);
|
|
||||||
|
|
||||||
if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
|
|
||||||
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
main() { foo("hello"); }
|
|
||||||
],
|
|
||||||
ac_cv_HAVE_C99_VSNPRINTF=yes,ac_cv_HAVE_C99_VSNPRINTF=no,ac_cv_HAVE_C99_VSNPRINTF=cross)])
|
|
||||||
if test x"$ac_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
|
|
||||||
AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Define if system has C99 compatible vsnprintf])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl AC_CHECK_FUNC(snprintf,AC_DEFINE(HAVE_SNPRINTF),SNPRINTF_O=./snprintf.o)
|
|
||||||
AC_SUBST(SNPRINTF_O)
|
|
||||||
|
|
||||||
dnl Check for getopt_long (Solaris)
|
|
||||||
AC_CHECK_FUNCS([getopt_long],,AC_CHECK_LIB([iberty],[getopt_long],OTHERLIBS="$OTHERLIBS -liberty"))
|
|
||||||
AC_SUBST(OTHERLIBS)
|
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
|
|
||||||
AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
|
|
||||||
AC_SUBST(SOCKETLIBS)
|
|
||||||
AC_CHECK_LIB(wrap,main,[
|
|
||||||
LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
|
|
||||||
AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library])
|
|
||||||
])
|
|
||||||
AC_SUBST(LIBWRAPLIBS)
|
|
||||||
AC_CHECK_FUNCS(strdup strstr strtoul initgroups closesocket)
|
|
||||||
|
|
||||||
dnl socklen_t check - from curl
|
|
||||||
AC_CHECK_TYPE([socklen_t], ,[
|
|
||||||
AC_MSG_CHECKING([for socklen_t equivalent])
|
|
||||||
AC_CACHE_VAL([curl_cv_socklen_t_equiv],
|
|
||||||
[
|
|
||||||
# Systems have either "struct sockaddr *" or
|
|
||||||
# "void *" as the second argument to getpeername
|
|
||||||
curl_cv_socklen_t_equiv=
|
|
||||||
for arg2 in "struct sockaddr" void; do
|
|
||||||
for t in int size_t unsigned long "unsigned long"; do
|
|
||||||
AC_TRY_COMPILE([
|
|
||||||
#ifdef HAVE_SYS_TYPES_H
|
|
||||||
#include <sys/types.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_SYS_SOCKET_H
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int getpeername (int, $arg2 *, $t *);
|
|
||||||
],[
|
|
||||||
$t len;
|
|
||||||
getpeername(0,0,&len);
|
|
||||||
],[
|
|
||||||
curl_cv_socklen_t_equiv="$t"
|
|
||||||
break
|
|
||||||
])
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
if test "x$curl_cv_socklen_t_equiv" = x; then
|
|
||||||
AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
AC_MSG_RESULT($curl_cv_socklen_t_equiv)
|
|
||||||
AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv,
|
|
||||||
[type to use in place of socklen_t if not defined])],
|
|
||||||
[#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>])
|
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for type of socket size)
|
|
||||||
AC_TRY_COMPILE([#include <stdlib.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
],
|
|
||||||
[int a = send(1, (const void *)0, (size_t *) 0, (int *) 0);],
|
|
||||||
[AC_DEFINE(SOCKET_SIZE_TYPE, size_t, [Socket Size Type]) AC_MSG_RESULT(size_t)],
|
|
||||||
[AC_DEFINE(SOCKET_SIZE_TYPE, int, [Socket Size Type]) AC_MSG_RESULT(int)])
|
|
||||||
|
|
||||||
dnl Stolen from Python code: loewis@users.sourceforge.net
|
|
||||||
#AC_CHECK_TYPE(socklen_t,int,
|
|
||||||
# AC_DEFINE(socklen_t,int,
|
|
||||||
# Define to `int' if <sys/socket.h> does not define.),[
|
|
||||||
# #ifdef HAVE_SYS_TYPES_H
|
|
||||||
# #include <sys/types.h>
|
|
||||||
# #endif
|
|
||||||
# #ifdef HAVE_SYS_SOCKET_H
|
|
||||||
# #include <sys/socket.h>
|
|
||||||
# #endif
|
|
||||||
# ])
|
|
||||||
|
|
||||||
dnl Does user want to check for SSL?
|
|
||||||
AC_ARG_ENABLE([ssl],
|
|
||||||
AS_HELP_STRING([--enable-ssl],[enables native SSL support]),[
|
|
||||||
if test x$enableval = xyes; then
|
|
||||||
check_for_ssl=yes
|
|
||||||
else
|
|
||||||
check_for_ssl=no
|
|
||||||
fi
|
|
||||||
],check_for_ssl=yes)
|
|
||||||
|
|
||||||
dnl Optional SSL library and include paths
|
|
||||||
ssl_dir=
|
|
||||||
ssl_inc_dir=
|
|
||||||
ssl_lib_dir=
|
|
||||||
AC_ARG_WITH([ssl],
|
|
||||||
AS_HELP_STRING([--with-ssl=DIR],[sets location of the SSL installation]),
|
|
||||||
[ssl_dir=$withval])
|
|
||||||
AC_ARG_WITH([ssl-inc],
|
|
||||||
AS_HELP_STRING([--with-ssl-inc=DIR],
|
|
||||||
[sets location of the SSL include files]),
|
|
||||||
[ ssl_inc_dir=$withval])
|
|
||||||
AC_ARG_WITH([ssl-lib],
|
|
||||||
AS_HELP_STRING([--with-ssl-lib=DIR],[sets location of the SSL libraries]),
|
|
||||||
[ssl_lib_dir=$withval])
|
|
||||||
AC_ARG_WITH([kerberos-inc],
|
|
||||||
AS_HELP_STRING([--with-kerberos-inc=DIR],
|
|
||||||
[sets location of the Kerberos include files]),
|
|
||||||
[kerberos_inc_dir=$withval])
|
|
||||||
|
|
||||||
dnl Check for SSL support
|
|
||||||
dnl Modified version of Mark Ethan Trostler's macro <trostler@juniper.net>
|
|
||||||
if test x$check_for_ssl = xyes; then
|
|
||||||
AC_MSG_CHECKING(for SSL headers)
|
|
||||||
found_ssl=no
|
|
||||||
for dir in $ssl_inc_dir $ssl_dir /usr/local/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr /usr/freeware/lib/openssl /usr/sfw/include; do
|
|
||||||
ssldir="$dir"
|
|
||||||
if test -f "$dir/include/openssl/ssl.h"; then
|
|
||||||
found_ssl=yes
|
|
||||||
CFLAGS="$CFLAGS -I$dir/include/openssl -I$ssldir/include"
|
|
||||||
sslincdir="$dir/include/openssl"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if test -f "$dir/include/ssl.h"; then
|
|
||||||
found_ssl=yes
|
|
||||||
CFLAGS="$CFLAGS -I$dir/include"
|
|
||||||
sslincdir="$dir/include"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if test -f "$dir/ssl.h"; then
|
|
||||||
found_ssl=yes
|
|
||||||
CFLAGS="$CFLAGS -I$dir"
|
|
||||||
sslincdir="$dir"
|
|
||||||
ssldir="$dir/.."
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
if test -f "$dir/openssl/ssl.h"; then
|
|
||||||
found_ssl=yes
|
|
||||||
CFLAGS="$CFLAGS -I$dir/openssl"
|
|
||||||
sslincdir="$dir/openssl"
|
|
||||||
ssldir="$dir/.."
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test x_$found_ssl != x_yes; then
|
|
||||||
AC_MSG_ERROR(Cannot find ssl headers)
|
|
||||||
else
|
|
||||||
|
|
||||||
printf "SSL headers found in $ssldir\n";
|
|
||||||
|
|
||||||
dnl Now try and find SSL libraries
|
|
||||||
AC_MSG_CHECKING(for SSL libraries)
|
|
||||||
found_ssl=no
|
|
||||||
for dir in $ssl_lib_dir $ssl_dir /usr/lib64 /usr/lib /usr/local/lib /usr/lib/ssl /usr/ssl/lib /usr/openssl/lib /usr/pkg/lib /usr/freeware/lib/openssl /usr/sfw/lib /opt/freeware/lib; do
|
|
||||||
ssllibdir="$dir"
|
|
||||||
if test "`uname -s`" = "Darwin" ; then
|
|
||||||
soext="dylib"
|
|
||||||
elif test "`uname -s`" = "HP-UX" ; then
|
|
||||||
soext="sl"
|
|
||||||
else
|
|
||||||
soext="so"
|
|
||||||
fi
|
|
||||||
if test -f "$dir/libssl.$soext"; then
|
|
||||||
found_ssl=yes
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test x_$found_ssl != x_yes; then
|
|
||||||
AC_MSG_ERROR(Cannot find ssl libraries)
|
|
||||||
else
|
|
||||||
printf "SSL libraries found in $ssllibdir\n";
|
|
||||||
|
|
||||||
LDFLAGS="$LDFLAGS -L$ssllibdir";
|
|
||||||
LIBS="$LIBS -lssl -lcrypto";
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED(HAVE_SSL,[1],[Have SSL support])
|
|
||||||
AC_SUBST(HAVE_SSL)
|
|
||||||
|
|
||||||
dnl Generate DH parameters
|
|
||||||
echo ""
|
|
||||||
echo "*** Generating DH Parameters for SSL/TLS ***"
|
|
||||||
if test -f "$ssldir/sbin/openssl"; then
|
|
||||||
sslbin=$ssldir/sbin/openssl
|
|
||||||
else
|
|
||||||
sslbin=$ssldir/bin/openssl
|
|
||||||
fi
|
|
||||||
# awk to strip off meta data at bottom of dhparam output
|
|
||||||
$sslbin dhparam -C 512 | awk '/^-----/ {exit} {print}' > include/dh.h
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl RedHat 8.0 and 9.0 include openssl compiled with kerberos, so we must include header file
|
|
||||||
AC_MSG_CHECKING(for Kerberos include files)
|
|
||||||
found_kerberos=no
|
|
||||||
for dir in $kerberos_inc_dir /usr/kerberos/include; do
|
|
||||||
kerbdir="$dir"
|
|
||||||
if test -f "$dir/krb5.h"; then
|
|
||||||
found_kerberos=yes
|
|
||||||
CFLAGS="$CFLAGS -I$kerbdir"
|
|
||||||
AC_DEFINE_UNQUOTED(HAVE_KRB5_H,[1],[Have the krb5.h header file])
|
|
||||||
dnl AC_CHECK_HEADERS(krb5.h)
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test x_$found_kerberos != x_yes; then
|
|
||||||
printf "could not find include files\n";
|
|
||||||
else
|
|
||||||
printf "found Kerberos include files in $kerbdir\n";
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_ARG_WITH([log_facility],
|
|
||||||
AS_HELP_STRING([--with-log-facility=<facility>],
|
|
||||||
[sets NRPE syslog facility]),
|
|
||||||
[log_facility=$withval],
|
|
||||||
[log_facility=daemon])
|
|
||||||
AC_SUBST(log_facility)
|
|
||||||
AC_DEFINE_UNQUOTED(NRPE_LOG_FACILITY,["$log_facility"],[NRPE syslog facility])
|
|
||||||
|
|
||||||
AC_ARG_WITH([nrpe_user],
|
|
||||||
AS_HELP_STRING([--with-nrpe-user=<user>],[sets user name to run NRPE]),
|
|
||||||
[nrpe_user=$withval],
|
|
||||||
[nrpe_user=nagios])
|
|
||||||
|
|
||||||
AC_ARG_WITH([nrpe_group],
|
|
||||||
AS_HELP_STRING([--with-nrpe-group=<group>],[sets group name to run NRPE]),
|
|
||||||
[nrpe_group=$withval],
|
|
||||||
[nrpe_group=nagios])
|
|
||||||
|
|
||||||
AC_ARG_WITH([nrpe_port],
|
|
||||||
AS_HELP_STRING([--with-nrpe-port=<port>],
|
|
||||||
[sets port number for NRPE to listen on]),
|
|
||||||
[nrpe_port=$withval],
|
|
||||||
[nrpe_port=5666])
|
|
||||||
AC_SUBST(nrpe_user)
|
|
||||||
AC_SUBST(nrpe_group)
|
|
||||||
NRPE_INSTALL_OPTS="-o $nrpe_user -g $nrpe_group"
|
|
||||||
AC_SUBST(NRPE_INSTALL_OPTS)
|
|
||||||
AC_SUBST(nrpe_port)
|
|
||||||
AC_DEFINE_UNQUOTED(DEFAULT_SERVER_PORT,$nrpe_port,[Default port for NRPE daemon])
|
|
||||||
|
|
||||||
AC_ARG_WITH([nagios_user],
|
|
||||||
AS_HELP_STRING([--with-nagios-user=<user>],
|
|
||||||
[sets user name for file permissions]),
|
|
||||||
[nagios_user=$withval],
|
|
||||||
[nagios_user=nagios])
|
|
||||||
AC_ARG_WITH([nagios_group],
|
|
||||||
AS_HELP_STRING([--with-nagios-group=<grp>],
|
|
||||||
[sets group name file permissions]),
|
|
||||||
[nagios_group=$withval],
|
|
||||||
[nagios_group=nagios])
|
|
||||||
AC_SUBST(nagios_user)
|
|
||||||
AC_SUBST(nagios_group)
|
|
||||||
NAGIOS_INSTALL_OPTS="-o $nagios_user -g $nagios_group"
|
|
||||||
AC_SUBST(NAGIOS_INSTALL_OPTS)
|
|
||||||
|
|
||||||
# Determine target OS, version and architecture for package build macros
|
|
||||||
if test "x$target_ver" = "x" ; then
|
|
||||||
TARGET_VER=`uname -r`
|
|
||||||
else
|
|
||||||
TARGET_VER=$target_ver
|
|
||||||
fi
|
|
||||||
AC_SUBST(TARGET_VER)
|
|
||||||
if test "x$target_os" = "x" ; then
|
|
||||||
TARGET_OS=`uname -s`
|
|
||||||
else
|
|
||||||
TARGET_OS=$target_os
|
|
||||||
fi
|
|
||||||
AC_SUBST(TARGET_OS)
|
|
||||||
if test "x$target_cpu" = "x" ; then
|
|
||||||
TARGET_ARCH=`uname -p`
|
|
||||||
else
|
|
||||||
TARGET_ARCH=$target_cpu
|
|
||||||
fi
|
|
||||||
AC_SUBST(TARGET_ARCH)
|
|
||||||
TARGET_PLATFORM=""
|
|
||||||
if test "x$TARGET_OS" = "xSunOS" ; then
|
|
||||||
if test "x$TARGET_VER" = "x5.10" ; then
|
|
||||||
TARGET_PLATFORM="sol10"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AC_SUBST(TARGET_PLATFORM)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([command-args],
|
|
||||||
AS_HELP_STRING([--enable-command-args],[allows clients to specify command arguments. *** THIS IS A SECURITY RISK! *** Read the SECURITY file before using this option!]),
|
|
||||||
AC_DEFINE_UNQUOTED(ENABLE_COMMAND_ARGUMENTS,[1],[Enable command-line arguments]))
|
|
||||||
|
|
||||||
AC_ARG_ENABLE([bash-command-substitution],
|
|
||||||
AS_HELP_STRING([--enable-bash-command-substitution],[allows clients to pass bash command substitutions of the form $(command). *** THIS IS A HIGH SECURITY RISK! *** Read the SECURITY file before using this option!]),
|
|
||||||
AC_DEFINE_UNQUOTED(ENABLE_BASH_COMMAND_SUBSTITUTION,[1],[Enable bash command substitution]))
|
|
||||||
|
|
||||||
|
|
||||||
AC_PATH_PROG(PERL,perl)
|
|
||||||
AC_OUTPUT()
|
|
||||||
|
|
||||||
perl subst init-script
|
|
||||||
perl subst init-script.debian
|
|
||||||
perl subst init-script.suse
|
|
||||||
perl subst sample-config/nrpe.cfg
|
|
||||||
perl subst sample-config/nrpe.xinetd
|
|
||||||
|
|
||||||
|
|
||||||
dnl Review options
|
|
||||||
echo ""
|
|
||||||
echo ""
|
|
||||||
AC_MSG_RESULT([*** Configuration summary for $PKG_NAME $PKG_VERSION $PKG_REL_DATE ***:])
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo " General Options:"
|
|
||||||
echo " -------------------------"
|
|
||||||
|
|
||||||
AC_MSG_RESULT([ NRPE port: $nrpe_port])
|
|
||||||
AC_MSG_RESULT([ NRPE user: $nrpe_user])
|
|
||||||
AC_MSG_RESULT([ NRPE group: $nrpe_group])
|
|
||||||
AC_MSG_RESULT([ Nagios user: $nagios_user])
|
|
||||||
AC_MSG_RESULT([ Nagios group: $nagios_group])
|
|
||||||
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo ""
|
|
||||||
echo "Review the options above for accuracy. If they look okay,"
|
|
||||||
echo "type 'make all' to compile the NRPE daemon and client."
|
|
||||||
echo ""
|
|
29
debian/NEWS
vendored
29
debian/NEWS
vendored
@ -1,3 +1,32 @@
|
|||||||
|
nagios-nrpe (3.0.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
The check_nrpe command definition has been updated to remove the
|
||||||
|
arguments option, because nagios-nrpe-server does not support
|
||||||
|
command arguments since 2.15-1. And the check_nrpe_1arg command
|
||||||
|
definition has been removed.
|
||||||
|
|
||||||
|
If you're using the check_nrpe_1arg command in your Nagios/Icinga
|
||||||
|
configuration, you need to replace it with check_nrpe.
|
||||||
|
|
||||||
|
SSL support is disabled by default, the reworked SSL/TLS support in
|
||||||
|
NRPE requires configuration before it can be used. Read the
|
||||||
|
instructions in /usr/share/doc/nagios-nrpe-server/README.SSL.md.gz
|
||||||
|
before enabling SSL support in /etc/default/nagios-nrpe-server.
|
||||||
|
|
||||||
|
The default check_nrpe command in check_nrpe.cfg has been updated
|
||||||
|
to disable SSL by default too. The check_nrpe_ssl command has been
|
||||||
|
added to connect to the NRPE daemon over SSL.
|
||||||
|
|
||||||
|
Beware that the new NRPE daemon only works with old check_nrpe
|
||||||
|
plugins when SSL support is disabled on both sides, likewise the
|
||||||
|
new check_nrpe plugin only works with the old NRPE daemon when SSL
|
||||||
|
support is disabled.
|
||||||
|
|
||||||
|
To use SSL between the NRPE client and server, configuring Stunnel
|
||||||
|
is recommended.
|
||||||
|
|
||||||
|
-- Bas Couwenberg <sebastic@debian.org> Mon, 05 Dec 2016 01:16:46 +0100
|
||||||
|
|
||||||
nagios-nrpe (2.15-1) unstable; urgency=high
|
nagios-nrpe (2.15-1) unstable; urgency=high
|
||||||
|
|
||||||
This update disables the command-args support in nrpe. The feature
|
This update disables the command-args support in nrpe. The feature
|
||||||
|
2
debian/README.Debian
vendored
2
debian/README.Debian
vendored
@ -20,4 +20,4 @@ The current implementation does not verify client or server and uses
|
|||||||
pregenerated key data by default. It cannot be fixed right away because
|
pregenerated key data by default. It cannot be fixed right away because
|
||||||
it would break the existing NRPE protocol.
|
it would break the existing NRPE protocol.
|
||||||
|
|
||||||
Please refer to the file SECURITY in this directory for more information.
|
Please refer to the file SECURITY.md in this directory for more information.
|
||||||
|
3
debian/README.source
vendored
3
debian/README.source
vendored
@ -1,3 +0,0 @@
|
|||||||
This package uses dpatch for its patch management, see
|
|
||||||
/usr/share/doc/dpatch/README.source.gz if you are unfamiliar with it.
|
|
||||||
|
|
84
debian/changelog
vendored
84
debian/changelog
vendored
@ -1,10 +1,84 @@
|
|||||||
nagios-nrpe (2.15-200) UNRELEASED; urgency=medium
|
nagios-nrpe (3.0.1-3) unstable; urgency=medium
|
||||||
|
|
||||||
* Non-maintainer upload.
|
* Add reload command to systemd service file.
|
||||||
* Recompile with --enable-command-args
|
* Make missing EnvironmentFile non-fatal in systemd service.
|
||||||
* Bigger version number to replace debmon backages
|
|
||||||
|
|
||||||
-- Mario Fetka <mario.fetka@gmail.com> Fri, 24 Jun 2016 15:52:30 +0200
|
-- Bas Couwenberg <sebastic@debian.org> Sat, 24 Dec 2016 10:24:09 +0100
|
||||||
|
|
||||||
|
nagios-nrpe (3.0.1-2) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Add systemd service file and tmpfiles.d configuration.
|
||||||
|
(closes: #665422)
|
||||||
|
* Update nrpe manpage to include new options.
|
||||||
|
|
||||||
|
-- Bas Couwenberg <sebastic@debian.org> Fri, 23 Dec 2016 23:15:19 +0100
|
||||||
|
|
||||||
|
nagios-nrpe (3.0.1-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Update check_nrpe.cfg to remove command with arguments.
|
||||||
|
(LP: #975918)
|
||||||
|
* Disable SSL support by default, requires configuration.
|
||||||
|
It also doesn't work well with old check_nrpe versions.
|
||||||
|
* Move from experimental to unstable.
|
||||||
|
|
||||||
|
-- Bas Couwenberg <sebastic@debian.org> Fri, 09 Dec 2016 00:15:29 +0100
|
||||||
|
|
||||||
|
nagios-nrpe (3.0.1-1~exp1) experimental; urgency=medium
|
||||||
|
|
||||||
|
[ Alexander Wirt ]
|
||||||
|
* Sync uploaders with reality.
|
||||||
|
(closes: #773441)
|
||||||
|
|
||||||
|
[ Bas Couwenberg ]
|
||||||
|
* New upstream release.
|
||||||
|
- Reworked SSL/TLS. See the README.SSL.md file for full info.
|
||||||
|
(closes: #547092)
|
||||||
|
* Add myself to Uploaders.
|
||||||
|
* Add Vcs-* fields to control file.
|
||||||
|
(closes: #755507)
|
||||||
|
* Change nagios-plugins dependencies to monitoring-plugins.
|
||||||
|
* Switch from dpatch to source format 3.0 (quilt).
|
||||||
|
(closes: #756410)
|
||||||
|
* Drop obsolete patch: 04_weird_output.dpatch.
|
||||||
|
* Restructure control file with cme.
|
||||||
|
* Reorder (build) dependencies.
|
||||||
|
* Add Homepage field to control file.
|
||||||
|
* Update copyright file using copyright-format 1.0.
|
||||||
|
* Add gbp.conf to use pristine-tar by default.
|
||||||
|
* Update build dependency to use openssl 1.0.
|
||||||
|
* Enable all hardening buildflags.
|
||||||
|
(closes: #728218)
|
||||||
|
* Enable parallel builds.
|
||||||
|
* Suggest xinetd | inetd.
|
||||||
|
(closes: #662247)
|
||||||
|
* Include PDF & ODT documentation in docs.
|
||||||
|
(closes: #662249)
|
||||||
|
* Update watch file to handle common issues.
|
||||||
|
* Add upstream metadata.
|
||||||
|
* Merge nrpe.cfg patches into single patch.
|
||||||
|
(closes: #660583)
|
||||||
|
* Use configure option to set custom PID directory instead of patch.
|
||||||
|
* Drop 09_noremove_pid.patch, fixed upstream. Refresh remaining patches.
|
||||||
|
* Add patch to use pre-generated dh.h for reproducible builds.
|
||||||
|
* Override dh_auto_build to build all targets.
|
||||||
|
* Use dh-autoreconf instead of autotools-dev.
|
||||||
|
* Use exit status 0 in init script when inetd is configured.
|
||||||
|
(closes: #775924)
|
||||||
|
* Include README.SSL.md in docs.
|
||||||
|
* Bump Standards-Version to 3.9.8, changes:
|
||||||
|
Vcs-* fields, copyright-format 1.0.
|
||||||
|
|
||||||
|
[ Benjamin Drung ]
|
||||||
|
* Use dh_auto_configure to enable default hardening flags.
|
||||||
|
(closes: #843805)
|
||||||
|
* Fix copyright-refers-to-symlink-license.
|
||||||
|
(closes: #756414)
|
||||||
|
|
||||||
|
[ Chris Lamb ]
|
||||||
|
* Make the build reproducible.
|
||||||
|
(closes: #834857)
|
||||||
|
|
||||||
|
-- Bas Couwenberg <sebastic@debian.org> Sun, 04 Dec 2016 18:36:54 +0100
|
||||||
|
|
||||||
nagios-nrpe (2.15-1) unstable; urgency=high
|
nagios-nrpe (2.15-1) unstable; urgency=high
|
||||||
|
|
||||||
|
8
debian/check_nrpe.cfg
vendored
8
debian/check_nrpe.cfg
vendored
@ -1,11 +1,11 @@
|
|||||||
# this command runs a program $ARG1$ with arguments $ARG2$
|
# this command runs a program $ARG1$ with no arguments and disables SSL support
|
||||||
define command {
|
define command {
|
||||||
command_name check_nrpe
|
command_name check_nrpe
|
||||||
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
|
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -n
|
||||||
}
|
}
|
||||||
|
|
||||||
# this command runs a program $ARG1$ with no arguments
|
# this command runs a program $ARG1$ with no arguments and enables SSL support
|
||||||
define command {
|
define command {
|
||||||
command_name check_nrpe_1arg
|
command_name check_nrpe_ssl
|
||||||
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
|
||||||
}
|
}
|
||||||
|
27
debian/control
vendored
27
debian/control
vendored
@ -1,17 +1,28 @@
|
|||||||
Source: nagios-nrpe
|
Source: nagios-nrpe
|
||||||
|
Maintainer: Debian Nagios Maintainer Group <pkg-nagios-devel@lists.alioth.debian.org>
|
||||||
|
Uploaders: Bas Couwenberg <sebastic@debian.org>
|
||||||
Section: net
|
Section: net
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Debian Nagios Maintainer Group <pkg-nagios-devel@lists.alioth.debian.org>
|
Build-Depends: debhelper (>= 9),
|
||||||
Uploaders: sean finney <seanius@debian.org>, Jason Thomas <jason@debian.org>, Alexander Wirt <formorer@debian.org>
|
dh-autoreconf,
|
||||||
Build-Depends: debhelper (>= 9), openssl, dpatch (>= 2.0.32~), libssl-dev, libwrap0-dev, autotools-dev (>= 20100122.1)
|
dh-systemd,
|
||||||
Standards-Version: 3.9.5
|
libssl1.0-dev,
|
||||||
|
libwrap0-dev,
|
||||||
|
openssl
|
||||||
|
Standards-Version: 3.9.8
|
||||||
|
Vcs-Browser: https://anonscm.debian.org/cgit/pkg-nagios/pkg-nrpe.git
|
||||||
|
Vcs-Git: https://anonscm.debian.org/git/pkg-nagios/pkg-nrpe.git
|
||||||
|
Homepage: https://github.com/NagiosEnterprises/nrpe
|
||||||
|
|
||||||
Package: nagios-nrpe-server
|
Package: nagios-nrpe-server
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base (>= 3.0-3)
|
Depends: lsb-base,
|
||||||
|
${shlibs:Depends},
|
||||||
|
${misc:Depends}
|
||||||
|
Recommends: monitoring-plugins-basic | monitoring-plugins
|
||||||
|
Suggests: xinetd | inetd
|
||||||
Pre-Depends: adduser
|
Pre-Depends: adduser
|
||||||
Conflicts: nagios-nrpe-doc
|
Conflicts: nagios-nrpe-doc
|
||||||
Recommends: nagios-plugins-basic | nagios-plugins
|
|
||||||
Description: Nagios Remote Plugin Executor Server
|
Description: Nagios Remote Plugin Executor Server
|
||||||
Nagios is a host/service/network monitoring and management system.
|
Nagios is a host/service/network monitoring and management system.
|
||||||
.
|
.
|
||||||
@ -23,7 +34,8 @@ Description: Nagios Remote Plugin Executor Server
|
|||||||
|
|
||||||
Package: nagios-nrpe-plugin
|
Package: nagios-nrpe-plugin
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
Depends: ${shlibs:Depends},
|
||||||
|
${misc:Depends}
|
||||||
Conflicts: nagios-nrpe-doc
|
Conflicts: nagios-nrpe-doc
|
||||||
Description: Nagios Remote Plugin Executor Plugin
|
Description: Nagios Remote Plugin Executor Plugin
|
||||||
Nagios is a host/service/network monitoring and management system.
|
Nagios is a host/service/network monitoring and management system.
|
||||||
@ -33,4 +45,3 @@ Description: Nagios Remote Plugin Executor Plugin
|
|||||||
.
|
.
|
||||||
This is a plugin that is run on the Nagios host and is used to contact the
|
This is a plugin that is run on the Nagios host and is used to contact the
|
||||||
NRPE process on remote hosts.
|
NRPE process on remote hosts.
|
||||||
|
|
||||||
|
99
debian/copyright
vendored
99
debian/copyright
vendored
@ -1,37 +1,78 @@
|
|||||||
This package was debianized by Jason Thomas <jason@debian.org> on
|
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||||
Wed, 14 Jan 2004 16:13:36 +1100.
|
Upstream-Name: NRPE
|
||||||
|
Upstream-Contact: Nagios Users List <nagios-users@lists.nagios.com>
|
||||||
|
Source: https://github.com/NagiosEnterprises/nrpe
|
||||||
|
|
||||||
It was downloaded from http://www.nagios.org/download/extras.php
|
Files: *
|
||||||
|
Copyright: 1999-2008, Ethan Galstad (nagios@nagios.org)
|
||||||
|
2009, Nagios Core Development Team and Community Contributors
|
||||||
|
License: GPL-2+ with OpenSSL exception
|
||||||
|
|
||||||
Current Debian Maintainers: The nagios packaging team
|
Files: include/acl.h
|
||||||
http://alioth.debian.org/projects/pkg-nagios/
|
src/acl.c
|
||||||
|
Copyright: 2011, Kaspersky Lab ZAO
|
||||||
Mailing-List:
|
License: GPL-2+
|
||||||
pkg-nagios-devel@lists.alioth.debian.org
|
|
||||||
|
|
||||||
Upstream Author: Ethan Galstad (nagios@nagios.org)
|
|
||||||
|
|
||||||
Copyright (c) 1999-2009 Ethan Galstad (nagios@nagios.org)
|
|
||||||
|
|
||||||
License:
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
On Debian systems, the complete text of the GNU General Public
|
|
||||||
License can be found in /usr/share/common-licenses/GPL.
|
|
||||||
|
|
||||||
There is an exception in the sourcecode for linking against openssl:
|
|
||||||
|
|
||||||
This program is released under the GPL (see below) with the additional
|
|
||||||
exemption that compiling, linking, and/or using OpenSSL is allowed.
|
|
||||||
|
|
||||||
The file src/snprintf.c is Copyright 1995 by Patrick Powell
|
|
||||||
|
|
||||||
|
Files: src/snprintf.c
|
||||||
|
Copyright: Patrick Powell 1995
|
||||||
|
License: attribution
|
||||||
This code is based on code written by Patrick Powell (papowell@astart.com)
|
This code is based on code written by Patrick Powell (papowell@astart.com)
|
||||||
It may be used for any purpose as long as this notice remains intact
|
It may be used for any purpose as long as this notice remains intact
|
||||||
on all source code distributions
|
on all source code distributions
|
||||||
|
|
||||||
|
Files: debian/*
|
||||||
|
Copyright: 2004, Jason Thomas <jason@debian.org>
|
||||||
|
License: GPL-2+
|
||||||
|
|
||||||
|
License: GPL-2+
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
.
|
||||||
|
On Debian systems, the complete text of version 2 of the GNU General
|
||||||
|
Public License can be found in `/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
License: GPL-2+ with OpenSSL exception
|
||||||
|
This program is free software; you can redistribute it
|
||||||
|
and/or modify it under the terms of the GNU General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2 of the License, or (at your option) any later
|
||||||
|
version.
|
||||||
|
.
|
||||||
|
In addition, as a special exception, the author of this
|
||||||
|
program gives permission to link the code of its
|
||||||
|
release with the OpenSSL project's "OpenSSL" library (or
|
||||||
|
with modified versions of it that use the same license as
|
||||||
|
the "OpenSSL" library), and distribute the linked
|
||||||
|
executables. You must obey the GNU General Public
|
||||||
|
License in all respects for all of the code used other
|
||||||
|
than "OpenSSL". If you modify this file, you may extend
|
||||||
|
this exception to your version of the file, but you are
|
||||||
|
not obligated to do so. If you do not wish to do so,
|
||||||
|
delete this exception statement from your version.
|
||||||
|
.
|
||||||
|
This program is distributed in the hope that it will be
|
||||||
|
useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||||
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. See the GNU General Public License for more
|
||||||
|
details.
|
||||||
|
.
|
||||||
|
You should have received a copy of the GNU General Public
|
||||||
|
License along with this package; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
||||||
|
Boston, MA 02110-1301 USA
|
||||||
|
.
|
||||||
|
On Debian systems, the full text of the GNU General Public
|
||||||
|
License version 2 can be found in the file
|
||||||
|
`/usr/share/common-licenses/GPL-2'.
|
||||||
|
|
||||||
|
3
debian/docs
vendored
3
debian/docs
vendored
@ -1,3 +0,0 @@
|
|||||||
README
|
|
||||||
LEGAL
|
|
||||||
SECURITY
|
|
16
debian/gbp.conf
vendored
Normal file
16
debian/gbp.conf
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[DEFAULT]
|
||||||
|
|
||||||
|
# The default name for the upstream branch is "upstream".
|
||||||
|
# Change it if the name is different (for instance, "master").
|
||||||
|
upstream-branch = upstream
|
||||||
|
|
||||||
|
# The default name for the Debian branch is "master".
|
||||||
|
# Change it if the name is different (for instance, "debian/unstable").
|
||||||
|
debian-branch = master
|
||||||
|
|
||||||
|
# git-import-orig uses the following names for the upstream tags.
|
||||||
|
# Change the value if you are not using git-import-orig
|
||||||
|
upstream-tag = upstream/%(version)s
|
||||||
|
|
||||||
|
# Always use pristine-tar.
|
||||||
|
pristine-tar = True
|
16
debian/nagios-nrpe-server.default
vendored
16
debian/nagios-nrpe-server.default
vendored
@ -1,12 +1,18 @@
|
|||||||
# defaults file for nagios-nrpe-server
|
# defaults file for nagios-nrpe-server
|
||||||
# (this file is a /bin/sh compatible fragment)
|
# (this file is a /bin/sh compatible fragment)
|
||||||
|
|
||||||
# DAEMON_OPTS are any extra cmdline parameters you'd like to
|
# NRPE_OPTS are any extra cmdline parameters you'd like to pass along to the
|
||||||
# pass along to the nrpe daemon
|
# nrpe daemon.
|
||||||
#DAEMON_OPTS="--no-ssl"
|
#
|
||||||
|
# The -n option disables SSL support.
|
||||||
|
# Don't remove this option before configuring SSL in /etc/nagios/nrpe.cfg!
|
||||||
|
# See /usr/share/doc/nagios-nrpe-server/README.SSL.md.gz for instructions.
|
||||||
|
NRPE_OPTS="-n"
|
||||||
|
|
||||||
# NICENESS is if you want to run the server at a different nice() priority
|
# NICENESS is if you want to run the server at a different nice() priority.
|
||||||
|
# (only used by the init script)
|
||||||
#NICENESS=5
|
#NICENESS=5
|
||||||
|
|
||||||
# INETD is if you want to run the server via inetd (default=0, run as daemon)
|
# INETD is if you want to run the server via inetd (default=0, run as daemon).
|
||||||
|
# (only used by the init script)
|
||||||
#INETD=0
|
#INETD=0
|
||||||
|
6
debian/nagios-nrpe-server.doc-base
vendored
Normal file
6
debian/nagios-nrpe-server.doc-base
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
Document: nagios-nrpe
|
||||||
|
Title: NRPE Documentation
|
||||||
|
Section: Network/Monitoring
|
||||||
|
|
||||||
|
Format: PDF
|
||||||
|
Files: /usr/share/doc/nagios-nrpe-server/*.pdf.gz
|
5
debian/nagios-nrpe-server.docs
vendored
Normal file
5
debian/nagios-nrpe-server.docs
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
LEGAL
|
||||||
|
README.md
|
||||||
|
README.SSL.md
|
||||||
|
SECURITY.md
|
||||||
|
docs/*
|
4
debian/nagios-nrpe-server.init
vendored
4
debian/nagios-nrpe-server.init
vendored
@ -52,10 +52,10 @@ set -e
|
|||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
if [ "$INETD" = 1 ]; then
|
if [ "$INETD" = 1 ]; then
|
||||||
exit 1
|
exit 0
|
||||||
fi
|
fi
|
||||||
log_daemon_msg "Starting $DESC" "$NAME"
|
log_daemon_msg "Starting $DESC" "$NAME"
|
||||||
start_daemon -p $PIDDIR/nrpe.pid $NICENESS $DAEMON -c $CONFIG -d $DAEMON_OPTS
|
start_daemon -p $PIDDIR/nrpe.pid $NICENESS $DAEMON -c $CONFIG -d $NRPE_OPTS
|
||||||
log_end_msg $?
|
log_end_msg $?
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
|
23
debian/nagios-nrpe-server.service
vendored
Normal file
23
debian/nagios-nrpe-server.service
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Nagios Remote Plugin Executor
|
||||||
|
Documentation=http://www.nagios.org/documentation
|
||||||
|
After=var-run.mount nss-lookup.target network.target local-fs.target remote-fs.target time-sync.target
|
||||||
|
Before=getty@tty1.service plymouth-quit.service xdm.service
|
||||||
|
Conflicts=nrpe.socket
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=on-abort
|
||||||
|
PIDFile=/var/run/nagios/nrpe.pid
|
||||||
|
EnvironmentFile=-/etc/default/nagios-nrpe-server
|
||||||
|
ExecStart=/usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f $NRPE_OPTS
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
ExecStopPost=/bin/rm -f /var/run/nagios/nrpe.pid
|
||||||
|
TimeoutStopSec=60
|
||||||
|
User=nagios
|
||||||
|
Group=nagios
|
||||||
|
PrivateTmp=true
|
||||||
|
OOMScoreAdjust=-500
|
2
debian/nagios-nrpe-server.tmpfile
vendored
Normal file
2
debian/nagios-nrpe-server.tmpfile
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#Type Path Mode UID GID Age Argument
|
||||||
|
d /var/run/nagios 0755 nagios nagios - -
|
24
debian/nrpe.8
vendored
24
debian/nrpe.8
vendored
@ -19,7 +19,7 @@
|
|||||||
nrpe \- Nagios Remote Plugin Executor - Server
|
nrpe \- Nagios Remote Plugin Executor - Server
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B nagios-nrpe
|
.B nagios-nrpe
|
||||||
\fI-c <config_file> <mode>\fR
|
\fI[-n] -c <config_file> [-4|-6] <mode>\fR
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.PP
|
.PP
|
||||||
The purpose of this addon is to allow you to execute Nagios plugins on a
|
The purpose of this addon is to allow you to execute Nagios plugins on a
|
||||||
@ -28,16 +28,24 @@ remote host in as transparent a manner as possible.
|
|||||||
This program runs as a background process on the remote host and processes
|
This program runs as a background process on the remote host and processes
|
||||||
command execution requests from the check_nrpe plugin on the Nagios host.
|
command execution requests from the check_nrpe plugin on the Nagios host.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.IP
|
.TP
|
||||||
<config_file> = Name of config file to use
|
\fB\-n\fR = Do not use SSL
|
||||||
.IP
|
.TP
|
||||||
|
\fB\-c\fR <config_file> = Name of config file to use
|
||||||
|
.TP
|
||||||
|
\fB\-4\fR = Use IPv4 only
|
||||||
|
.TP
|
||||||
|
\fB\-6\fR = Use IPv6 only
|
||||||
|
.TP
|
||||||
<mode> = One of the following two operating modes:
|
<mode> = One of the following two operating modes:
|
||||||
.TP
|
.TP
|
||||||
\fB\-i\fR
|
\fB\-i\fR = Run as a service under inetd or xinetd
|
||||||
= Run as a service under inetd or xinetd
|
|
||||||
.TP
|
.TP
|
||||||
\fB\-d\fR
|
\fB\-d\fR = Run as a standalone daemon
|
||||||
= Run as a standalone daemon
|
.TP
|
||||||
|
\fB\-d \-s\fR = Run as a subsystem under AIX
|
||||||
|
.TP
|
||||||
|
\fB\-d\fR = Don't fork() for systemd, launchd, etc.
|
||||||
.PP
|
.PP
|
||||||
Notes:
|
Notes:
|
||||||
This program is designed to process requests from the check_nrpe
|
This program is designed to process requests from the check_nrpe
|
||||||
|
6
debian/patches/00list
vendored
6
debian/patches/00list
vendored
@ -1,6 +0,0 @@
|
|||||||
02_nrpe.cfg_local-include.dpatch
|
|
||||||
03_support_nrpe.d.dpatch
|
|
||||||
05_pid_privileges.dpatch
|
|
||||||
06_pid_directory.dpatch
|
|
||||||
07_warn_ssloption.dpatch
|
|
||||||
09_noremove_pid.dpatch
|
|
19
debian/patches/02_nrpe.cfg_local-include.dpatch
vendored
19
debian/patches/02_nrpe.cfg_local-include.dpatch
vendored
@ -1,19 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 02_nrpe.cfg_local-include.dpatch by <seanius@debian.org>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: Support nrpe_local.cfg
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad nagios-nrpe-2.4~/sample-config/nrpe.cfg.in nagios-nrpe-2.4/sample-config/nrpe.cfg.in
|
|
||||||
--- nagios-nrpe-2.4~/sample-config/nrpe.cfg.in 2006-02-03 23:02:32.000000000 +0100
|
|
||||||
+++ nagios-nrpe-2.4/sample-config/nrpe.cfg.in 2006-03-31 07:07:16.000000000 +0200
|
|
||||||
@@ -178,3 +178,8 @@
|
|
||||||
#command[check_load]=@libexecdir@/check_load -w $ARG1$ -c $ARG2$
|
|
||||||
#command[check_disk]=@libexecdir@/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
|
||||||
#command[check_procs]=@libexecdir@/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+# local configuration:
|
|
||||||
+# if you'd prefer, you can instead place directives here
|
|
||||||
+include=/etc/nagios/nrpe_local.cfg
|
|
22
debian/patches/02_nrpe.cfg_local-include_support_nrpe.d.patch
vendored
Normal file
22
debian/patches/02_nrpe.cfg_local-include_support_nrpe.d.patch
vendored
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Description: Support nrpe_local.cfg & nrpe.d directory.
|
||||||
|
Author: Sean Finney <seanius@debian.org>
|
||||||
|
Author: Alexander Wirt <formorer@debian.org>
|
||||||
|
Forwarded: not-needed
|
||||||
|
|
||||||
|
--- a/sample-config/nrpe.cfg.in
|
||||||
|
+++ b/sample-config/nrpe.cfg.in
|
||||||
|
@@ -301,3 +301,14 @@ command[check_total_procs]=@pluginsdir@/
|
||||||
|
#command[check_load]=@pluginsdir@/check_load -w $ARG1$ -c $ARG2$
|
||||||
|
#command[check_disk]=@pluginsdir@/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
||||||
|
#command[check_procs]=@pluginsdir@/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
||||||
|
+
|
||||||
|
+# local configuration:
|
||||||
|
+# if you'd prefer, you can instead place directives here
|
||||||
|
+
|
||||||
|
+include=/etc/nagios/nrpe_local.cfg
|
||||||
|
+
|
||||||
|
+# you can place your config snipplets into nrpe.d/
|
||||||
|
+# only snipplets ending in .cfg will get included
|
||||||
|
+
|
||||||
|
+include_dir=/etc/nagios/nrpe.d/
|
||||||
|
+
|
21
debian/patches/03_support_nrpe.d.dpatch
vendored
21
debian/patches/03_support_nrpe.d.dpatch
vendored
@ -1,21 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 03_support_nrpe.d.dpatch by Alexander Wirt <formorer@debian.org>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: Support an nrpe.d directory
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad nagios-nrpe-2.8.1~/sample-config/nrpe.cfg.in nagios-nrpe-2.8.1/sample-config/nrpe.cfg.in
|
|
||||||
--- nagios-nrpe-2.8.1~/sample-config/nrpe.cfg.in 2008-04-15 23:53:48.000000000 +0200
|
|
||||||
+++ nagios-nrpe-2.8.1/sample-config/nrpe.cfg.in 2008-04-15 23:54:48.000000000 +0200
|
|
||||||
@@ -211,3 +211,9 @@
|
|
||||||
# local configuration:
|
|
||||||
# if you'd prefer, you can instead place directives here
|
|
||||||
include=/etc/nagios/nrpe_local.cfg
|
|
||||||
+
|
|
||||||
+#
|
|
||||||
+# you can place your config snipplets into nrpe.d/
|
|
||||||
+# only snipplets ending in .cfg will get included
|
|
||||||
+include_dir=/etc/nagios/nrpe.d/
|
|
||||||
+
|
|
||||||
+
|
|
20
debian/patches/04_weird_output.dpatch
vendored
20
debian/patches/04_weird_output.dpatch
vendored
@ -1,20 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 04_weird_output.dpatch by <luk@luknote>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: Clean buffer before use
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' pkg-nrpe~/src/nrpe.c pkg-nrpe/src/nrpe.c
|
|
||||||
--- pkg-nrpe~/src/nrpe.c 2012-04-30 09:36:53.000000000 +0200
|
|
||||||
+++ pkg-nrpe/src/nrpe.c 2012-04-30 09:52:47.890535825 +0200
|
|
||||||
@@ -1107,6 +1107,9 @@
|
|
||||||
/* disable connection alarm - a new alarm will be setup during my_system */
|
|
||||||
alarm(0);
|
|
||||||
|
|
||||||
+ // null buffer before using it!
|
|
||||||
+ memset(buffer,0,sizeof(buffer));
|
|
||||||
+
|
|
||||||
/* if this is the version check command, just spew it out */
|
|
||||||
if(!strcmp(command_name,NRPE_HELLO_COMMAND)){
|
|
||||||
|
|
27
debian/patches/05_pid_privileges.dpatch
vendored
27
debian/patches/05_pid_privileges.dpatch
vendored
@ -1,27 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 05_pid_privileges.dpatch by <luk@luknote>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: No description.
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' pkg-nrpe~/src/nrpe.c pkg-nrpe/src/nrpe.c
|
|
||||||
--- pkg-nrpe~/src/nrpe.c 2014-05-23 20:42:27.000000000 +0200
|
|
||||||
+++ pkg-nrpe/src/nrpe.c 2014-07-15 14:09:45.027422047 +0200
|
|
||||||
@@ -317,13 +317,13 @@
|
|
||||||
/* log info to syslog facility */
|
|
||||||
syslog(LOG_NOTICE,"Starting up daemon");
|
|
||||||
|
|
||||||
+ /* drop privileges */
|
|
||||||
+ drop_privileges(nrpe_user,nrpe_group);
|
|
||||||
+
|
|
||||||
/* write pid file */
|
|
||||||
if(write_pid_file()==ERROR)
|
|
||||||
return STATE_CRITICAL;
|
|
||||||
|
|
||||||
- /* drop privileges */
|
|
||||||
- drop_privileges(nrpe_user,nrpe_group);
|
|
||||||
-
|
|
||||||
/* make sure we're not root */
|
|
||||||
check_privileges();
|
|
||||||
|
|
19
debian/patches/06_pid_directory.dpatch
vendored
19
debian/patches/06_pid_directory.dpatch
vendored
@ -1,19 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 04_pid_directory.dpatch by Alexander Wirt <formorer@debian.org>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: No description.
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad nagios-nrpe-2.8.1~/sample-config/nrpe.cfg.in nagios-nrpe-2.8.1/sample-config/nrpe.cfg.in
|
|
||||||
--- nagios-nrpe-2.8.1~/sample-config/nrpe.cfg.in 2007-03-09 19:08:58.000000000 +0100
|
|
||||||
+++ nagios-nrpe-2.8.1/sample-config/nrpe.cfg.in 2009-07-06 07:43:09.000000000 +0200
|
|
||||||
@@ -16,7 +16,7 @@
|
|
||||||
# number. The file is only written if the NRPE daemon is started by the root
|
|
||||||
# user and is running in standalone mode.
|
|
||||||
|
|
||||||
-pid_file=/var/run/nrpe.pid
|
|
||||||
+pid_file=/var/run/nagios/nrpe.pid
|
|
||||||
|
|
||||||
|
|
||||||
|
|
30
debian/patches/07_warn_ssloption.dpatch
vendored
30
debian/patches/07_warn_ssloption.dpatch
vendored
@ -1,30 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 07_warn_ssloption.dpatch by Thijs Kinkhorst <thijs@debian.org>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: Warn against inadequateness of NRPE's own SSL option.
|
|
||||||
|
|
||||||
--- a/SECURITY 2013-02-10 15:07:18.000000000 +0100
|
|
||||||
+++ b/SECURITY 2013-02-10 15:08:50.000000000 +0100
|
|
||||||
@@ -67,14 +67,17 @@
|
|
||||||
----------
|
|
||||||
|
|
||||||
If you do enable support for command arguments in the NRPE daemon,
|
|
||||||
-make sure that you encrypt communications either by using:
|
|
||||||
-
|
|
||||||
- 1. Stunnel (see http://www.stunnel.org for more info)
|
|
||||||
- 2. Native SSL support
|
|
||||||
+make sure that you encrypt communications either by using, for
|
|
||||||
+example, Stunnel (see http://www.stunnel.org for more info).
|
|
||||||
|
|
||||||
Do NOT assume that just because the daemon is behind a firewall
|
|
||||||
that you are safe! Always encrypt NRPE traffic!
|
|
||||||
|
|
||||||
+NOTE: the currently shipped native SSL support of NRPE is not an
|
|
||||||
+adequante protection, because it does not verify clients and
|
|
||||||
+server, and uses pregenerated key material. NRPE's SSL option is
|
|
||||||
+advised against. For more information, see Debian bug #547092.
|
|
||||||
+
|
|
||||||
|
|
||||||
USING ARGUMENTS
|
|
||||||
---------------
|
|
28
debian/patches/07_warn_ssloption.patch
vendored
Normal file
28
debian/patches/07_warn_ssloption.patch
vendored
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
Description: Warn against inadequateness of NRPE's own SSL option.
|
||||||
|
Author: Thijs Kinkhorst <thijs@debian.org>
|
||||||
|
Forwarded: not-needed
|
||||||
|
|
||||||
|
--- a/SECURITY.md
|
||||||
|
+++ b/SECURITY.md
|
||||||
|
@@ -82,14 +82,17 @@ daemon should run as.
|
||||||
|
#### ENCRYPTION ####
|
||||||
|
|
||||||
|
If you do enable support for command arguments in the NRPE daemon,
|
||||||
|
-make sure that you encrypt communications either by using:
|
||||||
|
-
|
||||||
|
- 1. Stunnel (see http://www.stunnel.org for more info)
|
||||||
|
- 2. Native SSL support (See the `README.SSL.md` file for more info)
|
||||||
|
+make sure that you encrypt communications by using, for example,
|
||||||
|
+Stunnel (see http://www.stunnel.org for more info).
|
||||||
|
|
||||||
|
*Do NOT* assume that just because the daemon is behind a firewall
|
||||||
|
that you are safe! Always encrypt NRPE traffic!
|
||||||
|
|
||||||
|
+NOTE: the currently shipped native SSL support of NRPE is not an
|
||||||
|
+adequante protection, because it does not verify clients and
|
||||||
|
+server, and uses pregenerated key material. NRPE's SSL option is
|
||||||
|
+advised against. For more information, see Debian bug #547092.
|
||||||
|
+
|
||||||
|
|
||||||
|
#### USING ARGUMENTS ####
|
||||||
|
|
34
debian/patches/09_noremove_pid.dpatch
vendored
34
debian/patches/09_noremove_pid.dpatch
vendored
@ -1,34 +0,0 @@
|
|||||||
#! /bin/sh /usr/share/dpatch/dpatch-run
|
|
||||||
## 09_noremove_pid.dpatch by <simon.deziel@gmail.com>
|
|
||||||
##
|
|
||||||
## All lines beginning with `## DP:' are a description of the patch.
|
|
||||||
## DP: Do not remove the PID file after a connection error (original patch
|
|
||||||
## DP: from Hiren Patel)
|
|
||||||
|
|
||||||
# Author: Hiren Patel
|
|
||||||
# From: http://comments.gmane.org/gmane.network.nagios.devel/6774
|
|
||||||
# Bug-Debian: #716949
|
|
||||||
# Bug-Ubuntu: https://launchpad.net/bugs/1126890
|
|
||||||
|
|
||||||
@DPATCH@
|
|
||||||
diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' pkg-nrpe~/src/nrpe.c pkg-nrpe/src/nrpe.c
|
|
||||||
--- pkg-nrpe~/src/nrpe.c 2014-07-15 14:20:02.000000000 +0200
|
|
||||||
+++ pkg-nrpe/src/nrpe.c 2014-07-15 14:20:55.775429979 +0200
|
|
||||||
@@ -998,7 +998,7 @@
|
|
||||||
/* close socket prioer to exiting */
|
|
||||||
close(sock);
|
|
||||||
|
|
||||||
- return;
|
|
||||||
+ exit(STATE_CRITICAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* handle signals */
|
|
||||||
@@ -1022,7 +1022,7 @@
|
|
||||||
/* close socket prior to exiting */
|
|
||||||
close(new_sd);
|
|
||||||
|
|
||||||
- return;
|
|
||||||
+ exit(STATE_CRITICAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* is this is a blessed machine? */
|
|
24
debian/patches/10_reproducible_build.patch
vendored
Normal file
24
debian/patches/10_reproducible_build.patch
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
Description: Make the build reproducible.
|
||||||
|
Author: Chris Lamb <lamby@debian.org>
|
||||||
|
Bug-Debian: https://bugs.debian.org/834857
|
||||||
|
Forwarded: https://github.com/NagiosEnterprises/nrpe/pull/78
|
||||||
|
Applied-Upstream: https://github.com/NagiosEnterprises/nrpe/commit/c6ca9766cae19bc194efa68ed85999e9c9756422
|
||||||
|
|
||||||
|
--- a/update-version
|
||||||
|
+++ b/update-version
|
||||||
|
@@ -20,11 +20,11 @@ fi
|
||||||
|
|
||||||
|
# Get date (two formats)
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
- LONGDATE=`date -d "$2" "+%B %d, %Y"`
|
||||||
|
- SHORTDATE=`date -d "$2" "+%m-%d-%Y"`
|
||||||
|
+ LONGDATE=$(LC_ALL=C date -u -d "$2" "+%B %d, %Y")
|
||||||
|
+ SHORTDATE=$(date -u -d "$2" "+%m-%d-%Y")
|
||||||
|
else
|
||||||
|
- LONGDATE=`date "+%B %d, %Y"`
|
||||||
|
- SHORTDATE=`date "+%m-%d-%Y"`
|
||||||
|
+ LONGDATE=$(LC_ALL=C date -u -d "@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%B %d, %Y")
|
||||||
|
+ SHORTDATE=$(date -u -d "@${SOURCE_DATE_EPOCH:-$(date +%s)}" "+%m-%d-%Y")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Current version number
|
60
debian/patches/11_reproducible_dh.h.patch
vendored
Normal file
60
debian/patches/11_reproducible_dh.h.patch
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
Description: Use pre-generated dh.h for reproducible builds.
|
||||||
|
Author: Bas Couwenberg <sebastic@debian.org>
|
||||||
|
Bug-Debian: https://bugs.debian.org/834857
|
||||||
|
Forwarded: not-needed
|
||||||
|
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/dh.h
|
||||||
|
@@ -0,0 +1,41 @@
|
||||||
|
+#ifndef HEADER_DH_H
|
||||||
|
+#include <openssl/dh.h>
|
||||||
|
+#endif
|
||||||
|
+DH *get_dh2048()
|
||||||
|
+ {
|
||||||
|
+ static unsigned char dh2048_p[]={
|
||||||
|
+ 0xE9,0x3C,0xF4,0xCE,0x63,0x0A,0x57,0x9A,0xD1,0x34,0x74,0xA1,
|
||||||
|
+ 0x3E,0xC3,0x93,0xB5,0x50,0x36,0x56,0x87,0x9F,0x8F,0xBC,0x74,
|
||||||
|
+ 0x15,0x03,0x1D,0x00,0x45,0xB0,0x2F,0xA3,0x2C,0xC1,0x13,0xFF,
|
||||||
|
+ 0x6C,0xF1,0xDB,0x36,0xB5,0xB5,0x49,0x2D,0x6A,0x8D,0x55,0xA1,
|
||||||
|
+ 0xE6,0x4C,0xD1,0xA9,0x07,0x24,0xC4,0xDF,0x3A,0x2A,0x9E,0xDB,
|
||||||
|
+ 0x4A,0x23,0xAD,0x56,0x79,0xA3,0x3D,0xC4,0xAD,0xE0,0x3E,0x17,
|
||||||
|
+ 0x3B,0x43,0x0F,0xB6,0x83,0xE4,0x52,0xFD,0x6D,0x74,0x03,0xB3,
|
||||||
|
+ 0x29,0x26,0xF2,0x29,0x0A,0xA2,0x33,0x56,0x0C,0x16,0xF7,0x81,
|
||||||
|
+ 0xBF,0xDC,0xB8,0xCE,0x78,0xC1,0x73,0xD6,0x48,0x54,0x2D,0x98,
|
||||||
|
+ 0xA5,0x7A,0xE3,0x38,0x8E,0x3D,0x75,0xDB,0x92,0x4D,0x76,0xC1,
|
||||||
|
+ 0xCD,0xE7,0x27,0xEE,0x09,0x89,0xFA,0xCE,0x7A,0xD6,0xDC,0x5B,
|
||||||
|
+ 0x08,0x6B,0xE8,0x7E,0x37,0x7B,0x40,0x89,0x72,0xBD,0x4E,0xF4,
|
||||||
|
+ 0x9A,0xDC,0x94,0xA3,0x7D,0x4C,0x15,0xE4,0xE1,0xA8,0x8D,0xF9,
|
||||||
|
+ 0xB2,0xF0,0x02,0x40,0x39,0x6C,0xDD,0x37,0x08,0xC1,0xE8,0x0B,
|
||||||
|
+ 0xAD,0x16,0x24,0x81,0x5F,0x24,0xD9,0x65,0x71,0x34,0x78,0xF3,
|
||||||
|
+ 0xFE,0x35,0xE0,0x20,0xFF,0x6D,0x41,0xE7,0xC8,0x8E,0x58,0x59,
|
||||||
|
+ 0x24,0x01,0x9A,0xC8,0xA7,0x8D,0x48,0x43,0x8E,0x34,0x7C,0xC1,
|
||||||
|
+ 0xB4,0xC8,0xD0,0x9C,0xBD,0xEA,0x83,0xC7,0xC9,0x86,0xFC,0xD1,
|
||||||
|
+ 0xA7,0xAF,0x5C,0x99,0x98,0xD1,0x82,0x78,0xE4,0xA4,0x1C,0xB5,
|
||||||
|
+ 0x87,0x72,0xD8,0x38,0x48,0x60,0xAE,0xCB,0x92,0xA2,0x79,0xFC,
|
||||||
|
+ 0x8F,0x1D,0x94,0xB5,0x88,0xA5,0xA4,0xE1,0xF5,0x98,0xBA,0xB2,
|
||||||
|
+ 0x06,0x22,0xA8,0x1B,
|
||||||
|
+ };
|
||||||
|
+ static unsigned char dh2048_g[]={
|
||||||
|
+ 0x02,
|
||||||
|
+ };
|
||||||
|
+ DH *dh;
|
||||||
|
+
|
||||||
|
+ if ((dh=DH_new()) == NULL) return(NULL);
|
||||||
|
+ dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
|
||||||
|
+ dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);
|
||||||
|
+ if ((dh->p == NULL) || (dh->g == NULL))
|
||||||
|
+ { DH_free(dh); return(NULL); }
|
||||||
|
+ return(dh);
|
||||||
|
+ }
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -307,7 +307,7 @@ AC_ARG_ENABLE([ssl],
|
||||||
|
dnl Optional SSL library and include paths
|
||||||
|
if test x$check_for_ssl = xyes; then
|
||||||
|
# need_dh should only be set for NRPE
|
||||||
|
- need_dh=yes
|
||||||
|
+ need_dh=no
|
||||||
|
AC_NAGIOS_GET_SSL
|
||||||
|
fi
|
||||||
|
|
4
debian/patches/series
vendored
Normal file
4
debian/patches/series
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
02_nrpe.cfg_local-include_support_nrpe.d.patch
|
||||||
|
07_warn_ssloption.patch
|
||||||
|
10_reproducible_build.patch
|
||||||
|
11_reproducible_dh.h.patch
|
31
debian/rules
vendored
31
debian/rules
vendored
@ -3,21 +3,34 @@
|
|||||||
# newer dpkg set this by default.
|
# newer dpkg set this by default.
|
||||||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||||
|
|
||||||
# Include dpatch stuff.
|
# Enable hardening build flags
|
||||||
include /usr/share/dpatch/dpatch.make
|
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
||||||
|
|
||||||
|
CFLAGS += $(CPPFLAGS)
|
||||||
|
|
||||||
|
export AUTOHEADER=true
|
||||||
|
|
||||||
%:
|
%:
|
||||||
dh $@ --with dpatch,autotools_dev
|
dh $@ --with autoreconf,systemd --parallel
|
||||||
|
|
||||||
override_dh_auto_configure:
|
override_dh_auto_configure:
|
||||||
./configure \
|
# Save deterministic "openssl dhparam" output.
|
||||||
|
cp include/dh.h include/dh.h.orig
|
||||||
|
|
||||||
|
dh_auto_configure -- \
|
||||||
--prefix=/usr \
|
--prefix=/usr \
|
||||||
|
--sysconfdir=/etc \
|
||||||
|
--libdir=/usr/lib/nagios \
|
||||||
|
--libexecdir=/usr/lib/nagios/plugins \
|
||||||
|
--localstatedir=/var \
|
||||||
--enable-ssl \
|
--enable-ssl \
|
||||||
--with-ssl-lib=/usr/lib/$(DEB_HOST_MULTIARCH) \
|
--with-ssl-lib=/usr/lib/$(DEB_HOST_MULTIARCH) \
|
||||||
--sysconfdir=/etc \
|
--with-piddir=/var/run/nagios
|
||||||
--localstatedir=/var \
|
|
||||||
--libexecdir=/usr/lib/nagios/plugins \
|
# Restore deterministic "openssl dhparam" output.
|
||||||
--libdir=/usr/lib/nagios \
|
cp include/dh.h.orig include/dh.h
|
||||||
--enable-command-args
|
|
||||||
|
override_dh_auto_build:
|
||||||
|
dh_auto_build -- all
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
|
1
debian/source/format
vendored
Normal file
1
debian/source/format
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
3.0 (quilt)
|
6
debian/upstream/metadata
vendored
Normal file
6
debian/upstream/metadata
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
Bug-Database: https://github.com/NagiosEnterprises/nrpe/issues
|
||||||
|
Bug-Submit: https://github.com/NagiosEnterprises/nrpe/issues/new
|
||||||
|
Name: NRPE
|
||||||
|
Repository: https://github.com/NagiosEnterprises/nrpe.git
|
||||||
|
Repository-Browse: https://github.com/NagiosEnterprises/nrpe
|
6
debian/watch
vendored
6
debian/watch
vendored
@ -1,3 +1,5 @@
|
|||||||
version=3
|
version=3
|
||||||
|
opts=\
|
||||||
http://sf.net/nagios/nrpe-([0-9.]+).tar.gz
|
dversionmangle=s/\+(debian|dfsg|ds|deb)\d*$//,\
|
||||||
|
uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/;s/RC/rc/;s/-/./g \
|
||||||
|
http://sf.net/nagios/nrpe-([\d\.]+)\.(?:tgz|tbz|txz|(?:tar\.(?:gz|bz2|xz)))
|
||||||
|
BIN
docs/NRPE.odt
BIN
docs/NRPE.odt
Binary file not shown.
BIN
docs/NRPE.pdf
BIN
docs/NRPE.pdf
Binary file not shown.
@ -1,92 +0,0 @@
|
|||||||
/************************************************************************
|
|
||||||
*
|
|
||||||
* COMMON.H - NRPE Common Include File
|
|
||||||
* Copyright (c) 1999-2007 Ethan Galstad (nagios@nagios.org)
|
|
||||||
* Last Modified: 09-06-2013
|
|
||||||
*
|
|
||||||
* License:
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program; if not, write to the Free Software
|
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
||||||
************************************************************************/
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
#define PROGRAM_VERSION "2.15"
|
|
||||||
#define MODIFICATION_DATE "09-06-2013"
|
|
||||||
|
|
||||||
#define OK 0
|
|
||||||
#define ERROR -1
|
|
||||||
|
|
||||||
#define TRUE 1
|
|
||||||
#define FALSE 0
|
|
||||||
|
|
||||||
#define STATE_UNKNOWN 3 /* service state return codes */
|
|
||||||
#define STATE_CRITICAL 2
|
|
||||||
#define STATE_WARNING 1
|
|
||||||
#define STATE_OK 0
|
|
||||||
|
|
||||||
|
|
||||||
#define DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */
|
|
||||||
#define DEFAULT_CONNECTION_TIMEOUT 300 /* timeout if daemon is waiting for connection more than this time */
|
|
||||||
|
|
||||||
#define MAX_INPUT_BUFFER 2048 /* max size of most buffers we use */
|
|
||||||
#define MAX_FILENAME_LENGTH 256
|
|
||||||
|
|
||||||
#define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */
|
|
||||||
|
|
||||||
#define NRPE_HELLO_COMMAND "_NRPE_CHECK"
|
|
||||||
|
|
||||||
#define MAX_COMMAND_ARGUMENTS 16
|
|
||||||
|
|
||||||
|
|
||||||
/**************** PACKET STRUCTURE DEFINITION **********/
|
|
||||||
|
|
||||||
#define QUERY_PACKET 1 /* id code for a packet containing a query */
|
|
||||||
#define RESPONSE_PACKET 2 /* id code for a packet containing a response */
|
|
||||||
|
|
||||||
#define NRPE_PACKET_VERSION_3 3 /* packet version identifier */
|
|
||||||
#define NRPE_PACKET_VERSION_2 2
|
|
||||||
#define NRPE_PACKET_VERSION_1 1 /* older packet version identifiers (no longer supported) */
|
|
||||||
|
|
||||||
#define MAX_PACKETBUFFER_LENGTH 1024 /* max amount of data we'll send in one query/response */
|
|
||||||
|
|
||||||
typedef struct packet_struct{
|
|
||||||
int16_t packet_version;
|
|
||||||
int16_t packet_type;
|
|
||||||
u_int32_t crc32_value;
|
|
||||||
int16_t result_code;
|
|
||||||
char buffer[MAX_PACKETBUFFER_LENGTH];
|
|
||||||
}packet;
|
|
||||||
|
|
||||||
/**************** OPERATING SYSTEM SPECIFIC DEFINITIONS **********/
|
|
||||||
#if defined(__sun) || defined(__hpux)
|
|
||||||
|
|
||||||
# ifndef LOG_AUTHPRIV
|
|
||||||
# define LOG_AUTHPRIV LOG_AUTH
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef LOG_FTP
|
|
||||||
# define LOG_FTP LOG_DAEMON
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#elif _AIX
|
|
||||||
|
|
||||||
# include <sys/select.h>
|
|
||||||
|
|
||||||
# ifndef LOG_FTP
|
|
||||||
# define LOG_FTP LOG_DAEMON
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif
|
|
96
include/common.h.in
Normal file
96
include/common.h.in
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
/************************************************************************
|
||||||
|
*
|
||||||
|
* COMMON.H - NRPE Common Include File
|
||||||
|
* Copyright (c) 1999-2007 Ethan Galstad (nagios@nagios.org)
|
||||||
|
* Last Modified: 09-08-2016
|
||||||
|
*
|
||||||
|
* License:
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_SSL
|
||||||
|
#include <@SSL_INC_PREFIX@@SSL_HDR@>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PROGRAM_VERSION "3.0.1"
|
||||||
|
#define MODIFICATION_DATE "09-08-2016"
|
||||||
|
|
||||||
|
#define OK 0
|
||||||
|
#define ERROR -1
|
||||||
|
|
||||||
|
#define TRUE 1
|
||||||
|
#define FALSE 0
|
||||||
|
|
||||||
|
#define STATE_UNKNOWN 3 /* service state return codes */
|
||||||
|
#define STATE_CRITICAL 2
|
||||||
|
#define STATE_WARNING 1
|
||||||
|
#define STATE_OK 0
|
||||||
|
|
||||||
|
|
||||||
|
#define DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */
|
||||||
|
#define DEFAULT_CONNECTION_TIMEOUT 300 /* timeout if daemon is waiting for connection more than this time */
|
||||||
|
|
||||||
|
#define MAX_INPUT_BUFFER 2048 /* max size of most buffers we use */
|
||||||
|
#define MAX_FILENAME_LENGTH 256
|
||||||
|
#define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */
|
||||||
|
#define MAX_COMMAND_ARGUMENTS 16
|
||||||
|
|
||||||
|
#define NRPE_HELLO_COMMAND "_NRPE_CHECK"
|
||||||
|
|
||||||
|
/**************** PACKET STRUCTURE DEFINITION **********/
|
||||||
|
|
||||||
|
#define QUERY_PACKET 1 /* id code for a packet containing a query */
|
||||||
|
#define RESPONSE_PACKET 2 /* id code for a packet containing a response */
|
||||||
|
#define NRPE_PACKET_VERSION_3 3 /* packet version identifier */
|
||||||
|
#define NRPE_PACKET_VERSION_2 2
|
||||||
|
#define NRPE_PACKET_VERSION_1 1 /* older packet version identifiers (no longer supported) */
|
||||||
|
|
||||||
|
#define MAX_PACKETBUFFER_LENGTH 1024 /* amount of data to send in one query/response vor version 2 */
|
||||||
|
|
||||||
|
typedef struct _v2_packet {
|
||||||
|
int16_t packet_version;
|
||||||
|
int16_t packet_type;
|
||||||
|
u_int32_t crc32_value;
|
||||||
|
int16_t result_code;
|
||||||
|
char buffer[MAX_PACKETBUFFER_LENGTH];
|
||||||
|
} v2_packet;
|
||||||
|
typedef struct _v3_packet {
|
||||||
|
int16_t packet_version;
|
||||||
|
int16_t packet_type;
|
||||||
|
u_int32_t crc32_value;
|
||||||
|
int16_t result_code;
|
||||||
|
int16_t alignment;
|
||||||
|
int32_t buffer_length;
|
||||||
|
char buffer[1];
|
||||||
|
} v3_packet;
|
||||||
|
|
||||||
|
/**************** OPERATING SYSTEM SPECIFIC DEFINITIONS **********/
|
||||||
|
#if defined(__sun) || defined(__hpux)
|
||||||
|
|
||||||
|
# ifndef LOG_AUTHPRIV
|
||||||
|
# define LOG_AUTHPRIV LOG_AUTH
|
||||||
|
# endif
|
||||||
|
# ifndef LOG_FTP
|
||||||
|
# define LOG_FTP LOG_DAEMON
|
||||||
|
# endif
|
||||||
|
#elif defined(_AIX)
|
||||||
|
# include <sys/select.h>
|
||||||
|
# ifndef LOG_FTP
|
||||||
|
# define LOG_FTP LOG_DAEMON
|
||||||
|
# endif
|
||||||
|
#endif
|
@ -33,26 +33,27 @@
|
|||||||
#define NRPE_LOG_FACILITY @log_facility@
|
#define NRPE_LOG_FACILITY @log_facility@
|
||||||
|
|
||||||
#undef ENABLE_COMMAND_ARGUMENTS
|
#undef ENABLE_COMMAND_ARGUMENTS
|
||||||
|
|
||||||
#undef ENABLE_BASH_COMMAND_SUBSTITUTION
|
#undef ENABLE_BASH_COMMAND_SUBSTITUTION
|
||||||
|
|
||||||
#undef socklen_t
|
#undef socklen_t
|
||||||
|
|
||||||
#undef HAVE_GETOPT_LONG
|
#undef HAVE_GETOPT_LONG
|
||||||
|
|
||||||
#undef HAVE_LIBWRAP
|
#undef HAVE_LIBWRAP
|
||||||
|
|
||||||
#undef STDC_HEADERS
|
#undef STDC_HEADERS
|
||||||
#undef HAVE_STRDUP
|
#undef HAVE_STRDUP
|
||||||
#undef HAVE_STRSTR
|
#undef HAVE_STRSTR
|
||||||
#undef HAVE_STRTOUL
|
#undef HAVE_STRTOUL
|
||||||
|
#undef HAVE_STRTOK_R
|
||||||
#undef HAVE_INITGROUPS
|
#undef HAVE_INITGROUPS
|
||||||
#undef HAVE_CLOSESOCKET
|
#undef HAVE_CLOSESOCKET
|
||||||
|
#undef HAVE_SIGACTION
|
||||||
|
#undef HAVE_RFC931_TIMEOUT
|
||||||
|
|
||||||
#undef SIZEOF_INT
|
#undef SIZEOF_INT
|
||||||
#undef SIZEOF_SHORT
|
#undef SIZEOF_SHORT
|
||||||
#undef SIZEOF_LONG
|
#undef SIZEOF_LONG
|
||||||
|
|
||||||
|
/* #undef const */
|
||||||
|
#undef USE_SSL_DH
|
||||||
|
|
||||||
/* stupid stuff for u_int32_t */
|
/* stupid stuff for u_int32_t */
|
||||||
#undef U_INT32_T_IS_USHORT
|
#undef U_INT32_T_IS_USHORT
|
||||||
#undef U_INT32_T_IS_UINT
|
#undef U_INT32_T_IS_UINT
|
||||||
@ -99,10 +100,16 @@ typedef int int32_t;
|
|||||||
#undef HAVE___VA_COPY
|
#undef HAVE___VA_COPY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define SOCKET_SIZE_TYPE ""
|
#define SOCKET_SIZE_TYPE ""
|
||||||
#define GETGROUPS_T ""
|
#define GETGROUPS_T ""
|
||||||
#define RETSIGTYPE ""
|
#define RETSIGTYPE ""
|
||||||
|
#undef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||||
|
|
||||||
|
/* Use seteuid() or setresuid() depending on the platform */
|
||||||
|
#undef SETEUID
|
||||||
|
|
||||||
|
/* Is this a Solaris 10 machine? */
|
||||||
|
#undef SOLARIS_10
|
||||||
|
|
||||||
#undef HAVE_GETOPT_H
|
#undef HAVE_GETOPT_H
|
||||||
#ifdef HAVE_GETOPT_H
|
#ifdef HAVE_GETOPT_H
|
||||||
@ -235,15 +242,6 @@ typedef int int32_t;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef HAVE_SSL
|
#undef HAVE_SSL
|
||||||
#ifdef HAVE_SSL
|
|
||||||
#include <rsa.h>
|
|
||||||
#include <crypto.h>
|
|
||||||
#include <dh.h>
|
|
||||||
#include <pem.h>
|
|
||||||
#include <ssl.h>
|
|
||||||
#include <err.h>
|
|
||||||
#include <rand.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef HAVE_KRB5_H
|
#undef HAVE_KRB5_H
|
||||||
#ifdef HAVE_KRB5_H
|
#ifdef HAVE_KRB5_H
|
||||||
|
25
include/dh.h
25
include/dh.h
@ -1,25 +0,0 @@
|
|||||||
#ifndef HEADER_DH_H
|
|
||||||
#include <openssl/dh.h>
|
|
||||||
#endif
|
|
||||||
DH *get_dh512()
|
|
||||||
{
|
|
||||||
static unsigned char dh512_p[]={
|
|
||||||
0xDA,0xD8,0xF0,0xA2,0x9A,0x64,0xC2,0x9F,0x22,0x9D,0x47,0xA1,
|
|
||||||
0xB2,0xED,0xD6,0x89,0xB5,0x46,0x6D,0x4E,0x1F,0x14,0xF4,0xF4,
|
|
||||||
0xEB,0xCA,0x4D,0x41,0x89,0x60,0x0D,0x1F,0xB3,0x50,0xC4,0x54,
|
|
||||||
0xE1,0x60,0xB5,0xDD,0x57,0x0C,0xF9,0xF5,0x19,0x73,0x6C,0x0C,
|
|
||||||
0x45,0x33,0xA9,0xC1,0xD7,0xF3,0x27,0x68,0xEE,0xDA,0x8C,0x4A,
|
|
||||||
0x1C,0x52,0xA1,0x9B,
|
|
||||||
};
|
|
||||||
static unsigned char dh512_g[]={
|
|
||||||
0x02,
|
|
||||||
};
|
|
||||||
DH *dh;
|
|
||||||
|
|
||||||
if ((dh=DH_new()) == NULL) return(NULL);
|
|
||||||
dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
|
|
||||||
dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);
|
|
||||||
if ((dh->p == NULL) || (dh->g == NULL))
|
|
||||||
{ DH_free(dh); return(NULL); }
|
|
||||||
return(dh);
|
|
||||||
}
|
|
@ -22,12 +22,6 @@
|
|||||||
*
|
*
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
|
|
||||||
/*
|
|
||||||
* 08-10-2011 IPv4 subnetworks support added.
|
|
||||||
* Main change in nrpe.c is that is_an_allowed_host() moved to acl.c
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**************** COMMAND STRUCTURE DEFINITION **********/
|
/**************** COMMAND STRUCTURE DEFINITION **********/
|
||||||
|
|
||||||
typedef struct command_struct {
|
typedef struct command_struct {
|
||||||
@ -36,30 +30,40 @@ typedef struct command_struct{
|
|||||||
struct command_struct *next;
|
struct command_struct *next;
|
||||||
} command;
|
} command;
|
||||||
|
|
||||||
int process_arguments(int,char **);
|
int init(void);
|
||||||
void wait_for_connections(void);
|
void init_ssl(void);
|
||||||
void handle_connection(int);
|
void log_ssl_startup(void);
|
||||||
|
void usage(int);
|
||||||
|
void run_inetd(void);
|
||||||
|
void run_src(void);
|
||||||
|
void run_daemon(void);
|
||||||
|
void set_stdio_sigs(void);
|
||||||
|
void cleanup(void);
|
||||||
int read_config_file(char *);
|
int read_config_file(char *);
|
||||||
int read_config_dir(char *);
|
int read_config_dir(char *);
|
||||||
int get_log_facility(char *);
|
int get_log_facility(char *);
|
||||||
int add_command(char *,char *);
|
int add_command(char *,char *);
|
||||||
command *find_command(char *);
|
command *find_command(char *);
|
||||||
void sighandler(int);
|
void create_listener(struct addrinfo *ai);
|
||||||
int drop_privileges(char *,char *);
|
void wait_for_connections(void);
|
||||||
int check_privileges(void);
|
void setup_wait_conn(void);
|
||||||
|
int wait_conn_fork(int sock);
|
||||||
int write_pid_file(void);
|
void conn_check_peer(int sock);
|
||||||
int remove_pid_file(void);
|
void handle_connection(int);
|
||||||
|
void init_handle_conn(void);
|
||||||
|
int handle_conn_ssl(int sock, void *ssl_ptr);
|
||||||
|
int read_packet(int sock, void *ssl_ptr, v2_packet *v2_pkt, v3_packet **v3_pkt);
|
||||||
void free_memory(void);
|
void free_memory(void);
|
||||||
int validate_request(packet *);
|
int my_system(char*, int, int*, char**); /* executes a command via popen(), but also protects against timeouts */
|
||||||
int contains_nasty_metachars(char *);
|
|
||||||
int process_macros(char *,char *,int);
|
|
||||||
int my_system(char *,int,int *,char *,int); /* executes a command via popen(), but also protects against timeouts */
|
|
||||||
void my_system_sighandler(int); /* handles timeouts when executing commands via my_system() */
|
void my_system_sighandler(int); /* handles timeouts when executing commands via my_system() */
|
||||||
void my_connection_sighandler(int); /* handles timeouts of connection */
|
void my_connection_sighandler(int); /* handles timeouts of connection */
|
||||||
|
int drop_privileges(char *,char *, int);
|
||||||
|
int write_pid_file(void);
|
||||||
|
int remove_pid_file(void);
|
||||||
|
int check_privileges(void);
|
||||||
void sighandler(int);
|
void sighandler(int);
|
||||||
void child_sighandler(int);
|
void child_sighandler(int);
|
||||||
|
int validate_request(v2_packet *, v3_packet *);
|
||||||
|
int contains_nasty_metachars(char *);
|
||||||
|
int process_macros(char *,char *,int);
|
||||||
|
int process_arguments(int,char **);
|
||||||
|
@ -29,35 +29,27 @@
|
|||||||
*
|
*
|
||||||
************************************************************************************************/
|
************************************************************************************************/
|
||||||
|
|
||||||
#ifndef _UTILS_H
|
#ifndef NRPE_UTILS_H_INCLUDED
|
||||||
#define _UTILS_H
|
#define NRPE_UTILS_H_INCLUDED
|
||||||
|
|
||||||
#include "../include/config.h"
|
#include "../include/config.h"
|
||||||
|
|
||||||
|
|
||||||
void generate_crc32_table(void);
|
void generate_crc32_table(void);
|
||||||
unsigned long calculate_crc32(char*, int);
|
unsigned long calculate_crc32(char*, int);
|
||||||
|
|
||||||
void randomize_buffer(char*,int);
|
void randomize_buffer(char*,int);
|
||||||
|
|
||||||
int my_tcp_connect(char*, int, int*);
|
int my_tcp_connect(char*, int, int*);
|
||||||
int my_connect(const char *, struct sockaddr_storage *, u_short, int,
|
#ifdef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||||
const char *);
|
int my_connect(const char*, struct sockaddr_storage*, u_short, int, const char*);
|
||||||
|
#else
|
||||||
|
int my_connect(const char*, struct sockaddr*, u_short, int, const char*);
|
||||||
|
#endif
|
||||||
void add_listen_addr(struct addrinfo**, int, char*, int);
|
void add_listen_addr(struct addrinfo**, int, char*, int);
|
||||||
|
int clean_environ(const char *keep_env_vars, const char *nrpe_user);
|
||||||
void strip(char *);
|
char* strip(char*);
|
||||||
|
|
||||||
int sendall(int, char*, int*);
|
int sendall(int, char*, int*);
|
||||||
int recvall(int, char*, int*, int);
|
int recvall(int, char*, int*, int);
|
||||||
|
|
||||||
char *my_strsep(char**, const char*);
|
char *my_strsep(char**, const char*);
|
||||||
|
int b64_decode(unsigned char *encoded);
|
||||||
void display_license(void);
|
void display_license(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# Start/stop the nrpe daemon.
|
|
||||||
#
|
|
||||||
# Contributed by Andrew Ryder 06-22-02
|
|
||||||
# Slight mods by Ethan Galstad 07-09-02
|
|
||||||
|
|
||||||
NrpeBin=@bindir@/nrpe
|
|
||||||
NrpeCfg=@sysconfdir@/nrpe.cfg
|
|
||||||
|
|
||||||
test -f $NrpeBin || exit 0
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start) echo -n "Starting nagios remote plugin daemon: nrpe"
|
|
||||||
start-stop-daemon --start --quiet --exec $NrpeBin -- -c $NrpeCfg -d
|
|
||||||
echo "."
|
|
||||||
;;
|
|
||||||
stop) echo -n "Stopping nagios remote plugin daemon: nrpe"
|
|
||||||
start-stop-daemon --stop --quiet --exec $NrpeBin
|
|
||||||
echo "."
|
|
||||||
;;
|
|
||||||
restart) echo -n "Restarting nagios remote plugin daemon: nrpe"
|
|
||||||
start-stop-daemon --stop --quiet --exec $NrpeBin
|
|
||||||
start-stop-daemon --start --quiet --exec $NrpeBin -- -c $NrpeCfg -d
|
|
||||||
echo "."
|
|
||||||
;;
|
|
||||||
reload|force-reload) echo -n "Reloading configuration files for nagios remote plugin daemon: nrpe"
|
|
||||||
# nrpe reloads automatically
|
|
||||||
echo "."
|
|
||||||
;;
|
|
||||||
*) echo "Usage: /etc/init.d/nrpe start|stop|restart|reload|force-reload"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
exit 0
|
|
@ -1,62 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Created 2000-01-03 by jaclu@grm.se
|
|
||||||
#
|
|
||||||
# nrpe This shell script takes care of starting and stopping
|
|
||||||
# nrpe.
|
|
||||||
#
|
|
||||||
# chkconfig: 2345 80 30
|
|
||||||
# description: nrpe is a daemon for a remote nagios server, \
|
|
||||||
# running nagios plugins on this host.
|
|
||||||
# processname: nrpe
|
|
||||||
# config: /usr/local/nagios/etc/nrpe.cfg
|
|
||||||
|
|
||||||
|
|
||||||
# Source function library
|
|
||||||
if [ -f /etc/rc.d/init.d/functions ]; then
|
|
||||||
. /etc/rc.d/init.d/functions
|
|
||||||
elif [ -f /etc/init.d/functions ]; then
|
|
||||||
. /etc/init.d/functions
|
|
||||||
elif [ -f /etc/rc.d/functions ]; then
|
|
||||||
. /etc/rc.d/functions
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Source networking configuration.
|
|
||||||
. /etc/sysconfig/network
|
|
||||||
|
|
||||||
# Check that networking is up.
|
|
||||||
[ ${NETWORKING} = "no" ] && exit 0
|
|
||||||
|
|
||||||
NrpeBin=@bindir@/nrpe
|
|
||||||
NrpeCfg=@sysconfdir@/nrpe.cfg
|
|
||||||
LockFile=/var/lock/subsys/nrpe
|
|
||||||
|
|
||||||
# See how we were called.
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
# Start daemons.
|
|
||||||
echo -n "Starting nrpe: "
|
|
||||||
daemon $NrpeBin -c $NrpeCfg -d
|
|
||||||
echo
|
|
||||||
touch $LockFile
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
# Stop daemons.
|
|
||||||
echo -n "Shutting down nrpe: "
|
|
||||||
killproc nrpe
|
|
||||||
echo
|
|
||||||
rm -f $LockFile
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
$0 stop
|
|
||||||
$0 start
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status nrpe
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: nrpe {start|stop|restart|status}"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,84 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
# Copyright (c) 1996-2002 SuSE GmbH Nuernberg, Germany. All rights reserved.
|
|
||||||
# Modifications for NRPE Copyright (c) 2003 Subhendu Ghosh
|
|
||||||
# Author: Christopher Mahmood <ckm+snmp@suse.de>, Remo Behn <ray+snmp@suse.de>
|
|
||||||
# Modifications for NRPE: Subhendu Ghosh <sghosh@users.sourceforge.net>
|
|
||||||
#
|
|
||||||
# /etc/init.d/nrpe
|
|
||||||
#
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: nrpe
|
|
||||||
# Required-Start: $network
|
|
||||||
# Required-Stop:
|
|
||||||
# Default-Start: 2 3 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Description: start nrpe
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
NRPEBIN=@bindir@/nrpe
|
|
||||||
NRPECFG=@sysconfdir@/nrpe.cfg
|
|
||||||
|
|
||||||
test -x $NRPEBIN || exit 5
|
|
||||||
|
|
||||||
# Shell functions sourced from /etc/rc.status:
|
|
||||||
# rc_check check and set local and overall rc status
|
|
||||||
# rc_status check and set local and overall rc status
|
|
||||||
# rc_status -v ditto but be verbose in local rc status
|
|
||||||
# rc_status -v -r ditto and clear the local rc status
|
|
||||||
# rc_failed set local and overall rc status to failed
|
|
||||||
# rc_failed <num> set local and overall rc status to <num><num>
|
|
||||||
# rc_reset clear local rc status (overall remains)
|
|
||||||
# rc_exit exit appropriate to overall rc status
|
|
||||||
. /etc/rc.status
|
|
||||||
|
|
||||||
# First reset status of this service
|
|
||||||
rc_reset
|
|
||||||
|
|
||||||
# Return values acc. to LSB for all commands but status:
|
|
||||||
# 0 - success
|
|
||||||
# 1 - generic or unspecified error
|
|
||||||
# 2 - invalid or excess argument(s)
|
|
||||||
# 3 - unimplemented feature (e.g. "reload")
|
|
||||||
# 4 - insufficient privilege
|
|
||||||
# 5 - program is not installed
|
|
||||||
# 6 - program is not configured
|
|
||||||
# 7 - program is not running
|
|
||||||
#
|
|
||||||
# Note that starting an already running service, stopping
|
|
||||||
# or restarting a not-running service as well as the restart
|
|
||||||
# with force-reload (in case signalling is not supported) are
|
|
||||||
# considered a success.
|
|
||||||
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
echo -n "Starting nrpe:"
|
|
||||||
startproc $NRPEBIN -c $NRPECFG -d
|
|
||||||
rc_status -v
|
|
||||||
rc_reset
|
|
||||||
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
echo -n "Shutting down nrpe:"
|
|
||||||
killproc -TERM $NRPEBIN
|
|
||||||
rc_status -v ; rc_reset
|
|
||||||
;;
|
|
||||||
restart)
|
|
||||||
$0 stop
|
|
||||||
$0 start
|
|
||||||
rc_status
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
echo -n "Checking for service nrpe:"
|
|
||||||
checkproc $NRPEBIN
|
|
||||||
rc_status -v
|
|
||||||
rc_reset
|
|
||||||
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 {start|stop|restart|status}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
rc_exit
|
|
||||||
|
|
250
install-sh
250
install-sh
@ -1,250 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
#
|
|
||||||
# install - install a program, script, or datafile
|
|
||||||
# This comes from X11R5 (mit/util/scripts/install.sh).
|
|
||||||
#
|
|
||||||
# Copyright 1991 by the Massachusetts Institute of Technology
|
|
||||||
#
|
|
||||||
# Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
# documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
# the above copyright notice appear in all copies and that both that
|
|
||||||
# copyright notice and this permission notice appear in supporting
|
|
||||||
# documentation, and that the name of M.I.T. not be used in advertising or
|
|
||||||
# publicity pertaining to distribution of the software without specific,
|
|
||||||
# written prior permission. M.I.T. makes no representations about the
|
|
||||||
# suitability of this software for any purpose. It is provided "as is"
|
|
||||||
# without express or implied warranty.
|
|
||||||
#
|
|
||||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
|
||||||
# `make' implicit rules from creating a file called install from it
|
|
||||||
# when there is no Makefile.
|
|
||||||
#
|
|
||||||
# This script is compatible with the BSD install script, but was written
|
|
||||||
# from scratch. It can only install one file at a time, a restriction
|
|
||||||
# shared with many OS's install programs.
|
|
||||||
|
|
||||||
|
|
||||||
# set DOITPROG to echo to test this script
|
|
||||||
|
|
||||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
|
||||||
doit="${DOITPROG-}"
|
|
||||||
|
|
||||||
|
|
||||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
|
||||||
|
|
||||||
mvprog="${MVPROG-mv}"
|
|
||||||
cpprog="${CPPROG-cp}"
|
|
||||||
chmodprog="${CHMODPROG-chmod}"
|
|
||||||
chownprog="${CHOWNPROG-chown}"
|
|
||||||
chgrpprog="${CHGRPPROG-chgrp}"
|
|
||||||
stripprog="${STRIPPROG-strip}"
|
|
||||||
rmprog="${RMPROG-rm}"
|
|
||||||
mkdirprog="${MKDIRPROG-mkdir}"
|
|
||||||
|
|
||||||
transformbasename=""
|
|
||||||
transform_arg=""
|
|
||||||
instcmd="$mvprog"
|
|
||||||
chmodcmd="$chmodprog 0755"
|
|
||||||
chowncmd=""
|
|
||||||
chgrpcmd=""
|
|
||||||
stripcmd=""
|
|
||||||
rmcmd="$rmprog -f"
|
|
||||||
mvcmd="$mvprog"
|
|
||||||
src=""
|
|
||||||
dst=""
|
|
||||||
dir_arg=""
|
|
||||||
|
|
||||||
while [ x"$1" != x ]; do
|
|
||||||
case $1 in
|
|
||||||
-c) instcmd="$cpprog"
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-d) dir_arg=true
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-m) chmodcmd="$chmodprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-o) chowncmd="$chownprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-g) chgrpcmd="$chgrpprog $2"
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-s) stripcmd="$stripprog"
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
|
|
||||||
*) if [ x"$src" = x ]
|
|
||||||
then
|
|
||||||
src=$1
|
|
||||||
else
|
|
||||||
# this colon is to work around a 386BSD /bin/sh bug
|
|
||||||
:
|
|
||||||
dst=$1
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
continue;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ x"$src" = x ]
|
|
||||||
then
|
|
||||||
echo "install: no input file specified"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dir_arg" != x ]; then
|
|
||||||
dst=$src
|
|
||||||
src=""
|
|
||||||
|
|
||||||
if [ -d $dst ]; then
|
|
||||||
instcmd=:
|
|
||||||
else
|
|
||||||
instcmd=mkdir
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
|
|
||||||
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
|
|
||||||
# might cause directories to be created, which would be especially bad
|
|
||||||
# if $src (and thus $dsttmp) contains '*'.
|
|
||||||
|
|
||||||
if [ -f $src -o -d $src ]
|
|
||||||
then
|
|
||||||
true
|
|
||||||
else
|
|
||||||
echo "install: $src does not exist"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dst" = x ]
|
|
||||||
then
|
|
||||||
echo "install: no destination specified"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If destination is a directory, append the input filename; if your system
|
|
||||||
# does not like double slashes in filenames, you may need to add some logic
|
|
||||||
|
|
||||||
if [ -d $dst ]
|
|
||||||
then
|
|
||||||
dst="$dst"/`basename $src`
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
## this sed command emulates the dirname command
|
|
||||||
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
|
||||||
|
|
||||||
# Make sure that the destination directory exists.
|
|
||||||
# this part is taken from Noah Friedman's mkinstalldirs script
|
|
||||||
|
|
||||||
# Skip lots of stat calls in the usual case.
|
|
||||||
if [ ! -d "$dstdir" ]; then
|
|
||||||
defaultIFS='
|
|
||||||
'
|
|
||||||
IFS="${IFS-${defaultIFS}}"
|
|
||||||
|
|
||||||
oIFS="${IFS}"
|
|
||||||
# Some sh's can't handle IFS=/ for some reason.
|
|
||||||
IFS='%'
|
|
||||||
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
|
|
||||||
IFS="${oIFS}"
|
|
||||||
|
|
||||||
pathcomp=''
|
|
||||||
|
|
||||||
while [ $# -ne 0 ] ; do
|
|
||||||
pathcomp="${pathcomp}${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
if [ ! -d "${pathcomp}" ] ;
|
|
||||||
then
|
|
||||||
$mkdirprog "${pathcomp}"
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
pathcomp="${pathcomp}/"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ x"$dir_arg" != x ]
|
|
||||||
then
|
|
||||||
$doit $instcmd $dst &&
|
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
|
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
|
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
|
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
|
|
||||||
else
|
|
||||||
|
|
||||||
# If we're going to rename the final executable, determine the name now.
|
|
||||||
|
|
||||||
if [ x"$transformarg" = x ]
|
|
||||||
then
|
|
||||||
dstfile=`basename $dst`
|
|
||||||
else
|
|
||||||
dstfile=`basename $dst $transformbasename |
|
|
||||||
sed $transformarg`$transformbasename
|
|
||||||
fi
|
|
||||||
|
|
||||||
# don't allow the sed command to completely eliminate the filename
|
|
||||||
|
|
||||||
if [ x"$dstfile" = x ]
|
|
||||||
then
|
|
||||||
dstfile=`basename $dst`
|
|
||||||
else
|
|
||||||
true
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Make a temp file name in the proper directory.
|
|
||||||
|
|
||||||
dsttmp=$dstdir/#inst.$$#
|
|
||||||
|
|
||||||
# Move or copy the file name to the temp name
|
|
||||||
|
|
||||||
$doit $instcmd $src $dsttmp &&
|
|
||||||
|
|
||||||
trap "rm -f ${dsttmp}" 0 &&
|
|
||||||
|
|
||||||
# and set any options; do chmod last to preserve setuid bits
|
|
||||||
|
|
||||||
# If any of these fail, we abort the whole thing. If we want to
|
|
||||||
# ignore errors from any of these, just make sure not to ignore
|
|
||||||
# errors from the above "$doit $instcmd $src $dsttmp" command.
|
|
||||||
|
|
||||||
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
|
|
||||||
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
|
|
||||||
|
|
||||||
# Now rename the file to the real destination.
|
|
||||||
|
|
||||||
$doit $rmcmd -f $dstdir/$dstfile &&
|
|
||||||
$doit $mvcmd $dsttmp $dstdir/$dstfile
|
|
||||||
|
|
||||||
fi &&
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
1
macros/.gitignore
vendored
Normal file
1
macros/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
nbproject/
|
339
macros/LICENSE
Normal file
339
macros/LICENSE
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
{description}
|
||||||
|
Copyright (C) {year} {fullname}
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
{signature of Ty Coon}, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
167
macros/README.md
Normal file
167
macros/README.md
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
autoconf-macros README
|
||||||
|
======================
|
||||||
|
|
||||||
|
Sections below are: Purpose, Contents, Usage, References
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##Purpose
|
||||||
|
|
||||||
|
The purpose of Nagios autoconf-macros is to have a central place for
|
||||||
|
autoconf macros that can be maintained in one place, but be used by any
|
||||||
|
of the Nagios software. It is intended to be used as a git subtree.
|
||||||
|
See the Usage and References section below.
|
||||||
|
|
||||||
|
Since this project will be included in several parent projects, any
|
||||||
|
changes must be as project-neutral as possible.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
|
||||||
|
The collection consists of the following macros:
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_OS alias AC_NAGIOS_GET_OS
|
||||||
|
|
||||||
|
> Output Variable : opsys
|
||||||
|
|
||||||
|
This macro detects the operating system, and transforms it into a generic
|
||||||
|
label. The most common OS's that use Nagios software are recognized and
|
||||||
|
used in subsequent macros.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_DISTRIB_TYPE alias AC_NAGIOS_GET_DISTRIB_TYPE
|
||||||
|
|
||||||
|
> Output Variables : dist_type, dist_ver
|
||||||
|
|
||||||
|
This macro detects the distribution type. For Linux, this would be rh
|
||||||
|
(for Red Hat and derivitives), suse (OpenSUSE, SLES, derivitives), gentoo
|
||||||
|
(Gentoo and derivitives), debian (Debian and derivitives), and so on.
|
||||||
|
For BSD, this would be openbsd, netbsd, freebsd, dragonfly, etc. It can
|
||||||
|
also be aix, solaris, osx, and so on for Unix operating systems.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_INIT alias AC_NAGIOS_GET_INIT
|
||||||
|
|
||||||
|
> Output Variable : init_type
|
||||||
|
|
||||||
|
This macro detects what software is used to start daemons on bootup
|
||||||
|
or on request, generally knows as the "init system". The init_type
|
||||||
|
will generally be one of sysv (many), bsd (Slackware), newbsd (*BSD),
|
||||||
|
launchd (OS X), smf10 or smf11 (Solaris), systemd (newer Linux),
|
||||||
|
gentoo (older Gentoo), upstart (several), or unknown.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_INETD alias AC_NAGIOS_GET_INETD
|
||||||
|
|
||||||
|
> Output Variable : inetd_type
|
||||||
|
|
||||||
|
This macro detects what software is used to start daemons or services
|
||||||
|
on demand, which historically has been "inetd". The inetd_type
|
||||||
|
will generally be one of inetd, xinetd, launchd (OS X), smf10 or smf11
|
||||||
|
(Solaris), systemd (newer Linux), upstart (several), or unknown.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_PATHS alias AC_NAGIOS_GET_PATHS
|
||||||
|
|
||||||
|
> Output Variables : many!
|
||||||
|
|
||||||
|
This macro determines the installation paths for binaries, config files,
|
||||||
|
PID files, and so on. For a "standard" install of Nagios, NRPE, NDO Utils,
|
||||||
|
etc., most will be in the /usr/local/nagios hierarchy with startup files
|
||||||
|
located in /etc. For distributions or software repositories, the
|
||||||
|
"--enable-install-method=os" option can be used. This will determine the
|
||||||
|
O/S dependant directories, such as /usr/bin, /usr/sbin, /var/lib/nagios,
|
||||||
|
/usr/lib/nagios, etc. or for OS X, /Library/LaunchDaemons.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_FILES alias AC_NAGIOS_GET_FILES
|
||||||
|
|
||||||
|
> Output Variables : src_init, src_inetd, src_tmpfile
|
||||||
|
|
||||||
|
Each Nagios project will have a top-level directory named "/startup/".
|
||||||
|
In that directory will be "*.in" files for the various "init_type" and
|
||||||
|
"inetd_type" systems. This macro will determine which file(s) from
|
||||||
|
that directory will be needed.
|
||||||
|
|
||||||
|
### AX_NAGIOS_GET_SSL alias AC_NAGIOS_GET_SSL
|
||||||
|
|
||||||
|
> Output Variables : HAVE_KRB5_H, HAVE_SSL, SSL_INC_DIR, SSL_LIB_DIR, CFLAGS, LDFLAGS, LIBS
|
||||||
|
|
||||||
|
This macro checks various directories for SSL libraries and header files.
|
||||||
|
The searches are based on known install locations on various operating
|
||||||
|
systems and distributions, for openssl, gnutls-openssl, and nss_compat_ossl.
|
||||||
|
If it finds the headers and libraries, it will then do an `AC_LINK_IFELSE`
|
||||||
|
on a simple program to make sure a compile and link will work correctly.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This repo is intended to be used as a git subtree, so changes will
|
||||||
|
automatically propogate, and still be reasonably easy to use.
|
||||||
|
|
||||||
|
* First, Create, checkout, clone, or branch your project. If you do an
|
||||||
|
`ls -AF` it might look something like this:
|
||||||
|
|
||||||
|
.git/ .gitignore ChangeLog LICENSE Makefile.in
|
||||||
|
README configure.ac include/ src/
|
||||||
|
|
||||||
|
* Then make a reference to _this_ project inside your project.
|
||||||
|
|
||||||
|
git remote add autoconf-macros git@github.com:NagiosEnterprises/autoconf-macros
|
||||||
|
git subtree add --prefix=macros/ autoconf-macros master
|
||||||
|
|
||||||
|
* After executing the above two commands, if you do an `ls -AF` now,
|
||||||
|
it should look like this:
|
||||||
|
|
||||||
|
.git/ .gitignore ChangeLog LICENSE Makefile.in
|
||||||
|
README configure.ac include/ macros/ src/
|
||||||
|
The `macros/` directory has been added.
|
||||||
|
|
||||||
|
* Now do a `git push` to save everything.
|
||||||
|
|
||||||
|
* If you make any changes to autoconf-macros, commit them separately
|
||||||
|
from any parent-project changes to keep from polluting the commit
|
||||||
|
history with unrelated comments.
|
||||||
|
|
||||||
|
* To submit your changes to autoconf-macros:
|
||||||
|
|
||||||
|
git subtree push --prefix=macros autoconf-macros peters-updates
|
||||||
|
This will create a new branch called `peters-updates`. You then need to
|
||||||
|
create a _pull request_ to get your changes merged into autoconf-macros
|
||||||
|
master.
|
||||||
|
|
||||||
|
* To get the latest version of `autoconf-macros` into your parent project:
|
||||||
|
|
||||||
|
git subtgree pull --squash --prefix=macros autoconf-macros master
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
Now that autoconf-macros is available to your project, you will need to
|
||||||
|
reference it.
|
||||||
|
|
||||||
|
* Create (or add these lines to) file `YourProject/aclocal.m4`
|
||||||
|
|
||||||
|
m4_include([macros/ax_nagios_get_os])
|
||||||
|
m4_include([macros/ax_nagios_get_distrib])
|
||||||
|
m4_include([macros/ax_nagios_get_init])
|
||||||
|
m4_include([macros/ax_nagios_get_inetd])
|
||||||
|
m4_include([macros/ax_nagios_get_paths])
|
||||||
|
m4_include([macros/ax_nagios_get_files])
|
||||||
|
m4_include([macros/ax_nagios_get_ssl])
|
||||||
|
|
||||||
|
* In your `YourProject/configure.ac` add the following lines. A good place
|
||||||
|
to put them would be right after any `AC_PROG_*` entries:
|
||||||
|
|
||||||
|
AC_NAGIOS_GET_OS
|
||||||
|
AC_NAGIOS_GET_DISTRIB_TYPE
|
||||||
|
AC_NAGIOS_GET_INIT
|
||||||
|
AC_NAGIOS_GET_INETD
|
||||||
|
AC_NAGIOS_GET_PATHS
|
||||||
|
AC_NAGIOS_GET_FILES
|
||||||
|
|
||||||
|
* If you need SSL functionality, add the following to `YourProject/configure.ac`
|
||||||
|
where you want to check for SSL:
|
||||||
|
|
||||||
|
AC_NAGIOS_GET_SSL
|
||||||
|
|
||||||
|
* You will now be able to reference any of the variables in `config.h.in`
|
||||||
|
and any files listed in the `AC_CONFIG_FILES` macro in `configure.ac`.
|
140
macros/add_group_user
Executable file
140
macros/add_group_user
Executable file
@ -0,0 +1,140 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#----------------------
|
||||||
|
# Initialize variables
|
||||||
|
#----------------------
|
||||||
|
dist="$1"
|
||||||
|
uid="$2"
|
||||||
|
gid="$3"
|
||||||
|
rc=0
|
||||||
|
|
||||||
|
#-------------------------------------
|
||||||
|
# Check if the specified group exists
|
||||||
|
#-------------------------------------
|
||||||
|
group_exists(){
|
||||||
|
case $dist in
|
||||||
|
osx) rc=`dscl . -read /Groups/$gid >/dev/null 2>&1; echo $?` ;;
|
||||||
|
hpux) rc=`grget -n $gid >/dev/null 2>&1; echo $?` ;;
|
||||||
|
aix) rc=`lsgroup -a $gid >/dev/null 2>&1; echo $?` ;;
|
||||||
|
*) rc=`getent group $gid > /dev/null 2>&1; echo $?` ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo $rc
|
||||||
|
}
|
||||||
|
|
||||||
|
#------------------------
|
||||||
|
# Add the specified user
|
||||||
|
#------------------------
|
||||||
|
add_user(){
|
||||||
|
rc=`id "$uid" > /dev/null 2>&1; echo $?`
|
||||||
|
if test $rc -eq 0; then
|
||||||
|
echo "User $uid already exists" > /dev/stderr
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $dist in
|
||||||
|
aix)
|
||||||
|
echo useradd -g $gid $uid > /dev/stderr
|
||||||
|
rc=`useradd -g $gid $uid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux)
|
||||||
|
echo useradd -m -g $gid $uid > /dev/stderr
|
||||||
|
rc=`useradd -m -g $gid $uid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
solaris)
|
||||||
|
echo useradd -m -d /export/home/$uid -g $gid $uid > /dev/stderr
|
||||||
|
rc=`useradd -m -d /export/home/$uid -g $gid $uid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
osx)
|
||||||
|
newid=`dscl . -list /Users UniqueID | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
|
||||||
|
newid=`expr 1 + $newid`
|
||||||
|
echo dscl . -create /Users/$uid > /dev/stderr
|
||||||
|
dscl . -create /Users/$uid
|
||||||
|
echo dscl . -create /Users/$uid UniqueID $newid > /dev/stderr
|
||||||
|
dscl . -create /Users/$uid UniqueID $newid
|
||||||
|
echo dscl . -create /Users/$uid UserShell /usr/bin/false > /dev/stderr
|
||||||
|
dscl . -create /Users/$uid UserShell /usr/bin/false
|
||||||
|
echo dscl . -create /Users/$uid PrimaryGroupID 20 > /dev/stderr
|
||||||
|
dscl . -create /Users/$uid PrimaryGroupID 20
|
||||||
|
echo dscl . -append /Groups/$gid GroupMembership $uid > /dev/stderr
|
||||||
|
rc=`dscl . -append /Groups/$gid GroupMembership $uid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
freebsd)
|
||||||
|
echo pw add user $uid -g $gid -s /usr/bin/false > /dev/stderr
|
||||||
|
rc=`pw add user $uid -g $gid -s /usr/bin/false; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
netbsd|openbsd)
|
||||||
|
echo useradd -g $gid $uid > /dev/stderr
|
||||||
|
rc=`useradd -g $gid $uid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo useradd -r -g $gid $uid > /dev/stderr
|
||||||
|
rc=`useradd -r -g $gid $uid; echo $?`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo $rc
|
||||||
|
}
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
# Add the specified group
|
||||||
|
#-------------------------
|
||||||
|
add_group(){
|
||||||
|
rc=`group_exists`
|
||||||
|
if test $rc -eq 0; then
|
||||||
|
echo "Group $gid already exists" > /dev/stderr
|
||||||
|
echo 0
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $dist in
|
||||||
|
aix)
|
||||||
|
echo mkgroup $gid > /dev/stderr
|
||||||
|
rc=`mkgroup "$gid"; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
hpux|solaris)
|
||||||
|
echo groupadd $gid > /dev/stderr
|
||||||
|
rc=`groupadd "$gid"; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
osx)
|
||||||
|
newid=`dscl . -list /Groups gid | tr -s ' ' | cut -d' ' -f2 | sort -n | tail -1`
|
||||||
|
newid=`expr 1 + $newid`
|
||||||
|
echo dscl . -create /Groups/$gid gid $newid > /dev/stderr
|
||||||
|
rc=`dscl . -create /Groups/$gid gid $newid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
freebsd)
|
||||||
|
echo pw add group $gid > /dev/stderr
|
||||||
|
rc=`pw add group $gid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
netbsd|openbsd)
|
||||||
|
echo groupadd $gid > /dev/stderr
|
||||||
|
rc=`groupadd $gid; echo $?`
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo groupadd -r $gid > /dev/stderr
|
||||||
|
rc=`groupadd -r $gid; echo $?`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo $rc
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rc=`add_group`
|
||||||
|
if test $rc -ne 0; then
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
rc=`add_user`
|
||||||
|
exit $rc
|
158
macros/ax_nagios_get_distrib
Normal file
158
macros/ax_nagios_get_distrib
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_DISTRIB_TYPE
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro determines the O/S distribution of the computer it is run on.
|
||||||
|
# $dist_type will be set and will be one of:
|
||||||
|
# unknown (could not be determined)
|
||||||
|
# freebsd, netbsd, openbsd, dragonfly, etc (The BSDs)
|
||||||
|
# suse, rh, debian, gentoo (and possibly their descendants)
|
||||||
|
# Other major Linux distributions (and possibly their descendants)
|
||||||
|
# The O/S name for the rest
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_DISTRIB_TYPE], [AX_NAGIOS_GET_DISTRIB_TYPE])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_DISTRIB_TYPE],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(dist_type)
|
||||||
|
AC_SUBST(dist_ver)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get user hints for possible cross-compile
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING(what the distribution type is )
|
||||||
|
AC_ARG_WITH(dist-type, AC_HELP_STRING([--with-dist-type=type],
|
||||||
|
[specify distribution type (suse, rh, debian, etc.)]),
|
||||||
|
[
|
||||||
|
#
|
||||||
|
# Run this if --with was specified
|
||||||
|
#
|
||||||
|
if test "x$withval" = x -o x$withval = xno; then
|
||||||
|
dist_type_wanted=yes
|
||||||
|
else
|
||||||
|
dist_type_wanted=no
|
||||||
|
dist_type="$withval"
|
||||||
|
dist_ver="unknown"
|
||||||
|
AC_MSG_RESULT($dist_type)
|
||||||
|
fi
|
||||||
|
], [
|
||||||
|
#
|
||||||
|
# Run this if --with was not specified
|
||||||
|
#
|
||||||
|
dist_type_wanted=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
if test x$dist_type = xno; then
|
||||||
|
dist_type_wanted=yes
|
||||||
|
elif test x$dist_type = xyes; then
|
||||||
|
AC_MSG_ERROR([you must enter a distribution type if '--with-dist-type' is specified])
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine distribution type if it wasn't supplied
|
||||||
|
#
|
||||||
|
dist_ver="unknown"
|
||||||
|
|
||||||
|
if test $dist_type_wanted=yes; then
|
||||||
|
dist_type="unknown"
|
||||||
|
|
||||||
|
if test "$opsys" != "linux"; then
|
||||||
|
dist_type="$opsys"
|
||||||
|
AS_CASE([$opsys],
|
||||||
|
[bsd],
|
||||||
|
dist_type=`uname -s | tr ["[A-Z]" "[a-z]"]`
|
||||||
|
dist_ver=`uname -r`,
|
||||||
|
[aix|hp-ux],
|
||||||
|
dist_ver=$OSTYPE,
|
||||||
|
[solaris],
|
||||||
|
dist_ver=`echo $OSTYPE | cut -d'.' -f2`,
|
||||||
|
[*],
|
||||||
|
dist_ver=$OSTYPE
|
||||||
|
)
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
if test -r "/etc/gentoo-release"; then
|
||||||
|
dist_type="gentoo"
|
||||||
|
dist_ver=`cat /etc/gentoo-release`
|
||||||
|
|
||||||
|
elif test -r "/etc/os-release"; then
|
||||||
|
. /etc/os-release
|
||||||
|
if test x"$ID_LIKE" != x; then
|
||||||
|
dist_type=`echo $ID_LIKE | cut -d' ' -f1 | tr ["[A-Z]" "[a-z]"]`
|
||||||
|
elif test x"$ID" = xol; then
|
||||||
|
dist_type=rh
|
||||||
|
else
|
||||||
|
dist_type=`echo $ID | tr ["[A-Z]" "[a-z]"]`
|
||||||
|
fi
|
||||||
|
if test x"$dist_type" = sles; then
|
||||||
|
dist_type=suse
|
||||||
|
fi
|
||||||
|
if test x"$VERSION_ID" != x; then
|
||||||
|
dist_ver=$VERSION_ID
|
||||||
|
elif test x"$VERSION" != x; then
|
||||||
|
dist_ver=`echo $VERSION | cut -d'.' -f1 | tr -d [:alpha:][:blank:][:punct:]`
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test -r "/etc/redhat-release"; then
|
||||||
|
dist_type=rh
|
||||||
|
dist_ver=`cat /etc/redhat-release`
|
||||||
|
|
||||||
|
elif test -r "/etc/debian_version"; then
|
||||||
|
dist_type="debian"
|
||||||
|
if test -r "/etc/lsb-release"; then
|
||||||
|
. /etc/lsb-release
|
||||||
|
dist_ver=`echo "$DISTRIB_RELEASE"`
|
||||||
|
else
|
||||||
|
dist_ver=`cat /etc/debian_version`
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test -r "/etc/SuSE-release"; then
|
||||||
|
dist_type=suse
|
||||||
|
dist_ver=`grep VERSION /etc/SuSE-release`
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$dist_ver" != "unknown"; then
|
||||||
|
dist_ver=`echo "$dist_ver" | cut -d'.' -f1 | tr -d [:alpha:][:blank:][:punct:]`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_RESULT($dist_type)
|
||||||
|
])
|
131
macros/ax_nagios_get_files
Normal file
131
macros/ax_nagios_get_files
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_FILES
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro figures out which init and/or inetd files to use based
|
||||||
|
# on the results of the AX_NAGIOS_GET_OS, AX_NAGIOS_GET_DISTRIB_TYPE,
|
||||||
|
# AX_NAGIOS_GET_INIT and AX_NAGIOS_GET_INETD macros. It will select
|
||||||
|
# the appropriate files(s) from the 'startup' directory and copy it.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_FILES], [AX_NAGIOS_GET_FILES])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_FILES],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(src_init)
|
||||||
|
AC_SUBST(src_inetd)
|
||||||
|
AC_SUBST(src_tmpfile)
|
||||||
|
AC_SUBST(bsd_enable)
|
||||||
|
|
||||||
|
src_inetd=""
|
||||||
|
src_init=""
|
||||||
|
bsd_enable=""
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for which init file to use )
|
||||||
|
|
||||||
|
AS_CASE([$init_type],
|
||||||
|
|
||||||
|
[sysv],
|
||||||
|
src_init=default-init,
|
||||||
|
|
||||||
|
[systemd],
|
||||||
|
src_tmpfile=tmpfile.conf
|
||||||
|
src_init=default-service,
|
||||||
|
|
||||||
|
[bsd],
|
||||||
|
src_init=bsd-init,
|
||||||
|
|
||||||
|
[newbsd],
|
||||||
|
if test $dist_type = freebsd ; then
|
||||||
|
bsd_enable="_enable"
|
||||||
|
src_init=newbsd-init
|
||||||
|
elif test $dist_type = openbsd ; then
|
||||||
|
bsd_enable="_flags"
|
||||||
|
src_init=openbsd-init
|
||||||
|
elif test $dist_type = netbsd ; then
|
||||||
|
bsd_enable=""
|
||||||
|
src_init=newbsd-init
|
||||||
|
fi,
|
||||||
|
|
||||||
|
# [gentoo],
|
||||||
|
|
||||||
|
[openrc],
|
||||||
|
src_init=openrc-init,
|
||||||
|
|
||||||
|
[smf*],
|
||||||
|
src_init="solaris-init.xml"
|
||||||
|
src_inetd="solaris-inetd.xml",
|
||||||
|
|
||||||
|
[upstart],
|
||||||
|
if test $dist_type = rh ; then
|
||||||
|
src_init=rh-upstart-init
|
||||||
|
else
|
||||||
|
src_init=upstart-init
|
||||||
|
fi,
|
||||||
|
|
||||||
|
[launchd],
|
||||||
|
src_init="mac-init.plist"
|
||||||
|
|
||||||
|
[*],
|
||||||
|
src_init="unknown"
|
||||||
|
)
|
||||||
|
AC_MSG_RESULT($src_init)
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for which inetd files to use )
|
||||||
|
|
||||||
|
if test x$src_inetd = x; then
|
||||||
|
|
||||||
|
AS_CASE([$inetd_type],
|
||||||
|
[inetd*],
|
||||||
|
src_inetd=default-inetd,
|
||||||
|
|
||||||
|
[xinetd],
|
||||||
|
src_inetd=default-xinetd,
|
||||||
|
|
||||||
|
[systemd],
|
||||||
|
src_inetd=default-socket,
|
||||||
|
|
||||||
|
[launchd],
|
||||||
|
src_inetd="mac-inetd.plist",
|
||||||
|
|
||||||
|
[*],
|
||||||
|
src_inetd="unknown"
|
||||||
|
)
|
||||||
|
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($src_inetd)
|
||||||
|
|
||||||
|
])
|
145
macros/ax_nagios_get_inetd
Normal file
145
macros/ax_nagios_get_inetd
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_INETD
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro determines whether inetd or xinetd is being used
|
||||||
|
# The argument are:
|
||||||
|
# the init type as determined by AX_NAGIOS_GET_INIT
|
||||||
|
# $inetd_type will be set and will be one of:
|
||||||
|
# unknown (could not be determined)
|
||||||
|
# launchd (Mac OS X)
|
||||||
|
# smf10 (Solaris)
|
||||||
|
# smf11 (Solaris)
|
||||||
|
# upstart (Older Debian)
|
||||||
|
# xinetd (Most Linux, BSD)
|
||||||
|
# inetd (The rest)
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_INETD], [AX_NAGIOS_GET_INETD])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_INETD],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(inetd_type)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get user hints for possible cross-compile
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING(what inetd is being used )
|
||||||
|
AC_ARG_WITH(inetd_type, AC_HELP_STRING([--with-inetd-type=type],
|
||||||
|
[which super-server the system runs (inetd, xinetd, systemd, launchd,
|
||||||
|
smf10, smf11, etc.)]),
|
||||||
|
[
|
||||||
|
inetd_type_wanted=yes
|
||||||
|
#
|
||||||
|
# Run this if --with was specified
|
||||||
|
#
|
||||||
|
if test "x$withval" = x -o x$withval = xno; then
|
||||||
|
inetd_type_wanted=yes
|
||||||
|
else
|
||||||
|
inetd_type_wanted=no
|
||||||
|
inetd_type="$withval"
|
||||||
|
AC_MSG_RESULT($inetd_type)
|
||||||
|
fi
|
||||||
|
], [
|
||||||
|
#
|
||||||
|
# Run this if --with was not specified
|
||||||
|
#
|
||||||
|
inetd_type_wanted=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
if test x$inetd_type = xno; then
|
||||||
|
inetd_type_wanted=yes
|
||||||
|
elif test x$inetd_type = xyes; then
|
||||||
|
AC_MSG_ERROR([you must enter an inetd type if '--with-inetd-type' is specified])
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine inetd type if it wasn't supplied
|
||||||
|
#
|
||||||
|
if test $inetd_type_wanted = yes; then
|
||||||
|
|
||||||
|
inetd_disabled=""
|
||||||
|
|
||||||
|
if test x"$init_type" = "xupstart"; then
|
||||||
|
inetd_type="upstart"
|
||||||
|
elif test "$opsys" = "osx"; then
|
||||||
|
inetd_type="launchd"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$inetd_type" = x; then
|
||||||
|
AS_CASE([$dist_type],
|
||||||
|
[solaris],
|
||||||
|
if test x"$init_type" = "xsmf10" -o x"$init_type" = "xsmf11"; then
|
||||||
|
inetd_type="$init_type"
|
||||||
|
else
|
||||||
|
inetd_type="inetd"
|
||||||
|
fi,
|
||||||
|
|
||||||
|
[*bsd*],
|
||||||
|
inetd_type=`ps -A -o comm -c | grep inetd`,
|
||||||
|
|
||||||
|
[aix|hp-ux],
|
||||||
|
inetd_type=`UNIX95= ps -A -o comm | grep inetd | head -1`,
|
||||||
|
|
||||||
|
[*],
|
||||||
|
inetd_type=[`ps -C "inetd,xinetd" -o fname | grep -vi COMMAND`])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$inetd_type" = x; then
|
||||||
|
if test -f /etc/xinetd.conf -a -d /etc/xinetd.d; then
|
||||||
|
inetd_disabled="(Not running)"
|
||||||
|
inetd_type=xinetd
|
||||||
|
elif test -f /etc/inetd.conf -o -f /usr/sbin/inetd; then
|
||||||
|
inetd_type=inetd
|
||||||
|
inetd_disabled="(Not running)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$inetd_type" = x; then
|
||||||
|
if test x"$init_type" = "xsystemd"; then
|
||||||
|
inetd_type="systemd"
|
||||||
|
else
|
||||||
|
inetd_type="unknown"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$inetd_disabled"; then
|
||||||
|
AC_MSG_RESULT($inetd_type $inetd_disabled)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT($inetd_type)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
195
macros/ax_nagios_get_init
Normal file
195
macros/ax_nagios_get_init
Normal file
@ -0,0 +1,195 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_INIT
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro determines the O/S distribution of the computer it is run on.
|
||||||
|
# $init_type will be set and will be one of:
|
||||||
|
# unknown (could not be determined)
|
||||||
|
# launchd (Mac OS X)
|
||||||
|
# bsd (Slackware Linux)
|
||||||
|
# newbsd (FreeBSD, OpenBSD, NetBSD, Dragonfly, etc)
|
||||||
|
# smf10 (Solaris)
|
||||||
|
# smf11 (Solaris)
|
||||||
|
# systemd (Linux SystemD)
|
||||||
|
# gentoo (Older Gentoo)
|
||||||
|
# openrc (Recent Gentoo and some others)
|
||||||
|
# upstart (Older Debian)
|
||||||
|
# sysv (The rest)
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_INIT], [AX_NAGIOS_GET_INIT])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_INIT],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(init_type)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get user hints for possible cross-compile
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING(what init system is being used )
|
||||||
|
AC_ARG_WITH(init_type,AC_HELP_STRING([--with-init-type=type],
|
||||||
|
[specify init type (bsd, sysv, systemd, launchd, smf10, smf11, upstart,
|
||||||
|
openrc, etc.)]),
|
||||||
|
[
|
||||||
|
#
|
||||||
|
# Run this if --with was specified
|
||||||
|
#
|
||||||
|
if test "x$withval" = x -o x$withval = xno; then
|
||||||
|
init_type_wanted=yes
|
||||||
|
else
|
||||||
|
init_type_wanted=no
|
||||||
|
init_type="$withval"
|
||||||
|
AC_MSG_RESULT($init_type)
|
||||||
|
fi
|
||||||
|
], [
|
||||||
|
#
|
||||||
|
# Run this if --with was not specified
|
||||||
|
#
|
||||||
|
init_type_wanted=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
if test x$init_type = xno; then
|
||||||
|
init_type_wanted=yes
|
||||||
|
elif test x$init_type = xyes; then
|
||||||
|
AC_MSG_ERROR([you must enter an init type if '--with-init-type' is specified])
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine init type if it wasn't supplied
|
||||||
|
#
|
||||||
|
if test $init_type_wanted = yes; then
|
||||||
|
init_type=""
|
||||||
|
|
||||||
|
if test x"$opsys" = x; then
|
||||||
|
init_type="unknown"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test x"$dist_type" = x; then
|
||||||
|
init_type="unknown"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test "$opsys" = "osx"; then
|
||||||
|
init_type="launchd"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test "$opsys" = "bsd"; then
|
||||||
|
init_type="newbsd"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test "$dist_type" = "solaris"; then
|
||||||
|
if test -d "/lib/svc/manifest"; then
|
||||||
|
init_type="smf11"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test -d "/lib/svc/monitor"; then
|
||||||
|
init_type="smf10"
|
||||||
|
init_type_wanted=no
|
||||||
|
else
|
||||||
|
init_type="sysv"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
elif test "$dist_type" = "slackware"; then
|
||||||
|
init_type="bsd"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
PSCMD="ps -p1 -o args"
|
||||||
|
AS_CASE([$dist_type],
|
||||||
|
[aix], PSCMD="env UNIX95=1; ps -p1 -o args",
|
||||||
|
[solaris], PSCMD="env UNIX95=1; ps -p1 -o args",
|
||||||
|
[hp-ux], PSCMD="env UNIX95=1; ps -p1 -o args")
|
||||||
|
|
||||||
|
if test "$init_type_wanted" = yes; then
|
||||||
|
pid1=`$PSCMD | grep -vi COMMAND | cut -d' ' -f1`
|
||||||
|
if test x"$pid1" = "x"; then
|
||||||
|
init_type="unknown"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
if `echo $pid1 | grep "systemd" > /dev/null`; then
|
||||||
|
init_type="systemd"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$init_type_wanted" = yes; then
|
||||||
|
if test "$pid1" = "init"; then
|
||||||
|
if test -e "/sbin/init"; then
|
||||||
|
pid1="/sbin/init";
|
||||||
|
elif test -e "/usr/sbin/init"; then
|
||||||
|
pid1="/usr/sbin/init"
|
||||||
|
else
|
||||||
|
init_type="unknown"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test -L "$pid1"; then
|
||||||
|
pid1=`readlink "$pid1"`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$init_type_wanted" = yes; then
|
||||||
|
if `echo $pid1 | grep "systemd" > /dev/null`; then
|
||||||
|
init_type="systemd"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test -f "/sbin/rc"; then
|
||||||
|
if test -f /sbin/runscript; then
|
||||||
|
init_type_wanted=no
|
||||||
|
if `/sbin/start-stop-daemon -V | grep "OpenRC" > /dev/null`; then
|
||||||
|
init_type="openrc"
|
||||||
|
else
|
||||||
|
init_type="gentoo"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$init_type_wanted" = yes; then
|
||||||
|
if test "$pid1" = "/sbin/init" -o "$pid1" = "/usr/sbin/init"; then
|
||||||
|
if `/sbin/init --version 2>/dev/null | grep "upstart" >/dev/null`; then
|
||||||
|
init_type="upstart"
|
||||||
|
init_type_wanted=no
|
||||||
|
elif test -f "/etc/rc" -a ! -L "/etc/rc"; then
|
||||||
|
init_type="newbsd"
|
||||||
|
init_type_wanted=no
|
||||||
|
else
|
||||||
|
init_type="sysv"
|
||||||
|
init_type_wanted=no
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$init_type_wanted" = yes; then
|
||||||
|
init_type="unknown"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_RESULT($init_type)
|
||||||
|
])
|
101
macros/ax_nagios_get_os
Normal file
101
macros/ax_nagios_get_os
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_OS
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro determines the operating system of the computer it is run on.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_OS], [AX_NAGIOS_GET_OS])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_OS],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(opsys)
|
||||||
|
AC_SUBST(arch)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get user hints
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING(what the operating system is )
|
||||||
|
AC_ARG_WITH(opsys, AC_HELP_STRING([--with-opsys=OS],
|
||||||
|
[specify operating system (linux, osx, bsd, solaris, irix, cygwin,
|
||||||
|
aix, hp-ux, etc.)]),
|
||||||
|
[
|
||||||
|
#
|
||||||
|
# Run this if --with was specified
|
||||||
|
#
|
||||||
|
if test "x$withval" = x -o x$withval = xno; then
|
||||||
|
opsys_wanted=yes
|
||||||
|
else
|
||||||
|
opsys_wanted=no
|
||||||
|
opsys="$withval"
|
||||||
|
AC_MSG_RESULT($opsys)
|
||||||
|
fi
|
||||||
|
], [
|
||||||
|
#
|
||||||
|
# Run this if --with was not specified
|
||||||
|
#
|
||||||
|
opsys_wanted=yes
|
||||||
|
])
|
||||||
|
|
||||||
|
if test x$opsys = xno; then
|
||||||
|
opsys=""
|
||||||
|
opsys_wanted=yes
|
||||||
|
elif test x$opsys = xyes; then
|
||||||
|
AC_MSG_ERROR([you must enter an O/S type if '--with-opsys' is specified])
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine operating system if it wasn't supplied
|
||||||
|
#
|
||||||
|
if test $opsys_wanted=yes; then
|
||||||
|
opsys=`uname -s | tr ["[A-Z]" "[a-z]"]`
|
||||||
|
if test x"$opsys" = "x"; then opsys="unknown"; fi
|
||||||
|
AS_CASE([$opsys],
|
||||||
|
[darwin*], opsys="osx",
|
||||||
|
[*bsd*], opsys="bsd",
|
||||||
|
[dragonfly], opsys="bsd",
|
||||||
|
[sunos], opsys="solaris",
|
||||||
|
[gnu/hurd], opsys="linux",
|
||||||
|
[irix*], opsys="irix",
|
||||||
|
[cygwin*], opsys="cygwin",
|
||||||
|
[mingw*], opsys="mingw",
|
||||||
|
[msys*], opsys="msys")
|
||||||
|
fi
|
||||||
|
|
||||||
|
arch=`uname -m | tr ["[A-Z]" "[a-z]"]`
|
||||||
|
|
||||||
|
AC_MSG_RESULT($opsys)
|
||||||
|
])
|
725
macros/ax_nagios_get_paths
Normal file
725
macros/ax_nagios_get_paths
Normal file
@ -0,0 +1,725 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_PATHS
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro figures out the installation & run paths for various systems
|
||||||
|
# The argument are:
|
||||||
|
# the O/S determined by the AX_NAGIOS_GET_OS macro.
|
||||||
|
# the distribution type as determined by AX_NAGIOS_GET_DISTRIB_TYPE
|
||||||
|
# the init type as determined by AX_NAGIOS_GET_INIT
|
||||||
|
# the inetd type as determined by AX_NAGIOS_GET_INETD
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_PATHS], [AX_NAGIOS_GET_PATHS])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_PATHS],
|
||||||
|
[
|
||||||
|
|
||||||
|
AC_SUBST(pkgsysconfdir)
|
||||||
|
AC_SUBST(objsysconfdir)
|
||||||
|
AC_SUBST(sbindir)
|
||||||
|
AC_SUBST(initname)
|
||||||
|
AC_SUBST(inetdname)
|
||||||
|
AC_SUBST(pluginsdir)
|
||||||
|
AC_SUBST(brokersdir)
|
||||||
|
AC_SUBST(cgibindir)
|
||||||
|
AC_SUBST(webdir)
|
||||||
|
AC_SUBST(privatesysconfdir)
|
||||||
|
AC_SUBST(pkglocalstatedir)
|
||||||
|
AC_SUBST(logdir)
|
||||||
|
AC_SUBST(piddir)
|
||||||
|
AC_SUBST(pipedir)
|
||||||
|
AC_SUBST(spooldir)
|
||||||
|
AC_SUBST(initdir)
|
||||||
|
AC_SUBST(inetddir)
|
||||||
|
AC_SUBST(tmpfilesd)
|
||||||
|
AC_SUBST(subsyslockdir)
|
||||||
|
AC_SUBST(subsyslockfile)
|
||||||
|
|
||||||
|
if test x$DBG_PATHS != x; then
|
||||||
|
echo
|
||||||
|
echo Incoming paths:
|
||||||
|
echo " prefix $prefix"
|
||||||
|
echo " exec_prefix $exec_prefix"
|
||||||
|
echo " bindir $bindir"
|
||||||
|
echo " sbindir $sbindir"
|
||||||
|
echo " libexecdir $libexecdir"
|
||||||
|
echo " sysconfdir $sysconfdir"
|
||||||
|
echo " localstatedir $localstatedir"
|
||||||
|
echo " datarootdir $datarootdir"
|
||||||
|
echo " datadir $datadir"
|
||||||
|
echo " localedir $localedir"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for which paths to use )
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(install_method,
|
||||||
|
AC_HELP_STRING([--enable-install-method=<method>],
|
||||||
|
[sets the install method to use: 'default' (the default) will install to
|
||||||
|
/usr/local/nagios, 'os' will try to determine which method to use based
|
||||||
|
on OS type and distribution. Fine tuning using the '--bindir', etc.
|
||||||
|
overrides above will still work]),
|
||||||
|
install_method=$enableval,
|
||||||
|
install_method=default
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(showdirs_only,
|
||||||
|
AC_HELP_STRING([--enable-showdirs-only=yes],
|
||||||
|
[This option will cause 'configure' to stop after determining the install
|
||||||
|
locations based on '--enable-install-method', so you can see the
|
||||||
|
destinations before a full './configure', 'make', 'make install'
|
||||||
|
process.]),
|
||||||
|
showdirs_only=$enableval,
|
||||||
|
showdirs_only=no
|
||||||
|
)
|
||||||
|
|
||||||
|
AS_CASE([$install_method],
|
||||||
|
[yes], install_method="os",
|
||||||
|
[no], install_method="default",
|
||||||
|
[default|os], :,
|
||||||
|
[*], echo >&6; AC_MSG_ERROR(['--enable-install-method=$install_method' is invalid])
|
||||||
|
)
|
||||||
|
|
||||||
|
if test $showdirs_only != "no"; then showdirs_only="yes"; fi
|
||||||
|
|
||||||
|
AS_CASE([$dist_type],
|
||||||
|
[*solaris*|*hp-ux*|*aix*|*osx*], opsys=unix)
|
||||||
|
|
||||||
|
|
||||||
|
need_cgi=no
|
||||||
|
need_web=no
|
||||||
|
need_brk=no
|
||||||
|
need_plg=no
|
||||||
|
need_pipe=no
|
||||||
|
need_spl=no
|
||||||
|
need_loc=no
|
||||||
|
need_log_subdir=no
|
||||||
|
need_etc_subdir=no
|
||||||
|
need_pls_dir=no
|
||||||
|
|
||||||
|
AS_CASE([$PKG_NAME],
|
||||||
|
[nagios],
|
||||||
|
need_log_subdir=yes
|
||||||
|
need_etc_subdir=yes
|
||||||
|
need_pls_dir=yes
|
||||||
|
need_brk=yes
|
||||||
|
need_pipe=yes
|
||||||
|
need_spl=yes
|
||||||
|
need_loc=yes
|
||||||
|
need_cgi=yes
|
||||||
|
need_web=yes,
|
||||||
|
|
||||||
|
[ndoutils],
|
||||||
|
need_spl=yes,
|
||||||
|
|
||||||
|
[nrpe],
|
||||||
|
need_plg=yes,
|
||||||
|
|
||||||
|
[nsca],
|
||||||
|
need_cgi=no,
|
||||||
|
|
||||||
|
[plugins],
|
||||||
|
need_loc=yes
|
||||||
|
need_plg=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_ARG_WITH(pkgsysconfdir, AC_HELP_STRING([--with-pkgsysconfdir=DIR],
|
||||||
|
[where configuration files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
pkgsysconfdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(objsysconfdir, AC_HELP_STRING([--with-objsysconfdir=DIR],
|
||||||
|
[where object configuration files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
objsysconfdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(privatesysconfdir, AC_HELP_STRING([--with-privatesysconfdir=DIR],
|
||||||
|
[where private configuration files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
privatesysconfdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(webdir, AC_HELP_STRING([--with-webdir=DIR],
|
||||||
|
[where the website files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
webdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(pluginsdir, AC_HELP_STRING([--with-pluginsdir=DIR],
|
||||||
|
[where the plugins should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
pluginsdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(brokersdir, AC_HELP_STRING([--with-brokersdir=DIR],
|
||||||
|
[where the broker modules should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
brokersdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(cgibindir, AC_HELP_STRING([--with-cgibindir=DIR],
|
||||||
|
[where the CGI programs should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
cgibindir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(logdir, AC_HELP_STRING([--with-logdir=DIR],
|
||||||
|
[where log files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
logdir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(piddir, AC_HELP_STRING([--with-piddir=DIR],
|
||||||
|
[where the PID file should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
piddir="$withval"
|
||||||
|
fi)
|
||||||
|
AC_ARG_WITH(pipedir, AC_HELP_STRING([--with-pipedir=DIR],
|
||||||
|
[where socket and pipe files should be placed]),
|
||||||
|
if test x$withval != x -a x$withval != xno -a x$withval != xyes; then
|
||||||
|
pipedir="$withval"
|
||||||
|
fi)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Setup the base directory
|
||||||
|
#
|
||||||
|
|
||||||
|
if test $install_method = "default"; then
|
||||||
|
if test $opsys = "unix"; then
|
||||||
|
if test x"$prefix" = "xNONE"; then prefix="/usr/local/nagios"; fi
|
||||||
|
else
|
||||||
|
if test x"$prefix" = "xNONE"; then prefix=${ac_default_prefix}; fi
|
||||||
|
fi
|
||||||
|
datarootdir=${datarootdir="$prefix"}
|
||||||
|
|
||||||
|
else
|
||||||
|
if test x"$datadir" = x'${datarootdir}'; then AS_UNSET(datadir); fi
|
||||||
|
if test x"$sysconfdir" = x'${prefix}/etc'; then AS_UNSET(sysconfdir); fi
|
||||||
|
|
||||||
|
if test x"$prefix" = "xNONE"; then
|
||||||
|
if test $dist_type = freebsd -o $dist_type = openbsd -o $dist_type = osx; then
|
||||||
|
prefix="/usr/local"
|
||||||
|
elif test $dist_type = netbsd; then
|
||||||
|
prefix="/usr/pkg"
|
||||||
|
else
|
||||||
|
prefix="/usr"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test x"$exec_prefix" = "xNONE"; then exec_prefix=$prefix; fi
|
||||||
|
if test x"$localstatedir" = x'${prefix}/var'; then
|
||||||
|
if test $dist_type = "osx"; then
|
||||||
|
localstatedir="/private/var"
|
||||||
|
else
|
||||||
|
localstatedir="/var"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $opsys = "unix"; then
|
||||||
|
if test x"$datarootdir" = x'${prefix}/share'; then
|
||||||
|
if test $dist_type = "hp-ux"; then
|
||||||
|
datarootdir="/usr/local/share"
|
||||||
|
if test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir="/usr/nagios"
|
||||||
|
fi
|
||||||
|
elif test $dist_type = "osx"; then
|
||||||
|
datarootdir="/usr/local/share"
|
||||||
|
if test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir="/usr/local/nagios"
|
||||||
|
fi
|
||||||
|
elif test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir="/usr/lib/nagios"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if test $dist_type = "osx"; then
|
||||||
|
if test x"$sbindir" = x'${exec_prefix}/sbin'; then
|
||||||
|
sbindir="$libexecdir"
|
||||||
|
fi
|
||||||
|
if test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir="/usr/local/libexec/nagios"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif test $opsys = "bsd"; then
|
||||||
|
if test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir=${exec_prefix}/libexec/nagios;
|
||||||
|
fi
|
||||||
|
elif test x"$libexecdir" = x'${exec_prefix}/lib'; then
|
||||||
|
libexecdir=${libexecdir}/nagios;
|
||||||
|
elif test x"$libexecdir" = x'${exec_prefix}/libexec'; then
|
||||||
|
libexecdir=${exec_prefix}/lib/nagios;
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$exec_prefix" = "xNONE"; then exec_prefix=${prefix}; fi
|
||||||
|
|
||||||
|
tmpfilesd=${tmpfilesd="/usr/lib/tmpfiles.d"}
|
||||||
|
if test ! -d "$tmpfilesd"; then
|
||||||
|
tmpfilesd="N/A"
|
||||||
|
else
|
||||||
|
tmpfilesd="$tmpfilesd/$PKG_NAME.conf"
|
||||||
|
fi
|
||||||
|
subsyslockdir=${subsyslockdir="/var/lock/subsys"}
|
||||||
|
if test ! -d "$subsyslockdir"; then
|
||||||
|
subsyslockdir="N/A"
|
||||||
|
subsyslockfile="N/A"
|
||||||
|
else
|
||||||
|
subsyslockfile="$subsyslockdir/$PKG_NAME"
|
||||||
|
fi
|
||||||
|
if test "$need_loc" = no; then
|
||||||
|
localedir="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $install_method = "default" ; then
|
||||||
|
#
|
||||||
|
# Do the default setup
|
||||||
|
#
|
||||||
|
sbindir=${bindir}
|
||||||
|
datadir=${datadir="$datarootdir"}
|
||||||
|
if test $need_web = yes; then
|
||||||
|
webdir=${webdir="$datadir"}
|
||||||
|
else
|
||||||
|
webdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $opsys = "unix"; then
|
||||||
|
sysconfdir=${sysconfdir="/etc/opt"}
|
||||||
|
fi
|
||||||
|
pkgsysconfdir=${pkgsysconfdir="$sysconfdir"}
|
||||||
|
if test $need_etc_subdir = yes; then
|
||||||
|
objsysconfdir=${objsysconfdir="$pkgsysconfdir/objects"}
|
||||||
|
else
|
||||||
|
objsysconfdir="N/A"
|
||||||
|
fi
|
||||||
|
privatesysconfdir=${privatesysconfdir="$pkgsysconfdir"}
|
||||||
|
logdir=${logdir="$localstatedir"}
|
||||||
|
piddir=${piddir="$localstatedir"}
|
||||||
|
if test "$need_pipe" = yes; then
|
||||||
|
pipedir=${pipedir="$localstatedir/rw"}
|
||||||
|
else
|
||||||
|
pipedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_pls_dir" = yes; then
|
||||||
|
pkglocalstatedir=${pkglocalstatedir="$localstatedir"}
|
||||||
|
else
|
||||||
|
pkglocalstatedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_spl" = yes; then
|
||||||
|
spooldir=${spooldir="$localstatedir/var"}
|
||||||
|
else
|
||||||
|
spooldir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_brk = yes; then
|
||||||
|
brokersdir=${brokersdir="$bindir"}
|
||||||
|
else
|
||||||
|
brokersdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_plg = yes; then
|
||||||
|
pluginsdir=${pluginsdir="$libexecdir"}
|
||||||
|
else
|
||||||
|
pluginsdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_cgi = yes; then
|
||||||
|
cgibindir=${cgibindir="$prefix/sbin"}
|
||||||
|
else
|
||||||
|
cgibindir="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test $opsys = "linux"; then
|
||||||
|
|
||||||
|
#
|
||||||
|
# Linux "Standard" install
|
||||||
|
#
|
||||||
|
install_method="$install_method : FHS"
|
||||||
|
datadir=${datadir="$datarootdir/nagios"}
|
||||||
|
if test $need_web = yes; then
|
||||||
|
webdir=${webdir="$datadir/html"}
|
||||||
|
else
|
||||||
|
webdir="N/A"
|
||||||
|
fi
|
||||||
|
sysconfdir=${sysconfdir="/etc"}
|
||||||
|
pkgsysconfdir=${pkgsysconfdir="$sysconfdir/nagios"}
|
||||||
|
if test $need_etc_subdir = yes; then
|
||||||
|
objsysconfdir=${objsysconfdir="$pkgsysconfdir/objects"}
|
||||||
|
else
|
||||||
|
objsysconfdir="N/A"
|
||||||
|
fi
|
||||||
|
privatesysconfdir=${privatesysconfdir="$pkgsysconfdir/private"}
|
||||||
|
if test $need_log_subdir = yes; then
|
||||||
|
logdir=${logdir="$localstatedir/log/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
logdir=${logdir="$localstatedir/log"}
|
||||||
|
fi
|
||||||
|
piddir=${piddir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
if test "$need_pipe" = yes; then
|
||||||
|
pipedir=${pipedir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
else
|
||||||
|
pipedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_pls_dir" = yes; then
|
||||||
|
pkglocalstatedir=${pkglocalstatedir="$localstatedir/lib/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
pkglocalstatedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_spl" = yes; then
|
||||||
|
spooldir=${spooldir="$localstatedir/spool/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
spooldir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_brk = yes; then
|
||||||
|
brokersdir=${brokersdir="$libexecdir/brokers"}
|
||||||
|
else
|
||||||
|
brokersdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_plg = yes; then
|
||||||
|
pluginsdir=${pluginsdir="$libexecdir/plugins"}
|
||||||
|
else
|
||||||
|
pluginsdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_cgi = yes; then
|
||||||
|
cgibindir=${cgibindir="$libexecdir/cgi-bin"}
|
||||||
|
else
|
||||||
|
cgibindir="N/A"
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test $opsys = "unix"; then
|
||||||
|
|
||||||
|
#
|
||||||
|
# "Standard" Unix install
|
||||||
|
#
|
||||||
|
install_method="$install_method : Unix Standard"
|
||||||
|
if test $dist_type = osx; then
|
||||||
|
install_method="$install_method : OS X Standard"
|
||||||
|
sbindir=${sbindir="/usr/local/libexec"}
|
||||||
|
fi
|
||||||
|
datadir=${datadir="$datarootdir/nagios"}
|
||||||
|
if test $need_web = yes; then
|
||||||
|
webdir=${webdir="$datadir/html"}
|
||||||
|
else
|
||||||
|
webdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $dist_type = osx; then
|
||||||
|
sysconfdir=${sysconfdir="/private/etc"}
|
||||||
|
else
|
||||||
|
sysconfdir=${sysconfdir="/etc"}
|
||||||
|
fi
|
||||||
|
pkgsysconfdir=${pkgsysconfdir="$sysconfdir/nagios"}
|
||||||
|
if test $need_etc_subdir = yes; then
|
||||||
|
objsysconfdir=${objsysconfdir="$pkgsysconfdir/objects"}
|
||||||
|
else
|
||||||
|
objsysconfdir="N/A"
|
||||||
|
fi
|
||||||
|
privatesysconfdir=${privatesysconfdir="$pkgsysconfdir/private"}
|
||||||
|
if test "$need_pls_dir" = yes; then
|
||||||
|
pkglocalstatedir=${pkglocalstatedir="$localstatedir/lib/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
pkglocalstatedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_loc" = yes; then
|
||||||
|
localedir=${localedir="/usr/local/share/locale/<lang>/LC_MESSAGES/nagios-plugins.mo"}
|
||||||
|
fi
|
||||||
|
if test "$need_spl" = yes; then
|
||||||
|
spooldir=${spooldir="$localstatedir/spool/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
spooldir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_brk = yes; then
|
||||||
|
brokersdir=${brokersdir="$libexecdir/brokers"}
|
||||||
|
else
|
||||||
|
brokersdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_plg = yes; then
|
||||||
|
pluginsdir=${pluginsdir="$libexecdir/plugins"}
|
||||||
|
else
|
||||||
|
pluginsdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_cgi = yes; then
|
||||||
|
cgibindir=${cgibindir="$libexecdir/cgi-bin"}
|
||||||
|
else
|
||||||
|
cgibindir="N/A"
|
||||||
|
fi
|
||||||
|
AS_CASE([$dist_type],
|
||||||
|
[*hp-ux*],
|
||||||
|
piddir=${piddir="$pkgsysconfdir"}
|
||||||
|
pipedir=${pipedir="$pkglocalstatedir"}
|
||||||
|
logdir=${logdir="$pkglocalstatedir/log"},
|
||||||
|
|
||||||
|
[*],
|
||||||
|
piddir=${piddir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
if test "$need_pipe" = yes; then
|
||||||
|
pipedir=${pipedir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
else
|
||||||
|
pipedir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_log_subdir = yes; then
|
||||||
|
logdir=${logdir="$localstatedir/log/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
logdir=${logdir="$localstatedir/log"}
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
elif test $opsys = "bsd"; then
|
||||||
|
|
||||||
|
#
|
||||||
|
# "Standard" BSD install
|
||||||
|
#
|
||||||
|
install_method="$install_method : BSD"
|
||||||
|
if test $dist_type = freebsd -o $dist_type = openbsd; then
|
||||||
|
prefix=${prefix="/usr/local"}
|
||||||
|
exec_prefix=${exec_prefix="/usr/local"}
|
||||||
|
if test $dist_type = freebsd; then
|
||||||
|
install_method="$install_method : FreeBSD"
|
||||||
|
else
|
||||||
|
install_method="$install_method : OpenBSD"
|
||||||
|
fi
|
||||||
|
elif test $dist_type = netbsd; then
|
||||||
|
prefix=${prefix="/usr/pkg"}
|
||||||
|
exec_prefix=${exec_prefix="/usr/pkg"}
|
||||||
|
install_method="$install_method : NetBSD"
|
||||||
|
fi
|
||||||
|
datadir=${datadir="$datarootdir/nagios"}
|
||||||
|
if test $need_web = yes -o $need_cgi = yes; then
|
||||||
|
if test $dist_type = freebsd; then
|
||||||
|
webdir=${webdir="$prefix/www/nagios"}
|
||||||
|
elif test $dist_type = netbsd; then
|
||||||
|
webdir=${webdir="$prefix/share/nagios"}
|
||||||
|
elif test $dist_type = openbsd; then
|
||||||
|
webdir=${webdir="/var/www/nagios"}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
webdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $dist_type = freebsd; then
|
||||||
|
sysconfdir=${sysconfdir="/usr/local/etc"}
|
||||||
|
else
|
||||||
|
sysconfdir=${sysconfdir="/etc"}
|
||||||
|
fi
|
||||||
|
pkgsysconfdir=${pkgsysconfdir="$sysconfdir/nagios"}
|
||||||
|
if test $need_etc_subdir = yes; then
|
||||||
|
objsysconfdir=${objsysconfdir="$pkgsysconfdir/objects"}
|
||||||
|
else
|
||||||
|
objsysconfdir="N/A"
|
||||||
|
fi
|
||||||
|
privatesysconfdir=${privatesysconfdir="$pkgsysconfdir/private"}
|
||||||
|
if test "$need_pls_dir" = yes; then
|
||||||
|
pkglocalstatedir=${pkglocalstatedir="$localstatedir/lib/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
pkglocalstatedir="N/A"
|
||||||
|
fi
|
||||||
|
if test "$need_loc" = yes; then
|
||||||
|
localedir=${localedir="/usr/local/share/locale/<lang>/LC_MESSAGES/nagios-plugins.mo"}
|
||||||
|
fi
|
||||||
|
if test "$need_spl" = yes; then
|
||||||
|
spooldir=${spooldir="$localstatedir/spool/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
spooldir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_brk = yes; then
|
||||||
|
brokersdir=${brokersdir="$libexecdir/brokers"}
|
||||||
|
else
|
||||||
|
brokersdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_plg = yes; then
|
||||||
|
pluginsdir=${pluginsdir="$libexecdir/plugins"}
|
||||||
|
else
|
||||||
|
pluginsdir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_cgi = yes; then
|
||||||
|
if test $dist_type = freebsd; then
|
||||||
|
cgibindir=${cgibindir="$webdir/cgi-bin"}
|
||||||
|
elif test $dist_type = netbsd; then
|
||||||
|
cgibindir=${pluginsdir="$libexecdir/cgi-bin"}
|
||||||
|
elif test $dist_type = openbsd; then
|
||||||
|
cgibindir=${pluginsdir="/var/www/cgi-bin/nagios"}
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cgibindir="N/A"
|
||||||
|
fi
|
||||||
|
piddir=${piddir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
if test "$need_pipe" = yes; then
|
||||||
|
pipedir=${pipedir="$localstatedir/run/${PKG_NAME}"}
|
||||||
|
else
|
||||||
|
pipedir="N/A"
|
||||||
|
fi
|
||||||
|
if test $need_log_subdir = yes; then
|
||||||
|
logdir=${logdir="$localstatedir/log/$PKG_NAME"}
|
||||||
|
else
|
||||||
|
logdir=${logdir="$localstatedir/log"}
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
#
|
||||||
|
# Unknown install
|
||||||
|
#
|
||||||
|
install_method="unknown"
|
||||||
|
webdir=unknown
|
||||||
|
pkgsysconfdir=unknown
|
||||||
|
objsysconfdir=unknown
|
||||||
|
privatesysconfdir=unknown
|
||||||
|
logdir=unknown
|
||||||
|
piddir=unknown
|
||||||
|
pipedir=unknown
|
||||||
|
pkglocalstatedir=unknown
|
||||||
|
spooldir=unknown
|
||||||
|
brokersdir=unknown
|
||||||
|
pluginsdir=unknown
|
||||||
|
cgibindir=unknown
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
eval prefix=$prefix
|
||||||
|
eval exec_prefix=$exec_prefix
|
||||||
|
eval bindir=$bindir
|
||||||
|
eval sbindir=$sbindir
|
||||||
|
eval datarootdir=$datarootdir
|
||||||
|
eval datadir=$datadir
|
||||||
|
eval libexecdir=$libexecdir
|
||||||
|
eval brokersdir=$brokersdir
|
||||||
|
eval pluginsdir=$pluginsdir
|
||||||
|
eval cgibindir=$cgibindir
|
||||||
|
eval pkglocalstatedir=$pkglocalstatedir
|
||||||
|
eval webdir=$webdir
|
||||||
|
eval localedir=$localedir
|
||||||
|
eval sysconfdir=$sysconfdir
|
||||||
|
eval pkgsysconfdir=$pkgsysconfdir
|
||||||
|
eval piddir=$piddir
|
||||||
|
|
||||||
|
#
|
||||||
|
# Init scripts/files
|
||||||
|
#
|
||||||
|
AS_CASE([$init_type],
|
||||||
|
|
||||||
|
[sysv],
|
||||||
|
if test $dist_type = "hp-ux"; then
|
||||||
|
initdir=${initdir="/sbin/init.d"}
|
||||||
|
else
|
||||||
|
initdir=${initdir="/etc/init.d"}
|
||||||
|
fi
|
||||||
|
initname=${initname="$PKG_NAME"}
|
||||||
|
initconfdir=${initconfdir="/etc/conf.d"}
|
||||||
|
initconf=${initconf="$initconfdir/$PKG_NAME"},
|
||||||
|
|
||||||
|
[systemd],
|
||||||
|
if test $dist_type = "debian"; then
|
||||||
|
initdir=${initdir="/lib/systemd/system"}
|
||||||
|
else
|
||||||
|
initdir=${initdir="/usr/lib/systemd/system"}
|
||||||
|
fi
|
||||||
|
initname=${initname="$PKG_NAME.service"},
|
||||||
|
|
||||||
|
[bsd],
|
||||||
|
initdir=${initdir="/etc/rc.d"}
|
||||||
|
initname=${initname="rc.$PKG_NAME"},
|
||||||
|
|
||||||
|
[newbsd],
|
||||||
|
initdir=${initdir="/etc/rc.d"}
|
||||||
|
initname=${initname="$PKG_NAME"},
|
||||||
|
|
||||||
|
[gentoo],
|
||||||
|
initdir=${initdir="/etc/init.d"}
|
||||||
|
initname=${initname="$PKG_NAME"}
|
||||||
|
initconfdir=${initconfdir="/etc/init.d"}
|
||||||
|
initconf=${initconf="$initconfdir/$PKG_NAME"},
|
||||||
|
|
||||||
|
[openrc],
|
||||||
|
initdir=${initdir="/etc/init.d"}
|
||||||
|
initname=${initname="$PKG_NAME"}
|
||||||
|
initconfdir=${initconfdir="/etc/conf.d"}
|
||||||
|
initconf=${initconf="$initconfdir/$PKG_NAME"},
|
||||||
|
|
||||||
|
[smf*],
|
||||||
|
if test $init_type = smf10; then
|
||||||
|
initdir=${initdir="/var/svc/manifest/network/nagios"}
|
||||||
|
else
|
||||||
|
initdir=${initdir="/lib/svc/manifest/network/nagios"}
|
||||||
|
fi
|
||||||
|
initname=${initname="$PKG_NAME.xml"}
|
||||||
|
initconfdir=unknown
|
||||||
|
initconf=unknown,
|
||||||
|
|
||||||
|
[upstart],
|
||||||
|
initdir=${initdir="/etc/init"}
|
||||||
|
initname=${initname="$PKG_NAME.conf"}
|
||||||
|
initconfdir=${initconfdir="/etc/default"}
|
||||||
|
initconf=${initconf="$initconfdir/$PKG_NAME"},
|
||||||
|
|
||||||
|
[launchd],
|
||||||
|
initdir=${initdir="/Library/LaunchDaemons"}
|
||||||
|
initname=${initname="org.nagios.$PKG_NAME.plist"},
|
||||||
|
# initconfdir=${initconfdir="/private/etc"}
|
||||||
|
# initconf=${initconf="$initconfdir/$PKG_NAME"},
|
||||||
|
|
||||||
|
|
||||||
|
[*],
|
||||||
|
initdir=unknown
|
||||||
|
initname=unknown)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Inetd (per connection) scripts/files
|
||||||
|
#
|
||||||
|
AS_CASE([$inetd_type],
|
||||||
|
[inetd*],
|
||||||
|
inetddir=${inetddir="/etc"}
|
||||||
|
inetdname=${inetdname="inetd.conf"},
|
||||||
|
|
||||||
|
[xinetd],
|
||||||
|
inetddir=${inetddir="/etc/xinetd.d"}
|
||||||
|
inetdname=${inetdname="$PKG_NAME"},
|
||||||
|
|
||||||
|
[systemd],
|
||||||
|
if test $dist_type = "debian"; then
|
||||||
|
inetddir=${inetddir="/lib/systemd/system"}
|
||||||
|
else
|
||||||
|
inetddir=${inetddir="/usr/lib/systemd/system"}
|
||||||
|
fi
|
||||||
|
netdname=${inetdname="$PKG_NAME.socket"},
|
||||||
|
|
||||||
|
[smf*],
|
||||||
|
if test $init_type = smf10; then
|
||||||
|
inetddir=${inetddir="/var/svc/manifest/network/nagios"}
|
||||||
|
else
|
||||||
|
inetddir=${inetddir="/lib/svc/manifest/network/nagios"}
|
||||||
|
fi
|
||||||
|
inetdname=${inetdname="$PKG_NAME.xml"},
|
||||||
|
|
||||||
|
# [upstart],
|
||||||
|
# inetddir=${inetddir="/etc/init.d"}
|
||||||
|
# inetdname=${inetdname="$PKG_NAME"},
|
||||||
|
|
||||||
|
[launchd],
|
||||||
|
inetddir=${inetddir="/Library/LaunchDaemons"}
|
||||||
|
inetdname=${inetdname="org.nagios.$PKG_NAME.plist"},
|
||||||
|
|
||||||
|
[*],
|
||||||
|
inetddir=${inetddir="unknown"}
|
||||||
|
inetdname=${inetdname="unknown"})
|
||||||
|
|
||||||
|
AC_MSG_RESULT($install_method)
|
||||||
|
])
|
302
macros/ax_nagios_get_ssl
Normal file
302
macros/ax_nagios_get_ssl
Normal file
@ -0,0 +1,302 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_NAGIOS_GET_SSL
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro finds the openssl binary, the header files directory and
|
||||||
|
# the library files directory. It will also search for the gnutls
|
||||||
|
# compatibility library/headers and the nss compatibility library/headers.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||||||
|
# option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||||
|
# Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
# ===========================================================================
|
||||||
|
|
||||||
|
AU_ALIAS([AC_NAGIOS_GET_SSL], [AX_NAGIOS_GET_SSL])
|
||||||
|
AC_DEFUN([AX_NAGIOS_GET_SSL],
|
||||||
|
[
|
||||||
|
|
||||||
|
# -------------------------------
|
||||||
|
# SSL library and include paths
|
||||||
|
# -------------------------------
|
||||||
|
|
||||||
|
SSL_TYPE=openssl
|
||||||
|
try_pkg_config=1
|
||||||
|
ssl_dir=
|
||||||
|
ssl_inc_dir=
|
||||||
|
ssl_lib_dir=
|
||||||
|
SSL_INC_DIR=
|
||||||
|
SSL_INC_PREFIX=
|
||||||
|
SSL_HDR=
|
||||||
|
SSL_LIB_DIR=
|
||||||
|
|
||||||
|
AC_SUBST(HAVE_SSL)
|
||||||
|
AC_SUBST(SSL_INC_DIR)
|
||||||
|
AC_SUBST(SSL_HDR)
|
||||||
|
AC_SUBST(SSL_INC_PREFIX)
|
||||||
|
AC_SUBST(SSL_LIB_DIR)
|
||||||
|
|
||||||
|
|
||||||
|
# gnutls/openssl.h
|
||||||
|
# nss_compat_ossl/nss_compat_ossl.h
|
||||||
|
|
||||||
|
dnl # Which type - openssl, gnutls-openssl, nss
|
||||||
|
dnl AC_ARG_WITH([ssl-type],
|
||||||
|
dnl dnl AS_HELP_STRING([--with-ssl-type=TYPE],[replace TYPE with gnutls or nss to use one of these instead of openssl]),
|
||||||
|
dnl AS_HELP_STRING([--with-ssl-type=TYPE],[replace TYPE with gnutls to use that instead of openssl]),
|
||||||
|
dnl [SSL_TYPE=$withval])
|
||||||
|
|
||||||
|
AC_ARG_WITH([ssl],
|
||||||
|
AS_HELP_STRING([--with-ssl=DIR],[sets location of the SSL installation]),
|
||||||
|
[ssl_dir=$withval])
|
||||||
|
AC_ARG_WITH([ssl-inc],
|
||||||
|
AS_HELP_STRING([--with-ssl-inc=DIR],
|
||||||
|
[sets location of the SSL include files]),
|
||||||
|
[ssl_inc_dir=$withval])
|
||||||
|
AC_ARG_WITH([ssl-lib],
|
||||||
|
AS_HELP_STRING([--with-ssl-lib=DIR],[sets location of the SSL libraries]),
|
||||||
|
[ssl_lib_dir=$withval])
|
||||||
|
|
||||||
|
if test x$ssl_inc_dir != x -o x$ssl_lib_dir != x; then
|
||||||
|
try_pkg_config=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_WITH([kerberos-inc],
|
||||||
|
AS_HELP_STRING([--with-kerberos-inc=DIR],
|
||||||
|
[sets location of the Kerberos include files]),
|
||||||
|
[kerberos_inc_dir=$withval])
|
||||||
|
|
||||||
|
if test x$SSL_TYPE = xyes; then
|
||||||
|
SSL_TYPE=openssl
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
dflt_hdrs="$ssl_inc_dir $ssl_dir $ssl_inc_dir/include $ssl_dir/include \
|
||||||
|
/usr/local/opt/{BBB} /usr/include/{BBB} /usr/local/include/{BBB} \
|
||||||
|
/usr/local/{AAA} /usr/local/{BBB} /usr/lib/{AAA} /usr/lib/{BBB} \
|
||||||
|
/usr/{AAA} /usr/pkg /usr/local /usr /usr/freeware/lib/{BBB} \
|
||||||
|
/usr/sfw /usr/sfw/include /opt/{BBB}"
|
||||||
|
|
||||||
|
dflt_libs="$ssl_lib_dir {ssldir} {ssldir}/lib {ssldir}/lib64 /usr/lib64 \
|
||||||
|
/usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/i386-linux-gnu \
|
||||||
|
/usr/local/lib /usr/lib/{AAA} /usr/{AAA}/lib /usr/{BBB}/lib \
|
||||||
|
/usr/pkg/lib /usr/freeware/lib/{BBB} /usr/sfw/lib /opt/freeware/lib \
|
||||||
|
/opt/{BBB}/lib/hpux64 /opt/{BBB}/lib/pa20_64 /opt/{BBB}/lib/hpux32 \
|
||||||
|
/opt/{BBB}/lib /opt/{BBB}";
|
||||||
|
|
||||||
|
|
||||||
|
AS_CASE([$SSL_TYPE],
|
||||||
|
[no], [SSL_TYPE=NONE],
|
||||||
|
[yes|openssl],
|
||||||
|
[ssl_hdr_dirs=`echo "$dflt_hdrs" | sed -e 's/{AAA}/ssl/g' | sed -e 's/{BBB}/openssl/g'`
|
||||||
|
ssl_lib_dirs=`echo "$dflt_libs" | sed -e 's/{AAA}/ssl/g' | sed -e 's/{BBB}/openssl/g'`
|
||||||
|
SSL_INC_PREFIX=openssl
|
||||||
|
SSL_HDR=ssl.h
|
||||||
|
ssl_lib=libssl],
|
||||||
|
[gnutls],
|
||||||
|
[ssl_hdr_dirs=`echo "$dflt_hdrs" | sed -e 's/{AAA}/gnutls/g' | sed -e 's/{BBB}/gnutls/g'`
|
||||||
|
ssl_lib_dirs=`echo "$dflt_libs" | sed -e 's/{AAA}/gnutls/g' | sed -e 's/{BBB}/gnutls/g'`
|
||||||
|
SSL_INC_PREFIX=gnutls
|
||||||
|
SSL_TYPE=gnutls_compat
|
||||||
|
SSL_HDR=compat.h
|
||||||
|
ssl_lib=libgnutls],
|
||||||
|
[nss],
|
||||||
|
[ssl_hdr_dirs=`echo "$dflt_hdrs" | sed -e 's/{AAA}/nss_compat_ossl/g' | sed -e 's/{BBB}/nss_compat_ossl/g'`
|
||||||
|
ssl_lib_dirs=`echo "$dflt_libs" | sed -e 's/{AAA}/nss_compat_ossl/g' | sed -e 's/{BBB}/nss_compat_ossl/g'`
|
||||||
|
SSL_HDR=nss_compat_ossl.h
|
||||||
|
ssl_lib=libnss_compat],
|
||||||
|
[*], echo >&6; AC_MSG_ERROR(['--with-ssl-type=$SSL_TYPE' is invalid])
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# Check for SSL support
|
||||||
|
|
||||||
|
if test x$SSL_TYPE != xNONE; then
|
||||||
|
|
||||||
|
found_ssl=no
|
||||||
|
|
||||||
|
# RedHat 8.0 and 9.0 include openssl compiled with kerberos,
|
||||||
|
# so we must include header file
|
||||||
|
# Must come before openssl checks for Redhat EL 3
|
||||||
|
AC_MSG_CHECKING(for Kerberos include files)
|
||||||
|
found_kerberos=no
|
||||||
|
for dir in $kerberos_inc_dir /usr/kerberos/include /usr/include/krb5 \
|
||||||
|
/usr/include; do
|
||||||
|
kerbdir="$dir"
|
||||||
|
if test -f "$dir/krb5.h"; then
|
||||||
|
found_kerberos=yes
|
||||||
|
CFLAGS="$CFLAGS -I$kerbdir"
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_KRB5_H,[1],[Have the krb5.h header file])
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test x_$found_kerberos != x_yes; then
|
||||||
|
AC_MSG_WARN(could not find include files)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(found Kerberos include files in $kerbdir)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# First, try using pkg_config
|
||||||
|
AC_CHECK_TOOL([PKG_CONFIG], [pkg-config])
|
||||||
|
if test x"$PKG_CONFIG" != x -a $try_pkg_config -ne 0 ; then
|
||||||
|
cflags=`$PKG_CONFIG $SSL_TYPE --cflags-only-I 2>/dev/null`
|
||||||
|
if test $? -eq 0; then
|
||||||
|
CFLAGS="$CFLAGS $cflags"
|
||||||
|
LDFLAGS="$LDFLAGS `$PKG_CONFIG $SSL_TYPE --libs-only-L 2>/dev/null`"
|
||||||
|
LIBS="$LIBS `$PKG_CONFIG $SSL_TYPE --libs-only-l 2>/dev/null`"
|
||||||
|
found_ssl=yes
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_SSL,[1],[Have SSL support])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x_$found_ssl != x_yes; then
|
||||||
|
|
||||||
|
# Find the SSL Headers
|
||||||
|
AC_MSG_CHECKING(for SSL headers)
|
||||||
|
for dir in $ssl_hdr_dirs; do
|
||||||
|
if test "$dir" = "/include"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
ssldir="$dir"
|
||||||
|
if test -f "$dir/include/$SSL_INC_PREFIX/$SSL_HDR"; then
|
||||||
|
found_ssl=yes
|
||||||
|
CFLAGS="$CFLAGS -I$dir/include/$SSL_INC_PREFIX -I$ssldir/include"
|
||||||
|
SSL_INC_DIR="$dir/include/$SSL_INC_PREFIX"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/include/$SSL_HDR"; then
|
||||||
|
found_ssl=yes
|
||||||
|
if test "$SSL_HDR" != compat.h ; then
|
||||||
|
SSL_INC_PREFIX=""
|
||||||
|
fi
|
||||||
|
CFLAGS="$CFLAGS -I$dir/include"
|
||||||
|
SSL_INC_DIR="$dir/include"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$SSL_HDR"; then
|
||||||
|
found_ssl=yes
|
||||||
|
SSL_INC_PREFIX=""
|
||||||
|
CFLAGS="$CFLAGS -I$dir"
|
||||||
|
SSL_INC_DIR="$dir"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$SSL_INC_PREFIX/$SSL_HDR"; then
|
||||||
|
found_ssl=yes
|
||||||
|
CFLAGS="$CFLAGS -I$dir/$SSL_INC_PREFIX"
|
||||||
|
SSL_INC_DIR="$dir/$SSL_INC_PREFIX"
|
||||||
|
ssldir="$dir/.."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test x_$found_ssl != x_yes; then
|
||||||
|
AC_MSG_ERROR(Cannot find ssl headers)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(found in $ssldir)
|
||||||
|
|
||||||
|
# Now try and find SSL libraries
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(for SSL libraries)
|
||||||
|
found_ssl=no
|
||||||
|
ssl_lib_dirs=`echo "$ssl_lib_dirs" | sed -e "s|{ssldir}|$ssldir|g"`
|
||||||
|
|
||||||
|
if test "`uname -s`" = "Darwin" ; then
|
||||||
|
soext="dylib"
|
||||||
|
elif test "`uname -s`" = "HP-UX" ; then
|
||||||
|
if test x$arch = "xia64"; then
|
||||||
|
soext="so"
|
||||||
|
else
|
||||||
|
soext="sl"
|
||||||
|
fi
|
||||||
|
elif test "`uname -s`" = "AIX" ; then
|
||||||
|
soext="a"
|
||||||
|
else
|
||||||
|
soext="so"
|
||||||
|
fi
|
||||||
|
|
||||||
|
for dir in $ssl_lib_dirs; do
|
||||||
|
if test -f "$dir/$ssl_lib.$soext"; then
|
||||||
|
found_ssl=yes
|
||||||
|
SSL_LIB_DIR="$dir"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if test x_$found_ssl != x_yes; then
|
||||||
|
AC_MSG_ERROR(Cannot find ssl libraries)
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(found in $SSL_LIB_DIR)
|
||||||
|
|
||||||
|
LDFLAGS="$LDFLAGS -L$SSL_LIB_DIR";
|
||||||
|
LIBS="$LIBS -l`echo $ssl_lib | sed -e 's/^lib//'` -lcrypto";
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_SSL,[1],[Have SSL support])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$found_ssl = xyes ; then
|
||||||
|
if test -n "$SSL_INC_PREFIX" ; then
|
||||||
|
SSL_INC_PREFIX="${SSL_INC_PREFIX}/"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# try to compile and link to see if SSL is set up properly
|
||||||
|
AC_MSG_CHECKING([whether compiling and linking against SSL works])
|
||||||
|
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[AC_LANG_PROGRAM([#include <${SSL_INC_PREFIX}${SSL_HDR}>], [SSL_new(NULL)])],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
$1
|
||||||
|
], [
|
||||||
|
AC_MSG_ERROR([no])
|
||||||
|
$2
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$found_ssl = xyes -a x$need_dh = xyes; then
|
||||||
|
|
||||||
|
# Find the openssl program
|
||||||
|
|
||||||
|
if test x$need_dh = xyes; then
|
||||||
|
AC_PATH_PROG(sslbin,openssl,value-if-not-found,$ssl_dir/sbin$PATH_SEPARATOR$ssl_dir/bin$PATH_SEPARATOR$PATH)
|
||||||
|
AC_DEFINE(USE_SSL_DH)
|
||||||
|
# Generate DH parameters
|
||||||
|
if test -f "$sslbin"; then
|
||||||
|
echo ""
|
||||||
|
echo "*** Generating DH Parameters for SSL/TLS ***"
|
||||||
|
# awk to strip off meta data at bottom of dhparam output
|
||||||
|
$sslbin dhparam -C 2048 | awk '/^-----/ {exit} {print}' > include/dh.h
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
252
nrpe.spec
252
nrpe.spec
@ -1,252 +0,0 @@
|
|||||||
%define isaix %(test "`uname -s`" = "AIX" && echo "1" || echo "0")
|
|
||||||
%define islinux %(test "`uname -s`" = "Linux" && echo "1" || echo "0")
|
|
||||||
|
|
||||||
%if %{isaix}
|
|
||||||
%define _prefix /opt/nagios
|
|
||||||
%define _docdir %{_prefix}/doc/nrpe-2.15
|
|
||||||
%define nshome /opt/nagios
|
|
||||||
%define _make gmake
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
%define _init_dir /etc/init.d
|
|
||||||
%define _exec_prefix %{_prefix}/sbin
|
|
||||||
%define _bindir %{_prefix}/sbin
|
|
||||||
%define _sbindir %{_prefix}/lib/nagios/cgi
|
|
||||||
%define _libexecdir %{_prefix}/lib/nagios/plugins
|
|
||||||
%define _datadir %{_prefix}/share/nagios
|
|
||||||
%define _localstatedir /var/log/nagios
|
|
||||||
%define nshome /var/log/nagios
|
|
||||||
%define _make make
|
|
||||||
%endif
|
|
||||||
%define _sysconfdir /etc/nagios
|
|
||||||
|
|
||||||
%define name nrpe
|
|
||||||
%define version 2.15
|
|
||||||
%define release 1
|
|
||||||
%define nsusr nagios
|
|
||||||
%define nsgrp nagios
|
|
||||||
%define nsport 5666
|
|
||||||
|
|
||||||
# Reserve option to override port setting with:
|
|
||||||
# rpm -ba|--rebuild --define 'nsport 5666'
|
|
||||||
%{?port:%define nsport %{port}}
|
|
||||||
|
|
||||||
# Macro that print mesages to syslog at package (un)install time
|
|
||||||
%define nnmmsg logger -t %{name}/rpm
|
|
||||||
|
|
||||||
Summary: Host/service/network monitoring agent for Nagios
|
|
||||||
URL: http://www.nagios.org
|
|
||||||
Name: %{name}
|
|
||||||
Version: %{version}
|
|
||||||
Release: %{release}
|
|
||||||
License: GPL
|
|
||||||
Group: Application/System
|
|
||||||
Source0: %{name}-%{version}.tar.gz
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-buildroot
|
|
||||||
Prefix: %{_prefix}
|
|
||||||
Prefix: /etc/init.d
|
|
||||||
Prefix: /etc/nagios
|
|
||||||
%if %{isaix}
|
|
||||||
Requires: nagios-plugins
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
Requires: bash, grep, nagios-plugins, util-linux, chkconfig, shadow-utils, sed, initscripts, mktemp
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%description
|
|
||||||
NPRE (Nagios Remote Plugin Executor) is a system daemon that
|
|
||||||
will execute various Nagios plugins locally on behalf of a
|
|
||||||
remote (monitoring) host that uses the check_nrpe plugin.
|
|
||||||
Various plugins that can be executed by the daemon are available
|
|
||||||
at: http://sourceforge.net/projects/nagiosplug
|
|
||||||
|
|
||||||
This package provides the client-side NRPE agent (daemon).
|
|
||||||
|
|
||||||
%package plugin
|
|
||||||
Group: Application/System
|
|
||||||
Summary: Provides nrpe plugin for Nagios.
|
|
||||||
Requires: nagios-plugins
|
|
||||||
|
|
||||||
%description plugin
|
|
||||||
NPRE (Nagios Remote Plugin Executor) is a system daemon that
|
|
||||||
will execute various Nagios plugins locally on behalf of a
|
|
||||||
remote (monitoring) host that uses the check_nrpe plugin.
|
|
||||||
Various plugins that can be executed by the daemon are available
|
|
||||||
at: http://sourceforge.net/projects/nagiosplug
|
|
||||||
|
|
||||||
This package provides the server-side NRPE plugin for
|
|
||||||
Nagios-related applications.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
|
|
||||||
%pre
|
|
||||||
# Create `nagios' group on the system if necessary
|
|
||||||
%if %{isaix}
|
|
||||||
lsgroup %{nsgrp} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 2 ] ; then
|
|
||||||
mkgroup %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
getent group %{nsgrp} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
groupadd %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Create `nagios' user on the system if necessary
|
|
||||||
%if %{isaix}
|
|
||||||
lsuser %{nsusr} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 2 ] ; then
|
|
||||||
useradd -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \
|
|
||||||
%nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
getent passwd %{nsusr} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
useradd -r -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \
|
|
||||||
%nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{isaix}
|
|
||||||
# Check to see if the nrpe service is running and, if so, stop it.
|
|
||||||
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'`
|
|
||||||
if [ "$status" = "active" ] ; then
|
|
||||||
/usr/bin/stopsrc -s nrpe
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{islinux}
|
|
||||||
# if LSB standard /etc/init.d does not exist,
|
|
||||||
# create it as a symlink to the first match we find
|
|
||||||
if [ -d /etc/init.d -o -L /etc/init.d ]; then
|
|
||||||
: # we're done
|
|
||||||
elif [ -d /etc/rc.d/init.d ]; then
|
|
||||||
ln -s /etc/rc.d/init.d /etc/init.d
|
|
||||||
elif [ -d /usr/local/etc/rc.d ]; then
|
|
||||||
ln -s /usr/local/etc/rc.d /etc/init.d
|
|
||||||
elif [ -d /sbin/init.d ]; then
|
|
||||||
ln -s /sbin/init.d /etc/init.d
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{isaix}
|
|
||||||
%post
|
|
||||||
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 1 ] ; then
|
|
||||||
/usr/bin/mkssys -p %{_bindir}/nrpe -s nrpe -u 0 -a "-c %{_sysconfdir}/nrpe.cfg -d -s" -Q -R -S -n 15 -f 9
|
|
||||||
fi
|
|
||||||
/usr/bin/startsrc -s nrpe
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%preun
|
|
||||||
%if %{isaix}
|
|
||||||
status=`/usr/bin/lssrc -s nrpe | /usr/bin/gawk '$1=="nrpe" {print $NF}'`
|
|
||||||
if [ "$status" = "active" ] ; then
|
|
||||||
/usr/bin/stopsrc -s nrpe
|
|
||||||
fi
|
|
||||||
/usr/bin/rmssys -s nrpe
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
if [ "$1" = 0 ]; then
|
|
||||||
/sbin/service nrpe stop > /dev/null 2>&1
|
|
||||||
/sbin/chkconfig --del nrpe
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{islinux}
|
|
||||||
%postun
|
|
||||||
if [ "$1" -ge "1" ]; then
|
|
||||||
/sbin/service nrpe condrestart >/dev/null 2>&1 || :
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%build
|
|
||||||
export PATH=$PATH:/usr/sbin
|
|
||||||
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" \
|
|
||||||
MAKE=%{_make} ./configure \
|
|
||||||
--with-init-dir=/etc/init.d \
|
|
||||||
--with-nrpe-port=%{nsport} \
|
|
||||||
--with-nrpe-user=%{nsusr} \
|
|
||||||
--with-nrpe-group=%{nsgrp} \
|
|
||||||
--prefix=%{_prefix} \
|
|
||||||
--exec-prefix=%{_exec_prefix} \
|
|
||||||
--bindir=%{_bindir} \
|
|
||||||
--sbindir=%{_sbindir} \
|
|
||||||
--libexecdir=%{_libexecdir} \
|
|
||||||
--datadir=%{_datadir} \
|
|
||||||
--sysconfdir=%{_sysconfdir} \
|
|
||||||
--localstatedir=%{_localstatedir} \
|
|
||||||
--enable-command-args
|
|
||||||
%{_make} all
|
|
||||||
|
|
||||||
%install
|
|
||||||
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
|
||||||
%if %{islinux}
|
|
||||||
install -d -m 0755 ${RPM_BUILD_ROOT}%{_init_dir}
|
|
||||||
%endif
|
|
||||||
DESTDIR=${RPM_BUILD_ROOT} %{_make} install install-daemon-config
|
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}
|
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir}
|
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir}
|
|
||||||
|
|
||||||
# install templated configuration files
|
|
||||||
#cp sample-config/nrpe.cfg ${RPM_BUILD_ROOT}%{_sysconfdir}/nrpe.cfg
|
|
||||||
#%if %{isaix}
|
|
||||||
#cp init-script ${RPM_BUILD_ROOT}%{_init_dir}/nrpe
|
|
||||||
#%endif
|
|
||||||
#cp src/nrpe ${RPM_BUILD_ROOT}%{_bindir}
|
|
||||||
#cp src/check_nrpe ${RPM_BUILD_ROOT}%{_libexecdir}
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
|
||||||
%if %{islinux}
|
|
||||||
%defattr(755,root,root)
|
|
||||||
/etc/init.d/nrpe
|
|
||||||
%endif
|
|
||||||
%{_bindir}/nrpe
|
|
||||||
%dir %{_sysconfdir}
|
|
||||||
%defattr(600,%{nsusr},%{nsgrp})
|
|
||||||
%config(noreplace) %{_sysconfdir}/*.cfg
|
|
||||||
%defattr(755,%{nsusr},%{nsgrp})
|
|
||||||
%doc Changelog LEGAL README
|
|
||||||
|
|
||||||
%files plugin
|
|
||||||
%defattr(755,%{nsusr},%{nsgrp})
|
|
||||||
%{_libexecdir}
|
|
||||||
%defattr(644,%{nsusr},%{nsgrp})
|
|
||||||
%doc Changelog LEGAL README
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Mon Mar 12 2012 Eric Stanley estanley<@>nagios.com
|
|
||||||
- Created autoconf input file
|
|
||||||
- Updated to support building on AIX
|
|
||||||
- Updated install to use make install*
|
|
||||||
* Mon Jan 23 2006 Andreas Kasenides ank<@>cs.ucy.ac.cy
|
|
||||||
- fixed nrpe.cfg relocation to sample-config
|
|
||||||
- replaced Copyright label with License
|
|
||||||
- added --enable-command-args to enable remote arg passing (if desired can be disabled by commenting out)
|
|
||||||
|
|
||||||
* Wed Nov 12 2003 Ingimar Robertsson <iar@skyrr.is>
|
|
||||||
- Added adding of nagios group if it does not exist.
|
|
||||||
|
|
||||||
* Tue Jan 07 2003 James 'Showkilr' Peterson <showkilr@showkilr.com>
|
|
||||||
- Removed the lines which removed the nagios user and group from the system
|
|
||||||
- changed the patch release version from 3 to 1
|
|
||||||
|
|
||||||
* Mon Jan 06 2003 James 'Showkilr' Peterson <showkilr@showkilr.com>
|
|
||||||
- Removed patch files required for nrpe 1.5
|
|
||||||
- Update spec file for version 1.6 (1.6-1)
|
|
||||||
|
|
||||||
* Sat Dec 28 2002 James 'Showkilr' Peterson <showkilr@showkilr.com>
|
|
||||||
- First RPM build (1.5-1)
|
|
79
nrpe.spec.in
79
nrpe.spec.in
@ -8,7 +8,7 @@
|
|||||||
%define _make gmake
|
%define _make gmake
|
||||||
%endif
|
%endif
|
||||||
%if %{islinux}
|
%if %{islinux}
|
||||||
%define _init_dir /etc/init.d
|
%define _init_dir @initdir@
|
||||||
%define _exec_prefix %{_prefix}/sbin
|
%define _exec_prefix %{_prefix}/sbin
|
||||||
%define _bindir %{_prefix}/sbin
|
%define _bindir %{_prefix}/sbin
|
||||||
%define _sbindir %{_prefix}/lib/nagios/cgi
|
%define _sbindir %{_prefix}/lib/nagios/cgi
|
||||||
@ -26,6 +26,7 @@
|
|||||||
%define nsusr @nrpe_user@
|
%define nsusr @nrpe_user@
|
||||||
%define nsgrp @nrpe_group@
|
%define nsgrp @nrpe_group@
|
||||||
%define nsport @nrpe_port@
|
%define nsport @nrpe_port@
|
||||||
|
%define ns_src_tmpfile "@src_tmpfile@"
|
||||||
|
|
||||||
# Reserve option to override port setting with:
|
# Reserve option to override port setting with:
|
||||||
# rpm -ba|--rebuild --define 'nsport 5666'
|
# rpm -ba|--rebuild --define 'nsport 5666'
|
||||||
@ -44,7 +45,7 @@ Group: Application/System
|
|||||||
Source0: %{name}-%{version}.tar.gz
|
Source0: %{name}-%{version}.tar.gz
|
||||||
BuildRoot: %{_tmppath}/%{name}-buildroot
|
BuildRoot: %{_tmppath}/%{name}-buildroot
|
||||||
Prefix: %{_prefix}
|
Prefix: %{_prefix}
|
||||||
Prefix: /etc/init.d
|
Prefix: @initdir@
|
||||||
Prefix: /etc/nagios
|
Prefix: /etc/nagios
|
||||||
%if %{isaix}
|
%if %{isaix}
|
||||||
Requires: nagios-plugins
|
Requires: nagios-plugins
|
||||||
@ -80,38 +81,6 @@ Nagios-related applications.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
|
|
||||||
%pre
|
|
||||||
# Create `nagios' group on the system if necessary
|
|
||||||
%if %{isaix}
|
|
||||||
lsgroup %{nsgrp} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 2 ] ; then
|
|
||||||
mkgroup %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
getent group %{nsgrp} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
groupadd %{nsgrp} || %nnmmsg Unexpected error adding group "%{nsgrp}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Create `nagios' user on the system if necessary
|
|
||||||
%if %{isaix}
|
|
||||||
lsuser %{nsusr} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -eq 2 ] ; then
|
|
||||||
useradd -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \
|
|
||||||
%nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
%if %{islinux}
|
|
||||||
getent passwd %{nsusr} > /dev/null 2> /dev/null
|
|
||||||
if [ $? -ne 0 ] ; then
|
|
||||||
useradd -r -d %{nshome} -c "%{nsusr}" -g %{nsgrp} %{nsusr} || \
|
|
||||||
%nnmmsg Unexpected error adding user "%{nsusr}". Aborting install process.
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{isaix}
|
%if %{isaix}
|
||||||
# Check to see if the nrpe service is running and, if so, stop it.
|
# Check to see if the nrpe service is running and, if so, stop it.
|
||||||
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
||||||
@ -123,20 +92,6 @@ if [ $? -eq 0 ] ; then
|
|||||||
fi
|
fi
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{islinux}
|
|
||||||
# if LSB standard /etc/init.d does not exist,
|
|
||||||
# create it as a symlink to the first match we find
|
|
||||||
if [ -d /etc/init.d -o -L /etc/init.d ]; then
|
|
||||||
: # we're done
|
|
||||||
elif [ -d /etc/rc.d/init.d ]; then
|
|
||||||
ln -s /etc/rc.d/init.d /etc/init.d
|
|
||||||
elif [ -d /usr/local/etc/rc.d ]; then
|
|
||||||
ln -s /usr/local/etc/rc.d /etc/init.d
|
|
||||||
elif [ -d /sbin/init.d ]; then
|
|
||||||
ln -s /sbin/init.d /etc/init.d
|
|
||||||
fi
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{isaix}
|
%if %{isaix}
|
||||||
%post
|
%post
|
||||||
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
/usr/bin/lssrc -s nrpe > /dev/null 2> /dev/null
|
||||||
@ -192,18 +147,8 @@ MAKE=%{_make} ./configure \
|
|||||||
%if %{islinux}
|
%if %{islinux}
|
||||||
install -d -m 0755 ${RPM_BUILD_ROOT}%{_init_dir}
|
install -d -m 0755 ${RPM_BUILD_ROOT}%{_init_dir}
|
||||||
%endif
|
%endif
|
||||||
DESTDIR=${RPM_BUILD_ROOT} %{_make} install install-daemon-config
|
DESTDIR=${RPM_BUILD_ROOT} %{_make} install-groups-users install install-config install-init
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}
|
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir}
|
|
||||||
#install -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir}
|
|
||||||
|
|
||||||
# install templated configuration files
|
|
||||||
#cp sample-config/nrpe.cfg ${RPM_BUILD_ROOT}%{_sysconfdir}/nrpe.cfg
|
|
||||||
#%if %{isaix}
|
|
||||||
#cp init-script ${RPM_BUILD_ROOT}%{_init_dir}/nrpe
|
|
||||||
#%endif
|
|
||||||
#cp src/nrpe ${RPM_BUILD_ROOT}%{_bindir}
|
|
||||||
#cp src/check_nrpe ${RPM_BUILD_ROOT}%{_libexecdir}
|
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
@ -212,26 +157,36 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%files
|
%files
|
||||||
%if %{islinux}
|
%if %{islinux}
|
||||||
%defattr(755,root,root)
|
%defattr(755,root,root)
|
||||||
/etc/init.d/nrpe
|
@initdir@/@initname@
|
||||||
%endif
|
%endif
|
||||||
%{_bindir}/nrpe
|
%{_bindir}/nrpe
|
||||||
%dir %{_sysconfdir}
|
%dir %{_sysconfdir}
|
||||||
%defattr(600,%{nsusr},%{nsgrp})
|
%defattr(600,%{nsusr},%{nsgrp})
|
||||||
%config(noreplace) %{_sysconfdir}/*.cfg
|
%config(noreplace) %{_sysconfdir}/*.cfg
|
||||||
%defattr(755,%{nsusr},%{nsgrp})
|
%defattr(755,%{nsusr},%{nsgrp})
|
||||||
%doc Changelog LEGAL README
|
%if %{ns_src_tmpfile} != ""
|
||||||
|
@tmpfilesd@
|
||||||
|
%endif
|
||||||
|
%{_bindir}/nrpe-uninstall
|
||||||
|
%doc Changelog LEGAL README.md README.SSL.md SECURITY.md
|
||||||
|
|
||||||
%files plugin
|
%files plugin
|
||||||
%defattr(755,%{nsusr},%{nsgrp})
|
%defattr(755,%{nsusr},%{nsgrp})
|
||||||
%{_libexecdir}
|
%{_libexecdir}
|
||||||
%defattr(644,%{nsusr},%{nsgrp})
|
%defattr(644,%{nsusr},%{nsgrp})
|
||||||
%doc Changelog LEGAL README
|
%doc Changelog LEGAL README.md
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 18 2016 John Frickson jfrickson<@>nagios.com
|
||||||
|
- Changed 'make install-daemon-config' to 'make install-config'
|
||||||
|
- Added make targets 'install-groups-users' and 'install-init'
|
||||||
|
- Misc. changes
|
||||||
|
|
||||||
* Mon Mar 12 2012 Eric Stanley estanley<@>nagios.com
|
* Mon Mar 12 2012 Eric Stanley estanley<@>nagios.com
|
||||||
- Created autoconf input file
|
- Created autoconf input file
|
||||||
- Updated to support building on AIX
|
- Updated to support building on AIX
|
||||||
- Updated install to use make install*
|
- Updated install to use make install*
|
||||||
|
|
||||||
* Mon Jan 23 2006 Andreas Kasenides ank<@>cs.ucy.ac.cy
|
* Mon Jan 23 2006 Andreas Kasenides ank<@>cs.ucy.ac.cy
|
||||||
- fixed nrpe.cfg relocation to sample-config
|
- fixed nrpe.cfg relocation to sample-config
|
||||||
- replaced Copyright label with License
|
- replaced Copyright label with License
|
||||||
|
@ -1,81 +0,0 @@
|
|||||||
###################################
|
|
||||||
# Makefile for NRPE Solaris Package
|
|
||||||
#
|
|
||||||
# Last Modified: 2 Dec 2011
|
|
||||||
###################################
|
|
||||||
|
|
||||||
TARGET_OS=@TARGET_OS@
|
|
||||||
TARGET_VER=@TARGET_VER@
|
|
||||||
TARGET_ARCH=@TARGET_ARCH@
|
|
||||||
TARGET_PLATFORM=@TARGET_PLATFORM@
|
|
||||||
|
|
||||||
SOLARIS_CONFIG_OPTS=--prefix=/opt/nagios --sysconfdir=/etc/nagios --enable-command-args
|
|
||||||
|
|
||||||
PKG_NAME=NGOSnrpe
|
|
||||||
PKG_VERSION=@PKG_VERSION@
|
|
||||||
PKG_FILE=@PACKAGE_NAME@-$(PKG_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-local
|
|
||||||
|
|
||||||
TOPDIR=@top_builddir@
|
|
||||||
PKGDIR=@builddir@/pkg
|
|
||||||
SRCDIR=@builddir@/build/src
|
|
||||||
INSTALLDIR=@builddir@/install
|
|
||||||
ABSINSTALLDIR=@abs_builddir@/install
|
|
||||||
|
|
||||||
build:
|
|
||||||
if [ ! -d build ] ; then mkdir build ; fi
|
|
||||||
if [ ! -d install ] ; then mkdir install ; fi
|
|
||||||
cd build; ../../../configure $(SOLARIS_CONFIG_OPTS); $(MAKE) all; DESTDIR=$(ABSINSTALLDIR) $(MAKE) install install-daemon-config
|
|
||||||
|
|
||||||
prototype: $(PKGDIR)
|
|
||||||
@echo "i pkginfo" > $(PKGDIR)/prototype
|
|
||||||
@echo "i copyright=../$(TOPDIR)/LEGAL" >> $(PKGDIR)/prototype
|
|
||||||
@echo "i preinstall" >> $(PKGDIR)/prototype
|
|
||||||
@echo "i i.config" >> $(PKGDIR)/prototype
|
|
||||||
@echo "i r.config" >> $(PKGDIR)/prototype
|
|
||||||
@echo "i i.manifest=/usr/sadm/install/scripts/i.manifest" >> $(PKGDIR)/prototype
|
|
||||||
@echo "i r.manifest=/usr/sadm/install/scripts/r.manifest" >> $(PKGDIR)/prototype
|
|
||||||
@echo "d none /etc/nagios 0755 nagios nagios" >> $(PKGDIR)/prototype
|
|
||||||
@echo "f config /etc/nagios/nrpe.cfg=$(INSTALLDIR)/etc/nagios/nrpe.cfg 0600 nagios nagios" >> $(PKGDIR)/prototype
|
|
||||||
@echo "d none /opt/nagios/bin 0755 nagios bin" >> $(PKGDIR)/prototype
|
|
||||||
@echo "f none /opt/nagios/bin/nrpe=$(SRCDIR)/nrpe 0755 nagios bin" >> $(PKGDIR)/prototype
|
|
||||||
@echo "d none /opt/nagios/libexec 0755 nagios bin" >> $(PKGDIR)/prototype
|
|
||||||
@echo "f none /opt/nagios/libexec/check_nrpe=$(SRCDIR)/check_nrpe 0755 nagios bin" >> $(PKGDIR)/prototype
|
|
||||||
@echo "f none /lib/svc/method/nrpe=$(PKGDIR)/nrpe 0555 root bin" >> $(PKGDIR)/prototype
|
|
||||||
@echo "d none /var/svc/manifest/application/nagios 0755 root sys" >> $(PKGDIR)/prototype
|
|
||||||
@echo "f manifest /var/svc/manifest/application/nagios/nrpe.xml=$(PKGDIR)/nrpe.xml 0444 root sys" >> $(PKGDIR)/prototype
|
|
||||||
|
|
||||||
pkginfo: $(PKGDIR)
|
|
||||||
@echo PKG="$(PKG_NAME)" > $(PKGDIR)/pkginfo
|
|
||||||
@echo NAME="Nagios Remote Plugin Executor $(PKG_VERSION)" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo VERSION="$(PKG_VERSION)" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo ARCH="$(TARGET_ARCH)" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo CATEGORY="utility" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo CLASSES="none config manifest" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo VENDOR="www.nagios.org" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo EMAIL="nagios-users@lists.sourceforge.net" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo ISTATES="S s 1 2 3" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo RSTATES="S s 1 2 3" >> $(PKGDIR)/pkginfo
|
|
||||||
@echo BASEDIR="/" >> $(PKGDIR)/pkginfo
|
|
||||||
|
|
||||||
$(PKG_FILE): pkginfo prototype
|
|
||||||
pkgmk -o -d $(PKGDIR) -f $(PKGDIR)/prototype -r .
|
|
||||||
pkgtrans ./pkg $(PKG_FILE) $(PKG_NAME)
|
|
||||||
|
|
||||||
pkg: $(PKG_FILE)
|
|
||||||
|
|
||||||
all: pkg
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf build install package
|
|
||||||
rm -rf $(PKGDIR)/$(PKG_NAME)
|
|
||||||
rm -f $(PKGDIR)/prototype $(PKGDIR)/pkginfo
|
|
||||||
rm -f $(PKGDIR)/$(PKG_FILE)
|
|
||||||
rm -f core
|
|
||||||
rm -f *~ */*~
|
|
||||||
|
|
||||||
distclean: clean
|
|
||||||
rm -f Makefile
|
|
||||||
rm -f config.log
|
|
||||||
|
|
||||||
devclean: distclean
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
|||||||
#!/usr/bin/sh
|
|
||||||
|
|
||||||
create_cksum_file() {
|
|
||||||
srcfile=$1
|
|
||||||
destfile=$2
|
|
||||||
cksumfile=$3
|
|
||||||
|
|
||||||
echo "# DO NOT EDIT OR REMOVE THIS FILE - It is used to determine whether to" > $cksumfile
|
|
||||||
echo "# overwrite $destfile on package update or to remove" >> $cksumfile
|
|
||||||
echo "# it on package deletion." >> $cksumfile
|
|
||||||
/usr/bin/cat $srcfile | /usr/bin/cksum >> $cksumfile
|
|
||||||
/usr/bin/chmod 400 $cksumfile
|
|
||||||
}
|
|
||||||
|
|
||||||
compare_cksum() {
|
|
||||||
destfile=$1
|
|
||||||
cksumfile=$2
|
|
||||||
|
|
||||||
installed_cksum=`/usr/bin/tail -1 $cksumfile | /usr/bin/awk '{print $1}'`
|
|
||||||
current_cksum=`/usr/bin/cksum $destfile | /usr/bin/awk '{print $1}'`
|
|
||||||
test $installed_cksum = $current_cksum
|
|
||||||
}
|
|
||||||
|
|
||||||
while read src dest ; do
|
|
||||||
destpath=`echo $dest | /usr/bin/sed -e 's/\/[^/]*$//'`
|
|
||||||
destbase=`/usr/bin/basename $dest`
|
|
||||||
cksumfile="${destpath}/.${destbase}.cksum"
|
|
||||||
if [ -f $dest ] ; then
|
|
||||||
if [ -f $cksumfile ] ; then
|
|
||||||
compare_cksum $dest $cksumfile
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
/usr/bin/cp $src $dest
|
|
||||||
/usr/bin/chmod 600 $dest
|
|
||||||
/usr/bin/chown nagios:nagios $dest
|
|
||||||
else
|
|
||||||
echo "Existing $dest has been found --"
|
|
||||||
echo " installing $destbase as $dest.pkgnew"
|
|
||||||
/usr/bin/cp $src $dest.pkgnew
|
|
||||||
/usr/bin/chmod 600 $dest.pkgnew
|
|
||||||
/usr/bin/chown nagios:nagios $dest.pkgnew
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Existing $dest has been found --"
|
|
||||||
echo " installing $destbase as $dest.pkgnew"
|
|
||||||
/usr/bin/cp $src $dest.pkgnew
|
|
||||||
/usr/bin/chmod 600 $dest.pkgnew
|
|
||||||
/usr/bin/chown nagios:nagios $dest.pkgnew
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
create_cksum_file $src $dest $cksumfile
|
|
||||||
/usr/bin/cp $src $dest
|
|
||||||
/usr/bin/chmod 600 $dest
|
|
||||||
/usr/bin/chown nagios:nagios $dest
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ "$1" = "ENDOFCLASS" ] ; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
@ -1,32 +0,0 @@
|
|||||||
#!/sbin/sh
|
|
||||||
#
|
|
||||||
|
|
||||||
NRPE=/opt/nagios/bin/nrpe
|
|
||||||
CFGFILE=/etc/nagios/nrpe.cfg
|
|
||||||
PIDFILE=/var/run/nrpe.pid
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
'start')
|
|
||||||
$NRPE -c $CFGFILE -d
|
|
||||||
;;
|
|
||||||
|
|
||||||
'restart')
|
|
||||||
if [ -f "$PIDFILE" ]; then
|
|
||||||
/usr/bin/kill -HUP `/usr/bin/cat $PIDFILE`
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
'stop')
|
|
||||||
if [ -f "$PIDFILE" ]; then
|
|
||||||
/usr/bin/kill `/usr/bin/cat $PIDFILE`
|
|
||||||
/bin/rm -f $PIDFILE
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo "Usage: $0 { start | restart | stop }"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
@ -1,131 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
|
|
||||||
<!--
|
|
||||||
|
|
||||||
All source code, binaries, documentation, and information contained
|
|
||||||
in this distribution are provided AS IS with NO WARRANTY OF ANY KIND,
|
|
||||||
INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY, AND FITNESS FOR
|
|
||||||
A PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
Nagios and the Nagios logo are registered trademarks of Nagios Enterprises.
|
|
||||||
All other trademarks, servicemarks, registered trademarks, and
|
|
||||||
registered servicemarks are the property of their respective owner(s).
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<service_bundle type='manifest' name='NGOS:nrpe'>
|
|
||||||
|
|
||||||
<service
|
|
||||||
name='application/nagios/nrpe'
|
|
||||||
type='service'
|
|
||||||
version='1'>
|
|
||||||
|
|
||||||
<create_default_instance enabled='false' />
|
|
||||||
|
|
||||||
<single_instance />
|
|
||||||
|
|
||||||
<dependency name='fs-local'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri
|
|
||||||
value='svc:/system/filesystem/local' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='fs-autofs'
|
|
||||||
grouping='optional_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri value='svc:/system/filesystem/autofs' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='net-loopback'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri value='svc:/network/loopback' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='net-physical'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri value='svc:/network/physical' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='cryptosvc'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri value='svc:/system/cryptosvc' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='utmp'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='none'
|
|
||||||
type='service'>
|
|
||||||
<service_fmri value='svc:/system/utmp' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency name='config_data'
|
|
||||||
grouping='require_all'
|
|
||||||
restart_on='restart'
|
|
||||||
type='path'>
|
|
||||||
<service_fmri
|
|
||||||
value='file://localhost/etc/nagios/nrpe.cfg' />
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependent
|
|
||||||
name='nrpe_multi-user-server'
|
|
||||||
grouping='optional_all'
|
|
||||||
restart_on='none'>
|
|
||||||
<service_fmri
|
|
||||||
value='svc:/milestone/multi-user-server' />
|
|
||||||
</dependent>
|
|
||||||
|
|
||||||
<exec_method
|
|
||||||
type='method'
|
|
||||||
name='start'
|
|
||||||
exec='/lib/svc/method/nrpe start'
|
|
||||||
timeout_seconds='60'/>
|
|
||||||
|
|
||||||
<exec_method
|
|
||||||
type='method'
|
|
||||||
name='stop'
|
|
||||||
exec='/lib/svc/method/nrpe stop'
|
|
||||||
timeout_seconds='60' />
|
|
||||||
|
|
||||||
<exec_method
|
|
||||||
type='method'
|
|
||||||
name='refresh'
|
|
||||||
exec='/lib/svc/method/nrpe restart'
|
|
||||||
timeout_seconds='60' />
|
|
||||||
|
|
||||||
<property_group name='startd'
|
|
||||||
type='framework'>
|
|
||||||
<!-- sub-process core dumps shouldn't restart session -->
|
|
||||||
<propval name='ignore_error'
|
|
||||||
type='astring' value='core,signal' />
|
|
||||||
</property_group>
|
|
||||||
|
|
||||||
<stability value='Unstable' />
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<common_name>
|
|
||||||
<loctext xml:lang='C'>
|
|
||||||
NRPE daemon
|
|
||||||
</loctext>
|
|
||||||
</common_name>
|
|
||||||
<description>
|
|
||||||
<loctext xml:lang='C'>
|
|
||||||
Nagios Remote Plugin Executor Daemon
|
|
||||||
</loctext>
|
|
||||||
</description>
|
|
||||||
<!--documentation-->
|
|
||||||
<!--manpage title='sshd' section='1M' manpath='/usr/share/man' /-->
|
|
||||||
<!--/documentation-->
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</service>
|
|
||||||
|
|
||||||
</service_bundle>
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/sh
|
|
||||||
|
|
||||||
echo "To begin using NRPE, first edit /etc/nagios/nrpe.cfg, update the"
|
|
||||||
echo "allowed_hosts line and any command lines. Then start the nrpe service"
|
|
||||||
echo "by running the command 'svcadm enable nrpe' as root."
|
|
@ -1,35 +0,0 @@
|
|||||||
#!/usr/bin/sh
|
|
||||||
|
|
||||||
user="nagios"
|
|
||||||
uid=-1
|
|
||||||
group="nagios"
|
|
||||||
gid=-1
|
|
||||||
|
|
||||||
/usr/bin/getent group $group > /dev/null 2> /dev/null
|
|
||||||
result=$?
|
|
||||||
if [ $result -eq 2 ] ; then
|
|
||||||
echo "Group $group does not exist. Creating..."
|
|
||||||
if [ $gid -ne -1 ] ; then
|
|
||||||
/usr/sbin/groupadd -g $gid $group
|
|
||||||
else
|
|
||||||
/usr/sbin/groupadd $group
|
|
||||||
fi
|
|
||||||
elif [ $result -ne 0 ] ; then
|
|
||||||
echo "An error occurred determining the existence of the groug $group. Terminating."
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
/usr/bin/getent passwd $user > /dev/null 2> /dev/null
|
|
||||||
result=$?
|
|
||||||
if [ $result -eq 2 ] ; then
|
|
||||||
echo "User $user does not exist. Creating..."
|
|
||||||
if [ $uid -ne -1 ] ; then
|
|
||||||
/usr/sbin/useradd -u $uid -g $group $user
|
|
||||||
else
|
|
||||||
/usr/sbin/useradd -g $group $user
|
|
||||||
fi
|
|
||||||
elif [ $result -ne 0 ] ; then
|
|
||||||
echo "An error occurred determining the existence of the user $user. Terminating."
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
|||||||
#!/usr/bin/sh
|
|
||||||
|
|
||||||
compare_cksum() {
|
|
||||||
destfile=$1
|
|
||||||
cksumfile=$2
|
|
||||||
|
|
||||||
installed_cksum=`/usr/bin/tail -1 $cksumfile | /usr/bin/awk '{print $1}'`
|
|
||||||
current_cksum=`/usr/bin/cksum $destfile | /usr/bin/awk '{print $1}'`
|
|
||||||
test $installed_cksum = $current_cksum
|
|
||||||
}
|
|
||||||
|
|
||||||
while read path ; do
|
|
||||||
destpath=`echo $path | /usr/bin/sed -e 's/\/[^/]*$//'`
|
|
||||||
destbase=`/usr/bin/basename $path`
|
|
||||||
cksumfile="${destpath}/.${destbase}.cksum"
|
|
||||||
if [ -f $path ] ; then
|
|
||||||
if [ -f $cksumfile ] ; then
|
|
||||||
compare_cksum $path $cksumfile
|
|
||||||
if [ $? -eq 0 ] ; then
|
|
||||||
/usr/bin/rm -f $path $cksumfile
|
|
||||||
else
|
|
||||||
echo "$path has been modified since it was installed -- "
|
|
||||||
echo " leaving it in place."
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "$path may have been modified since it was installed -- "
|
|
||||||
echo " leaving it in place."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ "$1" = "ENDOFCLASS" ] ; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
85
paths.in
Executable file
85
paths.in
Executable file
@ -0,0 +1,85 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
wrout () {
|
||||||
|
if test "$2" != "N/A"; then printf " %-25s %s\n" "$1" "$2"; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
echo "Detected Environment:"
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
wrout "Operating System" "@opsys@"
|
||||||
|
wrout "Architecture" "@arch@"
|
||||||
|
wrout "Distribution type" "@dist_type@ Version @dist_ver@"
|
||||||
|
wrout "Init type" "@init_type@"
|
||||||
|
wrout "Inetd type" "@inetd_type@"
|
||||||
|
echo
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
echo "Paths are:"
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
wrout "prefix" "@prefix@"
|
||||||
|
wrout "exec_prefix" "@prefix@"
|
||||||
|
if test "@PKG_NAME@" = "nagios"; then
|
||||||
|
wrout "bindir" "@bindir@"
|
||||||
|
fi
|
||||||
|
wrout "sbindir" "@sbindir@"
|
||||||
|
wrout "sysconfdir" "@sysconfdir@"
|
||||||
|
wrout "pkgsysconfdir" "@pkgsysconfdir@"
|
||||||
|
if test "@PKG_NAME@" = "nagios"; then
|
||||||
|
wrout "privatesysconfdir" "@privatesysconfdir@"
|
||||||
|
fi
|
||||||
|
wrout "localstatedir" "@localstatedir@"
|
||||||
|
wrout "pkglocalstatedir" "@pkglocalstatedir@"
|
||||||
|
wrout "datarootdir" "@datarootdir@"
|
||||||
|
wrout "datadir" "@datadir@"
|
||||||
|
wrout "webdir" "@webdir@"
|
||||||
|
wrout "localedir" "@localedir@"
|
||||||
|
wrout "logdir" "@logdir@"
|
||||||
|
wrout "piddir" "@piddir@"
|
||||||
|
wrout "pipedir" "@pipedir@"
|
||||||
|
wrout "spooldir" "@spooldir@"
|
||||||
|
wrout "libexecdir" "@libexecdir@"
|
||||||
|
wrout "brokersdir" "@brokersdir@"
|
||||||
|
wrout "pluginsdir" "@pluginsdir@"
|
||||||
|
wrout "cgibindir" "@cgibindir@"
|
||||||
|
wrout "initdir" "@initdir@"
|
||||||
|
wrout "inetddir" "@inetddir@"
|
||||||
|
wrout "subsyslockdir" "@subsyslockdir@"
|
||||||
|
echo
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
echo '@PKG_NAME@ files will be installed or created as follows:'
|
||||||
|
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
|
||||||
|
wrout "Config file" "@pkgsysconfdir@/@PKG_NAME@.cfg"
|
||||||
|
wrout "Object config dir" "@objsysconfdir@"
|
||||||
|
wrout "daemon" "@sbindir@/@PKG_NAME@"
|
||||||
|
if test "@PKG_NAME@" = "nrpe"; then
|
||||||
|
wrout "check_@PKG_NAME@" "@pluginsdir@/check_@PKG_NAME@"
|
||||||
|
fi
|
||||||
|
if test "@PKG_NAME@" = "nagios"; then
|
||||||
|
wrout "nagiostats (prog)" "@bindir@/nagiostats"
|
||||||
|
wrout "Website password file" "@pkgsysconfdir@/passwd"
|
||||||
|
wrout "resource.cfg" "@privatesysconfdir@/resource.cfg"
|
||||||
|
wrout "event handlers dir" "@brokersdir@"
|
||||||
|
wrout "cgi program dir" "@cgibindir@"
|
||||||
|
wrout "website file dir" "@webdir@"
|
||||||
|
wrout "status.dat" "@pkglocalstatedir@/status.dat"
|
||||||
|
wrout "retention.dat" "@pkglocalstatedir@/retention.dat"
|
||||||
|
wrout "object cache dir" "@pkglocalstatedir@"
|
||||||
|
wrout "log file" "@logdir@/@PKG_NAME@.log"
|
||||||
|
wrout "log archive dir" "@logdir@/archives"
|
||||||
|
wrout "@PKG_NAME@.configtest" "@logdir@/@PKG_NAME@.configtest"
|
||||||
|
wrout "@PKG_NAME@.cmd" "@pipedir@/@PKG_NAME@.cmd"
|
||||||
|
wrout "@PKG_NAME@.qh" "@pipedir@/@PKG_NAME@.qh"
|
||||||
|
wrout "perfdata file dir" "@spooldir@"
|
||||||
|
wrout "checkresult files" "@spooldir@/checkresults"
|
||||||
|
else
|
||||||
|
wrout "inetd config" "@inetddir@/@inetdname@"
|
||||||
|
fi
|
||||||
|
wrout "init script" "@initdir@/@initname@"
|
||||||
|
wrout "@PKG_NAME@.conf (tmpfiles.d)" "@tmpfilesd@"
|
||||||
|
wrout "@PKG_NAME@ lock file" "@piddir@/@PKG_NAME@.pid"
|
||||||
|
wrout "language files" "@localedir@"
|
||||||
|
wrout "init lock file" "@subsyslockfile@"
|
||||||
|
wrout "init source file" "@src_init@"
|
||||||
|
wrout "inetd source file" "@src_inetd@"
|
||||||
|
echo
|
||||||
|
echo "To show this list again, type './paths' at the prompt"
|
@ -2,7 +2,7 @@
|
|||||||
# Sample NRPE Config File
|
# Sample NRPE Config File
|
||||||
# Written by: Ethan Galstad (nagios@nagios.org)
|
# Written by: Ethan Galstad (nagios@nagios.org)
|
||||||
#
|
#
|
||||||
# Last Modified: 11-23-2007
|
# Last Modified: 2016-05-10
|
||||||
#
|
#
|
||||||
# NOTES:
|
# NOTES:
|
||||||
# This is a sample configuration file for the NRPE daemon. It needs to be
|
# This is a sample configuration file for the NRPE daemon. It needs to be
|
||||||
@ -18,12 +18,21 @@ log_facility=@log_facility@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# DEBUGGING OPTION
|
||||||
|
# This option determines whether or not debugging messages are logged to the
|
||||||
|
# syslog facility.
|
||||||
|
# Values: 0=debugging off, 1=debugging on
|
||||||
|
|
||||||
|
debug=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# PID FILE
|
# PID FILE
|
||||||
# The name of the file in which the NRPE daemon should write it's process ID
|
# The name of the file in which the NRPE daemon should write it's process ID
|
||||||
# number. The file is only written if the NRPE daemon is started by the root
|
# number. The file is only written if the NRPE daemon is started by the root
|
||||||
# user and is running in standalone mode.
|
# user and is running in standalone mode.
|
||||||
|
|
||||||
pid_file=/var/run/nrpe.pid
|
pid_file=@piddir@/nrpe.pid
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -45,6 +54,14 @@ server_port=@nrpe_port@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# LISTEN QUEUE SIZE
|
||||||
|
# Listen queue size (backlog) for serving incoming connections.
|
||||||
|
# You may want to increase this value under high load.
|
||||||
|
|
||||||
|
#listen_queue_size=5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# NRPE USER
|
# NRPE USER
|
||||||
# This determines the effective user that the NRPE daemon should run as.
|
# This determines the effective user that the NRPE daemon should run as.
|
||||||
# You can either supply a username or a UID.
|
# You can either supply a username or a UID.
|
||||||
@ -137,15 +154,6 @@ allow_bash_command_substitution=0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# DEBUGGING OPTION
|
|
||||||
# This option determines whether or not debugging messages are logged to the
|
|
||||||
# syslog facility.
|
|
||||||
# Values: 0=debugging off, 1=debugging on
|
|
||||||
|
|
||||||
debug=0
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# COMMAND TIMEOUT
|
# COMMAND TIMEOUT
|
||||||
# This specifies the maximum number of seconds that the NRPE daemon will
|
# This specifies the maximum number of seconds that the NRPE daemon will
|
||||||
# allow plugins to finish executing before killing them off.
|
# allow plugins to finish executing before killing them off.
|
||||||
@ -165,7 +173,7 @@ connection_timeout=300
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# WEEK RANDOM SEED OPTION
|
# WEAK RANDOM SEED OPTION
|
||||||
# This directive allows you to use SSL even if your system does not have
|
# This directive allows you to use SSL even if your system does not have
|
||||||
# a /dev/random or /dev/urandom (on purpose or because the necessary patches
|
# a /dev/random or /dev/urandom (on purpose or because the necessary patches
|
||||||
# were not applied). The random number generator will be seeded from a file
|
# were not applied). The random number generator will be seeded from a file
|
||||||
@ -178,6 +186,66 @@ connection_timeout=300
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# SSL/TLS OPTIONS
|
||||||
|
# These directives allow you to specify how to use SSL/TLS.
|
||||||
|
|
||||||
|
# SSL VERSION
|
||||||
|
# This can be any of: SSLv2 (only use SSLv2), SSLv2+ (use any version),
|
||||||
|
# SSLv3 (only use SSLv3), SSLv3+ (use SSLv3 or above), TLSv1 (only use
|
||||||
|
# TLSv1), TLSv1+ (use TLSv1 or above), TLSv1.1 (only use TLSv1.1),
|
||||||
|
# TLSv1.1+ (use TLSv1.1 or above), TLSv1.2 (only use TLSv1.2),
|
||||||
|
# TLSv1.2+ (use TLSv1.2 or above)
|
||||||
|
# If an "or above" version is used, the best will be negotiated. So if both
|
||||||
|
# ends are able to do TLSv1.2 and use specify SSLv2, you will get TLSv1.2.
|
||||||
|
|
||||||
|
#ssl_version=SSLv2+
|
||||||
|
|
||||||
|
# SSL USE ADH
|
||||||
|
# This is for backward compatibility and is DEPRECATED. Set to 1 to enable
|
||||||
|
# ADH or 2 to require ADH. 1 is currently the default but will be changed
|
||||||
|
# in a later version.
|
||||||
|
|
||||||
|
#ssl_use_adh=1
|
||||||
|
|
||||||
|
# SSL CIPHER LIST
|
||||||
|
# This lists which ciphers can be used. For backward compatibility, this
|
||||||
|
# defaults to 'ssl_cipher_list=ALL:!MD5:@STRENGTH' in this version but
|
||||||
|
# will be changed to something like the example below in a later version of NRPE.
|
||||||
|
|
||||||
|
#ssl_cipher_list=ALL:!MD5:@STRENGTH
|
||||||
|
#ssl_cipher_list=ALL:!aNULL:!eNULL:!SSLv2:!LOW:!EXP:!RC4:!MD5:@STRENGTH
|
||||||
|
|
||||||
|
# SSL Certificate and Private Key Files
|
||||||
|
|
||||||
|
#ssl_cacert_file=/etc/ssl/servercerts/ca-cert.pem
|
||||||
|
#ssl_cert_file=/etc/ssl/servercerts/nagios-cert.pem
|
||||||
|
#ssl_privatekey_file=/etc/ssl/servercerts/nagios-key.pem
|
||||||
|
|
||||||
|
# SSL USE CLIENT CERTS
|
||||||
|
# This options determines client certificate usage.
|
||||||
|
# Values: 0 = Don't ask for or require client certificates (default)
|
||||||
|
# 1 = Ask for client certificates
|
||||||
|
# 2 = Require client certificates
|
||||||
|
|
||||||
|
#ssl_client_certs=0
|
||||||
|
|
||||||
|
# SSL LOGGING
|
||||||
|
# This option determines which SSL messages are send to syslog. OR values
|
||||||
|
# together to specify multiple options.
|
||||||
|
|
||||||
|
# Values: 0x00 (0) = No additional logging (default)
|
||||||
|
# 0x01 (1) = Log startup SSL/TLS parameters
|
||||||
|
# 0x02 (2) = Log remote IP address
|
||||||
|
# 0x04 (4) = Log SSL/TLS version of connections
|
||||||
|
# 0x08 (8) = Log which cipher is being used for the connection
|
||||||
|
# 0x10 (16) = Log if client has a certificate
|
||||||
|
# 0x20 (32) = Log details of client's certificate if it has one
|
||||||
|
# -1 or 0xff or 0x2f = All of the above
|
||||||
|
|
||||||
|
#ssl_logging=0x00
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# INCLUDE CONFIG FILE
|
# INCLUDE CONFIG FILE
|
||||||
# This directive allows you to include definitions from an external config file.
|
# This directive allows you to include definitions from an external config file.
|
||||||
|
|
||||||
@ -216,11 +284,11 @@ connection_timeout=300
|
|||||||
|
|
||||||
# The following examples use hardcoded command arguments...
|
# The following examples use hardcoded command arguments...
|
||||||
|
|
||||||
command[check_users]=@libexecdir@/check_users -w 5 -c 10
|
command[check_users]=@pluginsdir@/check_users -w 5 -c 10
|
||||||
command[check_load]=@libexecdir@/check_load -w 15,10,5 -c 30,25,20
|
command[check_load]=@pluginsdir@/check_load -w 15,10,5 -c 30,25,20
|
||||||
command[check_hda1]=@libexecdir@/check_disk -w 20% -c 10% -p /dev/hda1
|
command[check_hda1]=@pluginsdir@/check_disk -w 20% -c 10% -p /dev/hda1
|
||||||
command[check_zombie_procs]=@libexecdir@/check_procs -w 5 -c 10 -s Z
|
command[check_zombie_procs]=@pluginsdir@/check_procs -w 5 -c 10 -s Z
|
||||||
command[check_total_procs]=@libexecdir@/check_procs -w 150 -c 200
|
command[check_total_procs]=@pluginsdir@/check_procs -w 150 -c 200
|
||||||
|
|
||||||
|
|
||||||
# The following examples allow user-supplied arguments and can
|
# The following examples allow user-supplied arguments and can
|
||||||
@ -229,7 +297,7 @@ command[check_total_procs]=@libexecdir@/check_procs -w 150 -c 200
|
|||||||
# config file is set to '1'. This poses a potential security risk, so
|
# config file is set to '1'. This poses a potential security risk, so
|
||||||
# make sure you read the SECURITY file before doing this.
|
# make sure you read the SECURITY file before doing this.
|
||||||
|
|
||||||
#command[check_users]=@libexecdir@/check_users -w $ARG1$ -c $ARG2$
|
#command[check_users]=@pluginsdir@/check_users -w $ARG1$ -c $ARG2$
|
||||||
#command[check_load]=@libexecdir@/check_load -w $ARG1$ -c $ARG2$
|
#command[check_load]=@pluginsdir@/check_load -w $ARG1$ -c $ARG2$
|
||||||
#command[check_disk]=@libexecdir@/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
#command[check_disk]=@pluginsdir@/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
|
||||||
#command[check_procs]=@libexecdir@/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
#command[check_procs]=@pluginsdir@/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
# default: on
|
|
||||||
# description: NRPE (Nagios Remote Plugin Executor)
|
|
||||||
service nrpe
|
|
||||||
{
|
|
||||||
flags = REUSE
|
|
||||||
socket_type = stream
|
|
||||||
port = @nrpe_port@
|
|
||||||
wait = no
|
|
||||||
user = @nrpe_user@
|
|
||||||
group = @nrpe_group@
|
|
||||||
server = @bindir@/nrpe
|
|
||||||
server_args = -c @sysconfdir@/nrpe.cfg --inetd
|
|
||||||
log_on_failure += USERID
|
|
||||||
disable = no
|
|
||||||
only_from = 127.0.0.1
|
|
||||||
}
|
|
@ -10,6 +10,9 @@ srcdir=@srcdir@
|
|||||||
SRC_INCLUDE=@srcdir@/../include
|
SRC_INCLUDE=@srcdir@/../include
|
||||||
CFG_INCLUDE=../include
|
CFG_INCLUDE=../include
|
||||||
|
|
||||||
|
# Mainly used for rpmbuild
|
||||||
|
# DESTDIR=
|
||||||
|
|
||||||
CC=@CC@
|
CC=@CC@
|
||||||
CFLAGS=@CFLAGS@ @DEFS@ -I $(CFG_INCLUDE) -I $(SRC_INCLUDE)
|
CFLAGS=@CFLAGS@ @DEFS@ -I $(CFG_INCLUDE) -I $(SRC_INCLUDE)
|
||||||
LDFLAGS=@LDFLAGS@ @LIBS@
|
LDFLAGS=@LDFLAGS@ @LIBS@
|
||||||
@ -19,16 +22,22 @@ OTHERLIBS=@OTHERLIBS@
|
|||||||
|
|
||||||
CP=@CP@
|
CP=@CP@
|
||||||
|
|
||||||
prefix=@prefix@
|
prefix=$(DESTDIR)@prefix@
|
||||||
exec_prefix=@exec_prefix@
|
exec_prefix=$(DESTDIR)@exec_prefix@
|
||||||
CFGDIR=@sysconfdir@
|
CFGDIR=$(DESTDIR)@pkgsysconfdir@
|
||||||
BINDIR=@bindir@
|
BINDIR=$(DESTDIR)@bindir@
|
||||||
SBINDIR=@sbindir@
|
SBINDIR=$(DESTDIR)@sbindir@
|
||||||
LIBEXECDIR=@libexecdir@
|
LIBEXECDIR=$(DESTDIR)@libexecdir@
|
||||||
INSTALL=@INSTALL@
|
INSTALL=@INSTALL@
|
||||||
NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@
|
NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@
|
||||||
NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@
|
NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@
|
||||||
|
|
||||||
|
PLUGINSDIR=$(DESTDIR)@pluginsdir@
|
||||||
|
PIDDIR=$(DESTDIR)@piddir@
|
||||||
|
TMPFILESDIR=$(DESTDIR)@tmpfilesd@
|
||||||
|
SRC_TMPFILE=@src_tmpfile@
|
||||||
|
|
||||||
|
|
||||||
# Generated automatically from configure script
|
# Generated automatically from configure script
|
||||||
SNPRINTF_O=@SNPRINTF_O@
|
SNPRINTF_O=@SNPRINTF_O@
|
||||||
|
|
||||||
@ -39,19 +48,33 @@ nrpe: $(srcdir)/nrpe.c $(srcdir)/utils.c $(srcdir)/acl.c $(SRC_INCLUDE)/nrpe.h $
|
|||||||
$(CC) $(CFLAGS) -o $@ $(srcdir)/nrpe.c $(srcdir)/utils.c $(srcdir)/acl.c $(LDFLAGS) $(SOCKETLIBS) $(LIBWRAPLIBS) $(SNPRINTF_O) $(OTHERLIBS)
|
$(CC) $(CFLAGS) -o $@ $(srcdir)/nrpe.c $(srcdir)/utils.c $(srcdir)/acl.c $(LDFLAGS) $(SOCKETLIBS) $(LIBWRAPLIBS) $(SNPRINTF_O) $(OTHERLIBS)
|
||||||
|
|
||||||
check_nrpe: $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(SRC_INCLUDE)/utils.h $(SRC_INCLUDE)/common.h $(CFG_INCLUDE)/config.h
|
check_nrpe: $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(SRC_INCLUDE)/utils.h $(SRC_INCLUDE)/common.h $(CFG_INCLUDE)/config.h
|
||||||
$(CC) $(CFLAGS) -o $@ $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(LDFLAGS) $(SOCKETLIBS) $(OTHERLIBS)
|
$(CC) $(CFLAGS) -o $@ $(srcdir)/check_nrpe.c $(srcdir)/utils.c $(LDFLAGS) $(SOCKETLIBS) $(SNPRINTF_O) $(OTHERLIBS)
|
||||||
|
|
||||||
install:
|
install:
|
||||||
$(MAKE) install-plugin
|
$(MAKE) install-plugin
|
||||||
$(MAKE) install-daemon
|
$(MAKE) install-daemon
|
||||||
|
|
||||||
install-plugin:
|
install-plugin: install-uninstall
|
||||||
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(LIBEXECDIR)
|
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(LIBEXECDIR)
|
||||||
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) check_nrpe $(DESTDIR)$(LIBEXECDIR)
|
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(PLUGINSDIR)
|
||||||
|
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) check_nrpe $(PLUGINSDIR)
|
||||||
|
|
||||||
install-daemon:
|
install-daemon: install-uninstall
|
||||||
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(BINDIR)
|
$(INSTALL) -m 755 nrpe $(SBINDIR)
|
||||||
$(INSTALL) -m 775 $(NRPE_INSTALL_OPTS) nrpe $(DESTDIR)$(BINDIR)
|
@if test ! -d "$(PIDDIR)" ; then \
|
||||||
|
echo $(INSTALL) -m 755 $(NRPE_INSTALL_OPTS) -d $(PIDDIR); \
|
||||||
|
$(INSTALL) -m 755 $(NRPE_INSTALL_OPTS) -d $(PIDDIR); \
|
||||||
|
fi
|
||||||
|
@if test "$(TMPFILESDIR)" != "N/A" -a x$(SRC_TMPFILE) != x ; then \
|
||||||
|
echo $(INSTALL) -m 755 -d `dirname $(TMPFILESDIR)`; \
|
||||||
|
$(INSTALL) -m 755 -d `dirname $(TMPFILESDIR)`; \
|
||||||
|
echo $(INSTALL) -m 644 ../startup/$(SRC_TMPFILE) $(TMPFILESDIR); \
|
||||||
|
$(INSTALL) -m 644 ../startup/$(SRC_TMPFILE) $(TMPFILESDIR); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
install-uninstall:
|
||||||
|
$(INSTALL) -m 755 -d $(SBINDIR)
|
||||||
|
$(INSTALL) -m 755 ../uninstall $(SBINDIR)/nrpe-uninstall
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f core nrpe check_nrpe $(SNPRINTF_O)
|
rm -f core nrpe check_nrpe $(SNPRINTF_O)
|
||||||
|
83
src/acl.c
83
src/acl.c
@ -28,6 +28,8 @@
|
|||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "../include/config.h"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
|
||||||
@ -256,8 +258,7 @@ int add_ipv4_to_acl(char *ipv4) {
|
|||||||
|
|
||||||
int add_ipv6_to_acl(char *ipv6) {
|
int add_ipv6_to_acl(char *ipv6) {
|
||||||
char *ipv6tmp;
|
char *ipv6tmp;
|
||||||
char *addrtok;
|
char *addr_part, *mask_part;
|
||||||
char *addrsave;
|
|
||||||
struct in6_addr addr;
|
struct in6_addr addr;
|
||||||
struct in6_addr mask;
|
struct in6_addr mask;
|
||||||
int maskval;
|
int maskval;
|
||||||
@ -275,23 +276,25 @@ int add_ipv6_to_acl(char *ipv6) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addr_part = ipv6tmp;
|
||||||
|
mask_part = strchr(ipv6tmp, '/');
|
||||||
|
if (mask_part) {
|
||||||
|
*mask_part = '\0';
|
||||||
|
++mask_part;
|
||||||
|
}
|
||||||
|
|
||||||
/* Parse the address itself */
|
/* Parse the address itself */
|
||||||
addrtok = strtok_r(ipv6tmp, "/", &addrsave);
|
if(inet_pton(AF_INET6, addr_part, &addr) <= 0) {
|
||||||
if(inet_pton(AF_INET6, addrtok, &addr) <= 0) {
|
|
||||||
syslog(LOG_ERR, "Invalid IPv6 address in ACL: %s\n", ipv6);
|
|
||||||
free(ipv6tmp);
|
free(ipv6tmp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether there is a netmask */
|
/* Check whether there is a netmask */
|
||||||
addrtok = strtok_r(NULL, "/", &addrsave);
|
if (mask_part && *mask_part) {
|
||||||
if(NULL != addrtok) {
|
|
||||||
/* If so, build a netmask */
|
/* If so, build a netmask */
|
||||||
|
|
||||||
/* Get the number of bits in the mask */
|
/* Get the number of bits in the mask */
|
||||||
maskval = atoi(addrtok);
|
maskval = atoi(mask_part);
|
||||||
if(maskval < 0 || maskval > 128) {
|
if(maskval < 0 || maskval > 128) {
|
||||||
syslog(LOG_ERR, "Invalid IPv6 netmask in ACL: %s\n", ipv6);
|
|
||||||
free(ipv6tmp);
|
free(ipv6tmp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -458,14 +461,15 @@ int add_domain_to_acl(char *domain) {
|
|||||||
* 0 - on failure
|
* 0 - on failure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int is_an_allowed_host(int family, void *host) {
|
int is_an_allowed_host(int family, void *host)
|
||||||
|
{
|
||||||
struct ip_acl *ip_acl_curr = ip_acl_head;
|
struct ip_acl *ip_acl_curr = ip_acl_head;
|
||||||
int nbytes;
|
int nbytes;
|
||||||
int x;
|
int x;
|
||||||
struct dns_acl *dns_acl_curr = dns_acl_head;
|
struct dns_acl *dns_acl_curr = dns_acl_head;
|
||||||
struct in_addr addr;
|
struct sockaddr_in *addr;
|
||||||
struct in6_addr addr6;
|
struct sockaddr_in6 addr6;
|
||||||
struct hostent *he;
|
struct addrinfo *res, *ai;
|
||||||
|
|
||||||
while (ip_acl_curr != NULL) {
|
while (ip_acl_curr != NULL) {
|
||||||
if(ip_acl_curr->family == family) {
|
if(ip_acl_curr->family == family) {
|
||||||
@ -498,32 +502,29 @@ int is_an_allowed_host(int family, void *host) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
while(dns_acl_curr != NULL) {
|
while(dns_acl_curr != NULL) {
|
||||||
he = gethostbyname(dns_acl_curr->domain);
|
if (!getaddrinfo(dns_acl_curr->domain, NULL, NULL, &res)) {
|
||||||
if (he == NULL) return 0;
|
|
||||||
|
for (ai = res; ai; ai = ai->ai_next) {
|
||||||
|
|
||||||
|
switch(ai->ai_family) {
|
||||||
|
|
||||||
while (*he->h_addr_list) {
|
|
||||||
switch(he->h_addrtype) {
|
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
memmove((char *)&addr,*he->h_addr_list++, sizeof(addr));
|
addr = (struct sockaddr_in*)(ai->ai_addr);
|
||||||
if (addr.s_addr == ((struct in_addr *)host)->s_addr) return 1;
|
if (addr->sin_addr.s_addr == ((struct in_addr*)host)->s_addr)
|
||||||
break;
|
return 1;
|
||||||
case AF_INET6:
|
break;
|
||||||
memcpy((char *)&addr6, *he->h_addr_list++, sizeof(addr6));
|
|
||||||
for(x = 0; x < nbytes; x++) {
|
case AF_INET6:
|
||||||
if(addr6.s6_addr[x] !=
|
memcpy((char*)&addr6, ai->ai_addr, sizeof(addr6));
|
||||||
((struct in6_addr *)host)->s6_addr[x]) {
|
if (!memcmp(&addr6.sin6_addr, &host, sizeof(addr6.sin6_addr)))
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(x == nbytes) {
|
|
||||||
/* All bytes in host's address match the ACL */
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dns_acl_curr = dns_acl_curr->next;
|
dns_acl_curr = dns_acl_curr->next;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -535,8 +536,8 @@ int is_an_allowed_host(int family, void *host) {
|
|||||||
void trim( char *src, char *dest) {
|
void trim( char *src, char *dest) {
|
||||||
char *sptr, *dptr;
|
char *sptr, *dptr;
|
||||||
|
|
||||||
for( sptr = src; isblank( *sptr) && *sptr; sptr++); /* Jump past leading spaces */
|
for( sptr = src; isspace( *sptr) && *sptr; sptr++); /* Jump past leading spaces */
|
||||||
for( dptr = dest; !isblank( *sptr) && *sptr; ) {
|
for( dptr = dest; !isspace( *sptr) && *sptr; ) {
|
||||||
*dptr = *sptr;
|
*dptr = *sptr;
|
||||||
sptr++;
|
sptr++;
|
||||||
dptr++;
|
dptr++;
|
||||||
@ -545,20 +546,24 @@ void trim( char *src, char *dest) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function splits allowed_hosts to substrings with comma(,) as a delimeter.
|
/* This function splits allowed_hosts to substrings with comma(,) as a delimiter.
|
||||||
* It doesn't check validness of ACL record (add_ipv4_to_acl() and add_domain_to_acl() do),
|
* It doesn't check validness of ACL record (add_ipv4_to_acl() and add_domain_to_acl() do),
|
||||||
* just trims spaces from ACL records.
|
* just trims spaces from ACL records.
|
||||||
* After this it sends ACL records to add_ipv4_to_acl() or add_domain_to_acl().
|
* After this it sends ACL records to add_ipv4_to_acl() or add_domain_to_acl().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void parse_allowed_hosts(char *allowed_hosts) {
|
void parse_allowed_hosts(char *allowed_hosts) {
|
||||||
char *hosts = strdup( allowed_hosts); /* Copy since strtok* modifes original */
|
char *hosts = strdup( allowed_hosts); /* Copy since strtok* modifies original */
|
||||||
char *saveptr;
|
char *saveptr;
|
||||||
char *tok;
|
char *tok;
|
||||||
const char *delim = ",";
|
const char *delim = ",";
|
||||||
char *trimmed_tok;
|
char *trimmed_tok;
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOK_R
|
||||||
tok = strtok_r(hosts, delim, &saveptr);
|
tok = strtok_r(hosts, delim, &saveptr);
|
||||||
|
#else
|
||||||
|
tok = strtok(hosts, delim);
|
||||||
|
#endif
|
||||||
while( tok) {
|
while( tok) {
|
||||||
trimmed_tok = malloc( sizeof( char) * ( strlen( tok) + 1));
|
trimmed_tok = malloc( sizeof( char) * ( strlen( tok) + 1));
|
||||||
trim( tok, trimmed_tok);
|
trim( tok, trimmed_tok);
|
||||||
@ -569,7 +574,11 @@ void parse_allowed_hosts(char *allowed_hosts) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
free( trimmed_tok);
|
free( trimmed_tok);
|
||||||
tok = strtok_r(( char *)0, delim, &saveptr);
|
#ifdef HAVE_STRTOK_R
|
||||||
|
tok = strtok_r(NULL, delim, &saveptr);
|
||||||
|
#else
|
||||||
|
tok = strtok(NULL, delim);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
free( hosts);
|
free( hosts);
|
||||||
|
1542
src/check_nrpe.c
1542
src/check_nrpe.c
File diff suppressed because it is too large
Load Diff
2446
src/nrpe.c
2446
src/nrpe.c
File diff suppressed because it is too large
Load Diff
@ -270,7 +270,7 @@ static size_t dopr(char *buffer, size_t maxlen, const char *format, va_list args
|
|||||||
struct pr_chunk *cnk = NULL;
|
struct pr_chunk *cnk = NULL;
|
||||||
struct pr_chunk_x *clist = NULL;
|
struct pr_chunk_x *clist = NULL;
|
||||||
int max_pos;
|
int max_pos;
|
||||||
size_t ret = -1;
|
size_t ret = (size_t)-1;
|
||||||
|
|
||||||
VA_COPY(args, args_in);
|
VA_COPY(args, args_in);
|
||||||
|
|
||||||
|
285
src/utils.c
285
src/utils.c
@ -32,6 +32,10 @@
|
|||||||
#include "../include/common.h"
|
#include "../include/common.h"
|
||||||
#include "../include/utils.h"
|
#include "../include/utils.h"
|
||||||
|
|
||||||
|
#ifndef HAVE_ASPRINTF
|
||||||
|
extern int asprintf(char **ptr, const char *format, ...);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef NI_MAXSERV
|
#ifndef NI_MAXSERV
|
||||||
# define NI_MAXSERV 32
|
# define NI_MAXSERV 32
|
||||||
#endif
|
#endif
|
||||||
@ -40,12 +44,16 @@
|
|||||||
# define NI_MAXHOST 1025
|
# define NI_MAXHOST 1025
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
extern char **environ;
|
||||||
|
|
||||||
static unsigned long crc32_table[256];
|
static unsigned long crc32_table[256];
|
||||||
|
|
||||||
|
static int my_create_socket(struct addrinfo *ai, const char *bind_address);
|
||||||
|
|
||||||
|
|
||||||
/* build the crc table - must be called before calculating the crc value */
|
/* build the crc table - must be called before calculating the crc value */
|
||||||
void generate_crc32_table(void){
|
void generate_crc32_table(void)
|
||||||
|
{
|
||||||
unsigned long crc, poly;
|
unsigned long crc, poly;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
@ -64,15 +72,13 @@ void generate_crc32_table(void){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* calculates the CRC 32 value for a buffer */
|
/* calculates the CRC 32 value for a buffer */
|
||||||
unsigned long calculate_crc32(char *buffer, int buffer_size){
|
unsigned long calculate_crc32(char *buffer, int buffer_size)
|
||||||
register unsigned long crc;
|
{
|
||||||
|
register unsigned long crc = 0xFFFFFFFF;
|
||||||
int this_char;
|
int this_char;
|
||||||
int current_index;
|
int current_index;
|
||||||
|
|
||||||
crc=0xFFFFFFFF;
|
|
||||||
|
|
||||||
for (current_index = 0; current_index < buffer_size; current_index++) {
|
for (current_index = 0; current_index < buffer_size; current_index++) {
|
||||||
this_char = (int)buffer[current_index];
|
this_char = (int)buffer[current_index];
|
||||||
crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32_table[(crc ^ this_char) & 0xFF];
|
crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32_table[(crc ^ this_char) & 0xFF];
|
||||||
@ -81,9 +87,9 @@ unsigned long calculate_crc32(char *buffer, int buffer_size){
|
|||||||
return (crc ^ 0xFFFFFFFF);
|
return (crc ^ 0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* fill a buffer with semi-random data */
|
/* fill a buffer with semi-random data */
|
||||||
void randomize_buffer(char *buffer,int buffer_size){
|
void randomize_buffer(char *buffer, int buffer_size)
|
||||||
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int x;
|
int x;
|
||||||
int seed;
|
int seed;
|
||||||
@ -91,7 +97,7 @@ void randomize_buffer(char *buffer,int buffer_size){
|
|||||||
/**** FILL BUFFER WITH RANDOM ALPHA-NUMERIC CHARACTERS ****/
|
/**** FILL BUFFER WITH RANDOM ALPHA-NUMERIC CHARACTERS ****/
|
||||||
|
|
||||||
/***************************************************************
|
/***************************************************************
|
||||||
Only use alpha-numeric characters becase plugins usually
|
Only use alpha-numeric characters because plugins usually
|
||||||
only generate numbers and letters in their output. We
|
only generate numbers and letters in their output. We
|
||||||
want the buffer to contain the same set of characters as
|
want the buffer to contain the same set of characters as
|
||||||
plugins, so its harder to distinguish where the real output
|
plugins, so its harder to distinguish where the real output
|
||||||
@ -104,7 +110,6 @@ void randomize_buffer(char *buffer,int buffer_size){
|
|||||||
seed = fgetc(fp);
|
seed = fgetc(fp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* else fallback to using the current time as the seed */
|
/* else fallback to using the current time as the seed */
|
||||||
else
|
else
|
||||||
seed = (int)time(NULL);
|
seed = (int)time(NULL);
|
||||||
@ -116,22 +121,26 @@ void randomize_buffer(char *buffer,int buffer_size){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* opens a connection to a remote host */
|
/* opens a connection to a remote host */
|
||||||
|
#ifdef HAVE_STRUCT_SOCKADDR_STORAGE
|
||||||
int my_connect(const char *host, struct sockaddr_storage *hostaddr, u_short port,
|
int my_connect(const char *host, struct sockaddr_storage *hostaddr, u_short port,
|
||||||
int address_family, const char *bind_address){
|
int address_family, const char *bind_address)
|
||||||
|
#else
|
||||||
|
int my_connect(const char *host, struct sockaddr *hostaddr, u_short port,
|
||||||
|
int address_family, const char *bind_address)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
struct addrinfo hints, *ai, *aitop;
|
||||||
|
char ntop[NI_MAXHOST], strport[NI_MAXSERV];
|
||||||
int gaierr;
|
int gaierr;
|
||||||
int sock = -1;
|
int sock = -1;
|
||||||
char ntop[NI_MAXHOST], strport[NI_MAXSERV];
|
|
||||||
struct addrinfo hints, *ai, *aitop;
|
|
||||||
|
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
hints.ai_family = address_family;
|
hints.ai_family = address_family;
|
||||||
hints.ai_socktype = SOCK_STREAM;
|
hints.ai_socktype = SOCK_STREAM;
|
||||||
snprintf(strport, sizeof strport, "%u", port);
|
snprintf(strport, sizeof strport, "%u", port);
|
||||||
if ((gaierr = getaddrinfo(host, strport, &hints, &aitop)) != 0) {
|
if ((gaierr = getaddrinfo(host, strport, &hints, &aitop)) != 0) {
|
||||||
fprintf(stderr,"Could not resolve hostname %.100s: %s\n", host,
|
fprintf(stderr, "Could not resolve hostname %.100s: %s\n", host, gai_strerror(gaierr));
|
||||||
gai_strerror(gaierr));
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,7 +149,8 @@ int my_connect(const char *host, struct sockaddr_storage * hostaddr, u_short por
|
|||||||
* sequence until the connection succeeds.
|
* sequence until the connection succeeds.
|
||||||
*/
|
*/
|
||||||
for (ai = aitop; ai; ai = ai->ai_next) {
|
for (ai = aitop; ai; ai = ai->ai_next) {
|
||||||
if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6) continue;
|
if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6)
|
||||||
|
continue;
|
||||||
if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop),
|
if (getnameinfo(ai->ai_addr, ai->ai_addrlen, ntop, sizeof(ntop),
|
||||||
strport, sizeof(strport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) {
|
strport, sizeof(strport), NI_NUMERICHOST | NI_NUMERICSERV) != 0) {
|
||||||
fprintf(stderr, "my_connect: getnameinfo failed\n");
|
fprintf(stderr, "my_connect: getnameinfo failed\n");
|
||||||
@ -149,17 +159,14 @@ int my_connect(const char *host, struct sockaddr_storage * hostaddr, u_short por
|
|||||||
|
|
||||||
/* Create a socket for connecting. */
|
/* Create a socket for connecting. */
|
||||||
sock = my_create_socket(ai, bind_address);
|
sock = my_create_socket(ai, bind_address);
|
||||||
if (sock < 0) {
|
if (sock < 0)
|
||||||
/* Any error is already output */
|
continue; /* Any error is already output */
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (connect(sock, ai->ai_addr, ai->ai_addrlen) >= 0) {
|
if (connect(sock, ai->ai_addr, ai->ai_addrlen) >= 0) {
|
||||||
/* Successful connection. */
|
/* Successful connection. */
|
||||||
memcpy(hostaddr, ai->ai_addr, ai->ai_addrlen);
|
memcpy(hostaddr, ai->ai_addr, ai->ai_addrlen);
|
||||||
break;
|
break;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
fprintf(stderr, "connect to address %s port %s: %s\n", ntop, strport,
|
fprintf(stderr, "connect to address %s port %s: %s\n", ntop, strport,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
close(sock);
|
close(sock);
|
||||||
@ -171,23 +178,25 @@ int my_connect(const char *host, struct sockaddr_storage * hostaddr, u_short por
|
|||||||
|
|
||||||
/* Return failure if we didn't get a successful connection. */
|
/* Return failure if we didn't get a successful connection. */
|
||||||
if (sock == -1) {
|
if (sock == -1) {
|
||||||
fprintf(stderr, "connect to host %s port %s: %s", host, strport,
|
fprintf(stderr, "connect to host %s port %s: %s\n", host, strport, strerror(errno));
|
||||||
strerror(errno));
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Creates a socket for the connection. */
|
/* Creates a socket for the connection. */
|
||||||
int my_create_socket(struct addrinfo *ai, const char *bind_address) {
|
int my_create_socket(struct addrinfo *ai, const char *bind_address)
|
||||||
|
{
|
||||||
int sock, gaierr;
|
int sock, gaierr;
|
||||||
struct addrinfo hints, *res;
|
struct addrinfo hints, *res;
|
||||||
|
|
||||||
sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
|
||||||
if (sock < 0) fprintf(stderr,"socket: %.100s\n", strerror(errno));
|
if (sock < 0)
|
||||||
|
fprintf(stderr, "socket: %.100s\n", strerror(errno));
|
||||||
|
|
||||||
/* Bind the socket to an alternative local IP address */
|
/* Bind the socket to an alternative local IP address */
|
||||||
if (bind_address == NULL) return sock;
|
if (bind_address == NULL)
|
||||||
|
return sock;
|
||||||
|
|
||||||
memset(&hints, 0, sizeof(hints));
|
memset(&hints, 0, sizeof(hints));
|
||||||
hints.ai_family = ai->ai_family;
|
hints.ai_family = ai->ai_family;
|
||||||
@ -196,8 +205,7 @@ int my_create_socket(struct addrinfo *ai, const char *bind_address) {
|
|||||||
hints.ai_flags = AI_PASSIVE;
|
hints.ai_flags = AI_PASSIVE;
|
||||||
gaierr = getaddrinfo(bind_address, NULL, &hints, &res);
|
gaierr = getaddrinfo(bind_address, NULL, &hints, &res);
|
||||||
if (gaierr) {
|
if (gaierr) {
|
||||||
fprintf(stderr, "getaddrinfo: %s: %s\n", bind_address,
|
fprintf(stderr, "getaddrinfo: %s: %s\n", bind_address, gai_strerror(gaierr));
|
||||||
gai_strerror(gaierr));
|
|
||||||
close(sock);
|
close(sock);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -211,8 +219,8 @@ int my_create_socket(struct addrinfo *ai, const char *bind_address) {
|
|||||||
return sock;
|
return sock;
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_listen_addr(struct addrinfo **listen_addrs, int address_family,
|
void add_listen_addr(struct addrinfo **listen_addrs, int address_family, char *addr, int port)
|
||||||
char *addr, int port) {
|
{
|
||||||
struct addrinfo hints, *ai, *aitop;
|
struct addrinfo hints, *ai, *aitop;
|
||||||
char strport[NI_MAXSERV];
|
char strport[NI_MAXSERV];
|
||||||
int gaierr;
|
int gaierr;
|
||||||
@ -232,82 +240,162 @@ void add_listen_addr(struct addrinfo **listen_addrs, int address_family,
|
|||||||
*listen_addrs = aitop;
|
*listen_addrs = aitop;
|
||||||
}
|
}
|
||||||
|
|
||||||
void strip(char *buffer){
|
int clean_environ(const char *keep_env_vars, const char *nrpe_user)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_PATHS_H
|
||||||
|
static char *path = _PATH_STDPATH;
|
||||||
|
#else
|
||||||
|
static char *path = "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin";
|
||||||
|
#endif
|
||||||
|
struct passwd *pw;
|
||||||
|
size_t len, var_sz = 0;
|
||||||
|
char **kept = NULL, *value, *var, *keep = NULL;
|
||||||
|
int i, j, keepcnt = 0;
|
||||||
|
|
||||||
|
if (keep_env_vars && *keep_env_vars)
|
||||||
|
asprintf(&keep, "%s,NRPE_MULTILINESUPPORT,NRPE_PROGRAMVERSION", keep_env_vars);
|
||||||
|
else
|
||||||
|
asprintf(&keep, "NRPE_MULTILINESUPPORT,NRPE_PROGRAMVERSION");
|
||||||
|
if (keep == NULL) {
|
||||||
|
syslog(LOG_ERR, "Could not sanitize the environment. Aborting!");
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
++keepcnt;
|
||||||
|
i = strlen(keep);
|
||||||
|
while (i--) {
|
||||||
|
if (keep[i] == ',')
|
||||||
|
++keepcnt;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((kept = calloc(keepcnt + 1, sizeof(char *))) == NULL) {
|
||||||
|
syslog(LOG_ERR, "Could not sanitize the environment. Aborting!");
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
for (i = 0, var = my_strsep(&keep, ","); var != NULL; var = my_strsep(&keep, ","))
|
||||||
|
kept[i++] = strip(var);
|
||||||
|
|
||||||
|
var = NULL;
|
||||||
|
i = 0;
|
||||||
|
while (environ[i]) {
|
||||||
|
value = environ[i];
|
||||||
|
if ((len = strcspn(value, "=")) == 0) {
|
||||||
|
free(keep);
|
||||||
|
free(kept);
|
||||||
|
free(var);
|
||||||
|
syslog(LOG_ERR, "Could not sanitize the environment. Aborting!");
|
||||||
|
return ERROR;
|
||||||
|
}
|
||||||
|
if (len >= var_sz) {
|
||||||
|
var_sz = len + 1;
|
||||||
|
var = realloc(var, var_sz);
|
||||||
|
}
|
||||||
|
strncpy(var, environ[i], var_sz);
|
||||||
|
var[len] = 0;
|
||||||
|
|
||||||
|
for (j = 0; kept[j]; ++j) {
|
||||||
|
if (!strncmp(var, kept[j], strlen(kept[j])))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (kept[j]) {
|
||||||
|
++i;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsetenv(var);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(var);
|
||||||
|
free(keep);
|
||||||
|
free(kept);
|
||||||
|
|
||||||
|
pw = (struct passwd *)getpwnam(nrpe_user);
|
||||||
|
if (pw == NULL)
|
||||||
|
return OK;
|
||||||
|
|
||||||
|
setenv("PATH", path, 1);
|
||||||
|
setenv("IFS", " \t\n", 1);
|
||||||
|
setenv("HOME", pw->pw_dir, 0);
|
||||||
|
setenv("SHELL", pw->pw_shell, 0);
|
||||||
|
setenv("LOGNAME", nrpe_user, 0);
|
||||||
|
setenv("USER", nrpe_user, 0);
|
||||||
|
|
||||||
|
return OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
char *strip(char *buffer)
|
||||||
|
{
|
||||||
int x;
|
int x;
|
||||||
int index;
|
int index;
|
||||||
|
char *buf = buffer;
|
||||||
|
|
||||||
for (x = strlen(buffer); x >= 1; x--) {
|
for (x = strlen(buffer); x >= 1; x--) {
|
||||||
index = x - 1;
|
index = x - 1;
|
||||||
if(buffer[index]==' ' || buffer[index]=='\r' || buffer[index]=='\n' || buffer[index]=='\t')
|
if (buffer[index] == ' ' || buffer[index] == '\r' || buffer[index] == '\n'
|
||||||
|
|| buffer[index] == '\t')
|
||||||
buffer[index] = '\x0';
|
buffer[index] = '\x0';
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
while (*buf == ' ' || *buf == '\r' || *buf == '\n' || *buf == '\t') {
|
||||||
|
++buf;
|
||||||
|
--x;
|
||||||
|
}
|
||||||
|
if (buf != buffer) {
|
||||||
|
memmove(buffer, buf, x);
|
||||||
|
buffer[x] = '\x0';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
/* sends all data - thanks to Beej's Guide to Network Programming */
|
/* sends all data - thanks to Beej's Guide to Network Programming */
|
||||||
int sendall(int s, char *buf, int *len){
|
int sendall(int s, char *buf, int *len)
|
||||||
|
{
|
||||||
int total = 0;
|
int total = 0;
|
||||||
int bytesleft = *len;
|
int bytesleft = *len;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
|
|
||||||
/* send all the data */
|
/* send all the data */
|
||||||
while (total < *len) {
|
while (total < *len) {
|
||||||
|
n = send(s, buf + total, bytesleft, 0); /* send some data */
|
||||||
/* send some data */
|
if (n == -1) /* break on error */
|
||||||
n=send(s,buf+total,bytesleft,0);
|
|
||||||
|
|
||||||
/* break on error */
|
|
||||||
if(n==-1)
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* apply bytes we sent */
|
/* apply bytes we sent */
|
||||||
total += n;
|
total += n;
|
||||||
bytesleft -= n;
|
bytesleft -= n;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return number of bytes actually send here */
|
*len = total; /* return number of bytes actually sent here */
|
||||||
*len=total;
|
return n == -1 ? -1 : 0; /* return -1 on failure, 0 on success */
|
||||||
|
|
||||||
/* return -1 on failure, 0 on success */
|
|
||||||
return n==-1?-1:0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* receives all data - modelled after sendall() */
|
/* receives all data - modelled after sendall() */
|
||||||
int recvall(int s, char *buf, int *len, int timeout){
|
int recvall(int s, char *buf, int *len, int timeout)
|
||||||
|
{
|
||||||
|
time_t start_time;
|
||||||
|
time_t current_time;
|
||||||
int total = 0;
|
int total = 0;
|
||||||
int bytesleft = *len;
|
int bytesleft = *len;
|
||||||
int n = 0;
|
int n = 0;
|
||||||
time_t start_time;
|
|
||||||
time_t current_time;
|
|
||||||
|
|
||||||
/* clear the receive buffer */
|
|
||||||
bzero(buf,*len);
|
|
||||||
|
|
||||||
|
bzero(buf, *len); /* clear the receive buffer */
|
||||||
time(&start_time);
|
time(&start_time);
|
||||||
|
|
||||||
/* receive all data */
|
/* receive all data */
|
||||||
while (total < *len) {
|
while (total < *len) {
|
||||||
|
n = recv(s, buf + total, bytesleft, 0); /* receive some data */
|
||||||
|
|
||||||
/* receive some data */
|
|
||||||
n=recv(s,buf+total,bytesleft,0);
|
|
||||||
|
|
||||||
/* no data has arrived yet (non-blocking socket) */
|
|
||||||
if (n == -1 && errno == EAGAIN) {
|
if (n == -1 && errno == EAGAIN) {
|
||||||
|
/* no data has arrived yet (non-blocking socket) */
|
||||||
time(¤t_time);
|
time(¤t_time);
|
||||||
if (current_time - start_time > timeout)
|
if (current_time - start_time > timeout)
|
||||||
break;
|
break;
|
||||||
sleep(1);
|
sleep(1);
|
||||||
continue;
|
continue;
|
||||||
}
|
} else if (n <= 0)
|
||||||
|
break; /* receive error or client disconnect */
|
||||||
/* receive error or client disconnect */
|
|
||||||
else if(n<=0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* apply bytes we received */
|
/* apply bytes we received */
|
||||||
total += n;
|
total += n;
|
||||||
@ -323,8 +411,10 @@ int recvall(int s, char *buf, int *len, int timeout){
|
|||||||
|
|
||||||
|
|
||||||
/* fixes compiler problems under Solaris, since strsep() isn't included */
|
/* fixes compiler problems under Solaris, since strsep() isn't included */
|
||||||
|
|
||||||
/* this code is taken from the glibc source */
|
/* this code is taken from the glibc source */
|
||||||
char *my_strsep (char **stringp, const char *delim){
|
char *my_strsep(char **stringp, const char *delim)
|
||||||
|
{
|
||||||
char *begin, *end;
|
char *begin, *end;
|
||||||
|
|
||||||
begin = *stringp;
|
begin = *stringp;
|
||||||
@ -345,29 +435,73 @@ char *my_strsep (char **stringp, const char *delim){
|
|||||||
else
|
else
|
||||||
end = strchr(begin + 1, ch);
|
end = strchr(begin + 1, ch);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
else
|
} else
|
||||||
/* Find the end of the token. */
|
end = strpbrk(begin, delim); /* Find the end of the token. */
|
||||||
end = strpbrk (begin, delim);
|
|
||||||
|
|
||||||
if (end) {
|
if (end) {
|
||||||
|
|
||||||
/* Terminate the token and set *STRINGP past NUL character. */
|
/* Terminate the token and set *STRINGP past NUL character. */
|
||||||
*end++ = '\0';
|
*end++ = '\0';
|
||||||
*stringp = end;
|
*stringp = end;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
/* No more delimiters; this is the last token. */
|
/* No more delimiters; this is the last token. */
|
||||||
*stringp = NULL;
|
*stringp = NULL;
|
||||||
|
|
||||||
return begin;
|
return begin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int b64_decode(unsigned char *encoded)
|
||||||
|
{
|
||||||
|
static const char *b64 = {
|
||||||
|
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||||
|
};
|
||||||
|
int i, j, l, padding = 0;
|
||||||
|
unsigned char c[4], *outp = encoded;
|
||||||
|
|
||||||
|
union {
|
||||||
|
unsigned c3;
|
||||||
|
struct {
|
||||||
|
unsigned f1:6;
|
||||||
|
unsigned f2:6;
|
||||||
|
unsigned f3:6;
|
||||||
|
unsigned f4:6;
|
||||||
|
} fields;
|
||||||
|
} enc;
|
||||||
|
|
||||||
|
enc.c3 = 0;
|
||||||
|
l = strlen((char *)encoded);
|
||||||
|
for (i = 0; i < l; i += 4) {
|
||||||
|
for (j = 0; j < 4; ++j) {
|
||||||
|
if (encoded[i + j] == '=') {
|
||||||
|
c[j] = 0;
|
||||||
|
++padding;
|
||||||
|
} else if (encoded[i + j] >= 'A' && encoded[i + j] <= 'Z')
|
||||||
|
c[j] = encoded[i + j] - 'A';
|
||||||
|
else if (encoded[i + j] >= 'a' && encoded[i + j] <= 'z')
|
||||||
|
c[j] = encoded[i + j] - 'a' + 26;
|
||||||
|
else if (encoded[i + j] >= '0' && encoded[i + j] <= '9')
|
||||||
|
c[j] = encoded[i + j] - '0' + 52;
|
||||||
|
else if (encoded[i + j] == '+')
|
||||||
|
c[j] = encoded[i + j] - '+' + 62;
|
||||||
|
else
|
||||||
|
c[j] = encoded[i + j] - '/' + 63;
|
||||||
|
}
|
||||||
|
enc.fields.f1 = c[3];
|
||||||
|
enc.fields.f2 = c[2];
|
||||||
|
enc.fields.f3 = c[1];
|
||||||
|
enc.fields.f4 = c[0];
|
||||||
|
*outp++ = (enc.c3 >> 16) & 0xff;
|
||||||
|
*outp++ = (enc.c3 >> 8) & 0xff;
|
||||||
|
*outp++ = (enc.c3) & 0xff;
|
||||||
|
}
|
||||||
|
*outp = '\0';
|
||||||
|
|
||||||
|
return outp - encoded - padding;
|
||||||
|
}
|
||||||
|
|
||||||
/* show license */
|
/* show license */
|
||||||
void display_license(void){
|
void display_license(void)
|
||||||
|
{
|
||||||
printf("This program is released under the GPL (see below) with the additional\n");
|
printf("This program is released under the GPL (see below) with the additional\n");
|
||||||
printf("exemption that compiling, linking, and/or using OpenSSL is allowed.\n\n");
|
printf("exemption that compiling, linking, and/or using OpenSSL is allowed.\n\n");
|
||||||
|
|
||||||
@ -385,6 +519,3 @@ void display_license(void){
|
|||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
90
startup/bsd-init.in
Normal file
90
startup/bsd-init.in
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Start/stop/restart/reload nrpe
|
||||||
|
# Copyright (c) 2016 Nagios(R) Core(TM) Development Team
|
||||||
|
|
||||||
|
NRPE_BIN=@sbindir@/nrpe
|
||||||
|
NRPE_CFG=@pkgsysconfdir@/nrpe.cfg
|
||||||
|
PID_DIR=@piddir@
|
||||||
|
PID_FILE=@piddir@/nrpe.pid
|
||||||
|
|
||||||
|
# Start nrpe
|
||||||
|
nrpe_start() {
|
||||||
|
echo -n "Starting nrpe daemon: $NRPE_BIN - "
|
||||||
|
if [ ! -d "$PID_DIR" ]; then
|
||||||
|
mkdir -p "$PID_DIR"
|
||||||
|
fi
|
||||||
|
$NRPE_BIN -c $NRPE_CFG -d
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "started"
|
||||||
|
else
|
||||||
|
echo "failed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop nrpe
|
||||||
|
nrpe_stop() {
|
||||||
|
echo -n "Stopping nrpe daemon - "
|
||||||
|
if [ -r "$PID_FILE" ]; then
|
||||||
|
kill $(cat "$PID_FILE")
|
||||||
|
else
|
||||||
|
killall nrpe
|
||||||
|
fi
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "stopped"
|
||||||
|
else
|
||||||
|
echo "failed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Restart nrpe
|
||||||
|
nrpe_restart() {
|
||||||
|
nrpe_stop
|
||||||
|
sleep 1
|
||||||
|
nrpe_start
|
||||||
|
}
|
||||||
|
|
||||||
|
# Reload nrpe
|
||||||
|
nrpe_reload() {
|
||||||
|
echo -n "Reloading nrpe daemon - "
|
||||||
|
if [ -r "$PID_FILE" ]; then
|
||||||
|
kill -HUP $(cat "$PID_FILE")
|
||||||
|
else
|
||||||
|
killall -HUP nrpe
|
||||||
|
fi
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "reloaded"
|
||||||
|
else
|
||||||
|
echo "failed"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# nrpe status
|
||||||
|
nrpe_status() {
|
||||||
|
if ps -C nrpe >/dev/null; then
|
||||||
|
echo "nrpe is running."
|
||||||
|
else
|
||||||
|
echo "nrpe is stopped."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
'start')
|
||||||
|
nrpe_start
|
||||||
|
;;
|
||||||
|
'stop')
|
||||||
|
nrpe_stop
|
||||||
|
;;
|
||||||
|
'restart')
|
||||||
|
nrpe_restart
|
||||||
|
;;
|
||||||
|
'reload')
|
||||||
|
nrpe_reload
|
||||||
|
;;
|
||||||
|
'status')
|
||||||
|
nrpe_status
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage $0 start|stop|restart|reload|status"
|
||||||
|
;;
|
||||||
|
esac
|
47
startup/debian-init.in
Normal file
47
startup/debian-init.in
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios(R) Core(TM) Development Team
|
||||||
|
#
|
||||||
|
# Start/stop the nrpe daemon.
|
||||||
|
|
||||||
|
NRPE_BIN=@sbindir@/nrpe
|
||||||
|
NRPE_CFG=@pkgsysconfdir@/nrpe.cfg
|
||||||
|
PID_FILE=@piddir@/nrpe.pid
|
||||||
|
|
||||||
|
test -x $NRPE_BIN || exit 0
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
start)
|
||||||
|
echo -n "Starting nagios remote plugin daemon: nrpe"
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $NRPE_BIN -- -c $NRPE_CFG -d
|
||||||
|
echo "."
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
echo -n "Stopping nagios remote plugin daemon: nrpe"
|
||||||
|
start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $NRPE_BIN
|
||||||
|
echo "."
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart|force-reload)
|
||||||
|
echo -n "Restarting nagios remote plugin daemon: nrpe"
|
||||||
|
start-stop-daemon --stop --quiet --pidfile $PID_FILE --exec $NRPE_BIN
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PID_FILE --exec $NRPE_BIN -- -c $NRPE_CFG -d
|
||||||
|
echo "."
|
||||||
|
;;
|
||||||
|
|
||||||
|
reload)
|
||||||
|
echo -n "Reloading configuration files for nagios remote plugin daemon: nrpe"
|
||||||
|
test -f $PID_FILE || exit 0
|
||||||
|
test -x /bin/kill && /bin/kill -HUP `cat $PID_FILE`
|
||||||
|
echo "."
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Usage: $0 start|stop|restart|reload|force-reload"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
5
startup/default-inetd.in
Normal file
5
startup/default-inetd.in
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#
|
||||||
|
# Enable the following entry to enable the nrpe daemon
|
||||||
|
#nrpe stream tcp nowait @nrpe_user@ @sbindir@/nrpe nrpe -c @pkgsysconfdir@/nrpe.cfg --inetd
|
||||||
|
# Enable the following entry if the nrpe daemon didn't link with libwrap
|
||||||
|
#nrpe stream tcp nowait @nrpe_user@ /usr/sbin/tcpd @sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg --inetd
|
157
startup/default-init.in
Normal file
157
startup/default-init.in
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Nagios(R) Core(TM) Development Team
|
||||||
|
#
|
||||||
|
# chkconfig: - 80 30
|
||||||
|
# description: Starts and stops the Nagios Remote Plugin Executor \
|
||||||
|
# so a remote nagios server can run plugins on this host
|
||||||
|
#
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: nrpe
|
||||||
|
# Required-Start: $local_fs $remote_fs $time
|
||||||
|
# Required-Stop: $local_fs $remote_fs
|
||||||
|
# Should-Start: $syslog $network
|
||||||
|
# Should-Stop: $syslog $network
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Starts and stops the Nagios Remote Plugin Executor
|
||||||
|
# Description: Starts and stops the Nagios Remote Plugin Executor
|
||||||
|
# so a remote nagios server can run plugins on this host
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
|
||||||
|
NRPE_BIN=@sbindir@/nrpe
|
||||||
|
NRPE_CFG=@pkgsysconfdir@/nrpe.cfg
|
||||||
|
LOCK_DIR=@subsyslockdir@
|
||||||
|
LOCK_FILE=@subsyslockfile@
|
||||||
|
PID_FILE=@piddir@/nrpe.pid
|
||||||
|
|
||||||
|
test -x $NRPE_BIN || exit 5
|
||||||
|
|
||||||
|
RETVAL=0
|
||||||
|
_set_rc (){ return; }
|
||||||
|
|
||||||
|
# Default these commands/functions to RedHat/CentOS etc. values
|
||||||
|
MSG_CMD="echo -n"
|
||||||
|
START_CMD="daemon --pidfile $PID_FILE"
|
||||||
|
TERM_CMD="killproc -p $PID_FILE $NRPE_BIN -TERM"
|
||||||
|
HUP_CMD="killproc -p $PID_FILE $NRPE_BIN -HUP"
|
||||||
|
PRT_STAT="echo"
|
||||||
|
STAT_MSG="echo -n Checking for nrpe daemon... "
|
||||||
|
STAT_CMD="status nrpe"
|
||||||
|
EXIT_CMD="exit"
|
||||||
|
|
||||||
|
|
||||||
|
# Source the function library
|
||||||
|
if [ -f /etc/rc.status ]; then
|
||||||
|
|
||||||
|
. /etc/rc.status
|
||||||
|
|
||||||
|
_set_rc (){ return $RETVAL; }
|
||||||
|
|
||||||
|
# Set these commands/functions to SuSE etc. values
|
||||||
|
START_CMD="startproc -p $PID_FILE"
|
||||||
|
TERM_CMD="killproc -p $PID_FILE -TERM $NRPE_BIN"
|
||||||
|
HUP_CMD="killproc -p $PID_FILE -HUP $NRPE_BIN"
|
||||||
|
PRT_STAT="rc_status -v -r"
|
||||||
|
STAT_CMD="checkproc -p $PID_FILE $NRPE_BIN"
|
||||||
|
EXIT_CMD="rc_exit"
|
||||||
|
rc_reset
|
||||||
|
|
||||||
|
elif [ -f /etc/rc.d/init.d/functions ]; then
|
||||||
|
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
elif [ -f /etc/init.d/functions ]; then
|
||||||
|
|
||||||
|
. /etc/init.d/functions
|
||||||
|
|
||||||
|
elif [ -f /lib/lsb/init-functions ]; then
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
MSG_CMD="log_daemon_msg"
|
||||||
|
START_CMD="start_daemon -p $PID_FILE"
|
||||||
|
PRT_STAT="log_end_msg"
|
||||||
|
STAT_MSG=
|
||||||
|
STAT_CMD="status_of_proc -p $PID_FILE $NRPE_BIN nrpe"
|
||||||
|
|
||||||
|
elif [ -f /etc/rc.d/functions ]; then
|
||||||
|
|
||||||
|
. /etc/rc.d/functions
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
|
||||||
|
start)
|
||||||
|
# Start daemons.
|
||||||
|
$MSG_CMD "Starting nrpe "
|
||||||
|
$START_CMD $NRPE_BIN -c $NRPE_CFG -d
|
||||||
|
RETVAL=$?
|
||||||
|
if test "$PRT_STAT" = log_end_msg; then
|
||||||
|
$PRT_STAT $RETVAL
|
||||||
|
else
|
||||||
|
_set_rc; $PRT_STAT
|
||||||
|
fi
|
||||||
|
if [ $RETVAL = 0 ]; then
|
||||||
|
[ -d $LOCK_DIR ] && touch $LOCK_FILE || true
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
# Stop daemons.
|
||||||
|
$MSG_CMD "Shutting down nrpe "
|
||||||
|
$TERM_CMD
|
||||||
|
RETVAL=$?
|
||||||
|
if test "$PRT_STAT" = log_end_msg; then
|
||||||
|
$PRT_STAT $RETVAL
|
||||||
|
else
|
||||||
|
_set_rc; $PRT_STAT
|
||||||
|
fi
|
||||||
|
if [ $RETVAL = 0 ]; then
|
||||||
|
[ -d $LOCK_DIR ] && rm -f $LOCK_FILE
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart|force-reload)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
|
||||||
|
reload)
|
||||||
|
$MSG_CMD "Reloading nrpe "
|
||||||
|
$HUP_CMD
|
||||||
|
RETVAL=$?
|
||||||
|
if test "$PRT_STAT" = log_end_msg; then
|
||||||
|
$PRT_STAT $RETVAL
|
||||||
|
else
|
||||||
|
_set_rc; $PRT_STAT
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
try-restart|condrestart)
|
||||||
|
$STAT_CMD || exit 0
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
RETVAL=$?
|
||||||
|
;;
|
||||||
|
|
||||||
|
status)
|
||||||
|
$STAT_MSG
|
||||||
|
$STAT_CMD
|
||||||
|
RETVAL=$?
|
||||||
|
if test "$PRT_STAT" != log_end_msg; then
|
||||||
|
_set_rc; $PRT_STAT
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Usage: nrpe {start|stop|restart|reload|try-restart|condrestart|status}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
$EXIT_CMD $RETVAL
|
23
startup/default-service.in
Normal file
23
startup/default-service.in
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Nagios Remote Program Executor
|
||||||
|
Documentation=http://www.nagios.org/documentation
|
||||||
|
After=var-run.mount nss-lookup.target network.target local-fs.target time-sync.target
|
||||||
|
Before=getty@tty1.service plymouth-quit.service xdm.service
|
||||||
|
Conflicts=nrpe.socket
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=on-abort
|
||||||
|
PIDFile=@piddir@/nrpe.pid
|
||||||
|
RuntimeDirectory=nrpe
|
||||||
|
RuntimeDirectoryMode=0755
|
||||||
|
ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg -f
|
||||||
|
ExecStopPost=/bin/rm -f @piddir@/nrpe.pid
|
||||||
|
TimeoutStopSec=60
|
||||||
|
User=@nrpe_user@
|
||||||
|
Group=@nrpe_group@
|
||||||
|
PrivateTmp=true
|
||||||
|
OOMScoreAdjust=-500
|
16
startup/default-socket-svc.in
Normal file
16
startup/default-socket-svc.in
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Nagios Remote Program Executor
|
||||||
|
Documentation=http://www.nagios.org/documentation
|
||||||
|
After=var-run.mount nss-lookup.target network.target local-fs.target time-sync.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-failure
|
||||||
|
ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg --inetd
|
||||||
|
KillMode=process
|
||||||
|
User=@nrpe_user@
|
||||||
|
Group=@nrpe_group@
|
||||||
|
PrivateTmp=true
|
||||||
|
OOMScoreAdjust=-500
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
12
startup/default-socket.in
Normal file
12
startup/default-socket.in
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Nagios Remote Program Executor
|
||||||
|
Documentation=http://www.nagios.org/documentation
|
||||||
|
Before=nrpe.service
|
||||||
|
Conflicts=nrpe.service
|
||||||
|
|
||||||
|
[Socket]
|
||||||
|
ListenStream=@nrpe_port@
|
||||||
|
Accept=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sockets.target
|
15
startup/default-xinetd.in
Normal file
15
startup/default-xinetd.in
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# default: off
|
||||||
|
# description: NRPE (Nagios Remote Plugin Executor)
|
||||||
|
service nrpe
|
||||||
|
{
|
||||||
|
disable = yes
|
||||||
|
socket_type = stream
|
||||||
|
port = @nrpe_port@
|
||||||
|
wait = no
|
||||||
|
user = @nrpe_user@
|
||||||
|
group = @nrpe_group@
|
||||||
|
server = @sbindir@/nrpe
|
||||||
|
server_args = -c @pkgsysconfdir@/nrpe.cfg --inetd
|
||||||
|
only_from = 127.0.0.1
|
||||||
|
log_on_failure += USERID
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user