--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/NEWS Wed Jan 16 22:39:43 2008 +0100
@@ -0,0 +1,455 @@
+-------------------------------------------------------------------------------
+Changes in version 0.96.9
+
+New Features:
+- vdeluser now has an option to prevent it from deleting users with a
+ mailbox.
+- 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.
+
+Internal Changes:
+- Cleaned up the vpwtable API.
+- New CLI documentation generator, should help keep the man pages and
+ the programs in sync.
+- Major overhaul to the Python library.
+
+Bug Fixes:
+- Fixed error handling in vdeliver to properly handle file-system quota
+ errors.
+- Fixed a bug in the Courier IMAP authentication module that prevented
+ non-virtual users from authenticating.
+- The daemon now exits immediately if a SIGALRM or SIGPIPE is caught,
+ instead of completing the action.
+- Fixed a bug in autodetecting Python. It should now work with any
+ version of make.
+-------------------------------------------------------------------------------
+Changes in version 0.96.8
+
+New Features:
+- Added a quota checking program for use in vdeliver-predeliver.
+- The authvmailmgr Courier-IMAP auth module now executes
+ authvmailmgr-presetuid and authvmailmgr-postsetuid before and after
+ executing the setuid respectively, just like checkvpw.
+
+Internal Changes:
+- The daemon lookup command now returns all of the virtual user data,
+ not just the mailbox and forwarding.
+
+Bug Fixes:
+- Fixed a typo in the vmailmgrd run script.
+- 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.
+- Fixed a bug in the daemon that would allow disabled autoresponders to
+ be written to.
+- Fixed a bug in the subprogram execution code that would cause the
+ wrong exit status to be returned.
+- vdeliver now rewinds standard input before executing postdeliver.
+- The autoresponse daemon command will now read the disabled
+ autoresponse file if the enabled one does not exist.
+- Fixed note on setting up a domain in the HOWTO.
+- Fixed a bug in the fdbuf library.
+-------------------------------------------------------------------------------
+Changes in version 0.96.7
+
+New Features:
+- Contains configure-time switchable support for GDBM virtual user tables.
+- 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.
+
+Internal Changes:
+- Updated PHP code.
+- The daemon now relies on ucspi-unix to handle connections and forking
+ instead of doing it internally.
+- 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.
+- Reorganized the vpwtable code somewhat.
+
+Bug Fixes:
+- The daemon now initializes its random number generator each time it
+ handles a command, which should make it generate different salts for
+ password hashes.
+- The python subdirectory no longer requires GNU make to build, and
+ should no longer build at all if Python cannot be located.
+-------------------------------------------------------------------------------
+Changes in version 0.96.6
+
+New Features:
+- 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).
+- Added autoresponse CGI written in Python, as well as updated Python
+ library code.
+- Updated PHP code from Mike Bell.
+- Replaced the FAQ and HOWTO documents with the revised ones by Dan
+ Kuykendall.
+
+Internal Changes:
+- The necessary parts of the Courier IMAP "authlib" library is now
+ included in this package. The Courier IMAP authentication module is
+ now always built.
+- The Courier IMAP module is now part of the standard RPM.
+
+Bug Fixes:
+- Fixed a problem with converting from old records that didn't set the
+ virtual user flags properly.
+- Fixed a problem with the virtual user creation time field not being
+ set properly.
+- Fixed a bug in vdeliver that would cause any error from the predeliver
+ script to be treated as a temporary failure.
+- Fixed a bug in the domain name lookup code that caused case sensitive
+ domain name comparisons.
+-------------------------------------------------------------------------------
+Changes in version 0.96.5
+
+New Features:
+- 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.
+- Account expiry is handled by the authentication tools and by vdeliver.
+
+Internal Changes:
+- 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.
+
+Bug Fixes: None
+-------------------------------------------------------------------------------
+Changes in version 0.96.4
+
+New Features:
+- Added an upgrading section in the FAQ.
+- The command-line tools now have a "--quiet" option to suppress all
+ status messages.
+- Added a "vchforwards" CGI interface.
+- Modified the "vaddalias" CGI program to accept a comma-seperated list
+ of destinations.
+- Added some sample HTML pages for the CGIs.
+
+Internal Changes:
+- Minor updates to the mystring and fdbuf libraries.
+
+Bug Fixes:
+- Fixed a problem that caused the Courier IMAP authentication module to
+ fail for users of the form "baseuser-virtuser". It should work now.
+-------------------------------------------------------------------------------
+Changes in version 0.96.3
+
+New Features: None
+
+Internal Changes:
+- Removed the "include" directory.
+- Made vpwtable & vpwentry a seperate source directory.
+- 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.
+
+Bug Fixes: None
+-------------------------------------------------------------------------------
+Changes in version 0.96.2
+
+New Features:
+- Updated the FAQ, and added some new answers.
+- Added a Courier IMAP authentication module. This module does not yet
+ work, unfortunately.
+- Tossed the existing non-functional PHP3 module and added a working one
+ (written in PHP3) from Mike Bell.
+- Modified vsetup to call programs before and after setting up the
+ domain.
+- Added new "vauthenticate" command.
+- Turned the small vaddalias program into a simple shell script.
+
+Internal Changes:
+- Moved the Python code into its own directory, like the PHP3 stuff.
+- Moved the checkvpw module into an "authenticate" directory.
+- Imported changes to the CLI library to make it behave more like the
+ standard getopt.
+
+Bug Fixes:
+- Fixed some bugs in the Kerberos5 configuration handling.
+-------------------------------------------------------------------------------
+Changes in version 0.96.1
+
+New Features:
+- Output of listvdomain CGI has changed slightly to reflect the change
+ in internal data structures.
+
+Internal Changes:
+- Changed listdomain daemon protocol to speed up domain listings and to
+ allow for more information (not yet present in the listdomain CGI).
+
+Bug Fixes:
+- Fixed bug in building Python code from input files with non-GNU make.
+-------------------------------------------------------------------------------
+Changes in version 0.96
+
+New Features:
+- Record data format has been enhanced to add personal information,
+ simple quotas, and expiry information, plus other extra data.
+- Messages can now be delivered to both a mailbox and a list of
+ forwarding addresses at once.
+- Programs executed from checkvpw or vdeliver will have all the above
+ data set in environment variables.
+- listvdomain can now list only users, only aliases, or selected names.
+- The listvdomain CGI has improved formatting ability.
+- Preliminary support for Kerberos5 authentication. Please tell me if
+ this works for you if you need this, as I can't test it myself.
+- New "vchattr" command to change a virtual user's attributes.
+- New "vchforwards" command to change the forwarding addresses of a
+ user.
+- Executable configuration settings are treated as executable files
+ rather than lists of statements to execute.
+
+Internal Changes:
+- Record parsing routines will read either record format but will write
+ out new record format.
+- Daemon command dispatching now requires seperate virtual domain and
+ virtual user arguments (all the CGIs do this anyways), as opposed to
+ allowing "baseuser-virtual".
+
+Bug Fixes:
+- Fixed non-portable increment statement in vconf2dir shell script, as
+ well as a couple of other bugs.
+- Fixed bug in vdeliver that would cause it to loop without sleeping
+ when it couldn't write to the output file.
+
+NOTES:
+- 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.
+- 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.
+- The "vaddalias" command has been superceeded by "vadduser -D".
+- The "vchalias" command has been replace with "vchforwards".
+- The "vdelalias" command has been removed since "vdeluser" does both
+ jobs.
+- Support for quota management and account expiry are not included yet.
+- 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.
+-------------------------------------------------------------------------------
+Changes in version 0.95
+
+New Features:
+- vdeliver now has a hook to execute a list of programs before and after
+ delivering an email. See doc/configuration.* for full details.
+- checkvpw now has a hook to execute a list of programs before and after
+ changing its uid, and after executing the subprogram
+- The bulletins facility is now a standalone program called vpopbull.
+- There is a new program showvconfig which can list the configuration
+ information.
+
+Internal Changes as above.
+
+Bug Fixes:
+- The call to execl in vdeliver when calling qmail-queue was missing a
+ parameter.
+-------------------------------------------------------------------------------
+Changes in version 0.94
+
+New Features:
+- 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.
+
+Internal Changes:
+- 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).
+- Removed the "check" command from the daemon, since it's no longer
+ used.
+
+Bug Fixes:
+- vdeliver still used a hard coded /var/qmail instead of
+ config->qmail_root().
+
+NOTES:
+* You will no longer need to have vmailmgrd running to use checkvpw,
+ vdeliver, and the command-line tools. You only need vmailmgrd (and
+ the vmailmgr-daemon RPM package) if you need to use the CGIs.
+-------------------------------------------------------------------------------
+Changes in version 0.93
+
+New Features:
+- 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.
+- 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.
+- A new "qmail-root" configuration parameter to allow for installations
+ where qmail is not installed in /var/qmail.
+
+Internal Changes:
+- All the v* commands now do a chdir to $HOME before continuing.
+- 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.
+- Imported new and improved mystring and fdbuf libraries.
+
+Bug Fixes:
+- 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.
+
+IMPORTANT NOTES:
+* This version uses a new configuration structure. You *MUST* run the
+ included vconf2dir program. The RPM tries to do this automatically.
+-------------------------------------------------------------------------------
+Changes in version 0.92.2
+
+Bug Fixes:
+- 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.
+-------------------------------------------------------------------------------
+Changes in version 0.92.1
+
+Bug Fixes:
+- 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.
+-------------------------------------------------------------------------------
+Changes in version 0.92
+
+New Features:
+- 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).
+
+Bug Fixes:
+- 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.
+-------------------------------------------------------------------------------
+Changes in version 0.91
+
+New Features:
+- Command-line and CGI programs to change an alias (to avoid the delete,
+ recreate cycle).
+
+Bug Fixes:
+- Always set the mode on created files to be read-write-only by owner.
+
+Other Changes:
+- vdeliver now uses fdbuf instead of raw I/O to deliver content.
+- Changed the default default username from '*' to '+', to avoid
+ confusion when typing '*' at a shell prompt.
+- Command-line tools now count and report the number of errors
+ encountered and exit false if any errors occurred.
+-------------------------------------------------------------------------------
+Changes in version 0.90.2
+
+New Features: None
+
+Bug Fixes:
+- Fixed compile problem on systems lacking the O_SYNC definition.
+- Fixed compile problem on systems where perror is in stdio.h, and
+ stdio.h is not included through other includes.
+
+NOTES: If you did not have a problem compiling 0.90 or 0.90.1, don't
+bother with this version.
+-------------------------------------------------------------------------------
+Changes in version 0.90.1
+
+New Features: None
+
+Bug Fixes:
+- Added definitions for MIN and MAX in md5-crypt.c if they aren't
+ defined by the included headers.
+- Removed the include of errnos.h in vpwentry_putpw.cc
+
+NOTES: If you did not have a problem compiling 0.90, don't bother with
+this version.
+-------------------------------------------------------------------------------
+Changes in version 0.90
+
+New Features:
+- Eliminated all dependance on any C++ library by incorporating my own
+ C++ I/O library.
+- Dropped the RSA MD5 library and incorporated the GNU MD5 code.
+- 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.
+
+Bug Fixes:
+- Fixed a nearly invisible bug in the parsing of the configuration file
+ (it was too lenient in the syntax it allowed).
+- 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.
+
+Other Changes:
+- This package is now distributed under the GPL.
+- The daemon will now not print out any "Accepted Connection" messages
+ unless the verbose flag is set.
+- 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).
+
+NOTES:
+- 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.
+-------------------------------------------------------------------------------
+Changes in version 0.89
+
+New Features:
+- Changed the file format for the virtual password tables to using CDB
+ tables.
+- The daemon now forks immediately after accepting a connection,
+ allowing for greater concurrency in the POP3 server.
+
+Bug Fixes:
+- Use a ".timestamp" file in a virtual user's maildir to determine the
+ last login time for bulletin delivery.
+
+Other Changes:
+- Removed all the cache tables in the daemon.
+- Did a major reorganization of the libraries and header files.
+
+IMPORTANT NOTES:
+* This package now uses an incompatible file format for the virtual
+ domain password tables. You *MUST* run "vpasswd2cdb" in each
+ domain to convert your tables before starting the new daemon!
+-------------------------------------------------------------------------------
+Changes in version 0.88
+
+New Features:
+- 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.
+
+Bug Fixes: None
+
+Other Changes:
+- I am now finally using automake to build the package.
+-------------------------------------------------------------------------------