UPGRADING FROM PREVIOUS VERSIONS

For the most part, mailing lists upgrade themselves with the new
versions.  However, there are some changes in the filesystem that need
to be taken care of separately.  Upgrading takes care of this for you.
If you still have problems upgrading after running this, or want to
integrate mbox archives into the Pipermail archiving, read on.

There are two ways to do the upgrade.  First, from the source
directory, you can run "make update".  This assumes that you have
configured and installed Mailman, as the first thing it does is change
to the installed directory (i.e. $prefix).  "make update" creates a
file named "update.log" in the top level of the source distribution.
If the script that updates the Mailman filesystem encounters something
that is not resolvable, it will log info about this to "update.log".
This might be worth checking.

You can also just change to the installation directory (i.e. $prefix)
and run bin/update.  This is the same as above except that the
update.log file is not generated.

WHAT UPGRADING DOES

Below is an annotated listing of the things that "make update" does.
Hopefully, this will help resolve any problems you are having.

We update this procedure for each Mailman release, so it can't hurt to 
run "make update" each time you upgrade.

- To upgrade to 1.0b10, you will need to copy templates/options.html
  to lists/<listname>/options.html for each mailing list you have.
  However, if you have edited the options.html file, say from the Web
  interface, you will have to merge these changes in manually.

- The upgrade to 1.0b7 included the removal of Mailman/smtplib.py{,c}
  since Mailman now uses the default Python 1.5.2 version of smtplib.

- Archiving files are moved around as part of integrating Pipermail
  into Mailman, as of 1.0b6.  In particular,

  1) if a list has only a private mbox archive
  $prefix/archives/private/<listname> is moved to 
  $prefix/archives/private/<listname>.mbox/<listname> 

  2) if a list has only a public mbox archive
  $prefix/archives/public/<listname> is moved to
  $prefix/archives/private/<listname>.mbox/<listname>

  and a symlink is made that points
  $prefix/archives/public/<listname>.mbox to
  $prefix/archives/private/<listname>.mbox/<listname>

  3) if a list has both private and public mbox archives, 
  make update picks one of the above 2 configurations based on whether
  or not the list currently is archived publicly.  It then renames the  
  other mbox to mbox.preb6.

  4) if a list used recent CVS sources, where archives were placed in
  $prefix/public_html/archives, then these are moved to
  $prefix/archives/private/<listname> and a symlink is made from
  $prefix/archives/public/<listname> to that spot if the list's
  archives are public.  Also, a permissions-related security problem
  is removed.

  To integrate mbox archives of old lists, log in as user `mailman'
  and run $prefix/bin/arch <listname> <path-to-mbox-archive>.

  Also, by default, beta6 does both mbox and html based archiving, but
  you can configure Mailman to do one, both, or neither.  Please see
  $prefix/Mailman/Defaults.py for details.

  There was a short period of time when the CVS sources archiving code
  was not organized into its own package.  The pickled articles in the
  archives that were placed into archives during this period stored
  the path to the module HyperArch, but that module has moved.  You
  can quick fix this by running

  ln -s $prefix/Mailman/Archiver/HyperArch.py \
          $prefix/Mailman/HyperArch.py  
  
- If upgrading from version 1.0b4 or earlier, "make update" moves
  list-specific templates.  For each list,
  $prefix/templates/<listname>/* is moved to $prefix/lists/<listname>.
  Please reference the generic templates in $prefix/templates to see
  if any variables have changed (There shouldn't be many, only
  options.html was updated from b5 to b6).

  For really old versions of Mailman, you may not even have <listname> 
  subdirectories in $prefix/templates!  In this case you will need to
  manually copy some files into your new list directories.  Here's an
  example shell command that will do the trick:

  cp templates/{archives,handle_opts,listinfo,roster,subscribe}.html lists/<listname>

- Some modules that existed in previous versions, but that have been
  replaced with newer (differently named) modules, are removed.


Local Variables:
mode: indented-text
indent-tabs-mode: nil
End:
