Update to 1.1.9 (approved by kim@). From the changelog:

* New feature courtesy of Mark Horn. ACTION_EXPIRED_DATED has been
  extended to support handling multiple ages of dated messages. So you
  could for example 'bounce' mail to dated addresses that have been
  expired for more than a week, 'hold' if longer than a month, and
  'drop' if over a year, while still setting the default behavior to
  'confirm'.  For more information and an illustrative example, see
  http://wiki.tmda.net/ConfigurationVariables#ACTION_EXPIRED_DATED

* TMDA's internal copy of the Python email package has been upgraded
  to v4.0.1.

* The bin/tmda-* programs have been revamped to use Python's new
  'optparse' library.

* TMDA can now optionally store unconfirmed messages in a "Maildir"
  rather than in TMDA's custom pending queue format.  This allows you
  to use any mail reading program that supports Maildir to browse or
  search your pending queue, rather than the 'tmda-pending' and
  'tmda-cgi' programs, though the latter will still work.

* tmda-filter has a new command-line option, '-e/--environ' which you
  can use to add a VAR=value pair to the environment.  One example use
  of this is to allow TMDA to be setup as a Postfix transport.
  Contributed by Bernard Johnson.

* tmda-filter will defer incoming deliveries if the sticky bit is set
  on your home directory (as determined by the $HOME variable).  This
  allows you to safely edit the contents of ~/.tmda/ on a live system
  if you need to.

* tmda-ofmipd now has "one-session" mode through the '--one-session'
  command-line option, courtesy of Stephen Warren.  This allows you to
  use xinetd or tcpserver, possibly in conjunction with stunnel, to
  spawn tmda-ofmipd, rather than having tmda-ofmipd bind to a port and
  accept connections on its own.

* The new 'dot-tmda' directory in contrib contains a working ~/.tmda/
  structure that can be used with only a few changes.  See the README
  in that directory for more info.  Not documented yet outside of the
  README, but this might help new TMDA users get started quicker.

* Some of the tmda-* programs will now run on native win32
  (tmda-address, tmda-check-address, tmda-pending, and tmda-keygen).

* tmda-ofmipd has a new option (--pure-proxy) that can proxy mail for
  non-TMDA users in addition to TMDA users.  This might be useful if
  you run a mixed environment, and want to use tmda-ofmipd for
  everyone.  See `tmda-ofmipd --help' for more on this option.

* New feature from David Bremner.  Add 'shell=' and 'python=' tag
  actions to the outgoing filter.  This allows you to add
  dynamic/shell escaped headers from the outgoing filter file.  For
  example usage, see the TMDA/Hashcash HOWTO I've prepared at
  http://wiki.tmda.net/TmdaHashCashHowto

* The template system has been reorganized to simplify things for
  users of multi-lingual templates among others.  See
  http://wiki.tmda.net/TemplateHowto and the UPGRADE notes below.

* Messages are now simply deleted from your pending queue once they
  are confirmed or released rather than being renamed with a '3,C' or
  '3,R' suffix.  This provides simpler, more intuitive behavior and
  decreased storage requirements.

* Fixed a bug in TMDAINJECT that caused Message-ID and Date headers to
  differ when sending to multiple recipients.

* Fixes to the tmda.spec file that should allow RPMs to be built with
  Python 2.3.x.

* Tilde expansion is now done automatically for variables in
  /etc/tmdarc and ~/.tmda/config, so you no longer have to use
  os.path.expanduser() to do this yourself.  e.g,

  TEMPLATE_DIR = "~/.tmda/templates"

  now ``just works''.

* New 'whitelist' behavior for tmda-pending and tmda-cgi, controlled
  by http://wiki.tmda.net/ConfigurationVariables#PENDING_WHITELIST_RELEASE

* A new 'pipe-headers' incoming filter file source.  Identical to
  'pipe' except that it only pipes the headers to the program, instead
  of the headers + body.  This should offer greater performance and
  reliability when processing the message body isn't required.

* A new feature to add Mail-Followup-To headers from tmda-sendmail or
  tmda-ofmipd to messages.  See
  http://wiki.tmda.net/ConfigurationVariables#MAIL_FOLLOWUP_TO
This commit is contained in:
schmonz 2006-11-07 07:42:09 +00:00
parent 68778343d9
commit ba43d825b7
3 changed files with 120 additions and 106 deletions

View file

@ -1,10 +1,10 @@
# $NetBSD: Makefile,v 1.30 2006/04/23 00:12:39 jlam Exp $
# $NetBSD: Makefile,v 1.31 2006/11/07 07:42:09 schmonz Exp $
#
DISTNAME= tmda-1.0.3
PKGREVISION= 2
DISTNAME= tmda-1.1.9
CATEGORIES= mail python
MASTER_SITES= http://tmda.net/releases/stable/
MASTER_SITES= http://tmda.net/releases/
MASTER_SITES+= ftp://tmda.net/pub/tmda/releases/
EXTRACT_SUFX= .tgz
MAINTAINER= kim@tac.nyc.ny.us
@ -16,7 +16,7 @@ PYTHON_PATCH_SCRIPTS= ${TMDA_PROGRAMS}
PKG_SYSCONFSUBDIR= ${PKGBASE}
PYTHON_VERSIONS_ACCEPTED= 24 23 22
PYTHON_VERSIONS_ACCEPTED= 24 23
PKG_GROUPS= tofmipd
PKG_USERS= tofmipd:tofmipd
@ -27,16 +27,17 @@ FILES_SUBST+= PYTHONBIN=${PYTHONBIN:Q}
SHAREDIR= share/${PKGBASE}
DOCDIR= share/doc/${PKGBASE}
CONTRIBDIR= share/doc/${PKGBASE}/contrib
EGDIR= share/examples/${PKGBASE}
HTMLDIR= share/doc/html/${PKGBASE}
PLIST_SUBST+= SHAREDIR=${SHAREDIR:Q}
PLIST_SUBST+= DOCDIR=${DOCDIR:Q}
PLIST_SUBST+= CONTRIBDIR=${CONTRIBDIR:Q}
PLIST_SUBST+= EGDIR=${EGDIR:Q}
PLIST_SUBST+= HTMLDIR=${HTMLDIR:Q}
TMDA_PROGRAMS= bin/tmda-*
TMDA_DOCS= CODENAMES COPYING CRYPTO ChangeLog INSTALL README THANKS UPGRADE
TMDA_HTDOCS= htdocs/*.html
TMDA_DOCS= CODENAMES COPYING CRYPTO ChangeLog INSTALL
TMDA_DOCS+= NEWS README THANKS UPGRADE
TMDA_HTDOCS= htdocs/*.html htdocs/*.css
TMDA_CONTRIB= contrib/*
SUBST_CLASSES+= etc
@ -44,7 +45,8 @@ SUBST_STAGE.etc= do-configure
SUBST_FILES.etc= bin/tmda-ofmipd TMDA/Auth.py TMDA/Defaults.py
SUBST_SED.etc= -e 's|/etc|${PKG_SYSCONFDIR}|g'
INSTALLATION_DIRS= bin
INSTALLATION_DIRS= bin ${SHAREDIR} ${DOCDIR} ${HTMLDIR}/img
INSTALLATION_DIRS+= ${PYSITELIB}/TMDA/pythonlib/email/mime ${EGDIR}
do-build:
cd ${WRKSRC} && ${PYTHONBIN} ./compileall
@ -54,33 +56,35 @@ do-install:
${INSTALL_SCRIPT} ${WRKSRC}/$${f} ${PREFIX}/bin; \
done
${INSTALL_SCRIPT_DIR} ${PREFIX}/${PYSITELIB}/TMDA
${INSTALL_SCRIPT} ${WRKSRC}/TMDA/*.py* ${PREFIX}/${PYSITELIB}/TMDA
${INSTALL_SCRIPT_DIR} ${PREFIX}/${PYSITELIB}/TMDA/pythonlib/email
${INSTALL_SCRIPT} ${WRKSRC}/TMDA/pythonlib/email/*.py* \
${PREFIX}/${PYSITELIB}/TMDA/pythonlib/email
${INSTALL_SCRIPT} ${WRKSRC}/TMDA/pythonlib/email/mime/*.py* \
${PREFIX}/${PYSITELIB}/TMDA/pythonlib/email/mime
${INSTALL_DATA_DIR} ${PREFIX}/${SHAREDIR}
${INSTALL_DATA} ${WRKSRC}/templates/*.txt ${PREFIX}/${SHAREDIR}
${INSTALL_DATA_DIR} ${PREFIX}/${DOCDIR}
for f in ${TMDA_DOCS}; do \
${INSTALL_DATA} ${WRKSRC}/$${f} ${PREFIX}/${DOCDIR}; \
done
${INSTALL_DATA_DIR} ${PREFIX}/${CONTRIBDIR}
for f in ${TMDA_CONTRIB}; do \
${INSTALL_DATA} ${WRKSRC}/$${f} ${PREFIX}/${CONTRIBDIR}; \
if [ -f $${f} ]; then \
${INSTALL_DATA} ${WRKSRC}/$${f} \
${PREFIX}/${EGDIR}; \
else \
cp -Rp ${WRKSRC}/$${f} ${PREFIX}/${EGDIR}; \
fi; \
done
${INSTALL_DATA_DIR} ${PREFIX}/${HTMLDIR}
for f in ${TMDA_HTDOCS}; do \
${INSTALL_DATA} ${WRKSRC}/$${f} ${PREFIX}/${HTMLDIR}; \
done
${INSTALL_DATA_DIR} ${PREFIX}/${HTMLDIR}/img
${INSTALL_DATA} ${WRKSRC}/htdocs/img/*.png ${PREFIX}/${HTMLDIR}/img
for f in htdocs/img/*.png htdocs/img/*.gif; do \
${INSTALL_DATA} ${WRKSRC}/$${f} ${PREFIX}/${HTMLDIR}/img; \
done
post-install:
${PREFIX}/bin/tmda-ofmipd -V >/dev/null 2>&1

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.11 2005/05/02 20:34:01 reed Exp $
@comment $NetBSD: PLIST,v 1.12 2006/11/07 07:42:09 schmonz Exp $
bin/tmda-address
bin/tmda-check-address
bin/tmda-filter
@ -40,63 +40,55 @@ ${PYSITELIB}/TMDA/Version.py
${PYSITELIB}/TMDA/Version.pyc
${PYSITELIB}/TMDA/__init__.py
${PYSITELIB}/TMDA/__init__.pyc
${PYSITELIB}/TMDA/pythonlib/email/Charset.py
${PYSITELIB}/TMDA/pythonlib/email/Charset.pyc
${PYSITELIB}/TMDA/pythonlib/email/Encoders.py
${PYSITELIB}/TMDA/pythonlib/email/Encoders.pyc
${PYSITELIB}/TMDA/pythonlib/email/Errors.py
${PYSITELIB}/TMDA/pythonlib/email/Errors.pyc
${PYSITELIB}/TMDA/pythonlib/email/Generator.py
${PYSITELIB}/TMDA/pythonlib/email/Generator.pyc
${PYSITELIB}/TMDA/pythonlib/email/Header.py
${PYSITELIB}/TMDA/pythonlib/email/Header.pyc
${PYSITELIB}/TMDA/pythonlib/email/Iterators.py
${PYSITELIB}/TMDA/pythonlib/email/Iterators.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEAudio.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEAudio.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEBase.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEBase.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEImage.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEImage.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEMessage.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEMessage.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEMultipart.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEMultipart.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMENonMultipart.py
${PYSITELIB}/TMDA/pythonlib/email/MIMENonMultipart.pyc
${PYSITELIB}/TMDA/pythonlib/email/MIMEText.py
${PYSITELIB}/TMDA/pythonlib/email/MIMEText.pyc
${PYSITELIB}/TMDA/pythonlib/email/Message.py
${PYSITELIB}/TMDA/pythonlib/email/Message.pyc
${PYSITELIB}/TMDA/pythonlib/email/Parser.py
${PYSITELIB}/TMDA/pythonlib/email/Parser.pyc
${PYSITELIB}/TMDA/pythonlib/email/Utils.py
${PYSITELIB}/TMDA/pythonlib/email/Utils.pyc
${PYSITELIB}/TMDA/pythonlib/email/__init__.py
${PYSITELIB}/TMDA/pythonlib/email/__init__.pyc
${PYSITELIB}/TMDA/pythonlib/email/_compat21.py
${PYSITELIB}/TMDA/pythonlib/email/_compat21.pyc
${PYSITELIB}/TMDA/pythonlib/email/_compat22.py
${PYSITELIB}/TMDA/pythonlib/email/_compat22.pyc
${PYSITELIB}/TMDA/pythonlib/email/_parseaddr.py
${PYSITELIB}/TMDA/pythonlib/email/_parseaddr.pyc
${PYSITELIB}/TMDA/pythonlib/email/base64MIME.py
${PYSITELIB}/TMDA/pythonlib/email/base64MIME.pyc
${PYSITELIB}/TMDA/pythonlib/email/quopriMIME.py
${PYSITELIB}/TMDA/pythonlib/email/quopriMIME.pyc
${HTMLDIR}/challengeresponse.html
${HTMLDIR}/config-client.html
${HTMLDIR}/config-filter.html
${HTMLDIR}/config-pre.html
${HTMLDIR}/config-server.html
${PYSITELIB}/TMDA/pythonlib/email/base64mime.py
${PYSITELIB}/TMDA/pythonlib/email/base64mime.pyc
${PYSITELIB}/TMDA/pythonlib/email/charset.py
${PYSITELIB}/TMDA/pythonlib/email/charset.pyc
${PYSITELIB}/TMDA/pythonlib/email/encoders.py
${PYSITELIB}/TMDA/pythonlib/email/encoders.pyc
${PYSITELIB}/TMDA/pythonlib/email/errors.py
${PYSITELIB}/TMDA/pythonlib/email/errors.pyc
${PYSITELIB}/TMDA/pythonlib/email/feedparser.py
${PYSITELIB}/TMDA/pythonlib/email/feedparser.pyc
${PYSITELIB}/TMDA/pythonlib/email/generator.py
${PYSITELIB}/TMDA/pythonlib/email/generator.pyc
${PYSITELIB}/TMDA/pythonlib/email/header.py
${PYSITELIB}/TMDA/pythonlib/email/header.pyc
${PYSITELIB}/TMDA/pythonlib/email/iterators.py
${PYSITELIB}/TMDA/pythonlib/email/iterators.pyc
${PYSITELIB}/TMDA/pythonlib/email/message.py
${PYSITELIB}/TMDA/pythonlib/email/message.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/__init__.py
${PYSITELIB}/TMDA/pythonlib/email/mime/__init__.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/application.py
${PYSITELIB}/TMDA/pythonlib/email/mime/application.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/audio.py
${PYSITELIB}/TMDA/pythonlib/email/mime/audio.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/base.py
${PYSITELIB}/TMDA/pythonlib/email/mime/base.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/image.py
${PYSITELIB}/TMDA/pythonlib/email/mime/image.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/message.py
${PYSITELIB}/TMDA/pythonlib/email/mime/message.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/multipart.py
${PYSITELIB}/TMDA/pythonlib/email/mime/multipart.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/nonmultipart.py
${PYSITELIB}/TMDA/pythonlib/email/mime/nonmultipart.pyc
${PYSITELIB}/TMDA/pythonlib/email/mime/text.py
${PYSITELIB}/TMDA/pythonlib/email/mime/text.pyc
${PYSITELIB}/TMDA/pythonlib/email/parser.py
${PYSITELIB}/TMDA/pythonlib/email/parser.pyc
${PYSITELIB}/TMDA/pythonlib/email/quoprimime.py
${PYSITELIB}/TMDA/pythonlib/email/quoprimime.pyc
${PYSITELIB}/TMDA/pythonlib/email/utils.py
${PYSITELIB}/TMDA/pythonlib/email/utils.pyc
${HTMLDIR}/config-vars.html
${HTMLDIR}/config.html
${HTMLDIR}/donations.html
${HTMLDIR}/download.html
${HTMLDIR}/features.html
${HTMLDIR}/filter-sources.html
${HTMLDIR}/history.html
${HTMLDIR}/howto-template.html
${HTMLDIR}/img/blocksmall.png
${HTMLDIR}/img/stripes.gif
${HTMLDIR}/img/tmda-186x253.png
${HTMLDIR}/img/tmda-47x64.png
${HTMLDIR}/img/tmda-562x765.png
@ -104,48 +96,66 @@ ${HTMLDIR}/img/tmda-70x95.png
${HTMLDIR}/img/tmda-93x127.png
${HTMLDIR}/img/tmda-nt-616x616.png
${HTMLDIR}/index.html
${HTMLDIR}/install.html
${HTMLDIR}/logos.html
${HTMLDIR}/requirements.html
${HTMLDIR}/tmda-ofmipd.html
${HTMLDIR}/tmda-vdomains.html
${HTMLDIR}/trouble.html
${HTMLDIR}/upgrade.html
${HTMLDIR}/tmda.css
${DOCDIR}/CODENAMES
${DOCDIR}/COPYING
${DOCDIR}/CRYPTO
${DOCDIR}/ChangeLog
${DOCDIR}/INSTALL
${DOCDIR}/NEWS
${DOCDIR}/README
${DOCDIR}/THANKS
${DOCDIR}/UPGRADE
${DOCDIR}/contrib/ChangeLog
${DOCDIR}/contrib/collectaddys
${DOCDIR}/contrib/def2html
${DOCDIR}/contrib/printcdb
${DOCDIR}/contrib/printdbm
${DOCDIR}/contrib/sample.config
${DOCDIR}/contrib/sendit.sh
${DOCDIR}/contrib/smtp-check-sender
${DOCDIR}/contrib/tmda.el
${DOCDIR}/contrib/tmda.spec
${DOCDIR}/contrib/tofmipd.init
${DOCDIR}/contrib/tofmipd.sysconfig
${DOCDIR}/contrib/update-internaldomains
${DOCDIR}/contrib/vadduser-tmda
${DOCDIR}/contrib/vmailmgr-vdir.sh
${DOCDIR}/contrib/vpopmail-vdir.sh
${DOCDIR}/contrib/vtmdarc
${DOCDIR}/contrib/wrapfd3.sh
${SHAREDIR}/bounce.txt
${SHAREDIR}/confirm_accept.txt
${SHAREDIR}/confirm_request.txt
${EGDIR}/ChangeLog
${EGDIR}/collectaddys
${EGDIR}/def2html
${EGDIR}/printcdb
${EGDIR}/printdbm
${EGDIR}/sendit.sh
${EGDIR}/smtp-check-sender
${EGDIR}/tmda.el
${EGDIR}/tmda.spec
${EGDIR}/tofmipd.init
${EGDIR}/tofmipd.sysconfig
${EGDIR}/update-internaldomains
${EGDIR}/vadduser-tmda
${EGDIR}/vmailmgr-vdir.sh
${EGDIR}/vpopmail-vdir.sh
${EGDIR}/vtmdarc
${EGDIR}/wrapfd3.sh
${EGDIR}/dot-tmda/README
${EGDIR}/dot-tmda/config
${EGDIR}/dot-tmda/crypt_key
${EGDIR}/dot-tmda/filters/incoming
${EGDIR}/dot-tmda/filters/outgoing
${EGDIR}/dot-tmda/lists/blacklist
${EGDIR}/dot-tmda/lists/confirmed
${EGDIR}/dot-tmda/lists/whitelist
${EGDIR}/ofmipd-stunnel-xinetd/README.txt
${EGDIR}/ofmipd-stunnel-xinetd/stunnel-wrapper
${EGDIR}/ofmipd-stunnel-xinetd/stunnel.conf
${EGDIR}/ofmipd-stunnel-xinetd/tmda-ofmipd-wrapper
${EGDIR}/ofmipd-stunnel-xinetd/xinetd.d-tmda-ofmipd-starttls
share/examples/rc.d/tofmipd
@dirrm ${SHAREDIR}
@dirrm ${DOCDIR}/contrib
share/tmda/bounce_expired_dated.txt
share/tmda/bounce_fail_dated.txt
share/tmda/bounce_fail_keyword.txt
share/tmda/bounce_fail_sender.txt
share/tmda/bounce_incoming.txt
share/tmda/bounce_invalid_confirmation.txt
share/tmda/bounce_missing_pending.txt
share/tmda/confirm_accept.txt
share/tmda/confirm_request.txt
@dirrm share/tmda
@dirrm ${DOCDIR}
@dirrm ${HTMLDIR}/img
@dirrm ${HTMLDIR}
@dirrm ${EGDIR}/ofmipd-stunnel-xinetd
@dirrm ${EGDIR}/dot-tmda/lists
@dirrm ${EGDIR}/dot-tmda/filters
@dirrm ${EGDIR}/dot-tmda
@dirrm ${EGDIR}
@dirrm ${PYSITELIB}/TMDA/pythonlib/email/mime
@dirrm ${PYSITELIB}/TMDA/pythonlib/email
@dirrm ${PYSITELIB}/TMDA/pythonlib
@dirrm ${PYSITELIB}/TMDA

View file

@ -1,5 +1,5 @@
$NetBSD: distinfo,v 1.15 2005/02/24 09:59:30 agc Exp $
$NetBSD: distinfo,v 1.16 2006/11/07 07:42:09 schmonz Exp $
SHA1 (tmda-1.0.3.tgz) = 77a813c3a6d55eecf3fab30b82fdb9004354ae55
RMD160 (tmda-1.0.3.tgz) = 826738deae3dd48084b7dd5bb5535ed11aa36e50
Size (tmda-1.0.3.tgz) = 392608 bytes
SHA1 (tmda-1.1.9.tgz) = 5c5a0d5e6679dcccfc7e781f859a01054e37d9fe
RMD160 (tmda-1.1.9.tgz) = 63cd03cfec6bd644311c2b258f3f4f8fdb3b25f5
Size (tmda-1.1.9.tgz) = 331721 bytes