Print this page


2011-04-26 02:50:43

base-mailman.mod in testing

The long awaited replacement of Majordomo with Mailman is now available in the 'BlueOnyx-Testing' YUM repository.

Category: Development
Posted by: mstauber

During the easter weekend I had some time and spent it on a coding project that had been long overdue: The replacement of the venerable, crappy and outdated Majordomo mailing list manager with Mailman on BlueOnyx.

This coding project was tremendously aided by Leslie Herps, who had donated the RackStar "base-maillist" module to us, which already had completed this migration in the past. So I was able to take a working code base and could adapt it to our architecture, could spice it up some and modify it to do what I wanted it to do.

Of course one concern that I had to keep in mind was: What happens with BlueOnyx servers that already have active (Majordomo) mailing lists, when the new code is released? We certainly don't want those lists to break. So a "drop in" replacement or a simple swap out wasn't possible or even adviseable.

Hence our Mailman integration comes as a separate module, which won't get installed by default on existing servers. Once our Mailman integration has received a proper field test and once all bugs are ironed out, it will become the standard mailing list module in future BlueOnyx releases, though. So future ISO images and OS templates will have Mailman support by default.

base-maillist.mod: The old Majordomo driven mailing lists.

base-mailman.mod: The new Mailman driven mailing lists.

To make it easier to distinguish if a server has Majordomo or Mailman installed, both modules now advertise themselves with their name in the "Installed Software" tab of the BlueOnyx GUI. So with one glance people can see what mailing list manager is installed.

To get Mailman integrated, a couple of other modules had to be updated, too:

Updated modules:

base-mailman.mod (new module)
base-documentation.mod (change unrelated to MailMan)

A full list of source code changes can be found here.

Current status of the updates:

The updated base-blueonyx.mod and base-email.mod now detect if you have Majordomo or Mailman installed. Based on that they do a few minor things slightly different. This mostly deals with and and the aliases.majordomo or aliases.mailman reference in there.

The updated base-maillist.mod still has the old Majordomo support in it and works exactly as before. A few minor things were changed, though: In "Installed Software" Majordomo will now show up, which will help us to make it easier to spot if this is a Majordomo or Mailman box. Additionally the handling during RPM install of this module got improved, so that this module will not install if someone has already installed MailMan instead.


As it is right now this is an optional module. It will not install by itself on a BlueOnyx box, unless someone manually installs it through YUM. This will change, as I plan to release new ISOs and OS templates where this is the default module for mailing lists.

When being installed through YUM, it grabs the "mailman" RPM out of the CentOS YUM repository as dependency and will configure it. A constructor handles the first time setup of the mandatory "mailman" mailing list and and on the box are modified with versions that'll work together with this module.

As Mailman has a daemon that needs to run, this daemon is enabled and also monitored through Active Monitor.

The GUI pages add a new entry to "Network Services" named "MailMan", which allow you to stop/start the daemon. You can also see the auto-generated mailman admin password there and can access the native MailMan GUI through buttons from within the GUI.

Under "Site Management" the new MailMan GUI occupies the "Mailing Lists" menu entry that Majordomo previously used. From there you can add, modify and remove lists and can manage them.

Some basic management options are available trough the BlueOnyx GUI. The more advanced Mailman options can be reached from there through the buttons of each list that lead to the native Mailman GUI. Additionally the archives of each list can be reached through a GUI button.

From what I can tell from testing everything seems to work. Lists even get renamed properly if the name of a Vsite is changed.

As far as CMU goes: During a CMUexport the list settings are exported and a new list with the same settings is automatically created on CMUimport.

Things that do NOT work through CMU:

  • Mailing list messages do NOT migrate.
  • Any advanced settings of the list do NOT migrate.
  • Users subscribed through means outside the BX GUI will not retain subscription.

I can probably fix that by modifying CMU to pack up all of (or parts of) /var/lib/mailman/ and to put it back into the right places on CMUimport. However, this is somewhat of a scary proposal, as extending CMU to that degree will require an extensive modification that has the tendency to break a lot of other CMU related stuff. The actual coding may be easy, but testing migrations back and forth between all the various supported platforms to see if the changes have broken something is a really tedious task.

CMUImport of a Majordomo mailing list onto a Mailman box should work in so far, as that the list is generated and the subscribers are imported. No old messages will be imported as of now, though.

How to test it:

WARNING: Be advised to not do this on a box that is actively using Majordomo mailing lists. Please do this only on a box that has no active mailing lists. Or use it on a test server.

On such a test box edit /etc/yum.repos.d/BlueOnyx.repo and enable the [BlueOnyx-Testing] YUM repository. Save the changes and run a "yum clean all" and a "yum update".

That will grab all the updates that you need before we get started for real.

Then do these steps:

1.) Remove Majordomo:

rpm -e --nodeps majordomo

2.) Find all "base-maillist" RPMs and remove them:

rpm -qa|grep base-maillist|sort|xargs rpm -e

3.) Install the new modules:

yum install mailman base-mailman-am.i386 base-mailman-capstone.noarch base-mailman-glue.noarch base-mailman-locale-da.noarch base-mailman-locale-da_DK.noarch base-mailman-locale-de_DE.noarch base-mailman-locale-en.noarch base-mailman-locale-en_US.noarch base-mailman-locale-ja.noarch base-mailman-locale-nl.noarch base-mailman-ui.noarch

4.) Restart some services:

/etc/init.d/cced.init restart
/etc/init.d/httpd restart
/etc/init.d/sendmail restart

That should do the trick. If you're logged in to the GUI, log out and log back in. Then you can test the new Mailman GUI pages.

Please let us know if you run into any problems or if you have any suggestions for changes or improvements.

Previous page: API Documentation
Next page: Downloads