CVS is getting too crufty even for geezers like me. It was a toss up between bzr and git, but I'm a gittian now. Note that pydns has moved to https://launchpad.net/pydns
Other pieces will move as time permits.
Bugs are expected due to the substantial API change in libdspam, but this release passes all unit tests, and is running in production on a small MTA that volunteered (nay, begged - since dspam-2.6 crashes on 64-bit systems) to be a guinea pig.
I finally got around to updating pydspam for dspam-3.10. The low level module is done and solid. The high level module is done, but doesn't pass unit testing yet.
I tried to keep the API for the high level Dspam module the same, but the low level dspam extension module necessarily has a very different API - because that is what happened to libdspam.
Check out the trunk of pydspam.
The EPEL RPM removes the start.sh help script. This is probably a good thing, since it just starts a background python process (creating PID files, etc), and has nothing to do with pymilter. But this means that RPMs depending on pymilter. like pysrs and milter, will now have to provide this for themselves - preferably in python.
The first step of porting to python3 is done - miltermodule.c compiles in python3. The changes could be handled conditionally. If the python changes aren't too bad, we might not need the python3-branch.
Several improved diagnostics for programming errors were added.
Handle IP6 in Milter.utils.iniplist(). Compile and test with python2.6.
- Handle missing observations of peer
- Allow socket reuse for immediate restart
- Command line client tc.py
- Persistent peer reputation
This improves TCP support to work with remote DNS such as google DNS (22.214.171.124) and large results. Tested with python2.4 and python2.6. Added dnslookup() and revlookupall() to DNS.lazy.
This minor release expands the infractions that cause an IP to be banned. There is an experimental feature to detect and ban "throwaway" domains.
RPMS for RedHat EL and community rebuilds are available. They include a patch for libmilter to work in a shared library (as required by pymilter) on x86_64.
This is a bugfix and documentation release, but also includes milter.getversion() to retrieve the runtime libmilter version. This is used to work around bug in older versions of libmilter.
This release adds support for the negotiate, data, and unknown callbacks. The default negotiate callback automagically negotiates protocol steps based on information from function decorators for other callbacks. There is a new Base class in which all the callbacks do nothing (as opposed to the original Milter class in which all the callbacks log the event).
The data callback allows rejecting a message after the RCPT phase, but before the DATA phase begins. This is very handy when using signed MAIL FROM to block forged bounces.
I have submitted a request to Sourceforge to copy the milter CVS module to pymilter. The pymilter extension module and Milter package will then evolve separately from 'milter', the all singing all dancing python milter. I think this will be better for projects depending on pymilter.
Ok, so testing for the pydns-2.3.2 release was less than adequate. I believe I've fixed most of the breakage from the port randomization, and added support for querying IPv6 nameservers.
Pyspf now supports fallback to TCB when TXT or SPF data exceeds the size of a UDP packet. This is disabled in strict mode since publishers really aren't supposed to do that. There is now a configurable timeout for queries, and some tweaks for RFC lawyers.
Added TID and port randomization. Although pydns is unlikely to be used as part of a caching DNS server, I wanted to pile on to OS/X Server (which still isn't fixed). Also, the previous behaviour of always setting TID to 0 caused problems with some firewalls.
Pymilter-0.8.9 changes the packaging. The pymilter package will be just the milter module and Milter python package. The bms.py and spfmilter.py milters are now packaged as milter and milter-spf respectively. I will now split the repository so that milter can be changed a released independently from pymilter. Each will retain its current version, but increment independently after the split.
A new pyspf was released July 30. It fixes some minor bugs, and allows keyword arguments when generating Received-SPF mail header fields.
Pyspf-2.0.3 has a debian package in addition to RPMS.
The pygossip package provides client and server library modules. The server module stores reputations of email identities in a shelve database. The server module is used by the bms.py milter in pymilter, and when a senders spam/ham ratio gets too high, their emails are rejected at MAIL FROM. This is much more efficient than scanning and quarantining the message, and keeps clutter out of the quarantine so that false positives are more likely to be noticed.... read more
New packages have been released for pyspf-2.0.2, milter-0.8.7, pygossip-0.2. Also, pyspf and pydns have been accepted by the Fedora project as python-pyspf and python-pydns. The python-* packages are always compiled for the system version of python (Centos-4 and python2.3 for the binaries on sourceforge). The other packages are compiled for Centos-4 and python2.4. You can have both python-pyspf and pyspf installed at once.
This pyspf release passes the first official test-suite release from http://www.openspf.org. It also has full support for IPv6.
A version of pyspf that follows the official RFC 44089 has always been included with milter. Now there is a standalone pyspf file release for those that just want the SPF library. It conflicts with the milter package for now (install one or the other). Future versions of milter will depend on the pyspf package instead.
An alpha release of pygossip has been commited to CVS, module pygossip. A version of the bms.py milter has been commited to CVS which supports calling GOSSiP to track domain reputation in a local database.