# Building Courier mail server RPMs

You can build binary Courier mail server RPMs directly from the tarball, using RPM version 4.0.2 or higher. For example:

    rpmbuild -ta courier-version.tar.bz2

Because the RPMs can be built directly from the tarball, binary RPMs will not be distributed separately.

> NOTE:

> The first attempt to build binary RPMs will likely result in an error message requesting additional RPMs to be installed first, such as the LDAP server, MySQL and PostgreSQL databases, and various other development libraries.

> Do not blow off these requirements, and attempt to hack your way around them. Install the required RPMs, and try again. These RPMs are required to build the full complement of the Courier mail server packages, and they may be removed after building the Courier mail server.

> Parts of the Courier mail server that use these optional RPMs will be built into separate, optional subpackages, and will not be required to run the Courier mail server. The optional RPMs must be installed only for the duration of the build process.

Note that the Courier mail server does not allow itself to be built as root. A single mistake -- especially when trying to build a system-level utility -- can have serious consequences. Therefore the configuration script won't let you. There's an undocumented flag to disable the check, for folks who don't make mistakes :-) See the FAQ for instructions on how to configure RPM to build packages as non-root.

Building the RPM packages yourself will also result in the packages being customized for your system. This procedure builds the following packages:

- `courier.rpm` - the base mail server.
- `courier-smtpauth.rpm` - install this package to enable authenticated ESMTP, in the ESMTP server.
- `courier-ldap.rpm` - module to authenticate against an LDAP directory. Install this module if you would like to use an LDAP directory to authenticate and manage mail accounts. LDAP support requires the OpenLDAP library to be installed. If OpenLDAP development libraries are not installed, this package will be empty.
- `courier-mysql.rpm` - module to authenticate using a MySQL database. Install this module if you would like to use a MySQL database to authenticate and manage mail accounts. If MySQL development libraries are not installed, this package will be empty.
- `courier-pgsql.rpm` - module to authenticate using a PostgreSQL database. Install this module if you would like to use a PostgreSQL database to authenticate and manage mail accounts. If PostgreSQL development libraries are not installed, this package will be empty.
- `courier-fax-version--1.%{_arch}.rpm` - several supporting scripts for sending E-mails by fax.
- `courier-pop3d.rpm` - the POP3 server.
- `courier-imapd.rpm` - the IMAP server.
- `courier-webmail.rpm` - the webmail server.
- `courier-webadmin.rpm` - the web-based administration tool (just the `cgi-bin` wrapper, actually, the remaining files are installed by other packages).
- `courier-maildrop.rpm` - maildrop mail filter (required if you want to implement mail filtering).
- `courier-mlm.rpm` - the couriermlm mailing list manager.
- `courier-sendmail-wrapper.rpm` - install this package to create soft links from `/usr/bin/sendmail`, `/usr/lib/sendmail`, and several other popular places, to the Courier mail server's sendmail wrapper. This package will not be created on Red Hat 7.3 and later, which uses the Debian-derived alternatives mechanism. The alternatives mechanism will be incorporated into the main Courier mail server package.
- `courier-maildrop-wrapper.rpm` - install this package to create soft links in the `/usr/local/bin` subdirectory, for applications which expect to find `maildrop` in the `/usr/local/bin` directory. `maildrop` is also available as a standalone package, which normally installs in the `/usr/local/bin` subdirectory. The Courier mail server includes an integrated version of `maildrop`, and you can install this package to allow applications that are configured for the standalone `maildrop` version to use the Courier mail server's integrated version instead.

NOTE: these packages are built with certain directories in a non-default location. Specifically, the configuration files are installed in `/etc/courier`, the mail spool is installed in `/var/spool/courier`, and the manual pages are installed directly in `/usr/man`. Other configuration settings are left at their defaults. If you need to change the defaults, you will have to build your own packages.

NOTE: the first time the system boots after installing the the Courier mail server RPM, the system may pause for several minutes at the "Starting The Courier mail server" prompt. That's because the startup script automatically creates test SSL certificates the first time the script is executed (provided that SSL support is available). This can take as much as 5-6 minutes on a slow machine. Subsequent starts should take only a few seconds. Have patience. Also note that the main Courier mail server RPM has the ESMTP server turned off. You must manually enable receiving mail via ESMTP by editing the `esmtpd` configuration file.