Jul 2001 - Courier 0.35

Courier 0.35 includes a major addition to the authentication library, and
a web-based admin tool.

* Authentication

Ability to change mail account passwords has been added to the authentication
library.  The webmail server no longer maintains a separate login password
file.  Updating the login password through the webmail server will update
the "real" password, be it a system password, or an LDAP, MySQL, etc...

This means that after upgrading to 0.35, mail login passwords will have to be
reset, if the webmail server is being used.  This is because sqwebmail will
no longer read its own password file, and go back to the real password file.
The login password has probably been changed several times now, in the
sqwebmail password file, hence it will need to be reset.

When mail is being provided via normal system accounts, the password will
be updated by running the 'passwd' command, and scripting its prompts.
sqwebmail uses expect(1) to script the passwd command.  Note to packagers:
the webmail server now has a dependency on expect(1).  Additionally, the
default expect(1) script is for a generic, garden-variety, passwd command.
If passwd issues some exotic, unusual prompts, the default expect script will
fail.  Be sure to check that it's possible to change login passwords, after
upgrading to 0.35.  If necessary, patch the authsystem.passwd file to properly
respond to your passwd's prompts.

Additionally, the authdaemon proxy module will now be installed by default
for every configuration.  This is because changing the login password is
proxied through the authdaemond process, which has the required privileges
to change login passwords through most of the authentication modules.

* Webadmin

The webadmin tool can be used to configure most Courier settings.  It's still
work in process.  It requires a CGI-capable web server.  After installing,
move $libexecdir/courier/webmail/webadmin to your cgi-bin directory.

NOTE: You *must* either use SSL, or firewall the webadmin module so that it's
accessible only from trusted IP addresses, then use a dedicated webadmin
password.  webadmin is a simple hack, nothing more.  The webadmin password
is saved in a simple cookie.  Therefore, either SSL, or a firewall, must be
used in order to secure it.

* Other miscellaneous changes

The RPM build script will install /etc/openldap/schema/courier.schema

The RPM build script will install /etc/skel/Maildir.
New accounts will therefore have $HOME/Maildir created automatically by
default.

There were some minor changes to the default settings in several configuration
files, in order to accomodate webadmin's requirements.  Be sure to review
the output of 'make install-configure' and make any necessary adjustments.
Some customized settings may be reset to their defaults.

Apr 2001 - Courier 0.34

Courier 0.34 is another major release.  This release includes major
enhancement to SSL/TLS support.  One of the bells and whistles is the
ability to set up a sort of a virtual private mail network, allowing for
secure delivery of mail between trusted nodes, over an untrusted network.
See INSTALL for additional information.

Another new bell/whistle is the ability to verify X.509 certificates when
sending mail with ESMTP over SSL/TLS.  This is disabled by default.
When enabled, Courier's ESMTP client will refuse to deliver mail using
SSL/TLS if the remote server does not present a valid X.509 certificate
signed by a trusted certificate authority.  For convenience's sake, a list
of public certificates of known certificate authorities is included in the
source distribution.  This list is actually swiped from Mozilla's CVS tree :-)

Packagers note: the root certs are going to be installed, by default, in
$datadir/rootcerts.

Take note that C++ source in Courier has been changed to use ISO-C++ headers.

Experimental support of CRAM-SHA1 authentication has been implemented.

The authldap module has been tested against OpenLDAP 2.0.7.  OpenLDAP 2.0.7
still leaks memory, and the workaround for this memory leak is still enabled
in the source code.  Minor changes to the authldap module that changes the
error recovery behavior.  Authentication will fail completely if the
authldap server is down, instead of resuming with the next authentication
module.  This is the correct behavior, but it may catch people by surprise
if they rely on a different fallback authentication module to take over if
authldap fails.

The installation script has been fixed for the new Linux fileutils
version 4.0.  Packagers note: please verify that make install still
correctly initializes the ownership and permissions of installed files.
Verify the results of make install in 0.34 versus 0.33.  Packagers note:
do not forget to make sure that the installation script runs sysconftool,
either via 'make install-configure', or by hand, in order to properly
upgrade the configuration files.

Various tweaks and enhancements to the authmysql driver.  More variables
can now be set in the configuration file, and the error recovery has been
beefed up.  Contributors are credited in the Changelog.

Additional check has been added to verify the structural integrity of MIME
messages.  A contributor noted a disrepancy between the reported MIME
structure (in the Courier-IMAP server, and in reformime) and the apparent
MIME structure of the message.  Further investigation showed that the real
problem is broken MIME messages generated by some versions of Eudora :-(
Eudora generates broken MIME for HTML messages that also contain
attachments.  Instead of Courier tearing these messages shreds, a check has
been added which will bounce the corrupted messages.
Within hours after this change was rolled out, my server began to bounce
spam, using this rule :-).

Other miscellaneous bug fixes.

Dec 10, 2000:

Courier 0.30 includes a new script to upgrade configuration files.  Previously
each new version copied default configuration files, with default settings.
It was necessary to back up the current configuration, and reenter it after
upgrading.

Configuration scripts in Courier 0.30 include some additional metadata that
allows them to be intelligently updated.  For this to work both the old
and the new version must include the metadata.  Therefore, the first upgrade
to a version with the new configuration files will still install a default
configuration, and back up the existing configuration.  Subsequent updates
will, however, be carried out automatically.

A new step has been added to the installation document:
"make install-configure" to be performed after "make install".
"make install-configure" will install the new configuration files, but
preserve the existing configuration, provided that it's compatible.

The output of "make install-configure" should be saved.  It will list
each configuration setting, and its eventual disposition.

See INSTALL for more information.


Aug 2, 2000:

gcc 2.96, that's about to be shipped in Red Hat 7.x, may not be stable.  I've
already caught it in one instance of miscompiling C++ code.  Although that's
been fixed in the 0.25 build, something like that is really a cause for
concern.  Excersize extreme caution when using gcc 2.96.

Nov 11, 2000:

Announcing the new Courier installation script.

Packagers: you can now create a master package of Courier, with
the base package providing basic system authentication, and additional
add-on packages that add LDAP and MySQL authentication ability.

Here's how.

A) Build Courier on a machine that has OpenLDAP and MySQL development
   libraries.  Choose the default option to build the authdaemon module.

B) Run make install.

C) Package everything that gets installed, EXCEPT for authdaemon.ldap and
   authdaemon.mysql, into the base package.

D) Package authdaemon.ldap into the ldap subpackage. 

E) Package authdaemon.mysql into the mysql subpackage.

F) The base package is installable on ANY system, it does not need MySQL
   or OpenLDAP.  The subpackages are installable only on those system
   that have the necessary runtime OpenLDAP and MySQL libraries.

That's it.

Nov 11, 2000:

A memory leak has been found in OpenLDAP 1.2.11, and presumably older versions.
It is not known whether OpenLDAP 2.0 is affected.  The bug has been reported
to the OpenLDAP project, presumably it will be fixed in the next release of
OpenLDAP.  See http://www.OpenLDAP.org/its/index.cgi?findid=864 for more
information.

A workaround for the memory leak has been implemented in Courier 0.29.
A patch for older versions can be found in
ftp://courier.sourceforge.net/pub/courier/patches.




