
SourceForge EPP RTK C++
Copyright (C) 2001-2003 The Global Name Registry, Limited


What is this?
-------------

This is the C++ port of the EPP RTK. It is actually a customized release
of the C++ EPP RTK from the epp-rtk project on SourceForge.   It follows
the 07/05 specification of the proposed EPP-standard, so it is certified
to work with the .org registry.
                                                                                                                   
Only the source code is included here.  It was developed using RedHat 9
GNU/Linux with gcc 3.2.2.  In order to compile the toolkit and the
testprograms, you need to have the following installed:

    * A C++ compiler, preferrably gcc.
    * GNU build tools (make, etc...)
    * domtools 1.0.6  (Available from http://sourceforge.net/projects/epp-rtk/)
    * OpenSSL 0.9.6*  (Available from http://www.openssl.org/ )
          NB: Versions 0.9.7* are not compatible -- the RTK was tested
              and built with release 0.9.6j
    * Xerces-C 1.7.0 (Available from
                     http://xml.apache.org/dist/xerces-c/stable/archives/ )
          NB: Versions 2.* are not compatible because the xerces api has changed.
              Versions lower than 1.7.0 might work, but this has not been tested.


Very brief overview:
--------------------

src/data/*
   - all structs and data-elements from the IDL
   - common XML-functions (epp_*XMLbase.*)
   
src/ssl/*
   - classes used for ssl-handling
  
src/transport/*
   - classes for different types of transport
   
src/epp_*
   - "Action"-classes as defined in the IDL
   
src/main_* src/testTools.*
   - Small testprograms to test each action-class


In the files main_hello.cc, main_login.cc, and testTools.cc, you find
detailed comments in the code describing usage of the toolkit.

For information about command line parameters (like server name/port)
for the test programs, please run e.g., "./hello -?" after compile.


Building instructions:
----------------------
                                                                                                                   
1) Make sure OpenSSL, Xerces-C, and domtools are installed.
                                                                                                                   
2) Run ./configure from this directory.  This will search for required
   dependencies in your system.  Configure will look for OpenSSL headers
   first in /usr/local/openssl/include, then in standard header locations
   such as /usr/include.  Configure will also look for Xerces-C headers
   first in /usr/local/xerces/include, then in standard locations. Domtools
   is assumed to be in /usr/local/domtools unless told otherwise.
                                                                                                                   
   To tell configure to look in different places for OpenSSL, Xerces-C, and
   domtools use these:
                                                                                                                   
     ./configure --with-xerces-include=/path/to/xerces/include \
                 --with-xerces-lib=/the/xerces/lib/file.so \
                 --with-openssl=/path/to/openssl \
                 --with-domtools=/path/to/domtools
                                                                                                                   
   Xerces has two configure options because the naming of the xerces
   library (.so) sometimes includes the release number.  Just using
   a "path to xerces" value would not have been sufficient.
                                                                                                                   
   Configure also accepts a "--enable-rtk-debug" flag to turn on various
   debug messages in the RTK (mostly showing the XML to and from the server).
                                                                                                                   
3) Run "make".  This will build the RTK libraries in the following locations:
                                                                                                                   
      src/data/libdata.a
      src/ssl/libnpssl.a
      src/transport/libtransport.a
      src/librtk.a
                                                                                                                   
4) Then run "make install".  This will install the RTK headers in PREFIX/include/epp-rtk-cpp,
   were "PREFIX" is "/usr/local/epp-rtk-cpp" by default (use configure's --prefix=/another/path to
   change this).  The libraries are installed in PREFIX/lib.
                                                                                                                   

Notes about building on specific platforms:
-------------------------------------------
                                                                                                                   
RedHat 9
                                                                                                                   
   This distribution of GNU/Linux comes with OpenSSL 0.9.7a, which is incompatible
   with the C++ EPP RTK.  Installing 0.9.6* (I used "j") in /usr/local/openssl solved
   the compile problems.  Xerces had to be compiled from scratch because the binaries
   provided at the link above are built with gcc 2.x.

RedHat 7.3

   Issues exist with the stock compiler provided in this distribution.  It is
   recommended to download gcc 2.95.x from GNU and compiling it from scratch
   and installing it -- both twice to ensure a clean build of the compiler.
   Xerces and OpenSSL will likely also have to be built from scratch on this
   platform.  Preliminary tests though have shown that with all this built
   from scratch, the RTK still can't handle exceptions being thrown.  If anyone
   has any info to offer in this area, we'd be glad to include some notes here.

Solaris 8
                                                                                                                   
   The Solaris machine I was using had g++ 3.2 installed.  The Xerces-C Solaris binaries
   from the site above did not seem to want to link.  So I complied Xerces 1.7.0 from
   scratch and all worked fine.
                                                                                                                   

2002.03.15: epprtk@gnr.com
