NEWS
changeset 0 6f7a81934006
child 2 b3afb9f1e801
--- /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.
+-------------------------------------------------------------------------------