Mailing Lists Server
All gnu and nongnu mailing lists are processed on
using the Mailman package. This machine is managed by FSF admins.
Savannah admins have only non-root access and are able to perform
limited mailing-list related administration tasks.
This page describes commands to manually manage mailing lists by savannah administrators. See also:
- MailSystem - various email and mailing-list related details in Savannah and gnu systems.
- MailingListsInternals - the interface between savannah's php frontend and Mailman.
Some Mailman admin tasks need to be performed on the actual machine where Mailman is installed, while others, such as changing the password for a list, can be done via the web interface and the site-wide admin mailman password.
In order to do this you need to have shell access to
the machine that runs the master Mailman installation. If you require
such access, ask one of the other savannah admins to add your ssh
Once your ssh public key has been added, you can log in as the user 'list'. You will be greeted with the bash prompt:
$ ssh email@example.com lists:~ $
From here you can perform all sorts of Mailman administrative tasks, such as those discussed below. See also: ResetListPassword.
On lists.gnu.org, there is a symlink
~list/mailman which must point to
the active mailman installation (maintained by FSF sysadmin), or nothing
will work right.
Mailman home page: http://www.gnu.org/software/mailman.
Project admins can create their own mailing lists through the normal web
interface. (This results in an ssh connection to
newlist being run there; see the MailSystem page.)
For lists whose names do not follow an allowed pattern, savannah-hackers
must manually run
~/mycreate_list.pl on lists, and then attach the
list to the given project using
infra/maintenance/ml.pl -a yourlogin -g project -l listname # check if there's no error infra/maintenance/ml.pl -a yourlogin -g project -l listname | mysql savane
Well, the pipe doesn't actually work. You have to run ml.pl on vcs, save the sqlcmd that is output, and then, on internal, run:
echo "sqlcmd" | mysql savane
Simple aliases, as opposed to mailman lists, can be created in fp.gnu.org:/com/mailer/aliases.
Switch from nongnu to gnu
You need to edit the list configuration, and the FSF-specific virtual domain support (the domains/ subdirectory from the list directory).
Here are the commands, on list.gnu.org:
newdomain=gnu # or nongnu withlist -l -r fix_url $list_name -u lists.$newdomain.org go $list_name cd domains mv nongnu.org gnu.org # or 'mv gnu.org nongnu.org' if going the other way # or 'touch gnu.org nongnu.org' to accept mail at both domains
There is an hourly cron job that collects the "domains" information, so changes are not instantaneous.
We do not remove list archives when it was a public archive. Instead, we deactivate a list, while keeping archives and status. On lists.gnu.org:
cd /home/list/mailman/lists/listname/domains mv gnu.org gnu.org.disabled-yourname # mv nongnu.org nongnu.org.blah ...
Then, in the Privacy form in the mailman interface, set the "advertised"
variable to "no". TODO: use
config_list as with
Then, remove any heldmsg-listname* pending messages from
If we really want to delete a list, then to tell Mailman to delete a list and its settings:
... with archives:
listname=LISTNAME rmlist -a $listname # purge pending requests ls -U /home/list/mailman/data | grep '^heldmsg-$listname-[0-9]+.pck$' | xargs rm # Note: with a live list, purging should be followed by this, so Mailman take the removals into account: # curl http://lists.gnu.org/mailman/admindb/testlist -F adminpw=****** # (ToDo: backup the archives somewhere for a little while) # with mharc, for public archives mv ~/mbox/$listname ~/archive/mbox mv ~/html/$listname ~/archive/html 'listname' doesn't contain the @domain.tld part. Some mailing lists contain both private and public archives.
Renaming a mailing list
Message deletion from archives
Sometimes people ask to remove a message from the archives, because they don't want their address harvested, or for some legality, or whatever.
As a policy, we do not have to implement all such requests; deletion for spam purposes is typically useless since it's already been mirrored in many places.
If you do delete a message, it is usually better to edit it to make the body/headers/whatever empty, instead of actually deleting it. Deletion will change all the existing url's. Here's the procedure:
- become user mharc on lists.gnu.org (ssh in or su if you can)
- cd mbox/listname
- edit file ('mutt -f 200X-YZ' might help)
- cd ../bin
- ./web-archive -rebuild listname
It's CRUCIAL to run web-archive as the mharc user.