                                Courier-IMAP FAQ

 $Id: FAQ.html,v 1.16 2003/07/24 23:04:54 mrsam Exp $

Table of contents

     * Configuration script fails on Solaris in the waitlib subdirectory

     * Compiling Courier-IMAP on OS/X

     * Netscape Messenger displays an error message when new mail arrives

     * I can't create any top-level folders, only subfolders of INBOX

     * I don't know how to build binary RPMs as non-root

     * I have OpenLDAP, or OpenSSL, or MySQL installed, but Courier-IMAP does
       not see it

     * Configuration script reports the following error, and stops: "Cannot
       find either the gdbm or the db library"

     * Configuration script fails in the gdbmobj or bdbobj subdirectory.

     * gmake check fails on Compaq Tru64 UNIX

     * Asking for help on the courier-users mailing list

Configuration script fails on Solaris in thewaitlib subdirectory

   This is a self-test check failing. A script tests the semantics of the
   wait() system call, and fails. Apparently something in Solaris's wait()
   logic is not working the way I expect it to work. This may or may not be a
   problem. I don't know yet. You can use the --with-waitfunc=wait3 option to
   the configure script to bypass this test, but you're own your own.

   UPDATE: 5/3/2000, there's a Solaris bug ID that is fixed by a recent
   kernel update:

       4220394 wait3  library function fails after 248 days

   Try installing this update to see if it fixes the problem. Some people
   reported that this kernel update fixes the configuration failure, but some
   people reported that the problem still exists.

Compiling Courier-IMAP on OS/X

   Set the RANLIB environment variable before running the configure script,
   as follows:

 RANLIB="ranlib -c"
 export RANLIB
 ./configure [ options ]

Netscape Messenger displays an error message when new mail arrives

   Use --enable-workarounds-for-imap-client-bugs option to the configure
   script.

I can't create any top-level folders, only subfolders of INBOX

   This is a configuration issue with your mail client. IMAP servers are free
   to use any folder namespace arrangement that's technically convenient for
   them. Courier-IMAP uses "INBOX." as the namespace for private folders, and
   "shared." as the namespace for public, shared, folders. The IMAP NAMESPACE
   extension (see http://www.rfc-editor.org/rfc/rfc2342.txt) allows IMAP
   clients to automatically discover where the server creates folders, and
   your IMAP client should implement it.

   This should be completely transparent to you, if your IMAP client properly
   uses the NAMESPACE extension. If your IMAP client were to automatically
   take advantage of self-configuration features offered by RFC 2060 and RFC
   2342, it would automatically discover, without any additional
   configuration from the user, that:

    1. The folder namespace hierarchy separator is the . character

    2. Private folders are stored underneath the "INBOX." hierarchy

    3. Public folders are stored underneath the "shared." hierarchy

   If you have to explicitly create folders that are subfolders of INBOX, or
   if you explicitly have to name that "INBOX.foldername", this is due to
   your IMAP client not being able to configure itself accordingly.

I don't know how to build binary RPMs as non-root

   If you're going to build stuff with RPM, then you should really go out and
   get a copy of the "Maximum RPM" book. It's very out of date, but if you
   learn the basics, you'll be able to figure the rest out by yourself. The
   following instructions are applicable to RPM 3.0.4, or higher.

   First, you need to create a mirror image of the main RPM directory in your
   account:

     mkdir $HOME/rpm
     mkdir $HOME/rpm/SOURCES
     mkdir $HOME/rpm/SPECS
     mkdir $HOME/rpm/BUILD
     mkdir $HOME/rpm/SRPMS
     mkdir $HOME/rpm/RPMS
     mkdir $HOME/rpm/RPMS/i386

   Use sparc, or alpha, or whatever's appropriate. Finally:

     echo "%_topdir    $HOME/rpm" >> $HOME/.rpmmacros

   That's it, now you can build your RPMs:

     rpm -ta courier-imap-0.34.tar.gz

I have OpenLDAP, or OpenSSL, or MySQL installed, but Courier-IMAP does not see
it

   Courier-IMAP has optional features that use external libraries and
   products, such as OpenLDAP, MySQL, or OpenSSL. If available, Courier-IMAP
   can authenticate against an accounts database stored in a MySQL database
   or an LDAP directory. If OpenSSL is available Courier-IMAP can provide
   secure IMAP access.

   Normally, if the configuration scripts detects that any one of these
   external libraries is installed, the appropriate code will be
   automatically compiled and installed. However, for an external library to
   be detected, it must be installed wherever the C or the C++ compiler looks
   for libraries.

   Courier-IMAP relies on the C or the C++ compiler to detect the
   availability of a particular library. If, for example, OpenSSL is
   installed in the directory /usr/local/ssl chances are that the C or the
   C++ compiler does not usually search this directory for libraries or
   include files. Most C and C++ search only the directories /lib, /usr/lib,
   and /usr/include (for include files).

   All C and C++ compiler allow you to specify any additional directories to
   search, beside the default ones. The configuration script uses the
   environment variables CPPFLAGS, CFLAGS, and LDFLAGS to pass extra options
   to the compiler's preprocessor, the compiler itself, and the linker.

   For example, if OpenSSL's include files are installed in the directory
   /usr/local/ssl/include, and OpenSSL libraries are installed in
   /usr/local/ssl/lib, the gcc compiler needs to have the
   -I/usr/local/ssl/include option for the preprocessor, and the
   -L/usr/local/ssl/lib option for the linker. So, to have the configuration
   script detect OpenSSL, use the following commands:

 CPPFLAGS="-I/usr/local/ssl/include"
 LDFLAGS="-L/usr/local/ssl/lib"
 export CPPFLAGS
 export LDFLAGS
 ./configure [ options ]

   The same applies for OpenLDAP, MySQL, and any other library. The
   configuration script does not maintain a list of all the non-standard
   locations where various libraries get installed by default, because that's
   subject to change at any time. The configuration script will expect that
   either the optional libraries (runtime and development) are installed in
   the default locations that are searched by the compiler, or that
   additional flags are explicitly specified by the installer.

Configuration script reports the following error, and stops: "Cannot find either
the gdbm or the db library"

   Courier-IMAP requires either the GDBM library or the Berkeley DB library
   to be installed. If you have the library installed, it is possible that it
   is installed in a non-standard location. See the "I have OpenLDAP, or
   OpenSSL, or MySQL installed" question for how to resolve this situation.

Configuration script fails in the gdbmobj or bdbobj subdirectory.

   There are two possible causes of this error:

     * A C++ compiler is not installed.
     * The corresponding library is installed in a non-standard location.

   Although Courier-IMAP is written in C, some self-test scripts are written
   in C++. It is necessary to have a working C++ compiler and libraries
   installed in order to compile Courier-IMAP

   Another reason for this error is that the GDBM or the Berkeley DB library
   is not installed in a directory that is searched by the C and C++
   compilers, by default. See the "I have OpenLDAP, or OpenSSL, or MySQL
   installed" question for how to resolve this situation.

  gmake check fails on Compaq Tru64 UNIX

   A patchkit for Tru64 5.x that fixes this problem is scheduled to be
   released by Compaq in early spring 2002. Tru64 4.x is not affected by this
   problem.

  Asking for help on the courier-users mailing list

   A: The courier-users mailing list should be the first place to look for
   assistance with resolving any issues. You only need to observe a few
   simple rules in order to increase your chances of getting a quick and
   helpful response:

    1. Subscribe to the mailing list before you ask any questions. If you are
       not subscribed, you will not receive any replies that are mailed to
       the list only.

    2. Do not send HTML E-mail messages, unless you want many people to
       automatically delete them, unread. If you are using MS-Outlook, turn
       off HTML formatting before sending mail to the list.

    3. Before sending a question, check it to make sure that your message
       does not contain the words "doesn't work." Saying only that something
       doesn't work is not very useful in trying to analyze the problem. If
       something isn't working correctly, merely stating it will not make
       much progress. Be sure to always include in your messages:

          * The contents of any related configuration files.

          * What happens, exactly, that makes you think that something isn't
            working right.

          * The contents of your system log file (syslog, or
            /var/log/messages).

          * Be sure to describe any non-standard modifications to the
            operating system you're using, such as a kernel hacked with one
            of several varieties of the OpenWall patch, or filesystema
            mounted with a no-suid option. Many problems turn out to be
            unintentional conflicts with various unexpected side-effects of
            these custom modifications (but not after wasting a great deal of
            time chasing ghosts).

    4. Do not send large attachments (over 10K bytes is a rule of thumb), to
       the list. Put it somewhere - on the web or on a FTP server - and
       include a link in your message instead.

    5. Always mention what you've already tried to do in order to fix the
       problem. People are more likely to help you if they know that you've
       made some effort to figure it out by yourself, and you are only asking
       for help after running into a dead end.

    6. If you do not get an answer in one hour, don't resend your message. If
       people open their mailbox and see five copies of the same message,
       they'll be ignored. Have patience. Either wait some more, or accept it
       as a fact of life. Try again to figure out the answer on your own. You
       can certainly ask again after you've tried to figure it out once more,
       and still didn't get anywhere. Don't just write again, and simply say
       that it still doesn't work. Provide some additional information,
       showing what else you've tried to do, to no avail.
