Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 4d771d1..358be1b 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -3,14 +3,14 @@
    In this document (see INSTALL.html for the formatted version of this
    INSTALL file):
 
-     * [1]Requirements
-     * [2]Installation overview
-     * [3]Dependencies
-     * [4]What gets installed
-     * [5]For more information
-     * [6]Starting and stopping the authentication daemon
-     * [7]Building RPMs
-     * [8]Guidelines for using other package managers
+     * [1]Requirements
+     * [2]Installation overview
+     * [3]Dependencies
+     * [4]What gets installed
+     * [5]For more information
+     * [6]Starting and stopping the authentication daemon
+     * [7]Building RPMs
+     * [8]Guidelines for using other package managers
 
 Requirements
 
@@ -18,11 +18,14 @@ Requirements
    following software should be installed before building the Courier
    authentication library:
 
-     * A modern version of gcc ([9]http://www.gnu.org/software/gcc/)
-     * The GNU linker ([10]http://www.gnu.org/software/binutils/)
-     * Libtool ([11]http://www.gnu.org/software/libtool/)
-     * GNU make ([12]http://www.gnu.org/software/make/)
-     * The "expect" command. expect is usually included with most systems.
+     * A modern version of gcc ([9]http://www.gnu.org/software/gcc/)
+     * The GNU linker ([10]http://www.gnu.org/software/binutils/)
+     * Libtool ([11]http://www.gnu.org/software/libtool/). Additional,
+       libtool's libltdl library, and its development files, must be
+       installed. On some platforms this is a separate package. On Fedora,
+       this is the libtool-ltdl-devel package, for example.
+     * GNU make ([12]http://www.gnu.org/software/make/)
+     * The "expect" command. expect is usually included with most systems.
        Expect can be downloaded from http://expect.nist.gov/ if it's not
        installed on your system. This utility is used to change system login
        passwords, by scripting the passwd command. If you do not have expect
@@ -30,13 +33,8 @@ Requirements
        However non-system authentication modules (LDAP, PostgreSQL, and
        others) will work.
 
-   Courier-authlib uses Libtool to build shared libraries. Libtool is not
-   strictly required, but Libtool should be installed unless a good -- a
-   very-very good -- reason exists not to. If Libtool is not installed, a
-   copy of Libtool in courier-authlib's source will be used. However, this
-   may cause problems later down the road, if either another Libtool-using
-   package is installed later, or if Libtool itself is installed. Bottom
-   line: install Libtool.
+   Courier-authlib uses Libtool to build shared libraries. Libtool must be
+   installed, together with its libltdl library and its header files.
 
    On non-Linux platforms the GNU linker is also required. Courier-authlib's
    build script uses some GNU linker-specific options. It's possible to
@@ -52,9 +50,9 @@ Requirements
    courier-authlib. Still, try the following before giving up if problems
    occur when building this package:
 
-    1. Install a recent version of the GNU linker
-    2. Install the current version of Libtool
-    3. Install the current version of gcc
+    1. Install a recent version of the GNU linker
+    2. Install the current version of Libtool
+    3. Install the current version of gcc
 
 Installation overview
 
@@ -145,14 +143,14 @@ Installation overview
    of Courier and/or this authentication library. The default userid and
    groupid are computed as follows:
 
-     * If an earlier version of the Courier authentication library is already
+     * If an earlier version of the Courier authentication library is already
        installed in the same directory, the userid and the groupid is the
        same as the earlier version, otherwise:
-     * If an earlier version of the Courier package is installed (only the
+     * If an earlier version of the Courier package is installed (only the
        Courier package, the Courier-IMAP and SqWebMail packages do not carry
        this information), the userid and the groupid is the same as the ones
        used to configure Courier, otherwise:
-     * The userid is the first userid from the following list which exists in
+     * The userid is the first userid from the following list which exists in
        the system: courier, daemon, adm, bin, root; and the groupid is the
        first groupid from the following list which exists in the system:
        courier, daemon, adm, sys, root.
@@ -218,33 +216,34 @@ Dependencies
      usually a separate package, that must be installed in addition to the
      package that adds alleged support for the following software libraries.
 
-     * GDBM or Berkeley DB library - The userdb authentication module will be
+     * GDBM or Berkeley DB library - The userdb authentication module will be
        built if either library is installed. The userdb authentication module
        includes Perl scripts that maintain a list of available accounts in
        plain text files. A Perl script then compiles the account list into a
        binary database, either GDBM or DB, which is then used to look up
        account information.
-     * OpenLDAP - The LDAP authentication modules requires OpenLDAP client
+     * OpenLDAP - The LDAP authentication modules requires OpenLDAP client
        libraries to be installed. Sometimes there's some confusion when
        commercial LDAP servers are used, which come with their own
        development toolkits, which use a different API than OpenLDAP. Even if
        a commercial LDAP server is used to provide LDAP services, OpenLDAP is
        still required to enable LDAP services in Courier.
-     * MySQL/PostgreSQL - The MySQL and PostgreSQL authentication modules
-       require, obviously, MySQL/PostgreSQL development libraries.
+     * MySQL, PostgreSQL, and SQLite - The MySQL, PostgreSQL, and SQLite
+       authentication modules require, obviously, MySQL/PostgreSQL/SQLite
+       development libraries.
 
 What gets installed
 
-     * /usr/local/etc/authlib - the configuration files.
-     * /usr/local/sbin - the authdaemond startup script; several utility
+     * /usr/local/etc/authlib - the configuration files.
+     * /usr/local/sbin - the authdaemond startup script; several utility
        programs (courierlogger, authconfig, authtest, authenumerate); and
        userdb scripts.
-     * /usr/local/lib/courier-authlib - various authentication modules, as
+     * /usr/local/lib/courier-authlib - various authentication modules, as
        shared libraries.
-     * /usr/local/libexec/courier-authlib - some miscellaneous stuff.
-     * /usr/local/var/authdaemon - a subdirectory that contains the
+     * /usr/local/libexec/courier-authlib - some miscellaneous stuff.
+     * /usr/local/var/authdaemon - a subdirectory that contains the
        filesystem socket which authdaemond listens on.
-     * /usr/local/include - a header file that Courier packages will use to
+     * /usr/local/include - a header file that Courier packages will use to
        build against courier-authlib.
 
    Toolchain options to the configure script may be used to select
@@ -295,42 +294,44 @@ Building RPMs
      NOTE:
 
      RPM will refuse to build the Courier authentication library unless all
-     prerequisite development libraries for LDAP, MySQL, and PostgreSQL are
-     installed. Do not try to hack the RPM build script to ignore these
-     dependencies! For simplicity's and maintainability sake the RPM build
-     script creates all available authentication modules. All extra
+     prerequisite development libraries for LDAP, MySQL, PostgreSQL, and
+     SQLite are installed. Do not try to hack the RPM build script to ignore
+     these dependencies! For simplicity's and maintainability sake the RPM
+     build script creates all available authentication modules. All extra
      authentication modules will be built as optional subpackages. They do
-     not have to be installed at runtime. Install the LDAP, MySQL, and
-     PostgreSQL development libraries only for the duration of building
-     binary RPMs. They can be uninstalled afterwards.
+     not have to be installed at runtime. Install the LDAP, MySQL,
+     PostgreSQL, and SQLite development libraries only for the duration of
+     building binary RPMs. They can be uninstalled afterwards.
 
 Guidelines for using other package managers
 
    The recommended way to build packages can be inferred from the RPM build
    script. It is summarized here for convenience:
 
-     * Decide whether or not Courier-specific userid and groupid needs to be
+     * Decide whether or not Courier-specific userid and groupid needs to be
        created, and, if so, make the necessary arrangements.
-     * Ensure that all prerequisite development libraries are available.
-     * Run the configure script, run make, then make install as usual.
-     * Copy the "sysconftool" script somewhere into the installation tree. A
+     * Ensure that all prerequisite development libraries are available.
+     * Run the configure script, run make, then make install as usual.
+     * Copy the "sysconftool" script somewhere into the installation tree. A
        good place would be %libexecdir%/courier-authlib. This is the 'make
        install-upgrade' command. Don't run this at build time. Instead,
        arrange for the package installation script to run the "sysconftool
        %sysconfdir%/authlib/*.dist" after the package is installed OR
        UPGRADED.
-     * The "authdaemond", "authenumerate", and "authtest" commands can be
+     * The "authdaemond", "authenumerate", and "authtest" commands can be
        renamed, to avoid name clashes.
-     * Remove all static libraries from %libdir%/courier-authlib.
+     * Remove all static libraries from %libdir%/courier-authlib.
 
    Now, create the installable packages, as follows:
 
-     * %libdir%/courier-authlib/libauthldap* goes into the LDAP subpackage.
-     * %libdir%/courier-authlib/libauthmysql* goes into the MySQL subpackage.
-     * %libdir%/courier-authlib/libauthpgsql* goes into the PostgreSQL
+     * %libdir%/courier-authlib/libauthldap* goes into the LDAP subpackage.
+     * %libdir%/courier-authlib/libauthmysql* goes into the MySQL subpackage.
+     * %libdir%/courier-authlib/libauthsqlite* goes into the SQLite
        subpackage.
-     * %libdir%/courier-authlib/libauthuserdb* goes into the userdb
+     * %libdir%/courier-authlib/libauthpgsql* goes into the PostgreSQL
        subpackage.
-     * Everything else can go into the main package. Optionally, the
+     * %libdir%/courier-authlib/libauthuserdb* goes into the userdb
+       subpackage.
+     * Everything else can go into the main package. Optionally, the
        courierauthconfig binary, stuff in %includedir%, and in %mandir%/man3,
        can go into a devel subpackage.