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. Copy the binary (src/pidentd) to wherever you like.

	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 Internation (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.

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

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

(There is another Pthreads library available from fsu.edu, but it
only implements draft 6 of the Pthreads standard so it's not quite
compatible with the current version of Pidentd.)



* 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. 



... the rest of this file has yet to be written. Sorry :-)
(Send me an email if there is something you are wondering about)


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