Compilation

Once you have unzipped the source files into the directory where you plan to keep tmda-cgi and selected your mode, you will need to compile tmda-cgi. Compiling creates a binary executable which gives the program the rights to access the files it will need. This also saves certain pieces of information which it will need accessible before authentication.

You will need to recompile if:

  • you move your configuration files
  • you move your supplimental display files (icons, images, and style sheet)
  • you move your tmda-cgi or TMDA source trees
  • you change the tmda-cgi mode
  • you upgrade tmda-cgi to a more recent version (see UPGRADE file)

Compiling is done with the typical:

# ./configure
# make
# make install
Running configure
display Directory
Auto-installation
International Character Sets
Additional no-su Setup

Running configure

Although configure may be run with a large variety of command line switches (see ./configure -h | more), I think you'll find it far easier to run in interactive mode (by not specifying any options). Interactive mode will ask you a series of questions and provide "best guess" answers as the defaults. Once you have answered all the questions, you'll be all ready to compile and install.

If you do not know the answer to one of the interactive questions, don't panic. Simply hit control-C and the program will save the responses you have given. These will be used as the defaults when you re-run configure.

Depending on the mode you have chosen, you may need to be logged in as a specific user when you compile tmda-cgi. Consult the following chart:

  Mode   compile as user
  system-wide   root
  single-user   the user who will be able to log in
  no-su   any user

Information requested in the interactive mode:

  1. The location of your Python interpreter
  2. Where to save the CGI
  3. The path to TMDA's root directory
  4. The path to tmda-cgi's root directory
  5. An optional path or "formula" to find the user config files
  6. The authentication mechanism (file / program / remote)
  7. The web path from the CGI to the display directory
  8. Mode
  9. Virtual user stub and parameters
  10. Real user to use when someone logs in with a virtual e-mail account
  11. Path and prefix to use for temporary, session files
  12. How old session files may get before they can be cleaned
  13. The odds of cleaning up session files

The configure program will provide additional information and its best-guess anwers as defaults. Most of these defaults will probably be just fine for your system, but check them all carefully before hitting return.

display Directory

Finally, tmda-cgi requires a variety of visual elements saved in a display directory (see #7, above). This directory comes with the tmda-cgi source and will need to be manually copied or symbolically linked (make sure your web server is configured to follow links!) into the appropriate web directory.

Please note that #7 specifies the relative web path from the CGI to the display directory, which may be different than the actual path. For example:

  Web path   Actual path
  http://your.domain/cgi-bin/tmda.cgi   /www/tmda/cgi-bin/tmda.cgi
  http://your.domain/display/   /www/tmda/htdocs/display

In the above example, the actual path from the CGI to the display directory is ../htdocs/display/ but the web path is ../display/. The web path (../display/) is the one that should be entered in question #7.

Auto-installation

tmda-cgi can set up e-mail accounts to use TMDA. If you wish to allow this, you will need to read over the auto-install page, as various files may need to be customized to support this.

International Character Sets

tmda-cgi supports various international character sets. Some of which, however, require an additional download. Please refer to the following list:

Chinese Japanese Korean

If tmda-cgi does not correctly support a character set you need, please contact the program authors about adding this support. As we do not speak any foreign languages, we will need your assistance in both supplying sample e-mails that use alternate character sets and checking over new versions of the code to verify that these e-mails are correctly displayed. Please be prepared to spend some time discussing the situation with us by e-mail.

Additional no-su Setup

If you compile in no-su mode, you will need to change permissions on any existing pending mail and configuration files so that they can be read by the CGI. You can either make these files world accessible or group accessible.

Group accessible is a little more secure than world accessible. World accessible files are easily read by accident. Users actually have to take intentional steps to mess with files in another group.

We recommend you assign permissions of 660 to files and 2660 to directories to make them group accessible. Don't forget to chgrp then into the appropriate group! Look in your Apache (or other web server) configuration file to find out which group you should use. For Apache, this directive will look like:

Group nobody

You will also need to add in code to make sure new e-mails are group accessible. We recommend adding the following to your /etc/tmdarc:

os.umask(027)

If you have many users who use tmda-cgi in no-su mode, you may find it advantageous to put all of the TMDA files in one central location, such as /var/tmda. If this sounds appealing, check out the centralized no-su example.