Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

perl-Mail-SPF-3.202.611.50-1.1 RPM for noarch

From OpenSuSE Tumbleweed for noarch

Name: perl-Mail-SPF Distribution: openSUSE Tumbleweed
Version: 3.202.611.50 Vendor: openSUSE
Release: 1.1 Build date: Fri Nov 6 12:33:19 2026
Group: Unspecified Build host: reproducible
Size: 340035 Source RPM: perl-Mail-SPF-3.202.611.50-1.1.src.rpm
Packager: https://bugs.opensuse.org
Url: https://metacpan.org/release/Mail-SPF
Summary: An object-oriented implementation of Sender Policy Framework
*Mail::SPF* is an object-oriented implementation of Sender Policy Framework
(SPF). See https://tools.ietf.org/html/rfc7208 for more information about
SPF.

This class collection aims to fully conform to the SPF specification (RFC
4408) so as to serve both as a production quality SPF implementation and as
a reference for other developers of SPF implementations.

Provides

Requires

License

BSD-3-Clause

Changelog

* Fri Nov 06 2026 Tina Müller <timueller+perl@suse.de>
  - updated to 3.202.611.50 (3.20261105)
    see /usr/share/doc/packages/perl-Mail-SPF/Changes
    3.20261105 2026-11-06 Australia/Melbourne
    * * Thanks to Giovanni <g.bechis@snb.it> for these changes:
    - RFC 7208 says there MUST be a limit of no more than 10 MX records
      looked up and checked; throw a permerror when the limit is exceeded
      instead of silently truncating the list
    - RFC 7208 says implementations SHOULD limit "void lookups" to two;
      enable the corresponding regression tests
    - Ensure every module's $VERSION is set by Dist::Zilla at release time,
      and manage the version number in README the same way
    - Security: escape untrusted text in the Received-SPF header to
      prevent header field injection:
    - escape parentheses and backslashes in the explanation comment,
      so text from a malformed SPF record or the sender identity can
      no longer close the comment early and inject forged fields such
      as client-ip=
    - escape control characters (e.g. CR/LF) in the envelope-from and
      helo fields
    - Fix macro expansion stopping at the first line break in a macro
      string, leaving later macros unexpanded
    - Security: authority_explanation now escapes control and non-ASCII
      characters in the explanation string (exp= TXT record) published in
      DNS, and document that the result text() may contain untrusted data
    - Remove the check for includes of the same domain through CNAME
      aliases. Including a domain and a CNAME alias of it is legal in
      RFC 7208, but the check tried to throw a hard fail for it. With
      a real resolver it read an unpopulated Net::DNS internal field and
      so in practice did nothing, but where it did take effect (e.g.
      with Net::DNS::Resolver::Programmable) it could wrongly fail
      authorized senders, and it used CNAME targets from DNS as
      unescaped regular expressions, which could make process() die.
      It also made an extra CNAME lookup per include that was not
      counted towards the RFC 7208 DNS lookup and void lookup limits.
      The test suite's resolver now follows CNAMEs, which is what the
      RFC 7208 cname-aliasing test case needed
    - Security: an exception thrown by the DNS resolver, including
      Net::DNS refusing to compose a query for an invalid domain name,
      made the SPF result none, i.e. no policy, rather than temperror.
      As invalid names can come from macros expanded with the sender's
      local part or HELO name, a sender could turn a domain's -all
      policy into none. Invalid domain names (empty label, label longer
      than 63 bytes, or name longer than 253 bytes, counted the way
      Net::DNS does, i.e. in bytes of UTF-8 and reading escapes such as
      "\.") are now treated as non-existent without querying the
      resolver, per RFC 7208, and other resolver exceptions result in
      temperror
    - Check the IP address version in the ip6 mechanism using the public
      NetAddr::IP API, rather than enumerating the request's address via
      an overloaded array dereference and reading an internal field,
      which died if the request's IP address was a large network
    - Allow Mail::SPF::Server->process() to evaluate a proposed SPF record
      passed in via a new 'record' option, instead of querying DNS for the
      authority domain's record, so a not-yet-published record can be tested
      against real DNS state
    - Prefer SPF1 over SPF2 (Sender ID, which is deprecated) when a record
      could be parsed as either
    - When a domain publishes both "v=spf1" and "spf2.0" records, always
      select the "v=spf1" record. Previously the record was chosen by the
      order of the records in the DNS answer, so the result could vary
      between queries, although the documentation and RFC 4406 said
      "spf2.0" records were preferred. Sender ID is historic (RFC 6686),
      so "v=spf1" is now deliberately preferred
    - Security: a "p" macro in an explanation string (exp= TXT record)
      made a PTR look-up and up to 10 A/AAAA look-ups for every
      occurrence, not limited by the RFC 7208 DNS look-up limits, so a
      sender could make a single SPF check send thousands of DNS
      queries. The "p" macro value is now looked up at most once per SPF
      check and authority domain. Also, exceeding the void look-up limit
      while expanding the explanation made authority_explanation() die;
      it now falls back to the default explanation
    - Reject a network (e.g. '10.0.0.0/8') as a request's ip_address
      with an EInvalidOptionValue exception. NetAddr::IP accepted it,
      which made no sense for SPF and changed the meaning of the
      mechanisms' address checks
    - Ignore an explanation string (exp= TXT record) that contains
      anything other than printable ASCII characters and spaces, as
      RFC 7208 requires, and use the default explanation instead.
      Control characters were already escaped, but an MTA using the
      explanation in an SMTP reply would still have sent the escaped
      text of a malicious explanation
    - Return none without querying DNS when the identity's domain is
      empty (e.g. "MAIL FROM:<a@>", which queried the root zone) or a
      single-label name (e.g. "HELO mailhost", which the resolver may
      expand with its search list and so query the receiver's internal
      domains), as RFC 7208 requires
    - Security: spfd now escapes control characters in the values of
      its response, so text from DNS or the client cannot add lines to
      the response, and in its debug output
    - Security: fix spfd's privilege dropping with --set-user and
    - -set-group. An unknown user or group name was not reported (due to
      an operator precedence bug) and could leave spfd running as root,
      the invoking user's supplementary groups (e.g. root's) were kept,
      and --set-user without --set-group kept group ID 0. spfd now dies on
      unknown names, drops the supplementary groups when started as root,
      and changes to the user's primary group if no group is given
    - Security: limit spfd to 64 concurrent connections, 60 seconds per
      connection, and 32 request lines of at most 1024 bytes, so a local
      client can no longer exhaust the process table or memory with idle,
      slow or overlong requests. A request still being processed after 60
      seconds (e.g. because DNS servers are unreachable) gets a temperror
      result. spfd now also logs non-Mail::SPF errors
      for a request, and no longer runs the child's code in the listening
      process if fork() fails
    - Security: spfd now creates its UNIX socket accessible to its owner
      only until --socket-user, --socket-group and --socket-perms have
      been applied, so other users can't connect to it in the meantime.
      Fix --socket-group being ignored unless --socket-user was also
      given (a typo compared the socket path instead of the group), and
      die with a clear message if the listening socket can't be created
    - Security: spfquery now opens the --file argument in explicit read
      mode. A file name ending in "|" was run as a shell command, and one
      starting with ">" truncated the file
* Wed Apr 01 2026 Tina Müller <timueller+perl@suse.de>
  - updated to 3.202.603.310 (3.20260331)
    see /usr/share/doc/packages/perl-Mail-SPF/Changes
    3.20260331 2026-04-01 Australia/Melbourne
    * * Thanks to Giovanni <g.bechis@snb.it> for this change:
    - Do not check for multiple CNAMEs if the included domain is a macro
* Thu Aug 28 2025 Tina Müller <timueller+perl@suse.de>
  - updated to 3.202.505.50 (3.20250505)
    see /usr/share/doc/packages/perl-Mail-SPF/Changes
* Thu Nov 07 2024 Dirk Stoecker <opensuse@dstoecker.de>
  - fix conflict with spfd daemon in libspf2
* Sun Jun 23 2024 Tina Müller <tina.mueller@suse.com>
  - updated to 3.202.406.170 (3.20240617)
    see /usr/share/doc/packages/perl-Mail-SPF/Changes
    3.20240617 2024-06-17 Australia/Melbourne
    - Update INSTALL file for Dist::Zilla changes
      Thanks to Giovanni <g.bechis@snb.it>
    - Fix memory leak in Mail::SPF::Server when cacheing a Mail::SPF::MacroString
      Thanks to Giovanni <g.bechis@snb.it> and Felipe Gasper
    - When mfrom is empty, create a synthetic mfrom (postmaster@helo) and check
      that identity using the mfrom scope as specified in RFC7208
      Thanks to Giovanni <g.bechis@snb.it>
    - Fix missing declare in Mail::SPF::Server
      Thanks to Giovanni <g.bechis@snb.it>
    - require Mail::SPF::Mech when needed
      Thanks to Giovanni <g.bechis@snb.it>
    - correctly handle empty labels
      Thanks to Giovanni <g.bechis@snb.it>
    - use "try" instead of "eval"
      Thanks to Giovanni <g.bechis@snb.it>
    - error out if the lookup fails
      Thanks to Giovanni <g.bechis@snb.it>
* Fri Mar 22 2024 Tina Müller <tina.mueller@suse.com>
  - Remove fix_pod.patch, fixed upstream
* Fri Mar 22 2024 Tina Müller <timueller+perl@suse.de>
  - updated to 3.20240206
    see /usr/share/doc/packages/perl-Mail-SPF/Changes
* Mon Mar 04 2024 pgajdos@suse.com
  - Use %autosetup macro. Allows to eliminate the usage of deprecated
    %patchN
* Thu Jul 11 2019 Pedro Monreal Gonzalez <pmonrealgonzalez@suse.com>
  - Fix permissions in spfd command [bsc#1141089]
  - Added test dependency Test::Pod >= 1.00
  - Move LICENSE file from doc to license
  - Updated spec file with spec-cleaner
* Wed Jul 01 2015 hsk@imb-jena.de
  - .spec file: added %{_sbindir}/spfd to %files section

Files

/usr/bin/spfd_perl
/usr/bin/spfquery
/usr/lib/perl5/vendor_perl/5.44.0/Mail
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Base.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Exception.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/MacroString.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/A.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/All.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/Exists.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/IP4.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/IP6.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/Include.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/MX.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mech/PTR.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mod
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mod.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mod/Exp.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Mod/Redirect.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Record.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Request.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Result.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/SenderIPAddrMech.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Server.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Term.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/Util.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/v1
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/v1/Record.pm
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/v2
/usr/lib/perl5/vendor_perl/5.44.0/Mail/SPF/v2/Record.pm
/usr/share/doc/packages/perl-Mail-SPF
/usr/share/doc/packages/perl-Mail-SPF/Changes
/usr/share/doc/packages/perl-Mail-SPF/README
/usr/share/doc/packages/perl-Mail-SPF/TODO
/usr/share/licenses/perl-Mail-SPF
/usr/share/licenses/perl-Mail-SPF/LICENSE
/usr/share/man/man1/spfd_perl.1.gz
/usr/share/man/man1/spfquery.1.gz
/usr/share/man/man3/Mail::SPF.3pm.gz
/usr/share/man/man3/Mail::SPF::Base.3pm.gz
/usr/share/man/man3/Mail::SPF::Exception.3pm.gz
/usr/share/man/man3/Mail::SPF::MacroString.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::A.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::All.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::Exists.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::IP4.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::IP6.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::Include.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::MX.3pm.gz
/usr/share/man/man3/Mail::SPF::Mech::PTR.3pm.gz
/usr/share/man/man3/Mail::SPF::Mod.3pm.gz
/usr/share/man/man3/Mail::SPF::Mod::Exp.3pm.gz
/usr/share/man/man3/Mail::SPF::Mod::Redirect.3pm.gz
/usr/share/man/man3/Mail::SPF::Record.3pm.gz
/usr/share/man/man3/Mail::SPF::Request.3pm.gz
/usr/share/man/man3/Mail::SPF::Result.3pm.gz
/usr/share/man/man3/Mail::SPF::SenderIPAddrMech.3pm.gz
/usr/share/man/man3/Mail::SPF::Server.3pm.gz
/usr/share/man/man3/Mail::SPF::Term.3pm.gz
/usr/share/man/man3/Mail::SPF::Util.3pm.gz
/usr/share/man/man3/Mail::SPF::v1::Record.3pm.gz
/usr/share/man/man3/Mail::SPF::v2::Record.3pm.gz


Generated by rpm2html 1.8.1

Fabrice Bellet, Thu Nov 12 22:26:22 2026