libspf for Debian
-----------------

The author provided the following information from which the package
description was pulled:

-- START PASTE --

libSPF is an ANSI* C implementation of the SPF** ("Sender Policy
Framework").  libSPF's focus is to be as small and as portable as
possible and to provide a working example of how SPF would ideally be
implemented for authors of MTA's and implementors of RFC's 2821 and
2822.  libSPF currently only implements# explicitly what is set out in
the SPF Internet Draft as it was sent off to the I-D archive (
http://archives.listbox.com/spf-discuss@v2.listbox.com/200405/0128.html)
of which copy can be found at the libSPF website:
http://libspf.org/files/spf-draft-200405.txt

Technical tidbits about the underlying implementation are that libSPF
employs an "on the fly" parse method where records are evaluated in a
byte by byte manner allowing the parser to return results at the first
sign of success or failure for much of the SPF Query language.  This
parsing method affords a speed advantage over all other implementations
which perform an unnecessary validation of the entire query before
moving on to data evaluation.  Great care has been taken to use unsigned
integers whenever possible, and to employ only safe string handling
functions (eg: snprintf over sprintf).  Further care has been spent
allocating memory only to the very byte that is necessary and employing
dynamic allocation where appropriate.  Several memory leak detection
implementations most notably Valgrind have been employed since the
beginning to ensure that memory is not leaked, and every single byte of
allocated memory is explicitly freed irregardless of the natural cleanup
of a modern kernel.  This attention to detail has led to an efficient
and secure library with which it is hoped will lend confidence to those
who intend to implement it.

At the time of this writing libSPF ships with patches for Qmail,
Sendmail and Courier, and includes an API example entitled "SPF Query"
which doubles as an SPF validation test tool found within the source
tree.  I encourage anyone who can to contribute by submitting patches
for any and all MTA's or related software.  Lastly the LICENSE that
libSPF is released under is a derivative of the Apache license aptly
named "the libSPF license", intentionally authored to encourage FREE
commercial use without worry, something that unfortunately the GPL and
LGPL do not afford.

Website: http://libSPF.org
Developer Forums: http://forums.6o4.ca
Contact: James Couzens <jcouzens@codeshare.ca>

* to support the method of debugging employed in libSPF the library
looses its C/89 compliance to take advantage of Variadic Arguments
(__VA_VARARGS__) which are taken from the ISO C/99 C standard.  Any
stable branch of libSPF will loose the debugging code and reclaim C/89
compliance.

** SPF is formerly known as Sender Permitted From

# The development branch of libSPF contains feature enhancements not
identified in the RFC of which most notably is the AVL-Tree DNS caching
layer which will be back ported into the 1.0-STABLE tree when it arrives
at the STABLE status.

-- END PASTE --

 -- martin f. krafft <madduck@debian.org> Fri, 23 Jul 2004 18:10:37 +0200
