I recently (tonight) migrated a number of mailman discussion lists from one server to another. To make things as complicated as possible, I changed OSes and domain names.
Moving the lists themselves wasn’t terribly bad, I just followed this post on debian-adminstration.org: http://www.debian-administration.org/article/Migrating_mailman_lists
That went fine up until I got down to 4.2, where I realized “Man, I’ve got way too many lists to do this by hand.” No biggie, I just modified the command to use xargs:
<pre>
# cd /usr/lib/mailman/bin
# ls /var/lib/mailman/lists | xargs -I listname ./withlist -l -r fix_url listname -u new-domain.example.org
</pre>
This worked quite well to fix the links on all of Mailmans internal html pages… but it didn’t do a thing for the archives. Many of the archived messages had links to attachments at the old domain name. So yeah:
<pre>
# cd /var/lib/mailman/archives/private
# find -type f -name *.html | xargs -I file perl -pi -w -e 's/olddomain\.example\.org/newdomain\.example\.org/g;' file
</pre>
Depending on the size and number of lists you have, this will take somewhere between a long time and a longer time.