Building and Installing Slony-I
------------------------------------

$Id: INSTALL,v 1.6 2005/06/16 19:31:39 cbbrowne Exp $

Slony currently supports PostgreSQL 7.3.3 (and higher),  7.4.x, and 8.x.

Important Configuration parameters
====================================

Slony normally needs to be built and installed by the PostgreSQL Unix
user.  The installation target must be identical to the existing
PostgreSQL installation particularly in view of the fact that several
Slony-I components represent libraries and SQL scripts that need to be
in the PostgreSQL lib and share directories.

On certain platforms (AIX and Solaris are known to need this),
PostgreSQL must be configured with the option --enable-thread-safety
to provide correct client libraries.

The location of the PostgreSQL source-tree was specified with the
configure option --with-pgsourcetree=<dir>. As of 1.1, this configure
option no longer exists, instead, locations of database components are
specified individually, such as:

--with-pgconfigdir=<dir>        Location of the PostgreSQL pg_config program.
--with-pgbindir=<dir>           Location of the PostgreSQL postmaster.
--with-pgincludedir=<dir>       Location of the PostgreSQL headers.
--with-pgincludeserverdir=<dir> Location of the PostgreSQL server headers.
--with-pglibdir=<dir>           Location of the PostgreSQL libs.
--with-pgpkglibdir=<dir>        Location of the PostgreSQL pkglibs. E.g. plpgsql.so
--with-pgsharedir=<dir>         Location of the PostgreSQL share dir. E.g. postgresql.conf.sample

PostgreSQL version 8 installs the server header #include files by
default; with version 7.4 and earlier, you need to make sure that the
build installation included doing "make install-all-headers",
otherwise the server headers will not be installed, and Slony-I will
be unable to compile.

After running configure, you may wish to review the file
"Makefile.global" to ensure it is looking in the right places for all of
the components. If you failed to specify some of those locations, you
may discover that your system fills in some surprising values...

Files Installed
==================

The main list of files installed within the PostgreSQL instance is:

    * $bindir/slon
    * $bindir/slonik
    * $libdir/slony1_funcs$(DLSUFFIX)
    * $libdir/xxid($DLSUFFIX)
    * $datadir/slony1_base.sql
    * $datadir/slony1_base.v73.sql
    * $datadir/slony1_base.v74.sql
    * $datadir/slony1_funcs.sql
    * $datadir/slony1_funcs.v73.sql
    * $datadir/slony1_funcs.v74.sql
    * $datadir/xxid.v73.sql 

The .sql files are not fully substituted yet.  And yes, both the 7.3
and the 7.4 files get installed on a system, irrespective of its
version.  The slonik admin utility does namespace/cluster
substitutions within the files, and loads them files when creating
replication nodes.  At that point in time, the database being
initialized may be remote and may run a different version of
PostgreSQL than that of the local host.

At the very least, the two shared objects installed in the $libdir
directory must be installed onto every computer that is supposed to
become a Slony node. (Other components may be able to be loaded
remotely from other hosts.)

altperl Administration tools
================================

If you wish to have the "altperl" administration tools available, you
need to specify the "--with-perltools=somewhere" option.

Building Documentation - Admin Guide
========================================

There is an extensive "Administrator's Guide" containing what wisdom
has been discovered and written down about the care and feeding of
Slony-I.

This is only built if you specify "--with-docs"

Note that you may have difficulty building the documentation on Red
Hat-based systems due to NAMELEN being set way too low.  Havoc
Pennington opened a bug on this back in mid-2001, back in the days of
Red Hat 7.1; Red Hat Software has assigned the bug, but there does not
appear to have been much progress since then.  The second URL below
indicates that there is intent to address the issue by bumping up the
value of NAMELEN in some future release of Red Hat Enterprise Linux,
but that won't likely help you in 2005.  Fedora Core 4 should have the
issue addressed somewhat sooner.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=36058
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=159382 (For RHEL)

A pre-built copy of the "admin guide" should be readily available,
either in the form of a separate tarball nearby, or in the directory
doc/adminguide/prebuilt

Building Slony-I for use with Packaged PostgreSQL Binaries
============================================================

If you are building Slony-I against a prepackaged binary install of
PostgreSQL as provided in RPM or .deb packages, you very likely need
to install an additional "postgresql-dev" package which contains the
PostgreSQL #include files.

If you are running a pre-8.0 version of PostgreSQL, and the packagers
did not use "make install-all-headers" to install server headers, you
may find yourself forced to throw the prepackaged version overboard and
build PostgreSQL yourself.

If you are looking for what software dependancies there are, it may be
useful to look at the files debian/control or redhat/slony-I.spec to
see what dependancies they point to.
