# CVS

The following applies for the entire Courier source code distribution, and sub-modules (Courier-IMAP, sqwebmail, maildrop).

In order to build from the CVS repository, you must the following additional software installed:

1. `autoconf`.
2. `automake`.
3. `libtool`
4. `gettext`
5. `gmake`, of course.
6. sysconftool - this is an extra autoconf macro used by Courier's `configure.in`
7. The following tools that convert Docbook SGML to HTML and man page documentation: OpenJade, docbook DSSL stylesheets, and `sgml-common`, `docbook` 3.0 and 3.1 DTDs, and `docbook-utils`.

These additional dependencies are only required if building from CVS, and not the packaged tarballs.

The source code can be checked out with the following commands:

        CVSROOT=:pserver:anonymous@cvs.courier.sourceforge.net:/cvsroot/courier
        export CVSROOT
        cvs login

Press ENTER when asked for a password (blank password).

> `cvs -z3 checkout -r courier-latest courier` - get the entire Courier mail server source code, or:

> `cvs -z3 checkout -r courier-imap-latest courier-imap` - get just the standalone IMAP server source code, or:

> `cvs -z3 checkout -r sqwebmail-latest sqwebmail` - get just the standalone webmail server source code, or:

> `cvs -z3 checkout -r maildrop-latest maildrop` - get just the standalone version of Courier's mail filter's source code.

NOTE: Automatically-generated `configure` and `Makefile`, `libtool`, and `sysconftool` scripts are NOT stored in the repository, and you must build them yourself. Fortunately, it's very easy to do this. Simply run the following command after checking out any one of these modules:

        sh autobloat

The `autobloat` script automatically runs `automake`, `autoconf`, `libtool`, `sysconftool`, from the current directory.

NOTE: The "courier" module is the entire mail server. The other modules extract selected portions, with a different top-level makefile that builds a standalone package. You only need to obtain the `courier` module, to get the source code for Courier. See Introduction for more information.

NOTE: the `HEAD`s of each module contain the latest development versions, which may not be very stable. Use the tags specified above to obtain the latest "semi" stable release. Usually the "latest" tags will match the source code in the most recent tarball, but they may include some additional patches for the next release.