Subversion Repositories libspf2

Compare Revisions

Ignore whitespace Rev 99 → Rev 100

/branches/bookworm/debian/changelog
0,0 → 1,356
libspf2 (1.2.10-7.2) unstable; urgency=medium
 
* Non-maintainer upload.
* no-libreplace.patch: disable libreplace which is not needed anymore and
causes build failures with glibc 2.34 (Closes: #1016821).
 
-- Aurelien Jarno <aurel32@debian.org> Thu, 11 Aug 2022 23:05:37 +0200
 
libspf2 (1.2.10-7.1) unstable; urgency=medium
 
* Non-maintainer upload.
* spf_compile.c: Correct size of ds_avail (CVE-2021-20314)
* Sanity check for sprintf
* Fixed 'reverse' macro modifier
 
-- Salvatore Bonaccorso <carnil@debian.org> Sun, 08 Aug 2021 13:46:49 +0200
 
libspf2 (1.2.10-7) unstable; urgency=low
 
* error_results.patch: Return information to use in the mail header and
such when no or multiple SPF records exist (Closes: #806313). Thanks
to Sebastian Schweizer <sebastian@schweizer.tel>.
* Bump Standards-Version to 3.9.7.
 
-- Magnus Holmgren <holmgren@debian.org> Fri, 25 Mar 2016 17:51:50 +0100
 
libspf2 (1.2.10-6) unstable; urgency=medium
 
* gcc5-variadicmacros.patch: Fix syntax error with variadic macro with
no variable argument when compiling with GCC 5 (Closes: #777974).
* Rearrange debian/copyright to comply with the machine-readable format
specification.
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 25 Jun 2015 22:26:05 +0200
 
libspf2 (1.2.10-5) unstable; urgency=low
 
* abolish-spf-rrtype.patch: Stop trying to look up the dedicated SPF DNS
RR type, which was abolished by RFC 7208 (Closes: #764533).
* Bump Standards-Version to 3.9.6.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 12 Oct 2014 21:18:33 +0200
 
libspf2 (1.2.10-4) unstable; urgency=low
 
* Upgrade to Debhelper compat level 9, in order to:
* Handle variable vendorarch installation directory (Closes: #752712),
by making debian/libmail-spf-xs-perl.install executable.
* Bump Standards-Version to 3.9.5.
* debian/rules: Update URL in get-orig-source target (a year late).
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 05 Jul 2014 22:19:51 +0200
 
libspf2 (1.2.10-3) unstable; urgency=low
 
* Merge changes from Ubuntu (Closes: #734224).
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 01 Feb 2014 14:51:57 +0100
 
libspf2 (1.2.10-2ubuntu1) trusty; urgency=medium
 
* Use dh-autoreconf instead of autotools-dev to also fix FTBFS on ppc64el by
getting new libtool macros (still updates config.{sub,guess}).
 
-- Logan Rosen <logan@ubuntu.com> Fri, 03 Jan 2014 15:56:24 -0500
 
libspf2 (1.2.10-2) unstable; urgency=low
 
* Convert debian/copyright to machine-readable format and update
copyright info including details on files in src/libreplace.
* debian/spfquery.libspf2.1: Change license to 2-clause BSD, as was
intended from the beginning.
 
-- Magnus Holmgren <holmgren@debian.org> Mon, 12 Aug 2013 12:07:40 +0200
 
libspf2 (1.2.10-1) unstable; urgency=low
 
* New upstream release.
* Drop ipv6-bugs.patch and private-glibc-functions.patch; incorporated
upstream.
* Hide additional internal symbols from the dynamic table.
* Build and include the Perl XS module.
* Bump Standards-Version to 3.9.4.
 
-- Magnus Holmgren <holmgren@debian.org> Thu, 13 Jun 2013 23:58:12 +0200
 
libspf2 (1.2.9-7) unstable; urgency=high
 
* Add postinst scripts that replace old documentation directories (from
before 1.2.9-5) in libspf2-dev, libspf2-2-dbg and spfquery with
symlinks (Closes: #687862, #687863, #687864). Thanks to Salvatore
Bonaccorso <carnil@debian.org>.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 23 Sep 2012 21:25:43 +0200
 
libspf2 (1.2.9-6) unstable; urgency=low
 
* Rename ipv6-buffer-miscalculation.patch ipv6-bugs.patch. Include
the following small IPv6-related patches from FreeBSD:
* patch-src_libspf2_spf__compile.c
* patch-src_libspf2_spf__interpret.c
Already included was patch-src_libspf2_spf__expand.c.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 22 Jan 2012 22:45:04 +0100
 
libspf2 (1.2.9-5) unstable; urgency=low
 
* Convert package to source format 3.0 (quilt).
* Include text of BSD license in debian/copyright, as is now preferred.
* Switch from CDBS to classic Debhelper, getting build flags from
dpkg-buildflags "by hand".
* Increase Debhelper compat level to 7.
* Put docs in libspf2-2 and replace the other packages' doc directories
with symlinks to that one.
 
-- Magnus Holmgren <holmgren@debian.org> Fri, 11 Nov 2011 22:13:50 +0100
 
libspf2 (1.2.9-4) unstable; urgency=low
 
* Drop obsolete README.Debian-source; move non-obsolete info to
libspf2-dev.README.Debian.
* debian/libspf2.ver: Explicitly unhide certain special symbols that
became hidden on the mips and mipsel architectures but nowhere else,
causing a FTBFS.
 
-- Magnus Holmgren <holmgren@debian.org> Sat, 03 Oct 2009 21:29:19 +0200
 
libspf2 (1.2.9-3) unstable; urgency=high
 
* ipv6_buffer_miscalculation.dpatch: Fix an abort() caused by
miscalculating the size of an internal buffer when mail is received
over IPv6. Thanks to Matthias Scheler <tron@netbsd.org>.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 13 Sep 2009 20:23:22 +0200
 
libspf2 (1.2.9-2) unstable; urgency=low
 
* debian/rules: Correct version.
* 01_private_glib_functions.dpatch: Avoid linking private glibc
functions.
* Simplify debian/*.install and exclude the libtool .la file from the
-dev package. Set DEB_DH_INSTALL_SOURCEDIR accordingly.
* Add ${misc:Depends} to Depends.
* Add debug package.
* Use ld version script to hide internal symbols.
* Bump Standards-Version to 3.8.3.
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 25 Aug 2009 00:15:01 +0200
 
libspf2 (1.2.9-1) unstable; urgency=high
 
* New upstream release.
- Drops non-dfsg Free IETF internet draft, so tarball no longer needs
repacking
+ Fixes exploitable buffer overflow (LP: #287534)
+ Multiple fixes for improved RFC 4408 compliance
+ Update libspf2-2.symbols for new symbol
+ 20_spf_dns_include_std_headers.dpatch: Updated.
* Thanks to Scott Kitterman.
 
-- Magnus Holmgren <holmgren@debian.org> Tue, 04 Nov 2008 21:14:31 +0100
 
libspf2 (1.2.8~dfsg-1) unstable; urgency=low
 
* Merge changes from Ubuntu.
* Fix and tweak library dependency information (shlibs as well as
symbols).
* Upgrade to Standards-Version: 3.8.0. Changes needed:
+ Add debian/README.source (§ 4.9).
* Bring debian/copyright a bit more up-to-date.
 
-- Magnus Holmgren <holmgren@debian.org> Sun, 02 Nov 2008 12:29:51 +0100
 
libspf2 (1.2.8~dfsg-0ubuntu1) intrepid; urgency=low
 
* New upstream release (LP: #283920)
- Fixes multiple memory leaks
- CVE2008-2469 buffer overflows
- Adds new documentation
- Drop all patches except 20_spf_dns_include_std_headers.dpatch (included
upstream)
- Freshen 20_spf_dns_include_std_headers.dpatch
- Update debian/rules for new release
* Repack tarball to remove non-DFSG Free IETF draft
* Added debian/libspf2-2.symbols and updated for new version
* Drop README.Debian since it no longer applies.
 
-- Scott Kitterman <scott@kitterman.com> Sun, 19 Oct 2008 01:00:13 -0400
 
libspf2 (1.2.5.dfsg-5) unstable; urgency=low
 
* 43_new_explanation_url.dpatch: Bring default explanation up to date by
referring to www.openspf.org instead of spf.pobox.com.
* Add spfquery(1) manpage.
* Fix format of copyright notice in debian/copyright.
* Move upstream homepage URL to the new Homepage control field, rename
VCS control fields, and update Standards-Version.
* A few cosmetic adjustments including fixing the indentation of the
1.2.5.dfsg-3 entry below (Closes: #465466).
* New maintainer email address.
 
-- Magnus Holmgren <holmgren@debian.org> Fri, 18 Apr 2008 17:51:28 +0200
 
libspf2 (1.2.5.dfsg-4) unstable; urgency=low
 
* Added 23_spfquery_ipv6.dpatch: Make spfquery accept IPv6 addresses
(Closes: #440147). Thanks to Matthias Cramer.
* 35_untabify_help.dpatch: Make --help output of utilities less ugly by
converting tabs to spaces.
 
-- Magnus Holmgren <magnus@kibibyte.se> Wed, 05 Sep 2007 15:39:22 +0200
 
libspf2 (1.2.5.dfsg-3) unstable; urgency=low
 
* 22_spfquery_fallback_segfault.dpatch: Fix fallback-related segfault in
spfquery (Closes: #430414). Thanks to Robert Millan.
* Correct debian/copyright (Closes: #433047). Thanks to Julian Mehnle.
* A second patch from Robert split into three:
* 40_permanent_include_errors.dpatch: Make permanent errors in
processing an include: directive cause the parent evaluation to return
a permanent error as well (Closes: #435139).
* 41_none_not_neutral.dpatch: Use a diffent explanation for
SPF_RESULT_NONE than the one for SPF_RESULT_NEUTRAL (Closes: #435140).
* 42_empty_sender.dpatch: Use the HELO identity in MAIL FROM checks if
the sender address has been set to the empty string (Closes: #431239).
* debian/control: Add XS-Vcs-* fields.
 
-- Magnus Holmgren <magnus@kibibyte.se> Wed, 22 Aug 2007 17:13:27 +0200
 
libspf2 (1.2.5.dfsg-2) unstable; urgency=low
 
* 21_spfquery_infininte_loop.dpatch: Fix infinite loop when giving
unimplemented options to spfquery.
* 20_printf_types.dpatch: Revert to using standard conversion specifiers
without z modifiers.
* debian/watch: mangle away .dfsg from package version.
* Lower spfquery and spfd alternatives priorities to 25.
* Skip applying 01_line-endings.dpatch; it's meaningless.
 
-- Magnus Holmgren <magnus@kibibyte.se> Wed, 06 Jun 2007 19:31:01 +0200
 
libspf2 (1.2.5.dfsg-1) unstable; urgency=low
 
* New maintainer (Closes: #372629).
* Repacked .orig.tar.gz without non-free IETF Internet Draft (Closes:
#393390).
* Merge updates from Ubuntu:
- Add debian/compat and Build-depend on debhelper >= 5.
- Add alternatives handling for /usr/bin/spfquery (Closes: #306875).
- Conflict on libmail-spf-query-perl << 1:1.999.1-3.
- Add postinst and prerm scripts.
- debian/copyright: update author address.
- debian/control: add final newline.
* debian/control:
* Change description of spfquery (Closes: #410592).
* Add homepage to package descriptions.
* Reduce Debian diff by changing line endings with sed instead.
* Further reduce Debian diff by eliminating config.sub and config.guess
from there. Build-depend on autotools-dev to ensure up-to-date
versions instead.
* The autogenerated spf_lib_version.h was put in the wrong directory,
while there was a static spf_lib_version.h in the right directory.
Fix that with some rules in debian/rules.
* Use dpatch to manage patches.
* Apply 20_64bit_types.dpatch to hopefully prevent segfaults on 64-bit
architectures (Closes: #392793). Thanks to Thomas Jacob, Carsten
Koch-Mauthe and Herbert Straub.
* 20_printf_types.dpatch: Change format strings to use the z flag,
meaning size_t, among other things.
* 30_spfd_check_unlink_failure.dpatch: Fix a typo in spfd (patch from
Thomas Jacob).
* debian/watch: added.
* Update Standards-Version to 3.7.2 without changes.
* Apply 20_spf_dns_include_std_headers.dpatch: Include arpa/nameser.h and
netdb.h from spf_dns.h instead of defining the constants needed unless
certain HAVE_ macros are defined (Closes: #405885).
* Apply 25_maxvals.dpatch, which brings certain processing limits (meant
to mitigate DoS attacks) in line with RFC 4408. Thanks to Scott
Kitterman.
* debian/control: Change libspf2-dev dependency to ${binary:Version} so
that binNMUs will work.
* Ship spfd in the spfquery package (Closes: #258360).
 
-- Magnus Holmgren <magnus@kibibyte.se> Sat, 24 Mar 2007 14:51:23 +0100
 
libspf2 (1.2.5-4) unstable; urgency=low
 
* Orphan.
 
-- Eric Dorland <eric@debian.org> Mon, 20 Nov 2006 02:16:20 -0500
 
libspf2 (1.2.5-3) unstable; urgency=low
 
* src/include/spf_server.h: Remove useless include to
spf_dns_internal.h. (Closes: #312145)
* debian/control: Have spfquery against libmail-spf-query-perl to work
around #306875, hopefully temporarily.
 
-- Eric Dorland <eric@debian.org> Sat, 30 Jul 2005 01:25:24 -0400
 
libspf2 (1.2.5-2) unstable; urgency=low
 
* The "Doh, missed a soname change" release.
* debian/libspf2-0.install: Rename to libspf2-2.install.
* debian/control:
- Change libspf2-0 to libspf2-2 to reflect soname change.
(Closes: #306205)
- Add spfquery package, don't package spfd for now, can't figure
out how to make it work. This partially addresses #258360.
* debian/spfquery.install: New file.
 
-- Eric Dorland <eric@debian.org> Mon, 25 Apr 2005 20:07:48 -0400
 
libspf2 (1.2.5-1) unstable; urgency=low
 
* New upstream release.
 
-- Eric Dorland <eric@debian.org> Sun, 17 Apr 2005 23:37:27 -0400
 
libspf2 (1.0.4-4) unstable; urgency=medium
 
* configure, aclocal.m4: Run aclocal and autoconf to get the right code
for the libtool test to use the pass_all method on arm. (Closes:
#276516)
* Urgency medium to get this bloody thing fixed already.
 
-- Eric Dorland <eric@debian.org> Fri, 26 Nov 2004 00:15:04 -0500
 
libspf2 (1.0.4-3) unstable; urgency=low
 
* config/ltmain.sh: Re-libtoolize again, hopefully this will fix arm
building.
 
-- Eric Dorland <eric@debian.org> Wed, 17 Nov 2004 13:50:50 -0500
 
libspf2 (1.0.4-2) unstable; urgency=low
 
* config/ltmain.sh: Re-libtoolize. (Closes: #269936)
* configure.ac: Apply patch from Kurt Roeckx to fix build on
amd64. (Closes: #262687)
* Rerun autoconf to apply the changes.
 
-- Eric Dorland <eric@debian.org> Mon, 6 Sep 2004 19:36:20 -0400
 
libspf2 (1.0.4-1) unstable; urgency=low
 
* New upstream release. (Closes: #261709)
 
-- Eric Dorland <eric@debian.org> Mon, 9 Aug 2004 00:57:49 -0400
 
libspf2 (1.0.3-1) unstable; urgency=low
 
* Initial release. (Closes: #257644)
-- Eric Dorland <eric@debian.org> Fri, 2 Jul 2004 00:00:19 -0400
 
/branches/bookworm/debian/patches/no-libreplace.patch
0,0 → 1,19
Description: Don't use unnecessary libreplace
libreplace isn't providing anything of utility here, it's unconditional and
causing build failures on some architectures.
Author: Steve Langasek <steve.langasek@ubuntu.com>
Last-Updated: 2022-02-24
Forwarded: no
 
Index: libspf2-1.2.10/src/libspf2/Makefile.am
===================================================================
--- libspf2-1.2.10.orig/src/libspf2/Makefile.am
+++ libspf2-1.2.10/src/libspf2/Makefile.am
@@ -34,7 +34,6 @@
spf_utils.c \
spf_win32.c
-libspf2_la_LIBADD = $(top_builddir)/src/libreplace/libreplace.la
/branches/bookworm/debian/patches/series
0,0 → 1,8
spf_dns-include-std-headers.patch
abolish-spf-rrtype.patch
gcc5-variadicmacros.patch
error_results.patch
spf_compile.c-Correct-size-of-ds_avail.patch
Sanity-check-for-sprintf.patch
Fixed-reverse-macro-modifier.patch
no-libreplace.patch
/branches/bookworm/debian/patches/Fixed-reverse-macro-modifier.patch
0,0 → 1,51
From: Nathaniel <me@nathanielbennett.com>
Date: Tue, 8 Jun 2021 20:02:52 -0400
Subject: Fixed 'reverse' macro modifier
Origin: https://github.com/shevek/libspf2/commit/f06fef6cede4c4cb42f2c617496e6041782d7070
 
---
src/libspf2/spf_expand.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
 
diff --git a/src/libspf2/spf_expand.c b/src/libspf2/spf_expand.c
index 25689da11e84..f93005d26f44 100644
--- a/src/libspf2/spf_expand.c
+++ b/src/libspf2/spf_expand.c
@@ -86,7 +86,7 @@ SPF_record_expand_data(SPF_server_t *spf_server,
{
SPF_data_t *d, *data_end;
- size_t len;
+ size_t len, label_len;
const char *p_err; // XXX Check this value, when returned.
char *p, *p_end;
const char *p_read;
@@ -300,9 +300,9 @@ top:
if ( SPF_delim_valid(d, *p_read) ) {
/* Subtract 1 because p_read points to delim, and
* p_read_end points to the following delim. */
- len = p_read_end - p_read - 1;
- memcpy( p_write, p_read + 1, len );
- p_write += len;
+ label_len = p_read_end - p_read - 1;
+ memcpy( p_write, p_read + 1, label_len );
+ p_write += label_len;
*p_write++ = '.';
p_read_end = p_read;
@@ -314,9 +314,9 @@ top:
* string. p_read_end might also point there if the string
* starts with a delimiter. */
if (p_read_end >= p_read) {
- len = p_read_end - p_read - 1;
- memcpy( p_write, p_read + 1, len );
- p_write += len;
+ label_len = p_read_end - p_read - 1;
+ memcpy( p_write, p_read + 1, label_len );
+ p_write += label_len;
*p_write++ = '.';
}
--
2.20.1
 
/branches/bookworm/debian/patches/Sanity-check-for-sprintf.patch
0,0 → 1,28
From: Nathaniel <me@nathanielbennett.com>
Date: Tue, 8 Jun 2021 06:43:29 -0400
Subject: Sanity check for sprintf
Origin: https://github.com/shevek/libspf2/commit/28faf4624a6a371b11afdb9820078d3b0ee3803d
 
---
src/libspf2/spf_expand.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
 
diff --git a/src/libspf2/spf_expand.c b/src/libspf2/spf_expand.c
index e7f5a26f3e1b..25689da11e84 100644
--- a/src/libspf2/spf_expand.c
+++ b/src/libspf2/spf_expand.c
@@ -398,10 +398,7 @@ top:
break;
default:
- /* No point doing snprintf with a const '4'
- * because we know we're going to get 4
- * characters anyway. */
- sprintf( p_write, "%%%02x", *p_read );
+ snprintf( p_write, 4, "%%%02x", (unsigned char) *p_read );
p_write += 3;
p_read++;
break;
--
2.20.1
 
/branches/bookworm/debian/patches/spf_compile.c-Correct-size-of-ds_avail.patch
0,0 → 1,26
From: Shevek <shevek@anarres.org>
Date: Sat, 5 Jun 2021 21:39:04 -0700
Subject: spf_compile.c: Correct size of ds_avail.
Origin: https://github.com/shevek/libspf2/commit/c37b7c13c30e225183899364b9f2efdfa85552ef
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2021-20314
 
---
src/libspf2/spf_compile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
 
diff --git a/src/libspf2/spf_compile.c b/src/libspf2/spf_compile.c
index ff02f8718b30..b08ffe204eba 100644
--- a/src/libspf2/spf_compile.c
+++ b/src/libspf2/spf_compile.c
@@ -455,7 +455,7 @@ SPF_c_parse_var(SPF_response_t *spf_response, SPF_data_var_t *data,
/* Magic numbers for x/Nc in gdb. */ \
data->ds.__unused0 = 0xba; data->ds.__unused1 = 0xbe; \
dst = SPF_data_str( data ); \
- ds_avail = _avail; \
+ ds_avail = _avail - sizeof(SPF_data_t); \
ds_len = 0; \
} while(0)
--
2.32.0
 
/branches/bookworm/debian/patches/error_results.patch
0,0 → 1,86
From: Sebastian Schweizer <sebastian@schweizer.tel>
Subject: Return header info also in case of missing or multiple SPF records.
Bug: https://bugs.debian.org/806313
Forwarded: https://github.com/shevek/libspf2/pull/9
 
diff --git a/src/libspf2/spf_interpret.c b/src/libspf2/spf_interpret.c
index a35b58c..5f15df4 100644
--- a/src/libspf2/spf_interpret.c
+++ b/src/libspf2/spf_interpret.c
@@ -104,7 +104,6 @@ SPF_i_set_smtp_comment(SPF_response_t *spf_response)
case SPF_RESULT_FAIL:
case SPF_RESULT_SOFTFAIL:
case SPF_RESULT_NEUTRAL:
- case SPF_RESULT_NONE:
err = SPF_i_set_explanation(spf_response);
if (err != SPF_E_SUCCESS)
@@ -126,6 +125,7 @@ SPF_i_set_smtp_comment(SPF_response_t *spf_response)
case SPF_RESULT_PASS:
case SPF_RESULT_TEMPERROR:
case SPF_RESULT_PERMERROR:
+ case SPF_RESULT_NONE:
default:
break;
}
@@ -380,7 +380,7 @@ SPF_i_set_received_spf(SPF_response_t *spf_response)
* This must be called with EITHER
* spf_response->spf_record_exp != NULL
* OR
- * result in { SPF_RESULT_PASS SPF_RESULT_INVALID
+ * result in { SPF_RESULT_NONE SPF_RESULT_PASS SPF_RESULT_INVALID
* SPF_RESULT_TEMPERROR SPF_RESULT_PERMERROR }
* or the library will abort when it tries to generate an explanation.
*/
diff --git a/src/libspf2/spf_server.c b/src/libspf2/spf_server.c
index d648b4e..66beb69 100644
--- a/src/libspf2/spf_server.c
+++ b/src/libspf2/spf_server.c
@@ -361,8 +361,9 @@ retry:
}
spf_response->result = SPF_RESULT_NONE;
spf_response->reason = SPF_REASON_FAILURE;
- return SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
- "Host '%s' not found.", domain);
+ return SPF_i_done(spf_response, SPF_RESULT_NONE, SPF_REASON_FAILURE,
+ SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
+ "Host '%s' not found.", domain));
// break;
case NO_DATA:
@@ -375,8 +376,9 @@ retry:
}
spf_response->result = SPF_RESULT_NONE;
spf_response->reason = SPF_REASON_FAILURE;
- return SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
- "No DNS data for '%s'.", domain);
+ return SPF_i_done(spf_response, SPF_RESULT_NONE, SPF_REASON_FAILURE,
+ SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
+ "No DNS data for '%s'.", domain));
// break;
case TRY_AGAIN:
@@ -453,17 +455,18 @@ retry:
}
spf_response->result = SPF_RESULT_NONE;
spf_response->reason = SPF_REASON_FAILURE;
- return SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
- "No SPF records for '%s'", domain);
+ return SPF_i_done(spf_response, SPF_RESULT_NONE, SPF_REASON_FAILURE,
+ SPF_response_add_error(spf_response, SPF_E_NOT_SPF,
+ "No SPF records for '%s'", domain));
}
if (num_found > 1) {
SPF_dns_rr_free(rr_txt);
// rfc4408 requires permerror here.
- /* XXX This could be refactored with SPF_i_done. */
spf_response->result = SPF_RESULT_PERMERROR;
spf_response->reason = SPF_REASON_FAILURE;
- return SPF_response_add_error(spf_response, SPF_E_MULTIPLE_RECORDS,
- "Multiple SPF records for '%s'", domain);
+ return SPF_i_done(spf_response, SPF_RESULT_PERMERROR, SPF_REASON_FAILURE,
+ SPF_response_add_error(spf_response, SPF_E_MULTIPLE_RECORDS,
+ "Multiple SPF records for '%s'", domain));
}
/* try to compile the SPF record */
/branches/bookworm/debian/patches/gcc5-variadicmacros.patch
0,0 → 1,17
--- a/src/include/spf_log.h
+++ b/src/include/spf_log.h
@@ -63,10 +63,10 @@ void SPF_debugv( const char *file, int l
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
-#define SPF_errorf(format, ... ) SPF_errorx( __FILE__, __LINE__, format, __VA_ARGS__ )
-#define SPF_warningf(format, ... ) SPF_warningx( __FILE__, __LINE__, format, __VA_ARGS__ )
-#define SPF_infof(format, ... ) SPF_infox( __FILE__, __LINE__, format, __VA_ARGS__ )
-#define SPF_debugf(format, ... ) SPF_debugx( __FILE__, __LINE__, format, __VA_ARGS__ )
+#define SPF_errorf(format, ... ) SPF_errorx( __FILE__, __LINE__, format, ##__VA_ARGS__ )
+#define SPF_warningf(format, ... ) SPF_warningx( __FILE__, __LINE__, format, ##__VA_ARGS__ )
+#define SPF_infof(format, ... ) SPF_infox( __FILE__, __LINE__, format, ##__VA_ARGS__ )
+#define SPF_debugf(format, ... ) SPF_debugx( __FILE__, __LINE__, format, ##__VA_ARGS__ )
#elif defined( __GNUC__ )
/branches/bookworm/debian/patches/abolish-spf-rrtype.patch
0,0 → 1,16
Description: Stop trying to look up the dedicated SPF DNS RR type,
which was abolished by RFC 7208. The rr_type variable and the all the
"goto retry" commands could be deleted as well, but let's keep the
patch minimal.
 
--- a/src/libspf2/spf_server.c 2012-01-28 09:24:47.000000000 +0100
+++ b/src/libspf2/spf_server.c 2014-06-19 14:09:07.000000000 +0200
@@ -346,7 +346,7 @@
spf_response, spf_recordp);
 
/* I am VERY, VERY sorry about the gotos. Shevek. */
- rr_type = ns_t_spf;
+ rr_type = ns_t_txt;
retry:
rr_txt = SPF_dns_lookup(resolver, domain, rr_type, TRUE);
/branches/bookworm/debian/patches/spf_dns-include-std-headers.patch
0,0 → 1,62
Author: Magnus Holmgren <holmgren@debian.org>
Description: Include arpa/nameser.h and netdb.h from spf_dns.h
instead of defining the constants needed unless certain HAVE_ macros are defined.
Updated for libspf2 1.2.8/9 by Scott Kitterman <scott@kitterman.com>
 
--- libspf2-1.2.9~/src/include/spf_dns.h 2008-10-27 12:27:14.000000000 -0400
+++ libspf2-1.2.9/src/include/spf_dns.h 2008-11-04 10:10:58.000000000 -0500
@@ -63,48 +63,19 @@
*
*/
+/* The following two header files might not exist on all platforms,
+ * but at least they exist on Debian with libc6.
+ */
+#include <arpa/nameser.h>
+#include <netdb.h>
/*
- * For those who don't have <arpa/nameserv.h>
+ * Type 99 decl does not exist in Debian libc6 (not even 2.7)
*/
-
-/* XXX This should use a more sensible define. */
-#if !defined( HAVE_NS_TYPE )
-
-#define ns_t_invalid 0
-#define ns_t_a 1
-#define ns_t_ns 2
-#define ns_t_cname 5
-#define ns_t_ptr 12
-#define ns_t_mx 15
-#define ns_t_txt 16
-#define ns_t_aaaa 28
-/* #define ns_t_a6 38 */
-#define ns_t_any 255 /**< Wildcard match. */
-
-typedef int ns_type;
-#endif
-
#if ! HAVE_DECL_NS_T_SPF
#define ns_t_spf 99
#endif
-#if ! HAVE_DECL_NS_T_INVALID
-#define ns_t_invalid 0
-#endif
-
-
-/*
- * For those who don't have <netdb.h>
- */
-
-#if !defined(HAVE_NETDB_H) && !defined(_WIN32)
-#define NETDB_SUCCESS 0
-#define HOST_NOT_FOUND 1 /**< NXDOMAIN (authoritative answer)*/
-#define TRY_AGAIN 2 /**< SERVFAIL (no authoritative answer)*/
-#define NO_RECOVERY 3 /**< invalid/unimplmeneted query */
-#define NO_DATA 4 /**< host found, but no RR of req type*/
-#endif
typedef int SPF_dns_stat_t;
typedef struct SPF_dns_server_struct SPF_dns_server_t;
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: bookworm/debian/control
===================================================================
--- bookworm/debian/control (nonexistent)
+++ bookworm/debian/control (revision 100)
@@ -0,0 +1,79 @@
+Source: libspf2
+Priority: optional
+Section: libs
+Maintainer: Magnus Holmgren <holmgren@debian.org>
+Build-Depends: dpkg-dev (>= 1.15.7), debhelper (>= 9), dh-autoreconf,
+ perl, libstring-escape-perl
+Standards-Version: 3.9.7
+Vcs-Svn: svn://svn.kibibyte.se/libspf2/trunk
+Vcs-Browser: http://svn.kibibyte.se/libspf2
+Homepage: http://www.libspf2.org/
+
+Package: libspf2-2
+Section: libs
+Architecture: any
+Conflicts: libspf2-0
+Replaces: libspf2-0
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: library for validating mail senders with SPF
+ libspf2 implements the Sender Policy Framework, a part of the SPF/SRS
+ protocol pair. libspf2 is a library which allows email systems such
+ as Sendmail, Postfix, Exim, Zmailer and MS Exchange to check SPF
+ records and make sure that the email is authorized by the domain name
+ that it is coming from. This prevents email forgery, commonly used by
+ spammers, scammers and email viruses/worms.
+
+Package: libspf2-dev
+Section: libdevel
+Architecture: any
+Depends: libspf2-2 (= ${binary:Version}), ${misc:Depends}
+Description: Header and development libraries for libspf2
+ libspf2 implements the Sender Policy Framework, a part of the SPF/SRS
+ protocol pair. libspf2 is a library which allows email systems such
+ as Sendmail, Postfix, Exim, Zmailer and MS Exchange to check SPF
+ records and make sure that the email is authorized by the domain name
+ that it is coming from. This prevents email forgery, commonly used by
+ spammers, scammers and email viruses/worms.
+
+Package: libspf2-2-dbg
+Section: debug
+Priority: extra
+Architecture: any
+Depends: libspf2-2 (= ${binary:Version}) | spfquery (= ${binary:Version}),
+ ${misc:Depends}
+Description: library for validating mail senders with SPF (debugging symbols)
+ libspf2 implements the Sender Policy Framework, a part of the SPF/SRS
+ protocol pair.
+ .
+ This package contains the debugging symbols.
+
+Package: spfquery
+Section: mail
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Conflicts: libmail-spf-query-perl (<< 1:1.999.1-3)
+Description: query SPF (Sender Policy Framework) to validate mail senders
+ The Sender Policy Framework (SPF) is one part of the SPF/SRS protocol
+ pair. SPF allows email systems such as Sendmail, Postfix, Exim,
+ Zmailer and MS Exchange to check SPF records and make sure that the
+ email is authorized by the domain name that it is coming from. This
+ prevents email forgery, commonly used by spammers, scammers and email
+ viruses/worms.
+ .
+ This package contains simple utilities that use libspf2 to test and
+ query SPF records.
+
+Package: libmail-spf-xs-perl
+Section: perl
+Priority: extra
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, libstring-escape-perl
+Description: library for validating mail senders with SPF - Perl bindings
+ libspf2 implements the Sender Policy Framework, a part of the SPF/SRS
+ protocol pair. libspf2 is a library which allows email systems such
+ as Sendmail, Postfix, Exim, Zmailer and MS Exchange to check SPF
+ records and make sure that the email is authorized by the domain name
+ that it is coming from. This prevents email forgery, commonly used by
+ spammers, scammers and email viruses/worms.
+ .
+ This package provides an XS module for using libspf from Perl programs.
Index: bookworm/debian/copyright
===================================================================
--- bookworm/debian/copyright (nonexistent)
+++ bookworm/debian/copyright (revision 100)
@@ -0,0 +1,135 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Source: http://www.libspf2.org/
+Upstream-Contact: Shevek <libspf2@anarres.org>
+License: LGPL-2.1+ or BSD-2-clause
+
+Files: *
+Copyright: © 2004-2005 Wayne Schlitt and Shevek, © 2008 Shevek.
+ - Current maintainer: Shevek <libspf2@anarres.org>
+ - Contributors: Magnus Holmgren, Julian Mehnle, Scott Kitterman,
+ Dan Kaminsky, Ben Chelf, Hannah Schroeter, Manish Raje
+ - Original author, 1.0 series: Wayne Schlitt <wayne@schlitt.net>
+License: LGPL-2.1+ or BSD-2-clause
+
+Files: src/spf_example/spf_example.c
+Copyright: Written by Wayne Schlitt and released into the public domain.
+License: public-domain
+ "This program is in the public domain, there is no copyright, you can
+ do anything you want with it."
+
+Files: src/libreplace/__ns_name_uncompress.c src/libreplace/__ns_initparse.c
+Copyright: © 1996, 1999 Internet Software Consortium
+License: ISC
+ Permission to use, copy, modify, and distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ SOFTWARE.
+
+Files: src/libreplace/arpa_nameser.h
+Copyright: © 1983, 1989, 1993 The Regents of the University of California
+License: BSD-4-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+Files: src/libreplace/getopt.h src/libreplace/getopt_long_only.c
+Copyright: © 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc
+License: LGPL-2+
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License 2.0 can be found in the file `/usr/share/common-licenses/LGPL-2'.
+
+Files: perl/*
+Copyright: © 2008 Shevek <cpan@anarres.org>
+License: GPL-1+ or Artistic-1
+ This program is free software; you can redistribute it and/or modify
+ it under the same terms as Perl itself.
+ .
+ On Debian systems, the complete text of the GNU General Public
+ License 1.0 can be found in the file
+ `/usr/share/common-licenses/GPL-1'.
+ .
+ On Debian systems, the complete text of the "Artistic License" can be
+ found in the file `/usr/share/common-licenses/Artistic'.
+
+Files: debian/*
+Copyright: © 2004-2006 Eric Dorland, © 2007-2013 Magnus Holmgren
+License: LGPL-2.1+ or BSD-2-clause
+Comment: The parts of the Debian packaging that is eligible for
+ copyright is © 2004-2006 Eric Dorland, 2007-2013 Magnus Holmgren and
+ assumed to be licensed under the same licenses as above.
+
+Files: debian/spfquery.libspf2.1
+Copyright: © 2007 Magnus Holmgren
+License: BSD-2-clause
+Comment: Giving the LGPL as an alternative is quite redundant as the BSD
+ license is so permissive that it allows redistribution under the LGPL
+ or most other licenses anyway.
+
+License: LGPL-2.1+ or BSD-2-clause
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of either:
+ .
+ a) The GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 2.1, or (at your option) any
+ later version,
+ .
+ OR
+ .
+ b) The two-clause BSD license.
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public
+ License 2.1 can be found in the file
+ `/usr/share/common-licenses/LGPL-2.1'.
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ .
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: bookworm/debian/rules
===================================================================
--- bookworm/debian/rules (nonexistent)
+++ bookworm/debian/rules (revision 100)
@@ -0,0 +1,88 @@
+#!/usr/bin/make -f
+
+SOURCE_PACKAGE = libspf2
+LIB_PACKAGE = libspf2-2
+
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+ buildflags := --build=$(DEB_BUILD_GNU_TYPE)
+else
+ buildflags := --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
+endif
+
+CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
+CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
+LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+perlld := $(shell perl -MConfig -e 'print $$Config{ld}')
+
+DEB_LDFLAGS_MAINT_APPEND = -Wl,--version-script=$(CURDIR)/debian/libspf2.ver
+buildflags += $(shell DEB_LDFLAGS_MAINT_APPEND="$(DEB_LDFLAGS_MAINT_APPEND)" \
+ dpkg-buildflags --export=configure)
+
+config.status: configure
+ dh_testdir
+ # Add here commands to configure the package.
+ dh_autoreconf
+ ./configure --prefix=/usr $(buildflags)
+
+build: build-arch
+build-indep:
+build-arch: build-arch-stamp
+build-arch-stamp: config.status
+ dh_testdir
+
+ $(MAKE)
+ cd perl && perl Makefile.PL INSTALLDIRS=vendor \
+ OPTIMIZE="$(CPPFLAGS) $(CFLAGS)" LD="$(perlld) $(CFLAGS) $(LDFLAGS)"
+ $(MAKE) -C perl LD_RUN_PATH=
+
+ touch "$@"
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-arch-stamp
+
+ [ ! -f Makefile ] || $(MAKE) distclean
+ [ ! -f perl/Makefile ] || $(MAKE) -C perl realclean
+
+ dh_autoreconf_clean
+ dh_clean
+
+install: build-arch
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
+ $(MAKE) -C perl install DESTDIR=$(CURDIR)/debian/tmp
+
+binary-arch: install
+ dh_testdir
+ dh_testroot
+ dh_install -a
+# Rename the `spfquery` tool for the alternatives system:
+ mv debian/spfquery/usr/bin/spfquery debian/spfquery/usr/bin/spfquery.$(SOURCE_PACKAGE)
+ mv debian/spfquery/usr/sbin/spfd debian/spfquery/usr/sbin/spfd.$(SOURCE_PACKAGE)
+ dh_installdocs -a --link-doc=$(LIB_PACKAGE)
+ dh_installchangelogs -a
+ dh_installman -a
+ dh_strip -a --dbg-package=$(LIB_PACKAGE)-dbg
+ dh_perl -a
+ dh_compress -a
+ dh_fixperms -a
+ dh_makeshlibs -V '$(LIB_PACKAGE) (>= 1.2.8~)'
+ dh_installdeb -a
+ dh_shlibdeps -a
+ dh_gencontrol -a
+ dh_md5sums -a
+ dh_builddeb -a
+
+binary: binary-arch
+
+get-orig-source:
+ wget http://www.libspf2.org/spf/libspf2-1.2.10.tar.gz
+
+.PHONY: build build-indep build-arch clean clean-patched binary-indep binary-arch binary install get-orig-source
/bookworm/debian/rules
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: bookworm/debian/libmail-spf-xs-perl.install
===================================================================
--- bookworm/debian/libmail-spf-xs-perl.install (nonexistent)
+++ bookworm/debian/libmail-spf-xs-perl.install (revision 100)
@@ -0,0 +1,5 @@
+#!/usr/bin/perl -w
+use Config;
+print <<"" =~ s!^/!!rgm;
+$Config{vendorarch}
+usr/share/man/man3/*.3pm
/bookworm/debian/libmail-spf-xs-perl.install
Property changes:
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: bookworm/debian/compat
===================================================================
--- bookworm/debian/compat (nonexistent)
+++ bookworm/debian/compat (revision 100)
@@ -0,0 +1 @@
+9
Index: bookworm/debian/spfquery.libspf2.1
===================================================================
--- bookworm/debian/spfquery.libspf2.1 (nonexistent)
+++ bookworm/debian/spfquery.libspf2.1 (revision 100)
@@ -0,0 +1,197 @@
+.\" Title: SPFQUERY
+.\" Author: Magnus Holmgren <holmgren@debian.org>
+.\" Date: 2007-09-06
+.\" Manual: libspf2 manuals for Debian
+.\" Source: libspf2 1.2.5
+.\"
+.TH "SPFQUERY" "1" "2007-09-06" "libspf2 1.2.5" "libspf2 manuals for Debian"
+.\" disable hyphenation
+.nh
+.SH NAME
+spfquery, spfquery.libspf2 \- checks if an IP address is an SPF-authorized SMTP sender for a domain.
+.SH SYNOPSIS
+.ad l
+.HP 9
+.B spfquery
+.RB { \-i | \-\-ip }
+.I ip\-address
+.RB { -s | \-\-sender }
+.RI [ local-part \fB@\fP] domain
+.RB [{ \-h | \-\-helo }
+.IR domain-name ]
+.RB [ \-\-rcpt\-to
+.IR email-address(es) ]
+.RI [ CONTROL-OPTIONS ]
+.HP 9
+.B spfquery
+.RB { \-f | \-\-file }
+.IR datafile " [" CONTROL-OPTIONS ]
+.HP 9
+.B spfquery
+.RB { \-\-help | \-v | \-\-version }
+.ad b
+.SH DESCRIPTION
+This manual page documents briefly the
+\fBspfquery\fR
+command. It was written for the
+Debian\*[R] distribution because the original program does not have a manual page.
+.PP
+\fBspfquery\fR performs Sender Policy Framework (SPF) authorization
+checks based on the command-line arguments or data given in a file or
+on standard input. For information on SPF see http://www.openspf.org.
+.
+.SH OPTIONS
+Options are divided into two groups: Data options, which must be
+given, though just enough of them to specify a query; and control
+options, which are optional and control the local policy, behaviour
+and output format of spfquery.
+.PP
+This programs follows the GNU \fBgetopt_long_only\fR(3) command line
+syntax: Long options can be given with one or two dashes and can be
+abbreviated to a prefix long enough to be non-ambiguous. If an option
+starting with a single dash doesn't match a long option, it is taken
+as a short option with a following parameter, if applicable. An equals
+sign between the option name and the parameter is optional for both
+short and long options.
+.SS Data options
+The
+\fB\-\-file\fR option conflicts with all the other data options. The
+\fB\-\-helo\fR and \fB\-\-rcpt\-to\fR are optional.
+.TP
+\fB\-f\fR, \fB\-\-file\fR \fIfilename\fR
+Read SPF data from \fIfilename\fR. Specify \(lq-\(rq to read from standard input.
+.sp
+The file should consist of one line per query, each query line consisting of the IP address, sender adress, and optional HELO string, separated by spaces.
+.sp
+\fBNote\fP
+Local parts containing spaces are currently not supported.
+.TP
+\fB\-i\fP, \fB\-\-ip\fP \fIip-address\fP
+Specify the IP address of the remote host that is delivering the mail.
+.TP
+\fB\-s\fP, \fB\-\-sender\fP [\fIlocal-part\fP\fB@\fP]\fIdomain\fP
+Specify the email address that was used as the envelope sender. If no
+username (local part) is given, \(lqpostmaster\(rq will be assumed.
+.TP
+\fB\-h\fP, \fB\-\-helo\fP \fIdomain-name\fP
+Specify that \fIdomain-name\fP was provided in the SMTP HELO (or EHLO) command.
+.TP
+\fB\-r\fP, \fB\-\-rcpt-to\fP \fIrcpt-address\fP[,\fIrcpt-address\fP,...]
+Specify the recipients as comma-separated list. Any secondary mail exchangers of all
+recipient domains are automatically authorized.
+.
+.SS Control options
+.TP
+\fB\-d\fP, \fB\-\-debug\fP[\fB=\fP\fIlevel\fP]
+Turn on debugging output.
+.TP
+\fB\-l\fP, \fB\-\-local\fP \fIspf\-terms\fP
+Test against \fIspf\-terms\fR before the final (implicit or explicit)
+\(lqall\(rq in an SPF record. This can be used to implement a local policy for whitelisting.
+.TP
+\fB\-t, \fB\-\-trusted\fR [\fB1\fR]
+Check the sender domain with trusted\-forwarder.org.
+\fBThis is a non\-standard feature.\fR
+.TP
+\fB\-t\fP \fB0\fP, \fB\-\-trusted\fR \fB0\fP
+Do not check the sender domain with trusted\-forwarder.org. This is the default.
+.TP
+\fB\-g\fP, \fB\-\-guess\fP \fIspf-mechanisms\fP
+Test the sender domain against \fIspf\-mechanisms\fP if the domain has no SPF record.
+.TP
+\fB\-e\fP, \fB\-\-default\-explanation\fP \fIstring\fP
+Default explanation string to use if the SPF record does not specify an expla\%nation string itself.
+.TP
+\fB\-m\fP, \fB\-\-max\-lookup\fP \fInumber\fP
+Maximum number of DNS lookups to allow.
+.TP
+\fB\-c\fP, \fB\-\-sanitize\fP [\fB0\fP|\fB1\fP]
+Do [not] sanitize the output by condensing conse\%cutive white\%space
+into a single space and replacing non-printable characters with
+question marks. Enabled by default.
+.TP
+\fB\-n\fP, \fB\-\-name\fP \fIhostname\fP
+Use
+\fIhostname\fP
+as the name of the local system instead of
+\(lqspfquery\(rq
+(the name is used in the output).
+.TP
+\fB\-k\fP, \fB\-\-keep\-comments\fP
+Print comments found when reading from a file.
+.TP
+\fB\-a\fP, \fB\-\-override\fP \fI...\fP
+.TP
+\fB\-z\fP, \fB\-\-fallback\fP \fI...\fP
+Provide override and fallback SPF records for certain domains.
+\fBNot implemented yet.\fP
+\fBspfquery\fP
+would act as if the speci\%fied records were present before and after any existing record, respectively, of those domains.
+.TP
+\fB\-\-help\fP
+Show summary of options.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+Show version of program.
+.SH DIAGNOSTICS
+The output ordinarily consists of four lines:
+.IP 1. 4
+the \fIresult code\fP;
+.IP 2. 4
+the \fIexplanation\fP, suitable for use in an SMTP response message, empty
+except when a rejection (permanent or temporary) makes sense;
+.IP 3. 4
+the header comment on its own;
+.IP 4. 4
+the Received\-SPF header field as defined in RFC 4408 section 7,
+incorporating the header comment.
+.PP
+If errors (including no SPF record found!) occur during processing,
+one or more error blocks will be prepended.
+These start with \(lqStartError\(lq and end with \(lqEndError\(lq.
+.PP
+The result codes and their corresponding exit codes are as follows:
+.TP
+.B 1 \(en neutral
+The sender domain explicitly makes no assertion about the \fIip-address\fP.
+This result must be interpreted exactly as if no SPF record at all existed.
+.TP
+.B 2 \(en pass
+The \fIip-address\fP is authorized to send mail for the sender domain.
+.TP
+.B 3 \(en fail
+The \fIip-address\fP is \fBunauthorized\fP to send mail for the sender domain.
+.TP
+.B 4 \(en softfail
+The \fIip-address\fP is not authorized to send mail for the sender domain, but
+the sender domain cannot or does not wish to make a strong assertion that no such mail can
+ever come from it.
+.TP
+.B 5 \(en none
+No SPF record was found.
+.TP
+.BR "6 \(en error" " (temporary)"
+A transient error occurred (e.g. failure to reach a DNS server), preventing a
+result from being reached.
+.TP
+.BR "7 \(en unknown" " (permanent error)"
+One or more SPF records could not be interpreted.
+.SH EXAMPLES
+.nf
+spfquery \-ip=11.22.33.44 \-sender=user@aol.com \-helo=spammer.tld
+spfquery \-f test_data
+echo "127.0.0.1 myname@mydomain.com helohost.com" | spfquery \-f \-
+.fi
+.SH SEE ALSO
+\fBspftest\fR(1), \fBspfd\fR(8)
+.SH AUTHOR
+\fBspfquery\fP was written by Wayne Schlitt.
+.PP
+This manual page was written by Magnus Holmgren for the Debian\*[R]
+system (but may be used by others). Heavily inspired by the spfquery manpage of
+libmail\-spf\-query\-perl (\fBspfquery.mail\-spf\-query\-perl\fR(1)) by Julian Mehnle.
+Also based on the command\-line help of spfquery.
+.SH COPYRIGHT
+Copyright \(co 2007 Magnus Holmgren. Permission is granted to copy,
+distribute and/or modify this document under the terms of the two-clause BSD
+License. See /usr/share/doc/spfquery/copyright.
Index: bookworm/debian/libspf2-2.symbols
===================================================================
--- bookworm/debian/libspf2-2.symbols (nonexistent)
+++ bookworm/debian/libspf2-2.symbols (revision 100)
@@ -0,0 +1,113 @@
+libspf2.so.2 libspf2-2 #MINVER#
+ SPF_debug_handler@Base 0
+ SPF_debug_stdio@Base 0
+ SPF_debug_syslog@Base 0
+ SPF_debugv@Base 0
+ SPF_debugx2@Base 0
+ SPF_debugx@Base 0
+ SPF_dns_cache_new@Base 0
+ SPF_dns_cache_set_ttl@Base 0
+ SPF_dns_free@Base 0
+ SPF_dns_get_client_dom@Base 0
+ SPF_dns_lookup@Base 0
+ SPF_dns_null_new@Base 0
+ SPF_dns_resolv_new@Base 0
+ SPF_dns_rlookup6@Base 0
+ SPF_dns_rlookup@Base 0
+ SPF_dns_rr_buf_realloc@Base 0
+ SPF_dns_rr_dup@Base 0
+ SPF_dns_rr_free@Base 0
+ SPF_dns_rr_new@Base 0
+ SPF_dns_rr_new_init@Base 0
+ SPF_dns_rr_new_nxdomain@Base 0
+ SPF_dns_set_conserve_cache@Base 0
+ SPF_dns_test_new@Base 0
+ SPF_dns_zone_add_str@Base 0
+ SPF_dns_zone_new@Base 0
+ SPF_error_code@Base 0
+ SPF_error_errorp@Base 0
+ SPF_error_handler@Base 0
+ SPF_error_message@Base 0
+ SPF_error_stdio@Base 0
+ SPF_error_syslog@Base 0
+ SPF_errorv@Base 0
+ SPF_errorx2@Base 0
+ SPF_errorx@Base 0
+ SPF_get_lib_version@Base 0
+ SPF_i_done@Base 0
+ SPF_info_handler@Base 0
+ SPF_info_stdio@Base 0
+ SPF_info_syslog@Base 0
+ SPF_infov@Base 0
+ SPF_infox2@Base 0
+ SPF_infox@Base 0
+ SPF_macro_free@Base 0
+ SPF_record_compile@Base 0
+ SPF_record_compile_macro@Base 0
+ SPF_record_expand_data@Base 0
+ SPF_record_find_mod_value@Base 0
+ SPF_record_free@Base 0
+ SPF_record_interpret@Base 0
+ SPF_record_new@Base 0
+ SPF_record_print@Base 0
+ SPF_record_stringify@Base 0
+ SPF_request_free@Base 0
+ SPF_request_get_client_dom@Base 0
+ SPF_request_get_exp@Base 0
+ SPF_request_get_rec_dom@Base 0
+ SPF_request_is_loopback@Base 0
+ SPF_request_new@Base 0
+ SPF_request_query_fallback@Base 0
+ SPF_request_query_mailfrom@Base 0
+ SPF_request_query_rcptto@Base 0
+ SPF_request_set_env_from@Base 0
+ SPF_request_set_helo_dom@Base 0
+ SPF_request_set_ipv4@Base 0
+ SPF_request_set_ipv4_str@Base 0
+ SPF_request_set_ipv6@Base 0
+ SPF_request_set_ipv6_str@Base 0
+ SPF_response_add_error@Base 0
+ SPF_response_add_error_idx@Base 0
+ SPF_response_add_error_ptr@Base 0
+ SPF_response_add_warn@Base 0
+ SPF_response_add_warn_idx@Base 0
+ SPF_response_add_warn_ptr@Base 0
+ SPF_response_combine@Base 0
+ SPF_response_errcode@Base 0
+ SPF_response_errors@Base 0
+ SPF_response_free@Base 0
+ SPF_response_get_explanation@Base 0
+ SPF_response_get_header_comment@Base 0
+ SPF_response_get_received_spf@Base 0
+ SPF_response_get_received_spf_value@Base 0
+ SPF_response_get_smtp_comment@Base 0
+ SPF_response_message@Base 0
+ SPF_response_messages@Base 0
+ SPF_response_new@Base 0
+ SPF_response_reason@Base 0
+ SPF_response_result@Base 0
+ SPF_response_warnings@Base 0
+ SPF_server_free@Base 0
+ SPF_server_get_max_dns_mech@Base 0
+ SPF_server_get_max_dns_mx@Base 0
+ SPF_server_get_max_dns_ptr@Base 0
+ SPF_server_get_record@Base 0
+ SPF_server_new@Base 0
+ SPF_server_new_dns@Base 1.2.8~
+ SPF_server_set_explanation@Base 0
+ SPF_server_set_localpolicy@Base 0
+ SPF_server_set_max_dns_mech@Base 0
+ SPF_server_set_max_dns_mx@Base 0
+ SPF_server_set_max_dns_ptr@Base 0
+ SPF_server_set_rec_dom@Base 0
+ SPF_server_set_sanitize@Base 0
+ SPF_strerror@Base 0
+ SPF_strreason@Base 0
+ SPF_strresult@Base 0
+ SPF_strrrtype@Base 1.2.8~
+ SPF_warning_handler@Base 0
+ SPF_warning_stdio@Base 0
+ SPF_warning_syslog@Base 0
+ SPF_warningv@Base 0
+ SPF_warningx2@Base 0
+ SPF_warningx@Base 0
Index: bookworm/debian/libspf2.ver
===================================================================
--- bookworm/debian/libspf2.ver (nonexistent)
+++ bookworm/debian/libspf2.ver (revision 100)
@@ -0,0 +1,16 @@
+{
+global:
+ SPF_*;
+ main;
+ __libc_csu_*;
+ _init;
+ _fini;
+ _IO_stdin_used;
+ _DYNAMIC_LINKING;
+ __RLD_MAP;
+local:
+ SPF_recalloc;
+ SPF_sanitize;
+ SPF_print_sizeof;
+ *;
+};
Index: bookworm/debian/spfquery.postinst
===================================================================
--- bookworm/debian/spfquery.postinst (nonexistent)
+++ bookworm/debian/spfquery.postinst (revision 100)
@@ -0,0 +1,25 @@
+#!/bin/sh -e
+
+mode=$1
+
+source_package=libspf2
+
+case "$mode" in
+ configure )
+ prev_version=$2
+
+ update-alternatives --install /usr/bin/spfquery spfquery /usr/bin/spfquery.$source_package 25 \
+ --slave /usr/share/man/man1/spfquery.1.gz spfquery.1.gz /usr/share/man/man1/spfquery.$source_package.1.gz
+ update-alternatives --install /usr/sbin/spfd spfd /usr/sbin/spfd.$source_package 25
+ ;;
+esac
+
+# Replace documentation directory with symlink
+docdir="/usr/share/doc/spfquery"
+if [ -d $docdir ] && [ ! -L $docdir ]; then
+ if rmdir $docdir 2>/dev/null; then
+ ln -sf libspf2-2 $docdir
+ fi
+fi
+
+#DEBHELPER#
Index: bookworm/debian/libspf2-2-dbg.postinst
===================================================================
--- bookworm/debian/libspf2-2-dbg.postinst (nonexistent)
+++ bookworm/debian/libspf2-2-dbg.postinst (revision 100)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+# Replace documentation directory with symlink
+docdir="/usr/share/doc/libspf2-2-dbg"
+if [ -d $docdir ] && [ ! -L $docdir ]; then
+ if rmdir $docdir 2>/dev/null; then
+ ln -sf libspf2-2 $docdir
+ fi
+fi
+
+#DEBHELPER#
+
+exit 0
Index: bookworm/debian/libspf2-dev.postinst
===================================================================
--- bookworm/debian/libspf2-dev.postinst (nonexistent)
+++ bookworm/debian/libspf2-dev.postinst (revision 100)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+
+# Replace documentation directory with symlink
+docdir="/usr/share/doc/libspf2-dev"
+if [ -d $docdir ] && [ ! -L $docdir ]; then
+ if rmdir $docdir 2>/dev/null; then
+ ln -sf libspf2-2 $docdir
+ fi
+fi
+
+#DEBHELPER#
+
+exit 0
Index: bookworm/debian/docs
===================================================================
--- bookworm/debian/docs (nonexistent)
+++ bookworm/debian/docs (revision 100)
@@ -0,0 +1,2 @@
+README
+TODO
Index: bookworm/debian/README.Debian
===================================================================
--- bookworm/debian/README.Debian (nonexistent)
+++ bookworm/debian/README.Debian (revision 100)
@@ -0,0 +1,11 @@
+libspf2 for Debian
+------------------
+
+Information and more recent versions of libspf2 are available from
+
+ http://www.libspf2.org/
+
+Current SPF specifications can be found at
+<http://www.openspf.org/Specifications>.
+
+ -- Magnus Holmgren <holmgren@debian.org>, Mon, 14 Sep 2009 22:33:12 +0200
Index: bookworm/debian/source/format
===================================================================
--- bookworm/debian/source/format (nonexistent)
+++ bookworm/debian/source/format (revision 100)
@@ -0,0 +1 @@
+3.0 (quilt)
Index: bookworm/debian/libspf2-dev.install
===================================================================
--- bookworm/debian/libspf2-dev.install (nonexistent)
+++ bookworm/debian/libspf2-dev.install (revision 100)
@@ -0,0 +1,3 @@
+usr/include/*
+usr/lib/lib*.a
+usr/lib/lib*.so
Index: bookworm/debian/spfquery.install
===================================================================
--- bookworm/debian/spfquery.install (nonexistent)
+++ bookworm/debian/spfquery.install (revision 100)
@@ -0,0 +1,4 @@
+usr/bin/spfquery
+usr/bin/spftest
+usr/bin/spf_example
+usr/bin/spfd usr/sbin
Index: bookworm/debian/libspf2-2.install
===================================================================
--- bookworm/debian/libspf2-2.install (nonexistent)
+++ bookworm/debian/libspf2-2.install (revision 100)
@@ -0,0 +1 @@
+usr/lib/lib*.so.*
Index: bookworm/debian/spfquery.manpages
===================================================================
--- bookworm/debian/spfquery.manpages (nonexistent)
+++ bookworm/debian/spfquery.manpages (revision 100)
@@ -0,0 +1 @@
+debian/spfquery.libspf2.1
Index: bookworm/debian/watch
===================================================================
--- bookworm/debian/watch (nonexistent)
+++ bookworm/debian/watch (revision 100)
@@ -0,0 +1,3 @@
+version=3
+
+opts=dversionmangle=s/\.dfsg$// http://www.libspf2.org/download.html spf/libspf2-(.+)\.tar\.gz
Index: bookworm/debian/spfquery.prerm
===================================================================
--- bookworm/debian/spfquery.prerm (nonexistent)
+++ bookworm/debian/spfquery.prerm (revision 100)
@@ -0,0 +1,14 @@
+#!/bin/sh -e
+
+mode=$1
+
+source_package=libspf2
+
+case "$mode" in
+ remove )
+ update-alternatives --remove spfquery /usr/bin/spfquery.$source_package
+ update-alternatives --remove spfd /usr/sbin/spfd.$source_package
+ ;;
+esac
+
+#DEBHELPER#
Index: bookworm/debian
===================================================================
--- bookworm/debian (nonexistent)
+++ bookworm/debian (revision 100)
/bookworm/debian
Property changes:
Added: mergeWithUpstream
## -0,0 +1 ##
+1
\ No newline at end of property