From 421ee2cf3022c72ac2fb62cb995b734f4c11a117 Mon Sep 17 00:00:00 2001 From: bwarsaw Date: Fri, 17 Aug 2001 21:21:50 +0000 Subject: The usual --- admin/www/faq.ht | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++- admin/www/faq.html | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++- admin/www/i18n.html | 62 ++++++++++++++++--------- 3 files changed, 296 insertions(+), 26 deletions(-) diff --git a/admin/www/faq.ht b/admin/www/faq.ht index 39c6fd827..584ae5299 100644 --- a/admin/www/faq.ht +++ b/admin/www/faq.ht @@ -220,5 +220,132 @@ Title: Mailman Frequently Asked Questions type the password in every time.
Q. How do I rename a list?
-
A. XXX
+
A. Renaming a list is currently a bit of a pain to do completely
+ correctly, especially if you want to make sure that the old list
+ contacts are automatically forwarded to the new list. This ought
+ to be easier. :(
+
The biggest problem you have is how to stop mail and web traffic to + your list during the transition, and what to do about any mail + undelivered to the old list after the move. I don't think there + are any foolproof steps, but here's how you can reduce the risk: +
- Temporarily disable qrunner. To do this, you need to edit the + user `mailman's crontab entry. Execute the following command, + commenting out the qrunner line when you're dropped into your + editor. Then save the file and quit the editor. +
% crontab -u mailman -e +
- Turn off your mail server. This is mostly harmless since remote + MTAs will just keep retrying until you turn it back on, and it's + not going to be off for very long. +
- Next turn off your web server if possible. This of course means + your entire site will be off-line while you make the switch and + this may not be acceptable to you. The next best suggestion is + to set up your permanent redirects now for the list you're + moving. This means that anybody looking for the list under its + old name will be redirected to the new name, but they'll get + errors until you've completed the move. +
Let's say the old name is "oldname" and the new name is + "newname". Here are some Apache directives that will do the + trick, though YMMV: +
RedirectMatch permanent /mailman/(.*)/oldname(.*) http://www.dom.ain/mailman/$1/newname$2 + RedirectMatch permanent /pipermail/oldname(.*) http://www.dom.ain/pipermail/newname$1 +
Add these to your httpd.conf file and restart Apache. +
- Now cd to the directory where you've installed Mailman. Let's + say it's /usr/local/mailman: +
% cd /usr/local/mailman +
and cd to the `lists' subdirectory: +
% cd lists +
You should now see the directory `oldname'. Move this to + `newname': +
% mv oldname newname +
- Now cd to the private archives directory: +
% cd ../archives/private +
You will need to move the oldname's .mbox directory, and the + .mbox file within that directory. Don't worry about the public + archives; the next few steps will take care of them without + requiring you to fiddle around in the file system: +
% mv oldname.mbox newname.mbox + % mv newname.mbox/oldname.mbox newname.mbox/newname.mbox +
- You now need to run the `bin/move_list' script to update some of + the internal archiver paths. IMPORTANT: Skip this step if you + are using Mailman 2.1! +
% cd ../.. + % bin/move_list newname +
- You should now regenerate the public archives: +
% bin/arch newname +
- You'll likely need to change some of your list's configuration + options, especially if you want to accept postings addressed to + the old list on the new list. Visit the admin interface for your + new list: +
o Go to the General options +
o Change the "real_name" option to reflect the new list's name, + e.g. "Newname" +
o Change the subject prefix to reflect the new list's name, + e.g. "[Newname] " (yes, that's a trailing space character). +
o Optionally, update other configuration fields like info, + description, or welcome_msg. YMMV. +
o Save your changes +
o Go to the Privacy options +
o Add the old list's address to acceptable_aliases. + E.g. "oldname@dom.ain". This way, (after the /etc/aliases + changes described below) messages posted to the old list will + not be held by the new list for "implicit destination" + approval. +
o Save your changes +
- Now you want to update your /etc/aliases file to include the + aliases for the new list, and forwards for the old list to the + new list. Note that these instructions are for Sendmail style + alias files, adjust to the specifics of how your MTA is set up. +
o Find the lines defining the aliases for your old list's name +
o Copy and paste them just below the originals. +
o Change all the references of "oldname" to "newname" in the + pasted stanza. +
o Now change the targets of the original aliases to forward to + the new aliases. When you're done, you will end up with + /etc/aliases entries like the following (YMMV): +
# Forward the oldname list to the newname list + oldname: newname@dom.ain + oldname-request: newname-request@dom.ain + oldname-admin: newname-admin@dom.ain + oldname-owner: newname-owner@dom.ain +
newname: "|/usr/local/mailman/mail/wrapper post newname" + newname-admin: "|/usr/local/mailman/mail/wrapper mailowner newname" + newname-request: "|/usr/local/mailman/mail/wrapper mailcmd newname" + newname-owner: newname-admin +
o Run newaliases +
- Before you restart everything, you want to make one last check. + You're looking for files in the qfiles/ directory that may have + been addressed to the old list but weren't delivered before you + renamed the list. Do something like the following: +
% cd /usr/local/mailman/qfiles + % grep oldname *.msg +
If you get no hits, skip to the next step, you've got nothing to + worry about. +
If you did get hits, then things get complicated. I warn you + that the rest of this step is untested. :( +
For each of the .msg files that were destined for the old list, + you need to change the corresponding .db file. Unfortunately + there's no easy way to do this. Anyway... +
Save the following Python code in a file called 'hackdb.py': +
-------------------------hackdb.py + import sys + import marshal + fp = open(sys.argv[1]) + d = marshal.load(fp) + fp.close() + d['listname'] = sys.argv[2] + fp = open(sys.argv[1], 'w') + marshal.dump(d, fp) + fp.close() + ------------------------- +
And then for each file that matched your grep above, do the + following: +
% python hackdb.py reallylonghexfilenamematch1.db newname +
- It's now safe to turn your MTA back on. +
- Turn your qrunner back on by running +
% crontab -u mailman -e +
again and this time uncommenting the qrunner line. Save the file + and quit your editor. +
- Rejoice, you're done. Send $100,000 in shiny new pennies to the + Mailman cabal as your downpayment toward making this easier for + the next list you have to rename. :)
\ No newline at end of file diff --git a/admin/www/faq.html b/admin/www/faq.html index 82510aea3..18f43b8ec 100644 --- a/admin/www/faq.html +++ b/admin/www/faq.html @@ -1,6 +1,6 @@ - + diff --git a/admin/www/i18n.html b/admin/www/i18n.html index f91759f81..e6ffea562 100644 --- a/admin/www/i18n.html +++ b/admin/www/i18n.html @@ -1,6 +1,6 @@ - +