--- pyspf-2.0.5.orig/debian/spf-tools-python.postinst +++ pyspf-2.0.5/debian/spf-tools-python.postinst @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e +mode=$1 + +source_package=pyspf + +case "$mode" in + configure ) + prev_version=$2 + + update-alternatives --install /usr/bin/spfquery spfquery /usr/bin/spfquery.$source_package 75 + ;; +esac + +#DEBHELPER# --- pyspf-2.0.5.orig/debian/rules +++ pyspf-2.0.5/debian/rules @@ -0,0 +1,18 @@ +#!/usr/bin/make -f + +%: + dh $@ --with python2 + +override_dh_install: + # Install test suite + dh_install test usr/share/doc/python-spf + + # Make dirs for the tools package (then move scripts from python-spf) + mkdir -p debian/spf-tools-python/usr/bin/ + # Rename the `spfquery` tool for the alternatives system + # (omitting the ".py" language extension): + mv debian/tmp/usr/bin/spfquery.py debian/spf-tools-python/usr/bin/spfquery.pyspf + # Give the `type99` tool a more specific name + # (omitting the ".py" language extension): + mv debian/tmp/usr/bin/type99.py debian/spf-tools-python/usr/bin/pyspf-type99 + --- pyspf-2.0.5.orig/debian/copyright +++ pyspf-2.0.5/debian/copyright @@ -0,0 +1,31 @@ +This package was debianized by Gustavo Franco on +Thu, 23 Jun 2005 11:04:29 -0300. + +The current Debian maintainer is Scott Kitterman . + +This version was downloaded from http://downloads.sourceforge.net/pymilter/ + +Copyright Holder: (c) 2003 Terence Way +Portions Copyright (c) 2004,2005,2006,2007,2008 Stuart Gathman + +Portions Copyright (c) 2005,2006,2007,2009 Scott Kitterman + + +This software is licensed under the Python Software Foundation License. + +License: + +This module is free software, and you may redistribute it and/or modify +it under the same terms as Python itself, so long as this copyright message +and disclaimer are retained in their original form. + +IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, +SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF +THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. + +THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, +AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, +SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. --- pyspf-2.0.5.orig/debian/pyspf.1 +++ pyspf-2.0.5/debian/pyspf.1 @@ -0,0 +1,250 @@ +\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "python-spf 1" +.TH python-spf 1 "2010-12-03" +.SH "NAME" +pyspf \- pure-Python SPF library +.SH "VERSION" +.IX Header "VERSION" +2\.0\.5 + +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" + +SPF does email sender validation. For more information about SPF, +please see http://www.openspf.org/ + +One incompatible change was introduced in version 1.7. Prior to version 1.7, +connections from a local IP address (127...) would always return a Pass +result. The special case was eliminated. Programs calling pySPF should not +do SPF checks on locally submitted mail. + +This SPF client is intended to be installed on the border MTA, checking +if incoming SMTP clients are permitted to forward mail. The SPF check +should be done during the MAIL FROM:<...> command. + +.SH "USAGE" +.IX Header "USAGE" + +There are two ways to use this package. The first is from the command +line:: + % python spf.py {ip-addr} {mail-from} {helo} + +For instance, during an SMTP exchange from client 69.55.226.139:: + S: 220 mail.example.com ESMTP Postfix + C: EHLO mx1.wayforward.net + S: 250-mail.example.com + S: ... + S: 250 8BITMIME + C: MAIL FROM: + +Then the following command line would check if this is a valid sender: + % ./spf.py 69.55.226.139 terry@wayforward.net mx1.wayforward.net + ('pass', 250, 'sender SPF authorized') + +Command line calls return RFC 4408 result codes, i.e. 'pass', 'fail', 'neutral', +\'softfail, 'permerror', or 'temperror'. + +The second way is via the module's APIs. + +The legacy (pySPF 1.6) API: + >>> import spf + >>> spf.check(i='69.55.226.139', + ... s='terry@wayforward.net', + ... h='mx1.wayforward.net') + ('pass', 250, 'sender SPF authorized') + +The first element in the tuple is one of 'pass', 'fail', 'netural', 'softfail', +\'unknown', or 'error'. The second is the SMTP response status code: 550 for +\'fail', 450 for 'error' and 250 for all else. The third is an explanation. + +Note: SPF results alone are never sufficient to decide that a message should be +accepted. Accept, reject, or defer decisions are a function of local receiver +policy. + +The RFC 4408 compliant API: + >>> import spf + >>> spf.check2(i='69.55.226.139', + ... s='terry@wayforward.net', + ... h='mx1.wayforward.net') + ('pass', 'sender SPF verified') + +The first element in the tuple is one of 'pass', 'fail', 'neutral', 'softfail, +\'permerror', or 'temperror'. The second is an explanation. + +.SH "RFC 4408 TEST SUITE" +.IX Header "RFC 4408 TEST SUITE" + +The package also installs the python-spf test driver and the current (as of the +release date) YAML (Yet Another Markup Language) RFC 4408 test definitions. As +errors or improvements in the test definitions are approved, they are available +from: + + + +To run the test suite, change the directory the test suite is installed in: + +$ cd /usr/share/python-support/python-spf/test + +and then run testspf.py: + +$ python testspf.py + +The test suite supports multiple allowed results with a warning for a +non-preferred result. For the current version, the expected results are: + + WARN: invalid-domain-long in rfc4408-tests.yml, ['8.1/2', '5/10']: fail + preferred to temperror + WARN: txttimeout in rfc4408-tests.yml, 4.4/1: fail preferred to temperror + WARN: spfoverride in rfc4408-tests.yml, 4.5/5: pass preferred to fail + WARN: multitxt1 in rfc4408-tests.yml, 4.5/5: pass preferred to permerror + WARN: multispf2 in rfc4408-tests.yml, 4.5/6: permerror preferred to pass + +.SH "OTHER PROGRAMS" +.IX Header "OTHER PROGRAMS" + +This package also provides two additional helper scripts; type99.py and +spfquery.py. The type99.py script will convert DNS TXT strings to a binary +equivalent suitable for use in a BIND zone file. The spfquery.py script is a +Python reimplementination of Wayne Schlitt's spfquery command line tool. These +scripts are described in pyspf-type99(1) and spfquery.pyspf(1) man pages. + +.SH "SEE ALSO" +.IX Header "SEE ALSO" + +RFC 4408, + +.SH "AUTHORS" +.IX Header "AUTHORS" +This version of \fBpyspf\fR was written by Terence Way +and updated by Stuart Gathman and Scott Kitterman +. +.PP +This man-page was created by Scott Kitterman . --- pyspf-2.0.5.orig/debian/python-spf.docs +++ pyspf-2.0.5/debian/python-spf.docs @@ -0,0 +1 @@ +README --- pyspf-2.0.5.orig/debian/spf-tools-python.manpages +++ pyspf-2.0.5/debian/spf-tools-python.manpages @@ -0,0 +1,3 @@ +debian/pyspf-type99.1 +debian/spfquery.pyspf.1 +debian/pyspf.1 --- pyspf-2.0.5.orig/debian/pyspf-type99.1 +++ pyspf-2.0.5/debian/pyspf-type99.1 @@ -0,0 +1,170 @@ +\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "pyspf-type99 1" +.TH pyspf-type99 1 "2007-01-16" +.SH "NAME" +type99 \- Python Type TXT to Type 99/SPF conversion script +.SH "VERSION" +.IX Header "VERSION" +2\.0\.4 + +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" + +The type99script will convert DNS TXT strings to a binary +equivalent suitable for use in a BIND zone file. + +.SH "USAGE" +.IX Header "USAGE" + +The type99 script is called from the command line as follows: + +python type99 "v=spf1 \-all" {Note: Use your desired SPF record instead.} + +\\# 12 0b763d73706631202d616c6c {This is the correct result for "v=spf1 \-all"} + +or + +python type99 - {File name} + +The input file format is a standard BIND Zone file. The type99 script will add +a Type99 record for each TXT record found in the file. + +.SH "SEE ALSO" +.IX Header "SEE ALSO" + +RFC 4408, + +.SH "AUTHORS" +.IX Header "AUTHORS" +This version of \fBtype99\fR was written by Stuart Gathman and +updated by Scott Kitterman . +.PP +This man-page was created by Scott Kitterman . --- pyspf-2.0.5.orig/debian/spf-tools-python.docs +++ pyspf-2.0.5/debian/spf-tools-python.docs @@ -0,0 +1 @@ +debian/README.Debian.spf-tools-python --- pyspf-2.0.5.orig/debian/spf-tools-python.links +++ pyspf-2.0.5/debian/spf-tools-python.links @@ -0,0 +1 @@ +usr/share/pyshared/spf.py usr/bin/pyspf --- pyspf-2.0.5.orig/debian/compat +++ pyspf-2.0.5/debian/compat @@ -0,0 +1 @@ +7 --- pyspf-2.0.5.orig/debian/python-spf.install +++ pyspf-2.0.5/debian/python-spf.install @@ -0,0 +1,2 @@ +spf.py usr/share/pyshared/ + --- pyspf-2.0.5.orig/debian/spfquery.pyspf.1 +++ pyspf-2.0.5/debian/spfquery.pyspf.1 @@ -0,0 +1,194 @@ +\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "spfquery.pyspf 1" +.TH spfquery.pyspf 1 "2007-01-16" +.SH "NAME" +spfquery.pyspf \- pure-Python spfquery script +.SH "VERSION" +.IX Header "VERSION" +2\.0\.4 + +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" + +The spfquery script is a Python reimplementination of Wayne Schlitt's spfquery +command line tool. + +.SH "USAGE" +.IX Header "USAGE" + +The spfquery script is called with a number of possible options. Options can +either use standard '-' prefix or be PERL style long options, '--'. Supported +options are: + + "\-\-file" or "\-file" {filename}: Read the query (or queries) from the designated + file. If {filename} is '0', then query inputs are read from STDIN. + + "\-\-ip" or "\-ip" {address}: Client IP address to use for SPF check. + + + "\-\-sender" or "\-sender" {Mail From address}: Envelope sender from which mail was + received. + + "\-\-helo" or "\-helo" {client hostname}: HELO/EHLO name used by SMTP client. + + "\-\-local" or "\-local" {local policy SPF string}: Additional SPF mechanisms to be + checked on the basis of local policy. Note that local policy matches are + not strictly SPF results. Local policy processing is not defined in RFC + 4408. Result may vary among SPF implementations. + + "\-\-rcpt-to" or "rcpt\-to" {rcpt-to address - if available}: Receipt to address is + not used for actual SPF processing, but if available it can be useful for + logging, spf-received header construction, and providing useful rejection + messages when messages are rejected due to SPF. + + "\-\-default\-explanation" or "\-default-explanation" {explanation string}: Default + Fail explanation string to be used. + + "\-\-sanitize" or "\-sanitize" and "\-\-debug" or "\-debug": These options are no\-op + in the Python implementation, but are valid inputs to provide compatibliity + with input files developed to work with the original PERL and C spfquery + implementations. + +.SH "EXAMPLE" +.IX Header "EXAMPLE" + + spfquery \-\-sender scott@example.com \-\-ip 192.0.2.0 [other options ...] + +.SH "SEE ALSO" +.IX Header "SEE ALSO" + +RFC 4408, + +.SH "AUTHORS" +.IX Header "AUTHORS" +This version of \fBspfquery\fR was written by Stuart Gathman . +.PP +This man-page was created by Scott Kitterman . --- pyspf-2.0.5.orig/debian/control +++ pyspf-2.0.5/debian/control @@ -0,0 +1,35 @@ +Source: pyspf +Section: python +Priority: optional +Maintainer: Scott Kitterman +Uploaders: Debian Python Modules Team , Guilherme de S. Pastore , Gustavo Franco +Build-Depends: debhelper (>= 7.3.16), python-all (>= 2.6.6-6) +X-Python-Version: >= 2.4 +Homepage: http://cheeseshop.python.org/pypi/pyspf/ +Vcs-Svn: svn://svn.debian.org/python-modules/packages/pyspf/trunk/ +Vcs-Browser: http://svn.debian.org/viewsvn/python-modules/packages/pyspf/trunk/ +Standards-Version: 3.9.1 + +Package: python-spf +Architecture: all +Depends: ${python:Depends}, ${misc:Depends}, python-dns +Suggests: python-yaml +Description: sender policy framework (SPF) module for Python + This module provides SPF (Sender Policy Framework). It is RFC 4408 compliant. + . + For more information about SPF see http://www.openspf.org/ + +Package: spf-tools-python +Architecture: all +Depends: ${python:Depends}, ${misc:Depends}, python-spf +Conflicts: spfquery (<= 1.2.5-4), libmail-spf-query-perl (<< 1:1.999.1-3), python-spf (<< 2.0.4-4~) +Replaces: python-spf (<< 2.0.5-3) +Description: sender policy framework (SPF) tools for Python + SPF (Sender Policy Framework) related scripts and tools in Python. This + package currently provides three scripts: + . + * pyspf: command line use of spf.py + * spfquery: Python implementation of spfquery (uses alternatives) + * pyspf-type99: Tool to convert SPF records of type TXT to type SPF + . + For more information about SPF look at http://www.openspf.org/ --- pyspf-2.0.5.orig/debian/spf-tools-python.prerm +++ pyspf-2.0.5/debian/spf-tools-python.prerm @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +mode=$1 + +source_package=pyspf + +case "$mode" in + remove ) + update-alternatives --remove spfquery /usr/bin/spfquery.$source_package + ;; +esac + +#DEBHELPER# --- pyspf-2.0.5.orig/debian/watch +++ pyspf-2.0.5/debian/watch @@ -0,0 +1,3 @@ +version=3 +http://sf.net/pymilter/pyspf-(.*).tar.gz debian uupdate + --- pyspf-2.0.5.orig/debian/changelog +++ pyspf-2.0.5/debian/changelog @@ -0,0 +1,255 @@ +pyspf (2.0.5-3) experimental; urgency=low + + * Convert from cdbs to debhelper 7 rules + - Update debian/rules + - Drop build-depends on cdbs + - Update required debhelper version and debian/compat + - Remove autogenerated debian/pycompat + * Convert from dh_pycentral to dh_python2 + - Add --with python2 in debian/rules + - Drop build-depends on python-central + - Update required minimum python-all version + * Build depend on python-all instead of python-all-dev + * Update to recent Python Policy recommendations + - Use X-Python-Version instead of XS-Python-Version + - Drop XB-Python-Version from all binaries + * Provide /usr/bin/pyspf so spf.py can be also be used as a command line + tool + - Provide as symlink to /usr/share/pyshared/spf.py in + debian/spf-tools-python.links + - Change spf-tools-python to depend on python-spf and not just recommends + - Move pyspf.1 from python-spf to spf-tools-python + - spf-tools-python replaces python-spf << 2.0.5.-3~ + * Improve package descriptions + * Clean up redundant README files + - Drop README.Debian and README.Debian.python-spf + - Update content of README.Debian.spf.tools.python + * Set -e in debian/spf-tools-python.postinst/prerm instead of /bin/sh -e + * Remove unused patches and debian/patches + * Change priority to optional to match overrides + * Remove obsolete XS-DM-Upload-Allowed field + * Fix misspelling in debian/pyspf.1 + * Bump standards version to 3.9.1 without further change + + -- Scott Kitterman Sat, 04 Dec 2010 10:44:42 -0500 + +pyspf (2.0.5-2) unstable; urgency=low + + [ Sandro Tosi ] + * debian/control + - switch Vcs-Browser field to viewsvn + + [ Scott Kitterman ] + * Upload to unstable + * Add ${misc:Depends} for both binaries + + -- Scott Kitterman Sun, 15 Feb 2009 18:36:48 -0500 + +pyspf (2.0.5-1) experimental; urgency=low + + * New upstream release + - Fall back to TCP if UDP reply is truncated + - Minor updates for RFC 4408 errata and test suite improvements + * Drop all patches + - Incorporated upstream + - Remove simple-patchsys.mk for debian/control + - Remove patches dir + * Update debian/copyright + + -- Scott Kitterman Tue, 29 Jul 2008 00:55:44 -0400 + +pyspf (2.0.4-4) unstable; urgency=low + + * Split tools out to spf-tools-python to minimize risk of conflicts between + SPF related applications using different libraries + - Add package to debian/control + - Add spf-tools-python/install to debian/rules + - Add debian/python-spf.install + - Move man pages for tools to spf-tools-python.manpages + - Rename docs to python-spf.docs + - Add spf-tools-python.docs + - Split README.Debian for both binaries + - Move postinst/prerm for update-alternatives to the new package + * Switch to python-central + - Remove debian/pyversions + - Update debian/rules + - Remove debian/pycompat + - Change build-dep and add XS/XB-Python-Versions to debian/control + - Install test dir in /usr/share/doc/python-spf to avoid possible + namespace collisions in site-packages + - Add DEB_COMPRESS_EXCLUDE += \.py$ \.yml$ to debian/rules so test suite + is not compressed + * Change Recommends: python-yaml to Suggests: - Test suite is not normally + run, so python-yaml need not be installed by default + * Update standards version to 3.8.0.1 + - Add debian/README.source + * Properly escape leading quotes in pyspf.1 + * Revert inline removal of spf.py shebang and spf-shebang.patch to make + it right + + -- Scott Kitterman Tue, 01 Jul 2008 13:34:17 -0400 + +pyspf (2.0.4-3) unstable; urgency=low + + [ Sandro Tosi ] + * debian/control + - added Vcs-Browser + + [ Scott Kitterman ] + * Add tcp-fallback.patch so that truncated UDP DNS replies are retried + in TCP and either a complete result is fetched or a TempError is raised + * Add trap-command-line-errors.patch so DNS errors don't cause a crash + when pyspf is used from the command line + * Properly escape hyphens in debian/spfquery.pyspf.1 and + debian/pyspf-type99.1 + + -- Scott Kitterman Mon, 24 Mar 2008 17:38:03 -0400 + +pyspf (2.0.4-2) unstable; urgency=low + + [ Scott Kitterman ] + + * Agreed maintainer change - updated debian/control and debian/copyright + * Really update debian/watch to version 3 (Closes: #453591) + * Remove README.Debian from debian/docs (not needed) + * Move man page installation to python-spf.manpages + * Correct formatting errors in debian/pyspf.1 + * Correct formatting errors in debian/spfquery.pyspf.1 and add an example + * Update standards version to 3.7.3 without further change + + [ Piotr Ozarowski ] + + * Homepage field added + * Rename XS-Vcs-* fields to Vcs-* (dpkg supports them now) + + [ Philipp Kern ] + + * Added `XS-DM-Upload-Allowed: yes' to `debian/control' to allow uploads + from Debian Maintainers. + + -- Scott Kitterman Sat, 08 Dec 2007 15:44:09 -0500 + +pyspf (2.0.4-1) unstable; urgency=low + + * New upstream release + - Upstream changelog date is in error - released 30 Jul 2007 + * Update debian/watch to version 3 + * Update version numbers in /debian supplied man pages. + + -- Scott Kitterman Wed, 01 Aug 2007 11:54:13 -0400 + +pyspf (2.0.3-2) unstable; urgency=low + + * debian/control + - Add python-yaml as recommends for test suite support now that it's + packaged + * debian/rules + - Install test directory for test suite + - Delete obsolete (and commented out) rule for renaming spf.py + * debian/pyspf.1 + - Add instructions for using the pyspf test suite + + -- Scott Kitterman Tue, 15 May 2007 13:01:19 -0400 + +pyspf (2.0.3-1) unstable; urgency=low + + [ Scott Kitterman ] + + * Update package from source for new development to support RFC 4408 + (Closes: #403860) + * debian/copyright: + - Updated for new upstream maintainers. + - Corrected download location + - Added additional detail + * debian/docs + - Added README.Debian + * Added debian/README.Debian + * Added man pages + - debian/pyspf.1 + - debian/spfquery.pyspf.1 + - debian/pyspf-type99.1 + * debian/python-spf.postinst: + - Created for spfquery update alternatives + * debian/python-spf.prerm: + - Created for spfquery update alternatives + * debian/rules: + - Added dh_installman rules to install man pages + - Rename spfquery and type99 scripts + * debian/watch: + - Corrected for new upstream location + * Added debian/pyversions + * debian/control: + - Updated web site for both SPF and pyspf. + - Updated conflicts to account for new python policy and spfquery script + - Removed provides and replaces - not required (Closes: #399938) + - Updated Python build dependencies and changed to Build-Depends + + [ Piotr Ozarowski ] + + * debian/control: + - Added XS-Vcs-Svn field + + -- Scott Kitterman Wed, 4 Apr 2007 15:16:36 -0400 + +pyspf (1.6-4) unstable; urgency=low + + * debian/control: + - Remove pabs from Uploaders field as requested. + - Move architecture indep dependencies from Build-Depends + to Build-Depends-Indep. + * debian/rules: + - Add simple-patchsys support without patches. + - Remove unneded clean target. + + * New Python Policy Changes: (Closes: #373504) + + debian/control: + - Bump up cdbs dependency to >= 0.4.41. + - Bump up debhelper compatibility to 5. + - Add python-support >= 0.2.3 dependency. + - Add XS-Python-Version field. + - Depends on ${python:Depends} and not on python2.3. + - Add XB-Python-Version field. + + debian/rules: + - Add DEB_PYTHON_SYSTEM=pysupport + - Remove echo call since cdbs take care about this. + - Call python-distutils class after debhelper now. + + debian/postinst && debian/prerm: + - Remove "hand made" python-support stuff, cdbs does this. + + -- Gustavo Franco Thu, 15 Jun 2006 11:46:19 -0300 + +pyspf (1.6-3) unstable; urgency=low + + * debian/rules: + - move from debhelper to cdbs (Closes: #357023) + * debian/control: + - Standards-Version bumped up to 3.7.2 + - Remove python2.3-spf and python2.4-spf binaries, + but adds Replaces, Provides and Conflicts fields for + a transition using python-spf package. + + -- Gustavo Franco Sun, 30 Apr 2006 23:26:20 -0300 + +pyspf (1.6-2) unstable; urgency=low + + [ Guilherme de S. Pastore ] + * debian/control.in: + - Add @PYTHON_MODULES_TEAM@ to Uploaders: + - Updated Standards-Version to 3.6.2 with no changes + * debian/rules: + - Added code to automatically generate the list of uploaders based + on information available on the team's SVN repository + + [ Gustavo Franco ] + * debian/control: + - Stops shipping python2.2-spf binary + * debian/rules: + - python2.4-spf build added (Closes: #351134) + + -- Gustavo Franco Sun, 12 Feb 2006 19:27:42 -0200 + +pyspf (1.6-1) unstable; urgency=low + + * Initial Release. (Closes: #315679) + + -- Gustavo Franco Thu, 23 Jun 2005 11:04:29 -0300 --- pyspf-2.0.5.orig/debian/README.Debian.spf-tools-python +++ pyspf-2.0.5/debian/README.Debian.spf-tools-python @@ -0,0 +1,12 @@ +README.Debian + +The Python SPF library is provided in the python-spf package. The +spf-tools-python package installs a Python version of the spfquery script and a +DNS Resource Record Type 99 (Type SPF) conversion helper script. + +Use of the Python SPF library as a command line script (pyspf) is documented +in the pyspf(1) man page. + +Use of the Python spfquery is documented in the spfquery.pyspf(1) man page. + +Use of the Type 99 helper script is documented in the pyspf-type99(1) man page. --- pyspf-2.0.5.orig/debian/README.source +++ pyspf-2.0.5/debian/README.source @@ -0,0 +1,4 @@ +This package uses CDBS simple patchsys. dpkg-source -x does produce source +ready for building with dpkg-buildpackage. It does not procude source ready +for editing. To edit or update a patch, use cdbs-edit-patch. See man +cdbs-edit-patch for details.