Import Upstream version 2.15
This commit is contained in:
commit
e3c2995077
44 changed files with 20140 additions and 0 deletions
349
Changelog
Normal file
349
Changelog
Normal file
|
@ -0,0 +1,349 @@
|
|||
**************
|
||||
NRPE Changelog
|
||||
**************
|
||||
|
||||
2.15 - 09/06/2013
|
||||
-----------------
|
||||
- Now compiles on HP-UX (Grant Byers)
|
||||
- Added support for IPv6 (Leo Baltus, Eric Stanley)
|
||||
|
||||
2.14 - 12/21/2012
|
||||
-----------------
|
||||
- Added configure option to allow bash command substitutions, disabled by default [bug #400] (Eric Stanley)
|
||||
- Patched to shutdown SSL connection completely (Jari Takkala)
|
||||
- Added SRC support on AIX (Thierry Bertaud)
|
||||
- Updated RPM SPEC file to support creating RPMs on AIX (Eric Stanley)
|
||||
- Updated logging to support compiling on AIX (Eric Stanley)
|
||||
|
||||
2.13 - 11/11/2011
|
||||
-----------------
|
||||
- Applied Kaspersky Labs supplied patch for extending allowed_hosts (Konstantin Malov)
|
||||
- Fixed bug in allowed_hosts parsing (Eric Stanley)
|
||||
- Updated to support compiling on Solaris 10 (thanks to Kevin Pendleton)
|
||||
|
||||
|
||||
2.12 - 03/10/2008
|
||||
-----------------
|
||||
- Fix for unterminated multiline plugin (garbage) output (Krzysztof Oledzki)
|
||||
|
||||
|
||||
|
||||
2.11 - 12/26/2007
|
||||
-----------------
|
||||
- Added lib64 library paths to configure script for 64-bit systems (John Maag)
|
||||
- Added --with-ssl-lib configure script option
|
||||
- Added --with-log-facility option to control syslog logging (Ryan Ordway and Brian Seklecki)
|
||||
|
||||
|
||||
2.10 - 10/19/2007
|
||||
-----------------
|
||||
- Moved PDF docs to docs/ subdirectory, added OpenOffice source document
|
||||
- A critical result is now returned for child processed that die due to a signal (Klas Lindfors)
|
||||
|
||||
|
||||
|
||||
2.9 - 08/13/2007
|
||||
----------------
|
||||
- Fixed bug with --with-nrpe-group configure script option (Graham Collinson)
|
||||
- Fixed bug with check_disk thresholds in sample config file (Patric Wust)
|
||||
- Added NRPE_PROGRAMVERSION and NRPE_MULTILINESUPPORT environment variables
|
||||
for scripts that need to detect NRPE version and capabilities (Gerhard Lausser)
|
||||
- Added asprintf() support for systems that are missing it (Samba team)
|
||||
|
||||
|
||||
|
||||
2.8.1 - 05/10/2007
|
||||
-----------------
|
||||
- Fixed configure script error with user-specified NRPE group
|
||||
|
||||
|
||||
|
||||
2.8 - 05/08/2007
|
||||
---------------
|
||||
- Added support for multiline plugin output (limited to 1KB at the moment) (Matthias Flacke)
|
||||
|
||||
|
||||
|
||||
2.8b1 - 03/14/2007
|
||||
-----------------
|
||||
- Changes to sample config files
|
||||
- Added ';' as an additional prohibited metachar for command arguments
|
||||
- Updated documentation and added easier installation commands
|
||||
|
||||
|
||||
|
||||
2.7.1 - 03/08/2007
|
||||
------------------
|
||||
- Changed C++ style comment to C style to fix compilation errors on AIX (Ryan McGarry)
|
||||
|
||||
|
||||
|
||||
2.7 - 02/18/2007
|
||||
----------------
|
||||
- Patches for detection SSL header and library locations (Andrew Boyce-Lewis)
|
||||
- NRPE daemon will now partially ignore non-fatal configuration file errors and attempt to startup (Andrew Boyce-Lewis)
|
||||
|
||||
|
||||
|
||||
2.6 - 12/11/2006
|
||||
----------------
|
||||
- Added -u option to check_nrpe to return UNKNOWN states on socket timeouts (Bjoern Beutel)
|
||||
- Added connection_timeout variable to NRPE daemon to catch dead client connections (Ton Voon)
|
||||
- Added graceful timeout to check_nrpe to ensure connection to NRPE daemon is properly closed (Mark Plaksin)
|
||||
|
||||
|
||||
|
||||
2.5.2 - 06/30/2006
|
||||
------------------
|
||||
- Fixed incorrect service name in sample xinetd config file
|
||||
- Added note on how to restart inetd for OpenBSD users (Robert Peaslee)
|
||||
- Fix for nonblocking accept()s on systems that define EAGAIN differently than EWOULDBLOCK (Gerhard Lausser)
|
||||
- Fix to (re)allow week random seed (Gerhard Lausser)
|
||||
|
||||
|
||||
|
||||
2.5.1 - 04/09/2006
|
||||
------------------
|
||||
- Patch to fix segfault if --no-ssl option is used (Sean Finney/Peter Palfrader)
|
||||
|
||||
|
||||
|
||||
2.5 - 04/06/2006
|
||||
----------------
|
||||
- (Re)added allowed_hosts option for systems that don't support TCP wrappers
|
||||
- Fix for SSL errors under Solaris 8 (Niels Endres)
|
||||
- Fix for config file directory inclusion on ReiserFS (Gerhard Lausser)
|
||||
|
||||
|
||||
|
||||
2.4 - 02/22/2006
|
||||
----------------
|
||||
- Added option to allow week random seed (Gerhard Lausser)
|
||||
- Added optional command line prefix (Sean Finney)
|
||||
- Added ability to reload config file with SIGHUP
|
||||
- Fixed bug with location of dh.h include file
|
||||
- Fixed bug with disconnect message in debug mode
|
||||
|
||||
|
||||
|
||||
2.3 - 01/23/2006
|
||||
----------------
|
||||
- Spec file fixes
|
||||
- Removed errant PID file debugging code
|
||||
- Fixed problem with trimming command definitions
|
||||
|
||||
|
||||
|
||||
2.2 - 01/22/2006
|
||||
----------------
|
||||
- Spec file fix
|
||||
- Patch to add Tru64 and IRIX support (Ton Voon)
|
||||
- Updated config.sub and config.guess
|
||||
- Fixed bug with config file lines with only whitespace
|
||||
- Fixed bug with missing getopt() command line option for -V
|
||||
- Removed sample FreeBSD init script (now maintained by FreeBSD port)
|
||||
- Added config file option for writing a PID file
|
||||
|
||||
|
||||
|
||||
2.1 - 01/19/2004
|
||||
----------------
|
||||
- Replaced host access list with TCP wrapper support
|
||||
- Removed length restrictions for command names and command lines
|
||||
- Configure script patch for getopt_long on Solaris
|
||||
- Bug fixes for accept() on HP-UX 11.0
|
||||
- Init script for SUSE Linux (Subhendu Ghosh)
|
||||
- SSL protocol used is now limited to TLSv1
|
||||
- Any output from plugins after first line is now ignored before
|
||||
plugin process is closed
|
||||
|
||||
|
||||
|
||||
2.0 - 09/08/2003
|
||||
----------------
|
||||
- Added support for passing arguments to command
|
||||
- NRPE daemon can no longer be run as root user/group
|
||||
- Added getopt support
|
||||
- Added 'include' variable to config file to allow inclusion
|
||||
of external config files
|
||||
- Added 'include_dir' variable to allow inclusion of external
|
||||
config files in directories (with recursion)
|
||||
- Added native SSL support (Derrick Bennett)
|
||||
- Added my_strsep(), as Solaris doesn't have strsep()
|
||||
- Added license exemption for use with OpenSSL
|
||||
|
||||
|
||||
|
||||
1.8 - 01/16/2003
|
||||
----------------
|
||||
- Daemon now closes stdio/out/err properly (James Peterson)
|
||||
- Makefile changes (James Peterson)
|
||||
- Mode command line option bug fix in daemon
|
||||
- Fixed incorrect command line options in check_nrpe plugin
|
||||
|
||||
|
||||
|
||||
1.7 - 01/08/2003
|
||||
----------------
|
||||
- Spec file updates and minor bug fixes (James Peterson)
|
||||
- Bug fix with default nrpe port definition
|
||||
- Added sample xinetd config file (nrpe.xinetd)
|
||||
- Bug fix for command_timeout variable (James Peterson)
|
||||
|
||||
|
||||
|
||||
1.6 - 12/30/2002
|
||||
----------------
|
||||
- Updated sample commands to match new plugin argument format
|
||||
- Added sample init scripts for FreeBSD and Debian (Andrew Ryder)
|
||||
- Syntax changes (-H option specifies host name in check_nrpe,
|
||||
-c option specifies config file in nrpe)
|
||||
- Added command_timeout directive to config file to allow user
|
||||
to specify timeout for executing plugins
|
||||
- Added spec file and misc patches for building RPMs (James Peterson)
|
||||
- Added --with-nrpe-port config directive (James Peterson)
|
||||
|
||||
|
||||
|
||||
1.5 - 06/03/2002
|
||||
----------------
|
||||
- Added setuid/setgid option to config file (suggested by Marek Cervenka)
|
||||
|
||||
|
||||
|
||||
1.4 - 06/01/2002
|
||||
----------------
|
||||
- Changed STATE_UNKNOWN to value of 3 instead of -1 (old style)
|
||||
- Minor doc and sample config file changes
|
||||
|
||||
|
||||
|
||||
1.3 - 02/21/2002
|
||||
----------------
|
||||
- Name and version change
|
||||
- Ignore SIGHUP, minor cleanup (Jon Andrews)
|
||||
|
||||
|
||||
|
||||
1.2.5 - 12/22/2001
|
||||
------------------
|
||||
- Implemented Beej's sendall() to handle partial send()s
|
||||
- Added instructions on running under xinetd to README
|
||||
- Removed some old crud
|
||||
|
||||
|
||||
|
||||
1.2.4 - 02/22/2001
|
||||
------------------
|
||||
- I forgot what changes I made. Go figure...
|
||||
|
||||
|
||||
|
||||
1.2.3 - 12/21/2000
|
||||
------------------
|
||||
- A bit more documentation on configuring command definitions for the plugin
|
||||
|
||||
|
||||
|
||||
1.2.2 - 06/05/2000
|
||||
------------------
|
||||
- Fixed error in docs for running under inetd using TCP wrappers
|
||||
- Replaced old email address in src/netutils.h with new one
|
||||
|
||||
|
||||
|
||||
1.2.1 - 05/07/2000
|
||||
------------------
|
||||
- Removed trapping of SIGCHLD
|
||||
- Changed wait4() to waitpid() to allow compilation on HP-UX and AIX
|
||||
|
||||
|
||||
|
||||
1.2.0 - 04/18/2000
|
||||
------------------
|
||||
- Server forks twice after accepting a client connection, so as to prevent the
|
||||
creation of zombies
|
||||
|
||||
|
||||
|
||||
1.1.5 - 04/07/2000
|
||||
------------------
|
||||
- Fixed a small bug where one debug message was not getting logged properly
|
||||
|
||||
|
||||
|
||||
1.1.4 - 03/30/2000
|
||||
------------------
|
||||
- Added option to disable/enable debug messages using the debug option in the
|
||||
config file
|
||||
|
||||
|
||||
|
||||
1.1.3 - 03/11/2000
|
||||
------------------
|
||||
- Changed config file to use an absolute path
|
||||
- Changed all debug output to use syslog (Rene Klootwijk)
|
||||
- No convert all data to network order before sending it and convert it back to
|
||||
host order when receiving it. This makes it possible to mix Solaris and Linux,
|
||||
e.g. running check_nrpe on Linux and nrpe on Solaris. (Rene Klootwijk)
|
||||
|
||||
|
||||
|
||||
1.1.2 - 03/07/2000
|
||||
------------------
|
||||
- Removed unnecessary code in signal handler routine
|
||||
- Unused signals are no longer trapper
|
||||
|
||||
|
||||
|
||||
1.1.1 - 02/28/2000 - RKL
|
||||
---------------------------
|
||||
- Modified syslog code to include string describing the error code.
|
||||
- Changed hardcoded number in signal handler to its name. This prevented nrpe
|
||||
to run on Solaris.
|
||||
- Fixed race condition in accept loop. The result of accept should also be
|
||||
checked for EINTR.
|
||||
- Modified recv and send function calls to compile without warnings on Solaris.
|
||||
- Modified configure.in,configure and Makefile.in to include nsl and socket libs
|
||||
for Solaris.
|
||||
- Modified the signal handler to reestablish itself after being called.
|
||||
|
||||
|
||||
|
||||
1.1 - 02/24/2000 - Rene Klootwijk <rene@klootwijk.org>
|
||||
-----------------
|
||||
- Added ability to bind nrpe to a specific interface by specifying the address
|
||||
of this interface in the nrpe.cfg file (e.g. server_address=192.168.2.3)
|
||||
|
||||
|
||||
|
||||
1.0 - 02/16/2000
|
||||
------------------
|
||||
- Added ability to run as a service under inetd
|
||||
|
||||
|
||||
|
||||
1.0b6 - 02/01/2000
|
||||
------------------
|
||||
- Added configure script
|
||||
- Netutils functions from the NetSaint plugins is now used
|
||||
- Reset SIGCHLD to default behavior before calling popen() to
|
||||
prevent race condition with pclose() (Reported by Rene Klootwijk)
|
||||
- Cleaned up code
|
||||
|
||||
|
||||
|
||||
1.0b5 - 01/10/2000
|
||||
------------------
|
||||
- Added init script contributed by Jacob L
|
||||
- Incorporated syslog code and other patches contributed by Jacob L
|
||||
|
||||
|
||||
|
||||
1.0b4 - 11/04/1999
|
||||
------------------
|
||||
- Changed 'allowed_ip' option in configuration file to
|
||||
'allowed_hosts' and added support for multiple hosts
|
||||
- Minor buffer overflow protection fixes
|
||||
- main() returned STATE_UNKNOWN on successful launch, changed to STATE_OK (jaclu@grm.se)
|
||||
- Added syslog support (jaclu@grm.se)
|
10
LEGAL
Normal file
10
LEGAL
Normal file
|
@ -0,0 +1,10 @@
|
|||
|
||||
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).
|
||||
|
86
Makefile.in
Normal file
86
Makefile.in
Normal file
|
@ -0,0 +1,86 @@
|
|||
###############################
|
||||
# Makefile for NRPE
|
||||
#
|
||||
# Last Modified: 03-14-2007
|
||||
###############################
|
||||
|
||||
|
||||
# Source code directories
|
||||
SRC_BASE=./src/
|
||||
SRC_INCLUDE=./include/
|
||||
|
||||
CC=@CC@
|
||||
CFLAGS=@CFLAGS@ @DEFS@
|
||||
LDFLAGS=@LDFLAGS@ @LIBS@
|
||||
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
CFGDIR=@sysconfdir@
|
||||
BINDIR=@bindir@
|
||||
SBINDIR=@sbindir@
|
||||
LIBEXECDIR=@libexecdir@
|
||||
INSTALL=@INSTALL@
|
||||
NAGIOS_INSTALL_OPTS=@NAGIOS_INSTALL_OPTS@
|
||||
NRPE_INSTALL_OPTS=@NRPE_INSTALL_OPTS@
|
||||
|
||||
INIT_DIR=@init_dir@
|
||||
INIT_OPTS=-o root -g root
|
||||
|
||||
|
||||
all:
|
||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
||||
|
||||
@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:
|
||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
||||
|
||||
check_nrpe:
|
||||
cd $(SRC_BASE); $(MAKE) ; cd ..
|
||||
|
||||
|
||||
install-plugin:
|
||||
cd $(SRC_BASE) && $(MAKE) $@
|
||||
|
||||
install-daemon:
|
||||
cd $(SRC_BASE) && $(MAKE) $@
|
||||
|
||||
install:
|
||||
cd $(SRC_BASE) && $(MAKE) $@
|
||||
|
||||
install-xinetd:
|
||||
$(INSTALL) -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
|
||||
|
||||
install-daemon-config:
|
||||
$(INSTALL) -m 775 $(NAGIOS_INSTALL_OPTS) -d $(DESTDIR)$(CFGDIR)
|
||||
$(INSTALL) -m 644 $(NRPE_INSTALL_OPTS) sample-config/nrpe.cfg $(DESTDIR)$(CFGDIR)
|
||||
|
||||
solaris-package:
|
||||
@if [ `uname -s` != "SunOS" ] ; then \
|
||||
echo "It is recommended you be running on Solaris to build a Solaris package"; \
|
||||
else \
|
||||
cd package/solaris; $(MAKE) build ; $(MAKE) pkg ; cd ../..; \
|
||||
fi
|
||||
|
||||
clean:
|
||||
cd $(SRC_BASE); $(MAKE) $@ ; cd ..
|
||||
cd package/solaris; $(MAKE) $@ ; cd ../..
|
||||
rm -f core
|
||||
rm -f *~ */*~
|
||||
|
||||
distclean: clean
|
||||
cd $(SRC_BASE); $(MAKE) $@ ; cd ..
|
||||
cd package/solaris; $(MAKE) $@ ; cd ../..
|
||||
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 sample-config/*.cfg sample-config/*.xinetd
|
||||
rm -f Makefile
|
||||
|
||||
devclean: distclean
|
||||
|
234
README
Normal file
234
README
Normal file
|
@ -0,0 +1,234 @@
|
|||
-----------
|
||||
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
Normal file
34
README.SSL
Normal file
|
@ -0,0 +1,34 @@
|
|||
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
|
||||
|
||||
|
18
README.Solaris
Normal file
18
README.Solaris
Normal file
|
@ -0,0 +1,18 @@
|
|||
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.
|
131
SECURITY
Normal file
131
SECURITY
Normal file
|
@ -0,0 +1,131 @@
|
|||
********************
|
||||
NRPE SECURITY README
|
||||
********************
|
||||
|
||||
|
||||
TCP WRAPPER SUPPORT
|
||||
===================
|
||||
|
||||
NRPE 2.x includes native support for TCP wrappers. The older
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
COMMAND ARGUMENTS
|
||||
=================
|
||||
|
||||
NRPE 2.0 includes the ability for clients to supply arguments to
|
||||
commands which should be run. Please note that this feature
|
||||
should be considered a security risk, and you should only use
|
||||
it if you know what you're doing!
|
||||
|
||||
|
||||
BASH COMMAND SUBSTITUTION
|
||||
-------------------------
|
||||
|
||||
Even with the metacharacter restrictions below, if command arguments
|
||||
are enabled, it is still possible to send bash command substitions
|
||||
in the form $(...) as an agrument. This is explicity disabled by
|
||||
default, but can be enabled by a configure-time option and a
|
||||
configuration file option. Enabling this option is VERY RISKY and
|
||||
its use is HIGHLY DISCOURAGED.
|
||||
|
||||
|
||||
ENABLING ARGUMENTS
|
||||
------------------
|
||||
|
||||
To enable support for command argument in the daemon, you must
|
||||
do two things:
|
||||
|
||||
1. Run the configure script with the --enable-command-args
|
||||
option
|
||||
|
||||
2. Set the 'dont_blame_nrpe' directive in the NRPE config
|
||||
file to 1.
|
||||
|
||||
|
||||
ENABLING BASH COMMAND SUBSTITUTION
|
||||
----------------------------------
|
||||
|
||||
To enable support for arguments containing bash command substitions,
|
||||
you must do two things:
|
||||
|
||||
1. Enable arguments as described above
|
||||
|
||||
2. Include the --enable-bash-command-substitution configure
|
||||
option when running the configure script
|
||||
|
||||
3. Set the 'allow_bash_command_substitutions' directive in the
|
||||
NRPE config file to 1.
|
||||
|
||||
|
||||
ILLEGAL METACHARS
|
||||
-----------------
|
||||
|
||||
To help prevent some nasty things from being done by evil
|
||||
clients, the following metacharacters are not allowed
|
||||
in client command arguments:
|
||||
|
||||
| ` & > < ' " \ [ ] { } ; !
|
||||
|
||||
Any client request which contains the abovementioned metachars
|
||||
is discarded.
|
||||
|
||||
|
||||
USER/GROUP RESTRICTIONS
|
||||
-----------------------
|
||||
|
||||
The NRPE daemon cannot be run with (effective) root user/group
|
||||
privileges. You must run the daemon with an account that does
|
||||
not have superuser rights. Use the nrpe_user and nrpe_group
|
||||
directives in the config file to specify which user/group the
|
||||
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
|
||||
|
||||
Do NOT assume that just because the daemon is behind a firewall
|
||||
that you are safe! Always encrypt NRPE traffic!
|
||||
|
||||
|
||||
USING ARGUMENTS
|
||||
---------------
|
||||
|
||||
How do you use command arguments? Well, lets say you define a
|
||||
command in the NRPE config file that looks like this:
|
||||
|
||||
command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$
|
||||
|
||||
You could then call the check_nrpe plugin like this:
|
||||
|
||||
./check_nrpe -H <host> -c check_users -a 5 10
|
||||
|
||||
The arguments '5' and '10' get substituted into the appropriate
|
||||
$ARGx$ macros in the command ($ARG1$ and $ARG2$, respectively).
|
||||
The command that would be executed by the NRPE daemon would look
|
||||
like this:
|
||||
|
||||
/usr/local/nagios/libexec/check_users -w 5 -c 10
|
||||
|
||||
You can supply up to 16 arguments to be passed to the command
|
||||
for substitution in $ARG$ macros ($ARG1$ - $ARG16$).
|
||||
|
||||
|
||||
|
||||
|
||||
-- Ethan Galstad (nagios@nagios.org)
|
||||
|
1479
config.guess
vendored
Executable file
1479
config.guess
vendored
Executable file
|
@ -0,0 +1,1479 @@
|
|||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2006-01-02'
|
||||
|
||||
# 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.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
|
||||
# Originally written by Per Bothner <per@bothner.com>.
|
||||
# Please send patches to <config-patches@gnu.org>. Submit a context
|
||||
# diff and a properly formatted ChangeLog entry.
|
||||
#
|
||||
# This script attempts to guess a canonical system name similar to
|
||||
# config.sub. If it succeeds, it prints the system name on stdout, and
|
||||
# exits with 0. Otherwise, it exits with 1.
|
||||
#
|
||||
# The plan is that this can be called by configure scripts if you
|
||||
# don't specify an explicit build system type.
|
||||
|
||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]
|
||||
|
||||
Output the configuration name of the system \`$me' is run on.
|
||||
|
||||
Operation modes:
|
||||
-h, --help print this help, then exit
|
||||
-t, --time-stamp print date of last modification, then exit
|
||||
-v, --version print version number, then exit
|
||||
|
||||
Report bugs and patches to <config-patches@gnu.org>."
|
||||
|
||||
version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
||||
help="
|
||||
Try \`$me --help' for more information."
|
||||
|
||||
# Parse command line
|
||||
while test $# -gt 0 ; do
|
||||
case $1 in
|
||||
--time-stamp | --time* | -t )
|
||||
echo "$timestamp" ; exit ;;
|
||||
--version | -v )
|
||||
echo "$version" ; exit ;;
|
||||
--help | --h* | -h )
|
||||
echo "$usage"; exit ;;
|
||||
-- ) # Stop option processing
|
||||
shift; break ;;
|
||||
- ) # Use stdin as input.
|
||||
break ;;
|
||||
-* )
|
||||
echo "$me: invalid option $1$help" >&2
|
||||
exit 1 ;;
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test $# != 0; then
|
||||
echo "$me: too many arguments$help" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
trap 'exit 1' 1 2 15
|
||||
|
||||
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
|
||||
# compiler to aid in system detection is discouraged as it requires
|
||||
# temporary files to be created and, as you can see below, it is a
|
||||
# headache to deal with in a portable fashion.
|
||||
|
||||
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
|
||||
# use `HOST_CC' if defined, but it is deprecated.
|
||||
|
||||
# Portable tmp directory creation inspired by the Autoconf team.
|
||||
|
||||
set_cc_for_build='
|
||||
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
|
||||
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
|
||||
: ${TMPDIR=/tmp} ;
|
||||
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
|
||||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
|
||||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
|
||||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
|
||||
dummy=$tmp/dummy ;
|
||||
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
|
||||
case $CC_FOR_BUILD,$HOST_CC,$CC in
|
||||
,,) echo "int x;" > $dummy.c ;
|
||||
for c in cc gcc c89 c99 ; do
|
||||
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
|
||||
CC_FOR_BUILD="$c"; break ;
|
||||
fi ;
|
||||
done ;
|
||||
if test x"$CC_FOR_BUILD" = x ; then
|
||||
CC_FOR_BUILD=no_compiler_found ;
|
||||
fi
|
||||
;;
|
||||
,,*) CC_FOR_BUILD=$CC ;;
|
||||
,*,*) CC_FOR_BUILD=$HOST_CC ;;
|
||||
esac ; set_cc_for_build= ;'
|
||||
|
||||
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
||||
# (ghazi@noc.rutgers.edu 1994-08-24)
|
||||
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
|
||||
PATH=$PATH:/.attbin ; export PATH
|
||||
fi
|
||||
|
||||
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
||||
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
||||
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
||||
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
||||
|
||||
# Note: order is significant - the case branches are not exclusive.
|
||||
|
||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
*:NetBSD:*:*)
|
||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
||||
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
||||
# switched to ELF, *-*-netbsd* would select the old
|
||||
# object file format. This provides both forward
|
||||
# compatibility and a consistent mechanism for selecting the
|
||||
# object file format.
|
||||
#
|
||||
# Note: NetBSD doesn't particularly care about the vendor
|
||||
# portion of the name. We always set it to "unknown".
|
||||
sysctl="sysctl -n hw.machine_arch"
|
||||
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
|
||||
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
|
||||
case "${UNAME_MACHINE_ARCH}" in
|
||||
armeb) machine=armeb-unknown ;;
|
||||
arm*) machine=arm-unknown ;;
|
||||
sh3el) machine=shl-unknown ;;
|
||||
sh3eb) machine=sh-unknown ;;
|
||||
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||||
esac
|
||||
# The Operating System including object format, if it has switched
|
||||
# to ELF recently, or will in the future.
|
||||
case "${UNAME_MACHINE_ARCH}" in
|
||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||
eval $set_cc_for_build
|
||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep __ELF__ >/dev/null
|
||||
then
|
||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||
# Return netbsd for either. FIX?
|
||||
os=netbsd
|
||||
else
|
||||
os=netbsdelf
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
os=netbsd
|
||||
;;
|
||||
esac
|
||||
# The OS release
|
||||
# Debian GNU/NetBSD machines have a different userland, and
|
||||
# thus, need a distinct triplet. However, they do not need
|
||||
# kernel version information, so it can be replaced with a
|
||||
# suitable tag, in the style of linux-gnu.
|
||||
case "${UNAME_VERSION}" in
|
||||
Debian*)
|
||||
release='-gnu'
|
||||
;;
|
||||
*)
|
||||
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
||||
;;
|
||||
esac
|
||||
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
||||
# contains redundant information, the shorter form:
|
||||
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
||||
echo "${machine}-${os}${release}"
|
||||
exit ;;
|
||||
*:OpenBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:SolidBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
macppc:MirBSD:*:*)
|
||||
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:MirBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
alpha:OSF1:*:*)
|
||||
case $UNAME_RELEASE in
|
||||
*4.0)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||
;;
|
||||
*5.*)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||
;;
|
||||
esac
|
||||
# According to Compaq, /usr/sbin/psrinfo has been available on
|
||||
# OSF/1 and Tru64 systems produced since 1995. I hope that
|
||||
# covers most systems running today. This code pipes the CPU
|
||||
# types through head -n 1, so we only detect the type of CPU 0.
|
||||
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
|
||||
case "$ALPHA_CPU_TYPE" in
|
||||
"EV4 (21064)")
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"EV4.5 (21064)")
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"LCA4 (21066/21068)")
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"EV5 (21164)")
|
||||
UNAME_MACHINE="alphaev5" ;;
|
||||
"EV5.6 (21164A)")
|
||||
UNAME_MACHINE="alphaev56" ;;
|
||||
"EV5.6 (21164PC)")
|
||||
UNAME_MACHINE="alphapca56" ;;
|
||||
"EV5.7 (21164PC)")
|
||||
UNAME_MACHINE="alphapca57" ;;
|
||||
"EV6 (21264)")
|
||||
UNAME_MACHINE="alphaev6" ;;
|
||||
"EV6.7 (21264A)")
|
||||
UNAME_MACHINE="alphaev67" ;;
|
||||
"EV6.8CB (21264C)")
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.8AL (21264B)")
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.8CX (21264D)")
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.9A (21264/EV69A)")
|
||||
UNAME_MACHINE="alphaev69" ;;
|
||||
"EV7 (21364)")
|
||||
UNAME_MACHINE="alphaev7" ;;
|
||||
"EV7.9 (21364A)")
|
||||
UNAME_MACHINE="alphaev79" ;;
|
||||
esac
|
||||
# A Pn.n version is a patched version.
|
||||
# A Vn.n version is a released version.
|
||||
# A Tn.n version is a released field test version.
|
||||
# A Xn.n version is an unreleased experimental baselevel.
|
||||
# 1.2 uses "1.2" for uname -r.
|
||||
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
exit ;;
|
||||
Alpha\ *:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# Should we change UNAME_MACHINE based on the output of uname instead
|
||||
# of the specific Alpha model?
|
||||
echo alpha-pc-interix
|
||||
exit ;;
|
||||
21064:Windows_NT:50:3)
|
||||
echo alpha-dec-winnt3.5
|
||||
exit ;;
|
||||
Amiga*:UNIX_System_V:4.0:*)
|
||||
echo m68k-unknown-sysv4
|
||||
exit ;;
|
||||
*:[Aa]miga[Oo][Ss]:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-amigaos
|
||||
exit ;;
|
||||
*:[Mm]orph[Oo][Ss]:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-morphos
|
||||
exit ;;
|
||||
*:OS/390:*:*)
|
||||
echo i370-ibm-openedition
|
||||
exit ;;
|
||||
*:z/VM:*:*)
|
||||
echo s390-ibm-zvmoe
|
||||
exit ;;
|
||||
*:OS400:*:*)
|
||||
echo powerpc-ibm-os400
|
||||
exit ;;
|
||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
arm:riscos:*:*|arm:RISCOS:*:*)
|
||||
echo arm-unknown-riscos
|
||||
exit ;;
|
||||
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
|
||||
echo hppa1.1-hitachi-hiuxmpp
|
||||
exit ;;
|
||||
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
|
||||
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
|
||||
if test "`(/bin/universe) 2>/dev/null`" = att ; then
|
||||
echo pyramid-pyramid-sysv3
|
||||
else
|
||||
echo pyramid-pyramid-bsd
|
||||
fi
|
||||
exit ;;
|
||||
NILE*:*:*:dcosx)
|
||||
echo pyramid-pyramid-svr4
|
||||
exit ;;
|
||||
DRS?6000:unix:4.0:6*)
|
||||
echo sparc-icl-nx6
|
||||
exit ;;
|
||||
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
|
||||
case `/usr/bin/uname -p` in
|
||||
sparc) echo sparc-icl-nx7; exit ;;
|
||||
esac ;;
|
||||
sun4H:SunOS:5.*:*)
|
||||
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
i86pc:SunOS:5.*:*)
|
||||
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:6*:*)
|
||||
# According to config.sub, this is the proper way to canonicalize
|
||||
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
|
||||
# it's likely to be more like Solaris than SunOS4.
|
||||
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:*:*)
|
||||
case "`/usr/bin/arch -k`" in
|
||||
Series*|S4*)
|
||||
UNAME_RELEASE=`uname -v`
|
||||
;;
|
||||
esac
|
||||
# Japanese Language versions have a version number like `4.1.3-JL'.
|
||||
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
|
||||
exit ;;
|
||||
sun3*:SunOS:*:*)
|
||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
sun*:*:4.2BSD:*)
|
||||
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
|
||||
case "`/bin/arch`" in
|
||||
sun3)
|
||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
||||
;;
|
||||
sun4)
|
||||
echo sparc-sun-sunos${UNAME_RELEASE}
|
||||
;;
|
||||
esac
|
||||
exit ;;
|
||||
aushp:SunOS:*:*)
|
||||
echo sparc-auspex-sunos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
# The situation for MiNT is a little confusing. The machine name
|
||||
# can be virtually everything (everything which is not
|
||||
# "atarist" or "atariste" at least should have a processor
|
||||
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
|
||||
# to the lowercase version "mint" (or "freemint"). Finally
|
||||
# the system name "TOS" denotes a system which is actually not
|
||||
# MiNT. But MiNT is downward compatible to TOS, so this should
|
||||
# be no problem.
|
||||
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
||||
echo m68k-milan-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
||||
echo m68k-hades-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
m68k:machten:*:*)
|
||||
echo m68k-apple-machten${UNAME_RELEASE}
|
||||
exit ;;
|
||||
powerpc:machten:*:*)
|
||||
echo powerpc-apple-machten${UNAME_RELEASE}
|
||||
exit ;;
|
||||
RISC*:Mach:*:*)
|
||||
echo mips-dec-mach_bsd4.3
|
||||
exit ;;
|
||||
RISC*:ULTRIX:*:*)
|
||||
echo mips-dec-ultrix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
VAX*:ULTRIX*:*:*)
|
||||
echo vax-dec-ultrix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
2020:CLIX:*:* | 2430:CLIX:*:*)
|
||||
echo clipper-intergraph-clix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
mips:*:*:UMIPS | mips:*:*:RISCos)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#ifdef __cplusplus
|
||||
#include <stdio.h> /* for printf() prototype */
|
||||
int main (int argc, char *argv[]) {
|
||||
#else
|
||||
int main (argc, argv) int argc; char *argv[]; {
|
||||
#endif
|
||||
#if defined (host_mips) && defined (MIPSEB)
|
||||
#if defined (SYSTYPE_SYSV)
|
||||
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_SVR4)
|
||||
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
|
||||
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
exit (-1);
|
||||
}
|
||||
EOF
|
||||
$CC_FOR_BUILD -o $dummy $dummy.c &&
|
||||
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
|
||||
SYSTEM_NAME=`$dummy $dummyarg` &&
|
||||
{ echo "$SYSTEM_NAME"; exit; }
|
||||
echo mips-mips-riscos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
Motorola:PowerMAX_OS:*:*)
|
||||
echo powerpc-motorola-powermax
|
||||
exit ;;
|
||||
Motorola:*:4.3:PL8-*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||
echo powerpc-harris-powermax
|
||||
exit ;;
|
||||
Night_Hawk:Power_UNIX:*:*)
|
||||
echo powerpc-harris-powerunix
|
||||
exit ;;
|
||||
m88k:CX/UX:7*:*)
|
||||
echo m88k-harris-cxux7
|
||||
exit ;;
|
||||
m88k:*:4*:R4*)
|
||||
echo m88k-motorola-sysv4
|
||||
exit ;;
|
||||
m88k:*:3*:R3*)
|
||||
echo m88k-motorola-sysv3
|
||||
exit ;;
|
||||
AViiON:dgux:*:*)
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
||||
then
|
||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
||||
[ ${TARGET_BINARY_INTERFACE}x = x ]
|
||||
then
|
||||
echo m88k-dg-dgux${UNAME_RELEASE}
|
||||
else
|
||||
echo m88k-dg-dguxbcs${UNAME_RELEASE}
|
||||
fi
|
||||
else
|
||||
echo i586-dg-dgux${UNAME_RELEASE}
|
||||
fi
|
||||
exit ;;
|
||||
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
||||
echo m88k-dolphin-sysv3
|
||||
exit ;;
|
||||
M88*:*:R3*:*)
|
||||
# Delta 88k system running SVR3
|
||||
echo m88k-motorola-sysv3
|
||||
exit ;;
|
||||
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
|
||||
echo m88k-tektronix-sysv3
|
||||
exit ;;
|
||||
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
|
||||
echo m68k-tektronix-bsd
|
||||
exit ;;
|
||||
*:IRIX*:*:*)
|
||||
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
|
||||
exit ;;
|
||||
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
|
||||
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
|
||||
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
|
||||
i*86:AIX:*:*)
|
||||
echo i386-ibm-aix
|
||||
exit ;;
|
||||
ia64:AIX:*:*)
|
||||
if [ -x /usr/bin/oslevel ] ; then
|
||||
IBM_REV=`/usr/bin/oslevel`
|
||||
else
|
||||
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
|
||||
fi
|
||||
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
|
||||
exit ;;
|
||||
*:AIX:2:3)
|
||||
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#include <sys/systemcfg.h>
|
||||
|
||||
main()
|
||||
{
|
||||
if (!__power_pc())
|
||||
exit(1);
|
||||
puts("powerpc-ibm-aix3.2.5");
|
||||
exit(0);
|
||||
}
|
||||
EOF
|
||||
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
|
||||
then
|
||||
echo "$SYSTEM_NAME"
|
||||
else
|
||||
echo rs6000-ibm-aix3.2.5
|
||||
fi
|
||||
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||
echo rs6000-ibm-aix3.2.4
|
||||
else
|
||||
echo rs6000-ibm-aix3.2
|
||||
fi
|
||||
exit ;;
|
||||
*:AIX:*:[45])
|
||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||
IBM_ARCH=rs6000
|
||||
else
|
||||
IBM_ARCH=powerpc
|
||||
fi
|
||||
if [ -x /usr/bin/oslevel ] ; then
|
||||
IBM_REV=`/usr/bin/oslevel`
|
||||
else
|
||||
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
|
||||
fi
|
||||
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
|
||||
exit ;;
|
||||
*:AIX:*:*)
|
||||
echo rs6000-ibm-aix
|
||||
exit ;;
|
||||
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
|
||||
echo romp-ibm-bsd4.4
|
||||
exit ;;
|
||||
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
|
||||
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
|
||||
exit ;; # report: romp-ibm BSD 4.3
|
||||
*:BOSX:*:*)
|
||||
echo rs6000-bull-bosx
|
||||
exit ;;
|
||||
DPX/2?00:B.O.S.:*:*)
|
||||
echo m68k-bull-sysv3
|
||||
exit ;;
|
||||
9000/[34]??:4.3bsd:1.*:*)
|
||||
echo m68k-hp-bsd
|
||||
exit ;;
|
||||
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
|
||||
echo m68k-hp-bsd4.4
|
||||
exit ;;
|
||||
9000/[34678]??:HP-UX:*:*)
|
||||
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
||||
case "${UNAME_MACHINE}" in
|
||||
9000/31? ) HP_ARCH=m68000 ;;
|
||||
9000/[34]?? ) HP_ARCH=m68k ;;
|
||||
9000/[678][0-9][0-9])
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||
532) # CPU_PA_RISC2_0
|
||||
case "${sc_kernel_bits}" in
|
||||
32) HP_ARCH="hppa2.0n" ;;
|
||||
64) HP_ARCH="hppa2.0w" ;;
|
||||
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
if [ "${HP_ARCH}" = "" ]; then
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
|
||||
#define _HPUX_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main ()
|
||||
{
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
long bits = sysconf(_SC_KERNEL_BITS);
|
||||
#endif
|
||||
long cpu = sysconf (_SC_CPU_VERSION);
|
||||
|
||||
switch (cpu)
|
||||
{
|
||||
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
||||
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
||||
case CPU_PA_RISC2_0:
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
switch (bits)
|
||||
{
|
||||
case 64: puts ("hppa2.0w"); break;
|
||||
case 32: puts ("hppa2.0n"); break;
|
||||
default: puts ("hppa2.0"); break;
|
||||
} break;
|
||||
#else /* !defined(_SC_KERNEL_BITS) */
|
||||
puts ("hppa2.0"); break;
|
||||
#endif
|
||||
default: puts ("hppa1.0"); break;
|
||||
}
|
||||
exit (0);
|
||||
}
|
||||
EOF
|
||||
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
||||
test -z "$HP_ARCH" && HP_ARCH=hppa
|
||||
fi ;;
|
||||
esac
|
||||
if [ ${HP_ARCH} = "hppa2.0w" ]
|
||||
then
|
||||
eval $set_cc_for_build
|
||||
|
||||
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
|
||||
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
|
||||
# generating 64-bit code. GNU and HP use different nomenclature:
|
||||
#
|
||||
# $ CC_FOR_BUILD=cc ./config.guess
|
||||
# => hppa2.0w-hp-hpux11.23
|
||||
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
|
||||
# => hppa64-hp-hpux11.23
|
||||
|
||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||
grep __LP64__ >/dev/null
|
||||
then
|
||||
HP_ARCH="hppa2.0w"
|
||||
else
|
||||
HP_ARCH="hppa64"
|
||||
fi
|
||||
fi
|
||||
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
||||
exit ;;
|
||||
ia64:HP-UX:*:*)
|
||||
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
||||
echo ia64-hp-hpux${HPUX_REV}
|
||||
exit ;;
|
||||
3050*:HI-UX:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#include <unistd.h>
|
||||
int
|
||||
main ()
|
||||
{
|
||||
long cpu = sysconf (_SC_CPU_VERSION);
|
||||
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
|
||||
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
|
||||
results, however. */
|
||||
if (CPU_IS_PA_RISC (cpu))
|
||||
{
|
||||
switch (cpu)
|
||||
{
|
||||
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
|
||||
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
|
||||
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
|
||||
default: puts ("hppa-hitachi-hiuxwe2"); break;
|
||||
}
|
||||
}
|
||||
else if (CPU_IS_HP_MC68K (cpu))
|
||||
puts ("m68k-hitachi-hiuxwe2");
|
||||
else puts ("unknown-hitachi-hiuxwe2");
|
||||
exit (0);
|
||||
}
|
||||
EOF
|
||||
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
|
||||
{ echo "$SYSTEM_NAME"; exit; }
|
||||
echo unknown-hitachi-hiuxwe2
|
||||
exit ;;
|
||||
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
|
||||
echo hppa1.1-hp-bsd
|
||||
exit ;;
|
||||
9000/8??:4.3bsd:*:*)
|
||||
echo hppa1.0-hp-bsd
|
||||
exit ;;
|
||||
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
|
||||
echo hppa1.0-hp-mpeix
|
||||
exit ;;
|
||||
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
|
||||
echo hppa1.1-hp-osf
|
||||
exit ;;
|
||||
hp8??:OSF1:*:*)
|
||||
echo hppa1.0-hp-osf
|
||||
exit ;;
|
||||
i*86:OSF1:*:*)
|
||||
if [ -x /usr/sbin/sysversion ] ; then
|
||||
echo ${UNAME_MACHINE}-unknown-osf1mk
|
||||
else
|
||||
echo ${UNAME_MACHINE}-unknown-osf1
|
||||
fi
|
||||
exit ;;
|
||||
parisc*:Lites*:*:*)
|
||||
echo hppa1.1-hp-lites
|
||||
exit ;;
|
||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||
echo c1-convex-bsd
|
||||
exit ;;
|
||||
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
||||
if getsysinfo -f scalar_acc
|
||||
then echo c32-convex-bsd
|
||||
else echo c2-convex-bsd
|
||||
fi
|
||||
exit ;;
|
||||
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
||||
echo c34-convex-bsd
|
||||
exit ;;
|
||||
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
||||
echo c38-convex-bsd
|
||||
exit ;;
|
||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||
echo c4-convex-bsd
|
||||
exit ;;
|
||||
CRAY*Y-MP:*:*:*)
|
||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
CRAY*[A-Z]90:*:*:*)
|
||||
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
|
||||
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
|
||||
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
|
||||
-e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
CRAY*TS:*:*:*)
|
||||
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
CRAY*T3E:*:*:*)
|
||||
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
CRAY*SV1:*:*:*)
|
||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
*:UNICOS/mp:*:*)
|
||||
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
5000:UNIX_System_V:4.*:*)
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||
exit ;;
|
||||
sparc*:BSD/OS:*:*)
|
||||
echo sparc-unknown-bsdi${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:BSD/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:FreeBSD:*:*)
|
||||
case ${UNAME_MACHINE} in
|
||||
pc98)
|
||||
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
*)
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
esac
|
||||
exit ;;
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
exit ;;
|
||||
i*:MINGW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-mingw32
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
exit ;;
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
x86:Interix*:[345]*)
|
||||
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
|
||||
exit ;;
|
||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||
echo i${UNAME_MACHINE}-pc-mks
|
||||
exit ;;
|
||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||
# UNAME_MACHINE based on the output of uname instead of i386?
|
||||
echo i586-pc-interix
|
||||
exit ;;
|
||||
i*:UWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-uwin
|
||||
exit ;;
|
||||
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
|
||||
echo x86_64-unknown-cygwin
|
||||
exit ;;
|
||||
p*:CYGWIN*:*)
|
||||
echo powerpcle-unknown-cygwin
|
||||
exit ;;
|
||||
prep*:SunOS:5.*:*)
|
||||
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
*:GNU:*:*)
|
||||
# the GNU system
|
||||
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
|
||||
exit ;;
|
||||
*:GNU/*:*:*)
|
||||
# other systems with GNU libc and userland
|
||||
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
|
||||
exit ;;
|
||||
i*86:Minix:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-minix
|
||||
exit ;;
|
||||
arm*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
cris:Linux:*:*)
|
||||
echo cris-axis-linux-gnu
|
||||
exit ;;
|
||||
crisv32:Linux:*:*)
|
||||
echo crisv32-axis-linux-gnu
|
||||
exit ;;
|
||||
frv:Linux:*:*)
|
||||
echo frv-unknown-linux-gnu
|
||||
exit ;;
|
||||
ia64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
m32r*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
m68*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
mips:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips
|
||||
#undef mipsel
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mipsel
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
mips64:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips64
|
||||
#undef mips64el
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mips64el
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips64
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
or32:Linux:*:*)
|
||||
echo or32-unknown-linux-gnu
|
||||
exit ;;
|
||||
ppc:Linux:*:*)
|
||||
echo powerpc-unknown-linux-gnu
|
||||
exit ;;
|
||||
ppc64:Linux:*:*)
|
||||
echo powerpc64-unknown-linux-gnu
|
||||
exit ;;
|
||||
alpha:Linux:*:*)
|
||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
exit ;;
|
||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||
# Look for CPU level
|
||||
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||
PA7*) echo hppa1.1-unknown-linux-gnu ;;
|
||||
PA8*) echo hppa2.0-unknown-linux-gnu ;;
|
||||
*) echo hppa-unknown-linux-gnu ;;
|
||||
esac
|
||||
exit ;;
|
||||
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||
echo hppa64-unknown-linux-gnu
|
||||
exit ;;
|
||||
s390:Linux:*:* | s390x:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-ibm-linux
|
||||
exit ;;
|
||||
sh64*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
sh*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
vax:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
||||
exit ;;
|
||||
x86_64:Linux:*:*)
|
||||
echo x86_64-unknown-linux-gnu
|
||||
exit ;;
|
||||
i*86:Linux:*:*)
|
||||
# The BFD linker knows what the default object file format is, so
|
||||
# first see if it will tell us. cd to the root directory to prevent
|
||||
# problems with other programs or directories called `ld' in the path.
|
||||
# Set LC_ALL=C to ensure ld outputs messages in English.
|
||||
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
|
||||
| sed -ne '/supported targets:/!d
|
||||
s/[ ][ ]*/ /g
|
||||
s/.*supported targets: *//
|
||||
s/ .*//
|
||||
p'`
|
||||
case "$ld_supported_targets" in
|
||||
elf32-i386)
|
||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||
;;
|
||||
a.out-i386-linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit ;;
|
||||
coff-i386)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
exit ;;
|
||||