4.32. How Do I Upgrade version 2.0.x to version 2.1.x?
The documentation for the upgrade process is located in a file called UPGRADING, which is in the root folder of the set of files that you download when you upgrade.
Note that mailman is not 100% backward compatible, and you can lose some of your settings when you upgrade. It is also possible that the archive links for your mailing lists will no longer work. So this is written in an attempt to lay out some of the issues that need to be better documented and addressed, in the hopes that others will help fill in the gaps.
a) if you only have 1 or 2 lists set up, you could make a copy of the archive for the lists (the large MBOX file containing all the posts that were ever made to the list) and also a copy of the user database (where is it located? do you use dumpdb to back it up?) and then manually reconstruct your list once you install Mailman 2. This requires uninstalling mailman.
b) If you wish, you can set up mailman 2.1 simultaneously with 2.0 and then upgrade your lists individually from 2.0, as described in the UPGRADING file.
c) The best option is to upgrade everything at once. However there relatively few scripts or tools available at this time to ease the process.
Some tools to know about: Mailman includes a number of scripts in the mailman/bin folder... however the documentation for these scripts is a bit lacking... you will find the scripts documented under section 4.9 entitled <Summary of the mailman/bin/ commands>. Some of the commands worth knowing are listed below, but the FAQ does not specify if these commands are in all versions of 2.0.x or if some are only available in version 2.1. Here are a few for starters...
fix_url: only in version 2.1; I take it this is something you do after upgrading? Fix_url will update the web_page_url variable in the config file (which is not available from the Web interface). If you not changing the name of your list server then you will not have to use this variable, but if you are moving from one computer to another then you will have to update this variable or the public lists will not show up on the listinfo page and whenever you submit a change in the configuration you will jump back to the original computer. The documentation is a little unclear but if you run it without any arguments then it will get the values from mm_cfg.py and stick them into the config file of the named list.
i.e. bin/withlist -l -r fix_url your_list_name
resets the web_page_url to the value of DEFAULT_URL_HOST in mm_cfg.py
This is mostly designed for virtual hosts but it is also needed in changing from one host to another.
dumpdb: the documentation for this says that it "dumps the contents of a mailman.db file" but what does this mean? Does "dump" mean erase, or does it mean "back up" And does it dump the contents of the database for the all lists or do you call it with a list name as a parameter?
sync_members: this will take as input the name of a list and a flat text file and will change the list database to reflect the contents of the flat text file. So I take it you can remove all members of a list this way, so that if you wanted to rename listA to ListB and then reuse ListB for a slightly different purpose, you could do that without having to do an "rmlist" and then a "newlist".
update: update from previous version to current version
Some issues to consider:
When you upgrade, it is very possible that the links to your archive will no longer work: the link from your listinfo page will point to /var/www/pipermail (which does not exist) instead /var/lib/mailman/archives.
Also, a different version of Pipermail is used by Mailman 2.1 from the one used by version 2.0. It is not documented whether this is the reason for some of the archive problems.
It is also possible that messages sent to your list after an upgrade will not be received properly. So it is important to test your lists after upgrading.
The mailman UPGRADING file includes several other issues... an excerpt follows.
"Mailman will NOT upgrade the template files for existing lists. Chuq Von Rospach gives some useful advice in this message to the users mailing list:
http://mail.python.org/pipermail/mailman-users/2000-September/006826.html [Actually, the upgrade to MM2.1a2 /will/ shuffle template files, deleting any that it detects are unchanged from the original defaults (calculated via md5 checksums)."
If you are also moving from one machine to another at the same time you are upgrading look at: http://acd.ucar.edu/~fredrick/linux/mailman/upgrading.html
"In Mailman 2.1, the qrunner subsystem has been completely rewritten. You no longer start qrunner from cron! Instead, there is a bin/mailmanctl script which is used to start, stop, and restart mail delivery. This script is appropriate to use as a Unix init script. Be sure to update your crontab with the new cron/crontab.in file."
Note that you do not need to regenerate your aliases files; this is dated information left over from earlier versions of mailman... so I guess you can ignore the comments along these lines.
Converted from the Mailman FAQ Wizard
This is one of many Frequently Asked Questions.