The SIPB Thunderbird Locker - Maintainers


Mozilla Autoconfig is the primary method used to configure Mozilla Thunderbird on MIT Athena. Mozilla Autoconfig (aka. Mission Control) allows locker maintainers to lock user profile settings and set defaults. Settings specified via autoconfig can be changed at any time and are automatically applied when Mozilla Thunderbird starts up. These settings also apply to all of a user's profiles, including any profiles they create themselves.

Some documentation on how to setup Mozilla Autoconfig is availible if you'd like some additional information. The autoconfig code is part of the pref extension. This extension is included in the default builds, and must be compiled into the build for Autoconfig to function.

Files & Tools

Startup Sequence

When Thunderbird starts up, the following steps occur:

  1. The /mit/thunderbird/arch/$ATHENA_SYS/versions/${version}/greprefs/all.js file is read. This file has had the pref('general.config.filename', 'mit.cfg'); and pref('general.config.obscure_value', 0); preferences added to it. These preferences indicates that the plaintext config file named mit.cfg should be read.
  2. The config file /mit/thunderbird/arch/$ATHENA_SYS/versions/${version}/mit.cfg is read by Thunderbird. This is a symlink to the file /mit/thunderbird/arch/share/autoconfig/mit.cfg. This file tells Thunderbird the url of the file containing the configuration information.
  3. The configuration info is read from the file at /mit/thunderbird/arch/share/autoconfig/athena.js and applied to mozilla


This callfile directs Thunderbird to the URL of the file containing configuration information for Athena.
This file contains the configuration information to apply to Mozilla Thunderbird when it starts up.


For autoconfig to work, the all.js file must include the pref('general.config.filename', 'mit.cfg'); and pref('general.config.obscure_value', 0); preferences, and the Thunderbird binary directory must contain a symling to the mit.cfg file. To simplify this process, a tool is availible in the /mit/thunderbird/arch/share/bin/tools directory:
This tool should be run whenever a new Thunderbird binary is added to the locker. This tool adds the pref('general.config.filename', 'mit.cfg'); preference to the all.js file for all installed versions of thunderbird. It also creates the symlink pointing to the mit.cfg file. For this to work, the Thunderbird binary directories must be in the appropriate .build directory, and the directory names must begin with thunderbird.

User Profiles & Defaults

The skeleton for new user profiles is stored in the /mit/thunderbird/arch/share/profiles/default/ directory. The contents of this directory are copied into each of the /mit/thunderbird/arch/$ATHENA_SYS/versions/*/defaults/profile/ directories by the script.

If a user has not run Mozilla Thunderbird before, Thunderbird will automatically create a default profile for them. Thunderbird creates a new user profile by copying the contents of the /mit/thunderbird/arch/$ATHENA_SYS/versions/${version}/defaults/profile/ directory into the new profile. This directory contains files provided with the Thunderbird distribution plus additions made by the script.

For Thunderbird, the new user profile is created in the $HOME/.thunderbird/????????.default/ directory.

The /mit/thunderbird/arch/share/profiles/default/ directory for Thunderbird currently contains 4 items. These include:

Contains the Local Folders Mail directory structure. Thunderbird creates this automatically, but it is included here to ensure that the Junk mail folder is present without the user having to create it.
The user's certificate database. This contains MIT's site certificate, so users don't have to accept it themselves.
Sets the mimetype mappings / helper applications for Athena
Contains the training information for Thunderbird's built-in spam filters. Thunderbird creates this automatically, but it's included to give new accounts a leg-up against SPAM.

Copyright © 2007 Charles Dominguez.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

Last revised: $Date: 2007-01-20 21:01:38 -0500 (Sat, 20 Jan 2007) $
Version: $Revision: 28 $