See <URL:http://tmda.net/upgrade.html> for instructions on how to use this file. ====================================================================== If you are upgrading from a release of TMDA < 0.90: * If you are using Chinese in your TMDA templates, you must install the CJKCodecs Python package from http://cjkpython.i18n.org/. CJKCodecs has replaced the ChineseCodecs package. ====================================================================== If you are upgrading from a release of TMDA < 0.87: * The OUTGOINGMAIL variable has been renamed MAIL_TRANSPORT, and its default value has also been changed from 'smtp' to 'sendmail'. If you desire SMTP transport, you need to set MAIL_TRANSPORT = 'smtp' in your /etc/tmdarc or ~/.tmdarc. If you desire /usr/sbin/sendmail transport, you can take the default, and don't need to set MAIL_TRANSPORT. If you are running qmail and have previously set SENDMAIL_PROGRAM = '/var/qmail/bin/qmail-inject', you need to change this to '/var/qmail/bin/sendmail', or simply comment this out and take the default value of '/usr/sbin/sendmail'. If you are running Exim, please make note of #1 under ``Main Configuration'' at http://tmda.net/config-pre.html#exim, as you may need to adjust your Exim configuration. ====================================================================== If you are upgrading from a release of TMDA < 0.83: * The unmaintained tmda-gui and tmda-manager programs have been removed from the distribution. ====================================================================== If you are upgrading from a release of TMDA < 0.81: * The {from,to}-mysql rules have been replaced by from-sql and to-sql. See <URL:http://tmda.net/filter-sources.html> for details on the use of the new rules. * The -domains argument to filter rules that search files or databases has been removed. The domains of the sender or recipient addresses are now always added to the list of search keys. The behavior of the rules is the same as before; you just don't need to specify the -domains argument anymore. ====================================================================== If you are upgrading from a release of TMDA < 0.79: * The PURGED_HEADERS configuration variable has been changed to <URL:http://tmda.net/config-vars.html#PURGED_HEADERS_CLIENT>. If you use PURGED_HEADERS in your config file you will need to change it to PURGED_HEADERS_CLIENT. ====================================================================== If you are upgrading from a release of TMDA < 0.78: * The format of confirm_accept_url has changed. This only affects you if you use tmda-cgi (version 0.08 or earlier) and URL confirmation. Please view the UPGRADE file of tmda-cgi version 0.09 for more information. tmda-cgi 0.09 can be downloaded from: <URL:http://www.tmda.net/tmda-cgi/releases/> ====================================================================== If you are upgrading from a release of TMDA < 0.77: * By default, tmda-filter now performs an automated cleanup of the pending queue upon receipt of an incoming message. If you wish to use this feature, you should disable any cron jobs you might be running to periodically purge your pending queue of old messages. The default cleanup interval is approximately once per 100 incoming messages received. To tweak this interval, or disable this feature, see <URL:http://tmda.net/config-vars.html#PENDING_CLEANUP_ODDS>. When this feature is enabled, the default lifetime for a message in the pending queue is 14 days. Any message older than 14 days will be deleted. If you wish to raise or lower this threshold, see <URL:http://tmda.net/config-vars.html#PENDING_LIFETIME>. This feature respects the <URL:http://tmda.net/config-vars.html#PENDING_DELETE_APPEND> setting. ====================================================================== If you are upgrading from a release of TMDA < 0.76: * LOCALDATE has been deprecated. ====================================================================== If you are upgrading from a release of TMDA < 0.74: * contrib/cgi has been removed. tmda-cgi is now maintained/released as a stand-alone distribution to allow that effort more flexibility. Download at <URL:http://tmda.net/tmda-cgi/> ====================================================================== If you are upgrading from a release of TMDA < 0.72: * contrib/vipmap-to-authmap has been removed. ====================================================================== If you are upgrading from a release of TMDA < 0.69: * tmda-ofmipd now disables CRAM-MD5 negotiation when the -R or -A options are specified. See TMDA FAQ 5.8 for why. * tmda-cgi now expects to find support files in the subdirectory ../display instead of display. This better supports users who install tmda-cgi in their cgi-bin directory. Use compile's -d option to override this default. ====================================================================== If you are upgrading from a release of TMDA < 0.68: * tmda-ofmipd now forks into the background by default. Use the ``--foreground'' option to retain the old behavior. ====================================================================== If you are upgrading from a release of TMDA < 0.66: * DELIVERED_CACHE and DELIVERED_CACHE_LEN are no longer used to store delivery status information about pending messages. Instead, a Maildir-like status flag (':3,R' and ':3,C') is appended to the filename to indicate delivery by release or delivery by confirmation. No action is required to accommodate this change, but if you use tmda-pending, you'll notice that previously delivered messages will now show up in the output until they are deleted or are cached with the ``--cache'' option. ====================================================================== If you are upgrading from a release of TMDA < 0.65: * If you are using customized templates, you should replace %(envelope_sender)s with %(confirm_append_address)s in your confirm_request.txt. This is to support the new <URL:http://tmda.net/config-vars.html#PRIMARY_ADDRESS_MATCH> feature. * When doing program deliveries to procmail, you should no longer be using the ``-f'' option. e.g, DELIVERY = "|/usr/bin/procmail -f $SENDER ~/.procmailrc-tmda" becomes DELIVERY = "|/usr/bin/procmail ~/.procmailrc-tmda" * contrib/sample.tmdarc has been renamed contrib/sample.config. ====================================================================== If you are upgrading from a release of TMDA < 0.63: * Python version 2.1 or greater is now required. Upgrade at <URL:http://www.python.org/download/> * When sending an auto response, a new configuration variable (AUTORESPONSE_INCLUDE_SENDER_COPY) is used to control whether a copy of the sender's message is included or not. For available options, <URL:http://tmda.net/config-vars.html#AUTORESPONSE_INCLUDE_SENDER_COPY> If you are using customized templates, you should remove the last few lines in each template which include the sender's copy. For example, in confirm_request.txt: --- Enclosed is a copy of your message. %(original_message)s Otherwise, you'll include two copies of the sender's message. * When sending confirmation requests, Reply-To is now set from the confirm_request.txt template. This is to allow the option to not include the confirmation address in a Reply-To header. If you use a customized confirm_request.txt, you'll need to add the following line to the top (header section) of your template: Reply-To: %(confirm_accept_address)s ====================================================================== If you are upgrading from a release of TMDA < 0.59: * TMDA's auto-replies now include your FULLNAME in the From: header instead of just the e-mail address. e.g, From: "Jason R. Mastaler" <jasonrm@nightshade.la.mastaler.com> Subject: Please confirm your message Set FULLNAME in your tmda config, to override the default value (taken from the password file). * ADDED_HEADERS has been renamed ADDED_HEADERS_CLIENT. ====================================================================== If you are upgrading from a release of TMDA < 0.57: * 'keyword' addresses now use an identifying string like 'dated' and 'sender' addresses do. 'keyword' by default, and customizable via TAGS_KEYWORD. This means you'll need to generate new addresses using `tmda-address', as your old ones will no longer work. If you want your old keyword addresses to be accepted until you can transition to the new format, you can add entries for them in your FILTER_INCOMING. e.g, to jason-promos.8d06eu@mastaler.com ok to jason-stupid_promo.289j76@mastaler.com ok * RECIPIENT_DELIMITER is no longer allowed to be part of the keyword in a keyword address. `?' will be substituted for it when a new keyword address is created. ====================================================================== If you are upgrading from a release of TMDA < 0.56: * The format for a confirmation request address is now: RECIPIENT-confirm-TIMESTAMP.PID.HMAC, instead of RECIPIENT-confirm-accept.TIMESTAMP.PID.HMAC The new format is detailed in CRYPTO. Because of this change, it's recommended that you run tmda-pending to make sure your queue is free of legitimate messages, since the old confirmation addresses will no longer work. If you are unable to do this and need temporary backward compatibility with the old format, there is a patch against 0.56 available at: <URL:http://mla.libertine.org/tmda-users/200206/msg00193.html> * Confirmed messages are now reinjected to the original envelope recipient address (RECIPIENT) rather than to: RECIPIENT-confirm-done.TIMESTAMP.PID.HMAC See CRYPTO for more details. * TMDA now sends outgoing mail by handing it off to an SMTP server instead of the /usr/sbin/sendmail program. By default it will use the standard SMTP port (25) on the local host. You can modify this by setting the "SMTPHOST" variable in your tmdarc. See http://tmda.net/config-vars.html for further information. * tmdarc variable SENDMAIL has been renamed SENDMAIL_PROGRAM, but is irrelevant unless OUTGOINGMAIL = "sendmail". * tmdarc variable PURGED_HEADERS now lists "Bcc:" and "Resent-Bcc" by default. If you define this variable in your tmdarc, be sure to add these two headers. * CRYPT_KEY should be removed from ~/.tmdarc or ~/.tmda/config. Your secret key is now read from CRYPT_KEY_FILE, which defaults to ~/.tmda/crypt_key. To make this conversion, move your existing CRYPT_KEY to ~/.tmda/crypt_key, but without the double-quotes. e.g, if CRYPT_KEY = "df7a18a8d95f02ff94bf6463a8ec214cf20cb9e8" ~/.tmda/crypt_key should contain: df7a18a8d95f02ff94bf6463a8ec214cf20cb9e8 * ~/.tmdarc and ~/.tmda/config are no longer checked for file permissions. Instead, make sure ~/.tmda/crypt_key is chmod 400 or 600 (or 640 if ALLOW_MODE_640 = 1). * An exception is no longer be raised if ~/.tmdarc or ~/.tmda/config is missing. However, a ~/.tmda/crypt_key file is required. * tmda-keygen now outputs an unquoted key instead of a CRYPT_KEY line. * Template variables dated_cookie_address and sender_cookie_address were replaced with dated_recipient_address and sender_recipient_address, which are based on the RECIPIENT address. ====================================================================== If you are upgrading from a release of TMDA < 0.55: * DELIVERY has replaced LOCAL_DELIVERY_AGENT. If you wish to retain existing functionality, you can simply rename LOCAL_DELIVERY_AGENT to DELIVERY in your tmdarc, but be sure to add a `|' (pipe) to the front of the path to indicate a program delivery. e.g, LOCAL_DELIVERY_AGENT = "/usr/bin/maildrop ~/.mailfilter_tmda" becomes DELIVERY = "|/usr/bin/maildrop ~/.mailfilter_tmda" However, you should also read about DELIVERY in http://tmda.net/config-vars.html, as it contains some significant enhancements that may simplify your overall configuration. e.g, if the only purpose of the above ~/.mailfilter_tmda is to deliver to your mailbox, you can use the following instead for example: DELIVERY = "/var/mail/jasonrm" * You should no longer specify 'subscribers' when using a from-ezmlm or to-ezmlm source. Specify the parent directory instead, and 'subscribers' will automatically be appended. e.g, from-ezmlm ~alias/all-acl-users ok from-ezmlm ~alias/all-acl-users/mod ok from-ezmlm ~alias/all-acl-users/digest ok * You should no longer specify 'config.db' or 'config.pck' when using a from-mailman or to-mailman source. Specify just the list directory instead, and the configuration database will be located automatically. e.g, from-mailman -attr=members ~mailman/lists/viewnet-news ok from-mailman -attr=digest_members ~mailman/lists/viewnet-news ok ====================================================================== If you are upgrading from a release of TMDA < 0.52: * For its Python 2.x dependency, tmda.spec now has RPM look for the file "/usr/bin/python2" instead of the package "python2". ====================================================================== If you are upgrading from a release of TMDA < 0.50: * Messages in the pending directory are no longer deleted after they are confirmed (or released) and delivered. Now they are simply noted in the DELIVERED_CACHE file. * BOUNCE_TEXT_ALREADY_CONFIRMED has been deprecated. * The confirm_accept.txt template has been modified. The message body of the notification is no longer hardcoded, but rather stored in %(confirm_accept_text)s, which comes from one of the following tmdarc variables depending on context: CONFIRM_ACCEPT_TEXT_INITIAL CONFIRM_ACCEPT_TEXT_ALREADY_CONFIRMED CONFIRM_ACCEPT_TEXT_ALREADY_RELEASED ====================================================================== If you are upgrading from a release of TMDA < 0.49: * Custom templates are now referred to by a template directory rather than individually. Any templates found in this directory will be used, otherwise the default templates will be used. You can specify a custom template directory in one of two ways: A TEMPLATE_DIR setting in your tmdarc. This replaces use of CONFIRM_ACCEPT_TEMPLATE and CONFIRM_REQUEST_TEMPLATE. tmda-filter's -t option, which replaces both -A and -R. * The 'unquoted' and 'parens' options to MESSAGE_FROM_STYLE have been deprecated. 'angles' now double-quotes the fullname only when necessary. ====================================================================== If you are upgrading from a release of TMDA < 0.48: * As of v0.48, TMDA is released under the GNU General Public License (GNU GPL). See COPYING for more information. * qmail users now must invoke tmda-filter with 'preline' from their dot-qmail files. e.g, |preline /usr/bin/tmda-filter * Exim users must configure Exim to add a Return-Path header to messages from their address_pipe transport. See the "TMDA Pre-Configuration" page (config-pre.html#exim) for more details. * The 'to-autocdb' and 'from-autocdb' sources have been removed. If you use the autocdb functionality, you will need to change these sources to 'to-file' or 'from-file', respectively, and add the '-autocdb' flag. The match field is the name of the textfile without the '.cdb' extension, as before. # old rule from-autocdb ~/lists/whitelist_confirmed accept # new rule from-file -autocdb ~/lists/whitelist_confirmed accept * The contrib/list2cdb and contrib/list2dbm scripts have been removed. Using the '-autocdb' or '-autodbm' argument to from-file or to-file is much easier than rebuilding your DB files manually. See the TMDA Filter Specification for more details on these options. * The 'to-mailman' and 'from-mailman' sources have changed. You no longer specify the attribute to search with '.<attr_name>'. Instead these sources now take the '-attr' argument with the attribute as the option. # old rule from-mailman.members ~mailman/lists/mylist/config.db accept # new rule from-mailman -attr=members ~mailman/lists/mylist/config.db accept * The filter file parser used to ignore all syntax errors in filter files. This means that your file might not be working as you want but you wouldn't know it. This behavior has been changed. Every error that the filter parser encounters is saved and, after the entire file has been processed, an exception is thrown and written to the debug log. If you want to check your filter files, make sure you have LOGFILE_DEBUG defined in your ~/.tmdarc and run tmda-filter with the '-M' switch. Run 'tmda-filter -h' for more information about '-M'. Then examine the contents of your debug log. ====================================================================== If you are upgrading from a release of TMDA < 0.47: * tmda-clean has been removed from the distribution. The new tmda-pending script can be used to provide identical functionality by combining its `-q', `-b', `-d', and `-O' options. tmda-pending's `-h' option provides an example of this. ====================================================================== If you are upgrading from a release of TMDA < 0.46: * Python version 2.0 or greater is now required. ====================================================================== If you are upgrading from a release of TMDA < 0.45: * Filter file rules must now start at the beginning of a line. e.g, # invalid from johndoe ok # valid from johndoe ok See the documentation for more details on filter file syntax. * 'headers' and 'body' filter file rules now use quotes (single or double) rather than parentheses to delimit the regular expression in the match field. # invalid headers (Subject: Site Down:.*) reject # valid headers "Subject: Site Down:.*" reject headers 'Subject: Site Down:.*' reject * tmda-filter no longer looks for the `X-Originally-To' header by default. If you need to retain this feature, set the following in your tmdarc: RECIPIENT_HEADER = "x-originally-to" See the related documentation for RECIPIENT_HEADER in http://tmda.net/config-vars.html. ====================================================================== If you are upgrading from a release of TMDA < 0.44: * LOGFILE has been renamed LOGFILE_INCOMING. * tmda-address has replaced tmda-dated-address, tmda-keyword-address, and tmda-sender-address. Run `tmda-address -h' to get a list of available options. * tmda-address now prints a newline after the tagged address by default. Use the `-n' option to prevent this behavior. ====================================================================== If you are upgrading from a release of TMDA < 0.43: * The TIMEZONE configuration setting has been removed. If you need to specify a timezone for TMDA different than that of the local system, set the `TZ' environment variable directly from /etc/tmdarc or ~/.tmdarc. e.g, import os os.environ['TZ'] = "Europe/Moscow" ====================================================================== If you are upgrading from a release of TMDA < 0.41: Version 0.41 introduced TMDA filter files which are used to control both incoming and outgoing mail (one filter file for incoming, and a second for outgoing). These obsolete all files in ~/.tmda/lists/* TMDA filter file support necessitates several configuration changes. You will also need to rename/add/delete several variables in your tmdarc: * BLACKLIST, WHITELIST, SACRED_FILE, and REVOKED_FILE were replaced by FILTER_INCOMING. Create your ~/.tmda/filters/incoming filter file as explained in "TMDA Server Configuration" (config-server.html). * BARE_FILE, DATED_FILE, EXP_FILE, EXT_FILE, KEYWORD_FILE, SENDER_FILE, were replaced by FILTER_OUTGOING. Create your ~/.tmda/filters/outgoing filter file as explained in "TMDA Client Configuration" (config-client.html). * WHITELIST_TO_BARE was removed as it is no longer relevant. You can retain this functionality by adding the following line to your ~/.tmda/filters/outgoing filter file: to-file ~/.tmda/lists/whitelist bare * BOUNCE_BLACKLIST_CC, BOUNCE_CONFIRM_CC, and BOUNCE_REVOKED_CC were replaced by FILTER_DROP_CC, CONFIRM_CC, and FILTER_BOUNCE_CC. * WHITELIST_AUTO_APPEND was replaced by CONFIRM_APPEND. The value for CONFIRM_APPEND should be the path to a filename rather than an integer. * COOKIE_TYPE was replaced by ACTION_OUTGOING. * X-TMDA headers should now contain only one field. Separate multi-word entries with `='. e.g, X-TMDA: ext=mlists ====================================================================== If you are upgrading from a release of TMDA < 0.38: * The local copy of the documentation is now in `htdocs'. * The `X-Confirmed' header is now `X-TMDA-Confirmed'. * You can remove INJECT and INJECT_FLAGS from your .tmdarc as they are no longer used. ====================================================================== If you are upgrading from a release of TMDA < 0.36: * The `setup' script was renamed `compileall'. ====================================================================== If you are upgrading from a release of TMDA < 0.35: * Be aware that `WHITELIST_TO_BARE' is now turned on by default. ====================================================================== If you are upgrading from a release of TMDA < 0.33: * If you maintain your own templates, make sure to replace all instances of `envelope_recipient' with `recipient_address'. ====================================================================== If you are upgrading from a release of TMDA < 0.31: * You can remove LOCALS and USERPREFIX from your .tmdarc as they are no longer used. ====================================================================== If you are upgrading from a release of TMDA < 0.30: Version 0.30 introduced "confirmation mode" where instead of just bouncing the message, it will be stored in a pending-queue until the sender responds to a confirmation request. This replaces the old behavior. Some configuration changes are necessary: * If you don't have a catch-all `.qmail-default', you will need to make a link from `.qmail-confirm-default' to `.qmail'. * confirm_request.txt is the template used when generating confirmation requests. This obsoletes bounce_dated.txt and bounce_sender.txt. confirm_accept.txt is the template used to generate confirmation acceptance notices. * BOUNCE_CONFIRM_CC replaces both BOUNCE_DATED_CC and BOUNCE_SENDER_CC. * The copy of the original message is now added through the template instead of the code. * The pending message queue will be maintained under ~/.tmda/ by default, and it will be created automatically if it doesn't exist. Set "DATADIR" in your .tmdarc to something else if you want to use a different directory. * The default locations for the former 'dot-tmda' files are now within ~/.tmda/lists/: ~/.tmda-bare --> ~/.tmda/lists/bare ~/.tmda-blacklist --> ~/.tmda/lists/blacklist ~/.tmda-dated --> ~/.tmda/lists/dated ~/.tmda-exp --> ~/.tmda/lists/exp ~/.tmda-ext --> ~/.tmda/lists/ext ~/.tmda-sender --> ~/.tmda/lists/sender ~/.tmda-whitelist --> ~/.tmda/lists/whitelist ====================================================================== If you are upgrading from a release of TMDA < 0.21: Starting with version 0.21, the syntax for .tmda-* files changed from simple substring matching to supporting matching patterns based on Unix shell-style wildcards. The benefits are more matching flexibility and better matching precision. As a result, your global patterns will need to be modified to support the new syntax. For example, `@domain.dom' will no longer match anyone@domain.dom. See `FAQ' for further explanation and examples using the new syntax. ====================================================================== If you are upgrading from a release of TMDA < 0.10: Starting with version 0.10, TMDA's crypto-cookie generation and verification scheme switched to using HMACs instead of block cipher encryption, which invalidated all previous tagged addresses. For the motivations behind this, see `CRYPTO'. * The amkCrypto package is no longer necessary as HMAC uses Python's built-in `sha' module for hashing. * You need to generate a new CRYPT_KEY by running bin/tmda-keygen and replace your current key in .tmdarc. * You can remove BLOCK_CIPHER, CRYPT_IV, and HASH_FUNCTION from your .tmdarc as they are no longer used. * Again, the new 'dated' and 'sender' addresses are not compatible with those generated prior to v0.10, so re-issue addresses as necessary with bin/tmda-dated-address and bin/tmda-sender-address. ====================================================================== ^L Local Variables: mode: text End: