In September 2004, I posted on this topic with instructions for installing mailman on MacOS X 10.3 (Panther). Today, I just finished upgrading my mailman installation to 2.1.6 on a system I upgraded to Tiger (10.4) a few weeks ago. At the same time, I updated the startup to Apple's new way of starting stuff at boot. So here, once again for purposes of getting it in the archives, are my instructions for installing mailman on MacOS X. Note that I originally installed on Panther and have only upgraded to Tiger and to mailman 2.1.6 but I believe these to be correct.
Tiger (MacOS X 10.4) installation steps for Mailman
This document is based on my experience installing Mailman 2.1.4 on MacOS X 10.3 (Panther) and subsequently upgrading to Tiger (Mac OS X 10.4) and to mailman 2.1.6. It is largely based on Kathleen Webb's document on installing Mailman and Sendmail on MacOS X 10.2 (Jaguar) (http://mail.python.org/pipermail/mailman-users/2002-October/022944.html) which contains some information on tools that can be useful that will not be repeated here.
This guide assumes that you have Postfix (which comes with Tiger) already configured and operating and that you are familiar with the Unix shell and basic text editing from the shell (vi or emacs). It is intended to help you get Mailman installed. It does not deal with actually using Mailman as there are pleny of other sources of help for that.
Since I upgraded, I've had no opportunity to actually test these instructions on a new Tiger installation. But it should all work! Questions are best asked through the mailman mailing list.
======================================== Step 1) Collect all the things you need.
a) You need to download and decompress the Mailman software. (The installation instructions are in step 3.) Download the software from: http://www.list.org/ My experience was the download was a gzip compressed tar file which was automatically uncompressed to the tar file by Safari (web browser) after downloading. Double-clicking on the tar file caused automatic extraction of the tar file leaving the mailman-2.1.6 folder in the download location.
b) You need to be an administrator of your computer. If you do not have administrator privileges, you will not be able to do this.
c) Python comes pre-installed on your computer. It is already functioning and ready for use by Mailman. (To verify you have Python, open the Terminal application. at the % prompt, type: sudo Python -V and then hit the enter/return key. You'll be prompted for your password. When you enter it, the terminal will respond with the Python version.
d) Apache web server software comes pre-installed on your computer and has already been configured and is running.
e) Postfix is already installed on your computer but is not running by default. You will need to get Postfix configured and started but how to do that is beyond the scope of this document. An excellent way of getting Postfix up and running, along with a POP and IMAP server, is with Postfix Enabler http://www.cutedgesystems.com/software/PostfixEnabler/. Note that Postfix Enabler is not free - as all the underlying software is freely available, you're paying for the configuration and installation tool, not the underlying software.
f) You may need to know how to get into hidden subdirectories. In the Finder, use the Go menu and choose Go to Folder. Type in the path to the hidden folder you need to open.
g) You may need to know how to make a new user. You use the System Preferences application [from the Apple menu]. Use the Accounts panel in the System section.
h) You need to know how to run the Net Info Manager application. [It is in the Utilities folder in the Applications folder.] You use this to create groups.
i) You need to install the Developer Tools that came with your Panther disks or several of the steps won't work.
======================================== Step 2) Set up the user and group needed to run Mailman.
I was surprised to find a mailman user already existed. I can only guess that is becuase mailman is included with Panther Server and the account "leaked" into the client version of Panther and I assume is also in a new installation of Tiger. Use Netinfo Manager (in Utilities inside Applications) to verify that it is using the following. If mailman does not yet exist, see Kathleen Webb's document to set it up.
a) Open the Net Info Manager application. (It is located in the Utilities folder inside the Applications folder.)
b) Click on groups in the second column. Click on mailman in the third column. Verify that in the bottom window you see a property "gid" with value 78.
c) Click on users in the second column. Click on mailman in the third column. Verify that in the bottom window you see a property "uid" with value 78.
Assuming all of the above is there, we're good to go.
======================================== Step 3) Create a folder for mailman in the finder.
a) You can choose where to create the folder. I chose to make the mailman folder in the Applications folder. These instructions assume that is where you create the new folder. To create the folder, open Applications and select New Folder off the File menu. Rename the new folder "mailman".
b) Copy the downloaded and uncompressed mailman distribution folder (e.g. mailman-2.1.6) folder into the new mailman folder in the Applications folder.
c) Click on the mailman folder and set the owner and group to mailman with the Show Info command.
d) In the Terminal application, type: sudo chmod a+rw,g+ws /Applications/mailman
e) Assuming the you are using the mailman-2.1.6 version, in the Terminal application type: cd /Applications/mailman/mailman-2.1.6 sudo ./configure --prefix=/Applications/mailman --with-cgi-gid=www --with-mail-gid=mailman
(FYI: on my machine www is group 70)
f) A whole bunch of lines of code will scroll through the Terminal window. When it finishes, in the Terminal window, type: sudo make install cd /Applications/mailman sudo bin/check_perms -f sudo bin/check_perms -f
(Repeat the check_perms until no errors are reported. If you end up with problems later, this whole step is probably where the problem will come from. Permissions are important to Mailman.)
======================================== Step 4) Set up your web server to serve the Mailman web pages for subscribing and administrating the mailing list.
a) From the Finder, use the Go menu and choose Go to Folder. Type in: /etc/httpd/
b) Select the httpd.conf file. Change its owner to you with Show Info.
c) Open httpd.conf with a text editor. Alternatively, skip a and b and using Terminal, type sudo vi /etc/httpd.conf and edit the file with vi (or emacs if you know emacs). Add these lines to the file:
ScriptAlias /mailman/ /Applications/mailman/cgi-bin/ Alias /pipermail/ /Applications/mailman/archives/public/
<Directory "/Applications/mailman/archives/public"> Options FollowSymLinks
d) Save the file and close it. Change the owner back to System with the Show Info if you changed it in step b.
e) Copy the images used for the mailman web pages to where Apache expects them. In Terminal: sudo cp /Applications/mailman/icons/* /usr/share/httpd/icons
f) In the Terminal application, type: sudo su cd /Applications/mailman/cron crontab crontab.in exit sudo /Applications/mailman/bin/mmsitepass xxxx
[Replace xxxx with the password you want to use as the master password to the mailman application.]
======================================== Step 5) Configure Postfix to support a separate Mailman alias file.
a) Edit your Postix configuration file (/etc/postfix/main.cf) and add: alias_maps=hash:/etc/postfix/aliases, hash:/Applications/Mailman/data/aliases
b) Reload postfix with: sudo postfix reload
======================================== Step 6) Configure Mailman
a) We need to let Mailman know we're using Postfix. Using you favorite means of text editing, open /Applications/Mailman/mailman mm_cfg.py and add below the line that says "# Put YOUR site-specific settings below this line.": MTA = "Postfix"
======================================== Step 7) Create your site-wide mailing list (mailman).
Read the instructions in INSTALL in your mailman source directory (/Applications/Mailman/Mailman-2.1.5).
In short, in the Terminal application, type: sudo su cd /Applications/mailman bin/newlist mailman bin/config_list -i data/sitelist.cfg mailman
======================================== Step 8) Configure your system to start Mailman when it is booted.
a) Open Terminal and change directory to /System/Library/LaunchDaemons: sudo su cd /System/Library/LaunchDaemons
b) Create the Mailman startup preference file: touch mailman.plist
c) Using your favorite method of text editing, add the following content to mailman.plist:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"> <dict> <key>Disabled</key> <false/> <key>Label</key> <string>mailman</string> <key>OnDemand</key> <true/> <key>ProgramArguments</key> <array> <string>/Applications/Mailman/bin/mailmanctl</string> <string>start</string> </array> <key>ServiceIPC</key> <false/> <key>RunAtLoad</key> <true/> </dict> </plist>
d) Verify the file ownership and permissions: ls -l You should see one of the lines saying something like: -rw-r--r-- 5 root wheel 170 12 May 11:21 mailman
e) If the permissions (rw-r--r--) are not correct, type: chmod 644 mailman.plist
f) If the owner (root) or group (wheel) is not correct, type: chown root:wheel Mailman
g) Reboot (Restart) your system. When it finishes rebooting, Mailman should be running. To verify, open Terminal and type: ps -ax | grep python You should see a bunch of lines like this: 434 ?? Ss 0:00.04 python bin/mailmanctl -s start 443 ?? S 4:19.95 /usr/bin/python /Applications/Mailman/bin/qrunner --r 444 ?? S 4:08.58 /usr/bin/python /Applications/Mailman/bin/qrunner --r 445 ?? S 4:11.20 /usr/bin/python /Applications/Mailman/bin/qrunner --r 446 ?? S 4:06.93 /usr/bin/python /Applications/Mailman/bin/qrunner --r 447 ?? S 3:59.35 /usr/bin/python /Applications/Mailman/bin/qrunner --r 448 ?? S 4:16.59 /usr/bin/python /Applications/Mailman/bin/qrunner --r 449 ?? S 4:04.08 /usr/bin/python /Applications/Mailman/bin/qrunner --r 450 ?? S 0:00.85 /usr/bin/python /Applications/Mailman/bin/qrunner --r 16621 std R+ 0:00.00 grep -i python (The numbers will vary. The important thing is that you see the qrunner processes)
NOTE: If you are upgrading from Panther and were using the old way of starting programs at boot time, be sure to go to /etc/hostconfig and change the line saying MAILMAN=-YES- to MAILMAN=-NO-
======================================== Step 9) Enjoy!
At this point, mailman should be ready to use. Read the documentation in your source directory for instructions on setting up your mailing lists.