                          RWhois V-1.0B9


This is a beta release of the referral whois (rwhois) server developed
by Network Solutions Directory Services.  The documentation related to
RWhois is currently being refined and will continue to be updated to
reflect future enhancements to RWhois. Additional documentation will
be available throughout the evolution of RWhois, and as RWhois is
deployed on a larger scale.

This server implements an extended set of commands of the whois server
which are mentioned in the RWhois RFC (RFC 1714).

This distribution is considered BETA software to test the concepts
discussed in the RFC.  Bug reports/fixes should be sent to the rwhois
mailing list (rwhois@internic.net).

COMPILATION & INSTALLATION INSTRUCTIONS

The description of the installation procedure assumes a working
knowledge of UNIX systems and does not explain basic system
administration in great detail.  However, examples have been provided
when appropriate.

A summary of the build process is:

./configure
make
make install
make sample-data-install
make install-chroot
fix chroot environment
setup rwhois environment

INSTALLATION:

After unpacking the distribution (which you have presumably done,
since you are reading this) the following directories get created:

  client 
  mkdb
  sample.data 
  server 
  tools
  doc

As of RWhois release 1.0B9, the software was moved to the GNU autoconf
configuration package.  This will, in the long run, make RWhois easier
to install, maintain, and port.

1) Run the 'configure' script.  This will test for various system
   dependancies and create the Makefile(s) from the Makefile.in files.

   ./configure --help 
   will list the available command line options to configure.  The
   important ones are outlined here:

   --prefix=<install-dir>.

   the configure script will try to guess where to install the rwhois
   package.  If you want to override this, use the --prefix option.
   For example,
 
   ./configure --prefix=/usr/local

   will cause the rwhois binaries to be installed in /usr/local/etc
   and /usr/local/bin.  Currently, the sample data is NOT copied to
   this location.  Instead, it is always configured as part of the
   build tree.

   --disable-register.

   Some people are nervous about allowing others to affect their
   database, so this option was added to disable the '-register'
   directive.

   'configure' at the top level will also configure the client
   software, which, since it is designed to be distributed separately,
   has its own configure script.

2) Run 'make'.  This will build both the server and the client software.

3) Run 'make install'.

4) Run 'make sample-data-install' if you wish to use the supplied
   sample data.  This will minimally configure the sample data's
   rwhois.conf file, and attempt to index the sample data.

5) Run 'make install-chroot' to run the script that will attempt to
   generate a chroot environment for you.  The rwhois server attempts
   to chroot to its 'root-dir' (or 'default-dir') by default.
   Chrooting is generally recommended, but especially recommended if
   the -register option is enabled.

6) Fix chroot environment.  The 'make install-chroot' command is
   unable to perfectly set up a chrooted environment for every
   system.  Such an environment is both OS and installation
   dependant.  Because of this, the chroot environment won't be
   completely set up.  Here are the overall requirements for the
   rwhois chroot environment.
	
   A) Make sure that there are dev, etc, tmp, and usr/lib directories
      off of RWHOIS_ROOT_DIR (the prefix directory).

   B) Make sure the necessary binaries exist in their expected
      location.  rwhoisd uses the following extra binaries:
    
        sh
        sort
        rwhoisparse (part of the rwhois distribution)
        rmkdbindex  (part of the rwhois distribution)
	
		plus any binaries used for extented directives (/bin/date for
		example).
       
      rwhoisparse, rmkdbindex, and the extended directive binaries
      should be placed in RWHOIS_ROOT_DIR/bin or whatever the
      rwhois.conf file sets as the 'bin-path' (or 'bin-loc').

      sh should be where the exec(2) system call needs it (on solaris
      this is usr/bin).

	  sort should be put somewhere in your PATH (usually bin or
	  usr/bin).
 
   C) Make sure any shared libraries needed by any of the executables
      is accessible in RWHOIS_ROOT_DIR/usr/lib, or
      RWHOIS_ROOT_DIR/usr/local/lib, etc.  On Sun operating systems,
      you can determine the what shared libraries an executable uses
      with the 'ldd' command.  Note that on Sun operating systems,
      there is a /usr/lib/ld.so file that must be present for shared
      libraries to work at all.

   D) If you use /etc/resolv.conf to resolve hostnames, copy
      /etc/resolv.conf to RWHOIS_ROOT_DIR.

   E) Create RWHOIS_ROOT_DIR/dev/zero.  First you must discover the
      major and minor device numbers of /dev/zero on your system:

	  On SunOS,

      % ls -l /dev/zero 
      crw-rw-rw-  1 root       3,  12 Aug 11  1995 /dev/zero
	
      which indicates that the major number is 3, the minor number, 12.

	  Then use mknod to create the device file (you must be root to do
	  this). (/usr/rwhois.root is RWHOIS_ROOT_DIR in this example)

	  % cd /usr/rwhois.root/dev
      % mknod zero c 3 12

   F) You should be able to test this chroot environment by (as root)
      using the chroot command and running the shell, and from there,
      attempting to run rwhoisd and the other executables.

	  % chroot /usr/local/rwhois /usr/bin/sh
	  % /etc/rwhoisd -s

7) Setup RWhois environment.  The sample.data directory is more or
   less set up right out of the box.  However, if you configured with
   the --prefix option, the sample.data directory will not necessarily
   have all of the correct binaries (of course, if you are not
   chrooting, the binaries can be anywhere in your $PATH).

   To create a real rwhois server installation, which can be delegated
   to, you should create your own setup environment.  Most of the
   files can be copied from the sample.data directory, but make sure
   that you remove all of the sample data and replace it with real
   data of your own.  See the operations guide (operations-guide.txt
   in this directory) for more information.

That should do it.





