INSTALL file for Pidentd 3.0

Copyright (c) 1997 Peter Eriksson <pen@lysator.liu.se>



Basic requirements:

	A working ISO (ANSI) C compiler.

	A supported operating system.


See below for OS-specific information.

In principle:

	1. Run "./configure ; make"

	2. Run "make install" (or manually install the files)

	3. Copy (and perhaps modify) the config file (pidentd.conf) to
		the /etc directory.

	4. Start the daemon (see below for the alternatives on how
  		to do this).

If step #1 (configure) complains about not being able to find any
usable threads library, see the "--without-threads" option below.



* A couple of options to "configure":

	--without-threads

		Build the daemon without threads support. This
		is not recommended, but if you do - make sure
		you start the daemon from /etc/inetd.conf with
		the "nowait" option.

	--with-threads=[LIB]

		Where LIB may be one of:

			yes 	Autoselect (the default)
			ui	Unix International (Solaris) threads
			posix	Posix threads
			dce	DCE/CMA threads (Posix draft 4)




* DES encryption

The configure script will try to locate a MIT compatible DES library
and will automatically add support for it if found. One good free
MIT DES compatible library is Eric Youngs implementation, which can
be FTP'd from a number of places around the world. I've tested Pidentd
with version 4.01 of it. The primary FTP site for this library is:

	ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-x.xx.tar.gz



* Starting the daemon

The daemon will try to autodetect how it was invoked (as a standalone
daemon, from inetd.conf as either a "nowait" or "wait" service or from
/etc/inittab).

*Please* note that not all implementations of Inetd support the "wait" mode
for "stream tcp" services. In that case start in as a standalone daemon
or from /etc/inittab instead.

The one situation where it will misunderstand how it should start is
if someone uses rsh to a remote machine to start it, like this:

	rsh machine /usr/sbin/pidentd

(It will confuse that mode (standalone, where it should fork and
bind by itself to port 113) with Inetd-nowait since in both cases
file descriptor 0 will be a connected network socket).

If the autodetection fails, then it is possible to override it with
command line switches:

	-i	Inetd, nowait mode
	-w	Inetd, wait mode
	-I	/etc/inittab mode
	-b	Standalone mode

The daemon should _always_ be started as "root" (it will switch
to user "nobody" as soon as it has opened all necessary kernel
device files).




* Some information for SunOS 4 users:

A more-or-less usable Pthreads library for SunOS 4.1 is Proven's, that
can be FTP'd from:

	ftp://sipb.mit.edu/pub/pthreads/

It won't support YP username lookups though, so you'll be limited
to uids (or have everything in the local /etc/passwd file).

You'll need to modify the installed sys/signal.h file to include
the struct sigstack definition (check the /usr/include/sys/signal.h
file for the struct definition).

Set the "CC" environment variable to the "pgcc" wrapper script
and then run "./configure; make".




* Some information for Silicon Graphics IRIX users:

The same binary *may* be used over a range of different OS versions
if you are lucky (but there may be problems with different IRIXes
having different levels of threads support).

See the file "doc/sgi_irix.txt" for more information. 



					- Peter Eriksson <pen@lysator.liu.se>