X-Git-Url: https://git.hcoop.net/hcoop/debian/courier-authlib.git/blobdiff_plain/330026da191ad124643fae36d739652130ea9e79..HEAD:/INSTALL diff --git a/INSTALL b/INSTALL index 79c1c62..e77d809 100644 --- 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,25 +18,25 @@ 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 installed you will not be able to change system login passwords. However non-system authentication modules (LDAP, PostgreSQL, and others) will work. + * Courier Unicode Library. Before installing Courier-IMAP, download and + install [13]http://www.courier-mta.org/unicode/. - 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 +52,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 +145,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 +218,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 @@ -264,7 +265,7 @@ What gets installed For more information - Following "make install", see the [13]README_authlib.html file for details + Following "make install", see the [14]README_authlib.html file for details on setting up the authentication modules. The README_authlib.html file gets assembled as part of the build process. @@ -295,43 +296,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" and "authmigrate" scripts somewhere into the - installation tree. A good place would be %libexecdir%/courier-authlib. - This is the 'make install-migrate' and 'make install-upgrade' - commands. Don't run them at build time. Instead, arrange for the - package installation script to run the authmigrate script first, then - "sysconftool %sysconfdir%/authlib/*.dist", after the package is - installed OR UPGRADED. - * The "authdaemond", "authenumerate", and "authtest" commands can be + * 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 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.