[Mailman-Users] Re: Upgrade from 2.0.11 to 2.1.5
Bruce Timberlake
bruce at brtnet.org
Fri May 28 23:43:31 CEST 2004
> I'm in the middle of planning an upgrade of our mailman
> installation and was looking for some pointers. The current version
> is 2.0.11 and I'm planning on going to the current 2.1.5. I'm
> actually moving the installation from an older desktop system to a
> newer server
I just did a 2.0.3 to 2.1.5 same-server upgrade last night. It seemed
to go fairly smoothly - I did a clean install and then copied lists/*
and archives/* to the new directories. I'm always leery of
upgrades-in-place... some sort of cruft always seems to get left
behind.
I made sure to shut down the old mailman and sendmail, kill all
processes, and flush the old queue.
The main gotcha that took me a while to figure out (it was *early* in
the morning by the time I did this!) was the extra lines that needed
to be added for each list to virtusertable (the server is running
Sendmail) - the 2.0.x versions seemed to have fewer addresses per
list. Without some of the new entries - like listname-bounces - no
outbound mail was being processed. Got stuck for a while on thinking
smrsh and the mailman wrapper was the problem...
The server had about 55 lists on it; rather than type out all the
virtusertable entries by hand, I wrote an ugly little Perl script to
read through a file containing the list names and spit out another
file containing all the virtusertable entries. Here it is - maybe it
will save you some time!
- - - - -
#!/usr/bin/perl
# Script to generate virtusertable entries
# for Mailman 2.1.5
#
# (c) 2004 by Bruce Timberlake <bruce at brtnet dot org>
#
# create all-lists.txt with
#
# bin/list_lists -b > all-lists.txt
$listfile = "all-lists.txt";
$virtfile = "virt-file.txt";
$hostname = "\@www.example.com";
open INPUT, "<$listfile" or die "Can't open $listfile: $!\n";
open OUTPUT, ">$virtfile" or die "Can't open $virtfile: $!\n";
while (<INPUT>) {
chomp;
print OUTPUT "## List: $_\n";
print OUTPUT "$_$hostname\t$_\n";
print OUTPUT "$_-admin$hostname\t$_-admin\n";
print OUTPUT "$_-bounces$hostname\t$_-bounces\n";
print OUTPUT "$_-confirm$hostname\t$_-confirm\n";
print OUTPUT "$_-join$hostname\t$_-join\n";
print OUTPUT "$_-leave$hostname\t$_-leave\n";
print OUTPUT "$_-owner$hostname\t$_-owner\n";
print OUTPUT "$_-request$hostname\t$_-request\n";
print OUTPUT "$_-subscribe$hostname\t$_-subscribe\n";
print OUTPUT "$_-unsubscribe$hostname\t$_-unsubscribe\n";
print OUTPUT "\n";
}
close OUTPUT;
close INPUT;
- - - - -
I told you it was ugly! :) But it was about 3 am when I did it, so...
I generated the all-lists.txt file by using "bin/list_lists -b" in
the new Mailman install after I copied the lists etc. across. Then I
opened virtusertable in vi, manually deleted the old entries for the
2.0.3 install and imported virt-file.txt. A quick makemap, restarting
sendmail and Mailman, and all was well.
Since you're switching machines, you'll need to deal with a DNS
changeover, and maybe editing mm_cfg.py to change the hostname etc.
Or are you going to use the old domain name on the new server, so
that the list address domain stays the same? I didn't have to deal
with that, so I can't comment.
More information about the Mailman-Users
mailing list