
ISC OpenReg Installation Instructions
=====================================

Requirements
============

Most modern, Unix-compatible platforms should be able to run
the ISC OpenReg software, with few, if any changes.  The system
software was simultaneously developed on computers running
the NetBSD, BSD/OS and Slackware versions of Unix.

The following prerequisites exist for building the ISC OpenReg software:

	A modern make command.  The NetBSD make program, as well as
	GNU make are known to work.

	An ANSI C compiler.  Currently there is a single C program,
	which implements the high-performance message passing
	component of the OpenReg system.  The software currently
	places no unusual demands on the the compiler, so any modern,
	ANSI C compiler should work.

	Perl 5.6.1.  Newer versions of perl, such as Perl 5.8.0
	are suspected to work, but this has not been tested.  Older
	versions of perl, such as 5.5003, are known NOT to work.

	Gzip is needed to unpack the distribution.  If you are
	reading this file, you probably figured that out already.

In addition to the software actually needed to compile and install
the ISC OpenReg software, there is a substantial collection of
third-party, but essential, software packages that are required.
A detailed list of these software packages is located in the
"REQUIRED-SOFTWARE" file.  Please read that file and follow the
instructions to install any packages that your system may be missing.

If there is a README.xxx file that where the "xxx" matches your
system software, you should also read that file.  It should have
notes about specific software needs for that system, or address
alternative packaging methods which might be available for that
system.

Building the ISC OpenReg Software
=================================

1) Run configure.
   Without any options, the configure script will attempt to install
   the OpenReg software in /usr/local/openreg, and write log files
   into /var/log/openreg.

   To specify a directory other than /usr/local/openreg, use the
   --prefix=/path/to/location flag to configure.  For example, to
   install into /opt/openreg, issue the following command:

      # ./configure --prefix=/opt/openreg

   To specify a log directory other than /var/log/openreg, use the
   --enable-logdir=/path/to/logdir flag to configure.  For example,
   to have the logs go into /var/log/mylogs, issue the following
   command:

      # ./configure ----enable-logdir=/var/log/mylogs

   These two flags may be combined.

2) Run make (or gmake).

   # make

3) Run make install (or gmake install).

   # make install

4) Create the PostgreSQL database(s):

   # cd db
   # make createdb

   Any errors will printed.  Normal "NOTICE" messages from PostgreSQL
   are suppressed.  There should be no errors.  The output from a
   successful creation should resemble this:

   # gmake createdb
   CREATE DATABASE
   LOADING srs.sql
   LOADING srs-mappings.sql
   LOADING replication.sql
   LOADING sample_ote.sql
   #

5) Familiarize yourself with the expected interactions between the
   software components of the release.

   There is some HTML based documentation in the doc/html directory
   of the release.  The base document is in the file index.html.
   Ensure that JavaScript is enabled in your browser.  There is
   popup based help that describes each software component of the
   system, along with a basic description of what actions the
   component performs.

6) Start the various OpenReg daemons.

   For this release, it is recommended that the end users create
   several windows on their machines, and start each daemon in a
   separate window.  If a daemon does fail during operation, this
   makes it easy to determine which daemon has failed, and why it
   failed.

   The various OpenReg daemons gather a small amount of configuration
   information from environmental variables.  The information
   is just enough to figure out how to talk to the msgbus.  There are
   two helper shell scripts, bin/env-setup.sh and bin/env-setup.csh,
   that can be sourced by your shell, to set and export these environment
   variables.

   In general, the msgq daemon will always be the first daemon that
   needs to be started.  (This assumes that PostgreSQL is already
   running.)

      # cd /usr/local/openreg
      # sbin/msgq

   The second daemon that should be started is probably the
   log-monitor program.  This should probably be started in its
   own window.

      # cd /usr/local/openreg
      # sbin/log-monitor

   The third daemon that should be started is the stats-monitor
   program.  This program should probably be started in its own
   window.

      # cd /usr/local/openreg
      # sbin/stats-monitor

   The fourth program that should be started is the xaction program.
   This program should probably be started in its own window.  This
   program takes a --port argument to allow binding to a port other
   than the default whois port of 43.  This allows the program to
   run by a non-root user.

      # cd /usr/local/openreg
      # sbin/whois

   (Example for a non-root user:)

      # cd /usr/local/openreg
      # sbin/whois --port=1043

   The fifth program that should be started is the xaction program.
   This program should probably be started in its own window.

      # cd /usr/local/openreg
      # sbin/xaction

   The sixth program that should be started is the epp-frontend program.
   This program should probably be started in its own window.

      # cd /usr/local/openreg
      # sbin/epp-frontend

   At this point, you should have an operational OpenReg system, suitable
   for use as a test server.

7) Test the system.

   You can perform several partial tests of your OpenReg installation
   by running some of the programs created in the "test" directory.
   These tools are not installed with the production system software,
   but are useful for verifying basic system operation.

   The file doc/TESTING has some notes on the available testing
   tools, as well as some sample test output.

   The primary test suite that has been developed for the OpenReg
   software distribution is located in the test/epp directory.
   The README file in that directory describes the operation of
   the bin/epp-from-file EPP client program, which reads XML requests
   from a file and plays them against an EPP server, over a network
   connection.  This program should be useful for testing any EPP
   server, not just the OpenReg EPP server.

   Running "make test" (or "gmake test", depending on your system)
   in the test/epp directory should run all the sample tests in
   that directory against the EPP server you are running.  The full
   log for each test is located in the test/epp/logs directory.
   The file TESTCASES in the test/epp directory has a brief
   description of what tests each sample file is constructed to
   perform.


