Changes with release 6.0 (May 2007)

- compile and runtime selection of uid to 'setuid' to
- mapping table is stored in a file and can be restored on restart
- If a privilege program registers a non-privileged port, and
  non-privileged program can no-longer unregister it.
- add man pages
- allow portmap to bind to a local address only
- support 'chroot'
- various cleanups and minor bug fixes


Changes with release 5 (July 1996)

Unprivileged clients can no longer unset or set the nfsd port.

The really desperate can force all set/unset requests to arrive via the
loopback interface and block set/unset requests from outside. Besides
changes to the portmapper, this requires changes to system libraries,
to statically linked rpc servers, to the kernel configuration (no IP
source routing), and perhaps even to system startup procedures. Not for
the faint of hart.

Changes with release 4 (May 1996)

The old code could not handle more than 16 interface addresses per
host. With virtual hosting, a system can have more than 16 addresses.
We now allocate memory dynamically.

Support for AIX 4.1. Just like 4.4 BSD, it has variable-length sockaddr
structures. Build with -DHAS_SA_LEN.

Support for NextStep 3.2. This is a pre-posix system without setsid().

Support for Digital UNIX on the Alpha. On these machines, long and int
are not interchangeable. 
