doc/NEWS.html
changeset 0 6f7a81934006
child 2 b3afb9f1e801
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/NEWS.html	Wed Jan 16 22:39:43 2008 +0100
@@ -0,0 +1,576 @@
+<html>
+<head>
+<title>Release History</title>
+<body>
+<center><h1>Release History</h1></center>
+<hr>
+<h2>Changes in version 0.96.9</h2>
+<p>
+New Features:
+<ul>
+<li>vdeluser now has an option to prevent it from deleting users with a
+  mailbox.
+<li>All the Python CGI code has been dropped.  A stand-alone vpyadmin
+  package (to be release very shortly) will replace the Python CGIs.
+  Between this new interface and the PHP code, the C++ CGIs are
+  depricated and will be removed in a future version, unless somebody
+  violently objects.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Cleaned up the vpwtable API.
+<li>New CLI documentation generator, should help keep the man pages and
+  the programs in sync.
+<li>Major overhaul to the Python library.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed error handling in vdeliver to properly handle file-system quota
+  errors.
+<li>Fixed a bug in the Courier IMAP authentication module that prevented
+  non-virtual users from authenticating.
+<li>The daemon now exits immediately if a SIGALRM or SIGPIPE is caught,
+  instead of completing the action.
+<li>Fixed a bug in autodetecting Python.  It should now work with any
+  version of make.
+</ul>
+<hr>
+<h2>Changes in version 0.96.8</h2>
+<p>
+New Features:
+<ul>
+<li>Added a quota checking program for use in vdeliver-predeliver.
+<li>The authvmailmgr Courier-IMAP auth module now executes
+  authvmailmgr-presetuid and authvmailmgr-postsetuid before and after
+  executing the setuid respectively, just like checkvpw.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>The daemon lookup command now returns all of the virtual user data,
+  not just the mailbox and forwarding.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed a typo in the vmailmgrd run script.
+<li>Fixed a bug in the daemon that would cause actions to be applied to
+  the default virtual user if the named virtual user did not exist.
+<li>Fixed a bug in the daemon that would allow disabled autoresponders to
+  be written to.
+<li>Fixed a bug in the subprogram execution code that would cause the
+  wrong exit status to be returned.
+<li>vdeliver now rewinds standard input before executing postdeliver.
+<li>The autoresponse daemon command will now read the disabled
+  autoresponse file if the enabled one does not exist.
+<li>Fixed note on setting up a domain in the HOWTO.
+<li>Fixed a bug in the fdbuf library.
+</ul>
+<hr>
+<h2>Changes in version 0.96.7</h2>
+<p>
+New Features:
+<ul>
+<li>Contains configure-time switchable support for GDBM virtual user tables.
+<li>Added a new utility, vpasswd2db, to convert a plain text password
+  table into whatever vpwtable format is configured.  This utility will
+  be much slower than vpasswd2cdb for CDB files (for now), so only use
+  it for other (ie GDBM) formats.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Updated PHP code.
+<li>The daemon now relies on ucspi-unix to handle connections and forking
+  instead of doing it internally.
+<li>The autoresponse is written into a new subdirectory of the virtual
+  user's mailbox directory.  This makes it work better with the
+  autoresponder, which requires a directory to store temporary files in.
+<li>Reorganized the vpwtable code somewhat.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>The daemon now initializes its random number generator each time it
+  handles a command, which should make it generate different salts for
+  password hashes.
+<li>The python subdirectory no longer requires GNU make to build, and
+  should no longer build at all if Python cannot be located.
+</ul>
+<hr>
+<h2>Changes in version 0.96.6</h2>
+<p>
+New Features:
+<ul>
+<li>Added autoresponse command to daemon, modified from code submitted by
+  Mike Bell.  This allows the user to upload a autoresponse file to
+  their virtual mailbox, to be used by an autoresponder (not included).
+<li>Added autoresponse CGI written in Python, as well as updated Python
+  library code.
+<li>Updated PHP code from Mike Bell.
+<li>Replaced the FAQ and HOWTO documents with the revised ones by Dan
+  Kuykendall.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>The necessary parts of the Courier IMAP "authlib" library is now
+  included in this package.  The Courier IMAP authentication module is
+  now always built.
+<li>The Courier IMAP module is now part of the standard RPM.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed a problem with converting from old records that didn't set the
+  virtual user flags properly.
+<li>Fixed a problem with the virtual user creation time field not being
+  set properly.
+<li>Fixed a bug in vdeliver that would cause any error from the predeliver
+  script to be treated as a temporary failure.
+<li>Fixed a bug in the domain name lookup code that caused case sensitive
+  domain name comparisons.
+</ul>
+<hr>
+<h2>Changes in version 0.96.5</h2>
+<p>
+New Features:
+<ul>
+<li>Mailbox delivery can be temporarily disabled on a per-virtual-user
+  basis, through either the CGIs, command-line tools, or PHP, without
+  deleting the mailbox.
+<li>Account expiry is handled by the authentication tools and by vdeliver.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>The binary record format has changed to handle the new boolean flags.
+  Note that this new format is backwards compatible, so no conversion is
+  needed.
+<p>
+</ul>
+Bug Fixes: None
+<hr>
+<h2>Changes in version 0.96.4</h2>
+<p>
+New Features:
+<ul>
+<li>Added an upgrading section in the FAQ.
+<li>The command-line tools now have a "--quiet" option to suppress all
+  status messages.
+<li>Added a "vchforwards" CGI interface.
+<li>Modified the "vaddalias" CGI program to accept a comma-seperated list
+  of destinations.
+<li>Added some sample HTML pages for the CGIs.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Minor updates to the mystring and fdbuf libraries.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed a problem that caused the Courier IMAP authentication module to
+  fail for users of the form "baseuser-virtuser".  It should work now.
+</ul>
+<hr>
+<h2>Changes in version 0.96.3</h2>
+<p>
+New Features: None
+<p>
+Internal Changes:
+<ul>
+<li>Removed the "include" directory.
+<li>Made vpwtable & vpwentry a seperate source directory.
+<li>Merged the "adduser", "addalias", and "addaliasp" daemon interfaces
+  into one new inteface named "adduser2".  The C++ CGIs and the PHP3
+  code has been modified to use the new interface.
+<p>
+</ul>
+Bug Fixes: None
+<hr>
+<h2>Changes in version 0.96.2</h2>
+<p>
+New Features:
+<ul>
+<li>Updated the FAQ, and added some new answers.
+<li>Added a Courier IMAP authentication module.  This module does not yet
+  work, unfortunately.
+<li>Tossed the existing non-functional PHP3 module and added a working one
+  (written in PHP3) from Mike Bell.
+<li>Modified vsetup to call programs before and after setting up the
+  domain.
+<li>Added new "vauthenticate" command.
+<li>Turned the small vaddalias program into a simple shell script.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Moved the Python code into its own directory, like the PHP3 stuff.
+<li>Moved the checkvpw module into an "authenticate" directory.
+<li>Imported changes to the CLI library to make it behave more like the
+  standard getopt.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed some bugs in the Kerberos5 configuration handling.
+</ul>
+<hr>
+<h2>Changes in version 0.96.1</h2>
+<p>
+New Features:
+<ul>
+<li>Output of listvdomain CGI has changed slightly to reflect the change
+  in internal data structures.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Changed listdomain daemon protocol to speed up domain listings and to
+  allow for more information (not yet present in the listdomain CGI).
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed bug in building Python code from input files with non-GNU make.
+</ul>
+<hr>
+<h2>Changes in version 0.96</h2>
+<p>
+New Features:
+<ul>
+<li>Record data format has been enhanced to add personal information,
+  simple quotas, and expiry information, plus other extra data.
+<li>Messages can now be delivered to both a mailbox and a list of
+  forwarding addresses at once.
+<li>Programs executed from checkvpw or vdeliver will have all the above
+  data set in environment variables.
+<li>listvdomain can now list only users, only aliases, or selected names.
+<li>The listvdomain CGI has improved formatting ability.
+<li>Preliminary support for Kerberos5 authentication.  Please tell me if
+  this works for you if you need this, as I can't test it myself.
+<li>New "vchattr" command to change a virtual user's attributes.
+<li>New "vchforwards" command to change the forwarding addresses of a
+  user.
+<li>Executable configuration settings are treated as executable files
+  rather than lists of statements to execute.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>Record parsing routines will read either record format but will write
+  out new record format.
+<li>Daemon command dispatching now requires seperate virtual domain and
+  virtual user arguments (all the CGIs do this anyways), as opposed to
+  allowing "baseuser-virtual".
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed non-portable increment statement in vconf2dir shell script, as
+  well as a couple of other bugs.
+<li>Fixed bug in vdeliver that would cause it to loop without sleeping
+  when it couldn't write to the output file.
+<p>
+</ul>
+NOTES:
+<ul>
+<li>I would consider this an unstable release.  Adding and deleting users,
+  delivery, and password checking have been tested, but little else.  I
+  just want to get this out.  There are so many big changes in this one
+  that there are bound to be unexpected bugs.
+<li>Despite the change in the record format, no password table upgrading
+  will be necessary, as this version can read in both new and old
+  records.
+<li>The "vaddalias" command has been superceeded by "vadduser -D".
+<li>The "vchalias" command has been replace with "vchforwards".
+<li>The "vdelalias" command has been removed since "vdeluser" does both
+  jobs.
+<li>Support for quota management and account expiry are not included yet.
+<li>The C++ CGIs are limited to adding aliases with a single forwarding
+  address.  The generic Python CGI can be used to create users with
+  multiple forwarding addresses.  I intend to remove most or all of the
+  C++ CGIs in favour of a more generic interface.
+</ul>
+<hr>
+<h2>Changes in version 0.95</h2>
+<p>
+New Features:
+<ul>
+<li>vdeliver now has a hook to execute a list of programs before and after
+  delivering an email.  See doc/configuration.* for full details.
+<li>checkvpw now has a hook to execute a list of programs before and after
+  changing its uid, and after executing the subprogram
+<li>The bulletins facility is now a standalone program called vpopbull.
+<li>There is a new program showvconfig which can list the configuration
+  information.
+<p>
+</ul>
+Internal Changes as above.
+<p>
+Bug Fixes:
+<ul>
+<li>The call to execl in vdeliver when calling qmail-queue was missing a
+  parameter.
+</ul>
+<hr>
+<h2>Changes in version 0.94</h2>
+<p>
+New Features:
+<ul>
+<li>vdeliver and checkvpw no longer call up to vmailmgrd to do user
+  lookups and authentication.  This makes them significantly faster,
+  since the daemon no longer does any useful memorization of any kind of
+  data (no password or virtualdomains caches, etc.), and the socket
+  connection and fork took significant amounts of time.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>The virtual user and virtual password table manipulation were moved
+  into a class interface.  This will be (once the password content
+  changes are integrated in the next couple of versions) the official
+  API target for building alternative database backends (like the much
+  requested MySQL interface).
+<li>Removed the "check" command from the daemon, since it's no longer
+  used.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>vdeliver still used a hard coded /var/qmail instead of
+  config->qmail_root().
+<p>
+</ul>
+NOTES:
+* You will no longer need to have vmailmgrd running to use checkvpw,
+<ul>
+  vdeliver, and the command-line tools.  You only need vmailmgrd (and
+  the vmailmgr-daemon RPM package) if you need to use the CGIs.
+</ul>
+<hr>
+<h2>Changes in version 0.93</h2>
+<p>
+New Features:
+<ul>
+<li>New configuration system, based on individual files per configuration
+  parameter rather than one big file.  Should be more extensable this
+  way, and has been benchmarked to be faster.  The configuration files
+  are documented in the configuration.{html,texi,txt} files.
+<li>New configuration system also set up to allow domain-local
+  configurations by putting a directory named ".vmailmgr" in the domain
+  directory.  This IS (unlike my last attempt) read properly by the
+  daemon and all the utilities and clients.  The daemon switches over to
+  checking for local configuration items immediately after determining
+  what user/domain is being handled.
+<li>A new "qmail-root" configuration parameter to allow for installations
+  where qmail is not installed in /var/qmail.
+<p>
+</ul>
+Internal Changes:
+<ul>
+<li>All the v* commands now do a chdir to $HOME before continuing.
+<li>A virtual domain class has been set up, and is used to reference each
+  domain through a user, with both a user-local and domain-local
+  configuration structure.  This will shortly be used to set up multiple
+  virtual domains per user.
+<li>Imported new and improved mystring and fdbuf libraries.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>The .qmail-default file is created with mode r--r--r-- to prevent
+  qmail problems with a writable delivery file in situations where the
+  umask is less restrictive than 022.
+<p>
+</ul>
+IMPORTANT NOTES:
+* This version uses a new configuration structure.  You *MUST* run the
+<ul>
+  included vconf2dir program.  The RPM tries to do this automatically.
+</ul>
+<hr>
+<h2>Changes in version 0.92.2</h2>
+<p>
+Bug Fixes:
+<ul>
+<li>Delivery to partially qualified aliases was broken again in a few hard
+  to trace cases by potentially changing one character in the domain
+  address.  Fixed by rewriting the envelope building code into something
+  simpler and more efficient.
+</ul>
+<hr>
+<h2>Changes in version 0.92.1</h2>
+<p>
+Bug Fixes:
+<ul>
+<li>Delivery to partially qualified aliases (such as the common 'root@')
+  caused vdeliver to either crash itself or to cause qmail-queue to
+  crash (since qmail-queue expects FQDN addresses).  This behavior has
+  been fixed to make such addresses use a domain name of the contents of
+  control/me.
+</ul>
+<hr>
+<h2>Changes in version 0.92</h2>
+<p>
+New Features:
+<ul>
+<li>Aliases can now have passwords.  See the man page for vaddalias or the
+  CGI documentation for details on how to create such an alias.  The
+  intended effect is that, once set up, a virtual user could "own" an
+  alias, for the purpose of changing its destination (or password, of
+  course).
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Delivery to aliases in vdeliver used to go through qmail-inject.  This
+  would cause qmail to reformat headers or even bounce the message.
+  vdeliver now sends aliases through qmail-queue, the same way that
+  qmail itself does it.
+</ul>
+<hr>
+<h2>Changes in version 0.91</h2>
+<p>
+New Features:
+<ul>
+<li>Command-line and CGI programs to change an alias (to avoid the delete,
+  recreate cycle).
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Always set the mode on created files to be read-write-only by owner.
+<p>
+</ul>
+Other Changes:
+<ul>
+<li>vdeliver now uses fdbuf instead of raw I/O to deliver content.
+<li>Changed the default default username from '*' to '+', to avoid
+  confusion when typing '*' at a shell prompt.
+<li>Command-line tools now count and report the number of errors
+  encountered and exit false if any errors occurred.
+</ul>
+<hr>
+<h2>Changes in version 0.90.2</h2>
+<p>
+New Features: None
+<p>
+Bug Fixes:
+<ul>
+<li>Fixed compile problem on systems lacking the O_SYNC definition.
+<li>Fixed compile problem on systems where perror is in stdio.h, and
+  stdio.h is not included through other includes.
+<p>
+</ul>
+NOTES: If you did not have a problem compiling 0.90 or 0.90.1, don't
+bother with this version.
+<hr>
+<h2>Changes in version 0.90.1</h2>
+<p>
+New Features: None
+<p>
+Bug Fixes:
+<ul>
+<li>Added definitions for MIN and MAX in md5-crypt.c if they aren't
+  defined by the included headers.
+<li>Removed the include of errnos.h in vpwentry_putpw.cc
+<p>
+</ul>
+NOTES: If you did not have a problem compiling 0.90, don't bother with
+this version.
+<hr>
+<h2>Changes in version 0.90</h2>
+<p>
+New Features:
+<ul>
+<li>Eliminated all dependance on any C++ library by incorporating my own
+  C++ I/O library.
+<li>Dropped the RSA MD5 library and incorporated the GNU MD5 code.
+<li>Added the GNU md5-crypt module which should provide compatibility with
+  all systems that do MD5-based passcodes.  The new code will read in
+  and authenticate against standard DES-crypted codes, the new standard
+  MD5-crypted '$1$' style codes, and my mistaken MD5 hashes (for
+  temporary backwards compatibility), and will write out the '$1$' style
+  MD5 codes.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Fixed a nearly invisible bug in the parsing of the configuration file
+  (it was too lenient in the syntax it allowed).
+<li>In the bulletin code, the timestamp file was named wrong
+  ("maildir/cur/.timestamp" instead of "maildir/.timestamp"), and it was
+  not created with a proper mode flag.
+<p>
+</ul>
+Other Changes:
+<ul>
+<li>This package is now distributed under the GPL.
+<li>The daemon will now not print out any "Accepted Connection" messages
+  unless the verbose flag is set.
+<li>Inverted the sense of the crypt flag in configure.  There is now a
+  "--enable-crypt" flag which causes the code to revert to only using
+  crypt for password encryption and comparison (the default is to use
+  the built-in md5-crypt module).
+<p>
+</ul>
+NOTES:
+<ul>
+<li>My plan to move from a fork-based daemon to a thread-based one is on
+  temporary hold until I can complete several other more important
+  reorganizations and cleanups, most importantly completing a generic DB
+  interface layer.
+</ul>
+<hr>
+<h2>Changes in version 0.89</h2>
+<p>
+New Features:
+<ul>
+<li>Changed the file format for the virtual password tables to using CDB
+  tables.
+<li>The daemon now forks immediately after accepting a connection,
+  allowing for greater concurrency in the POP3 server.
+<p>
+</ul>
+Bug Fixes:
+<ul>
+<li>Use a ".timestamp" file in a virtual user's maildir to determine the
+  last login time for bulletin delivery.
+<p>
+</ul>
+Other Changes:
+<ul>
+<li>Removed all the cache tables in the daemon.
+<li>Did a major reorganization of the libraries and header files.
+<p>
+</ul>
+IMPORTANT NOTES:
+* This package now uses an incompatible file format for the virtual
+<ul>
+  domain password tables.  You *MUST* run "vpasswd2cdb" in each
+  domain to convert your tables before starting the new daemon!
+</ul>
+<hr>
+<h2>Changes in version 0.88</h2>
+<p>
+New Features:
+<ul>
+<li>Long passwords are now supported using MD5 hashing to create the
+  encoded version.  The code will still read the older passwords but
+  will always write out MD5 hashes.
+<p>
+</ul>
+Bug Fixes:  None
+<p>
+Other Changes:
+<ul>
+<li>I am now finally using automake to build the package.
+</ul>
+<hr>
+</body>
+</html>