Skip to content

Commit

Permalink
mail-filter/pypolicyd-spf: remove python2 support to avoid ipaddress …
Browse files Browse the repository at this point in the history
…conflict.

Current versions of pypolicyd-spf support both python2 and
python3. With python2, the dev-python/ipaddr library provides support
for IP address parsing. And with python3 (>= 3.3), the built-in
ipaddress module is used. In fact, this determination is made based on
the presence (or absence) of the ipaddress module.

So far this has been fine. But recently, dev-python/ipaddress was
introduced to backport the python3 ipaddress module to python2. Now,
when dev-python/ipaddress is detected, pypolicyd-spf (incorrectly)
assumes the python3 implementation. This is bug #559364 by Robert
Trace.

Upstream will be python3-only in the next release. They have suggested
that we drop support for python2, and that's what this revision
does. Since this can cause mail to be rejected or delayed, the new
revision replaces the original.

Bug: 559364

Package-Manager: portage-2.2.20.1
  • Loading branch information
orlitzky committed Sep 15, 2015
1 parent 5cd4c02 commit 948a8a4
Showing 1 changed file with 8 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@

EAPI=5

PYTHON_COMPAT=( python{2_7,3_3,3_4} )

# With >=python-3.3, the built-in ipaddress module handles the parsing
# of IP addresses. If python is built without ipv6 support, then
# ipaddress can't parse ipv6 addresses, and the daemon will crash if it
# sees an ipv6 SPF record. In other words, it's completely broken.
#
# Ideally this would remain optional for python-2.x, but until there's
# an easy way to do that, "maybe annoying" seems a better option than
# "maybe broken."
# See bug #559364 before getting clever with this.
PYTHON_COMPAT=( python{3_3,3_4} )

# The built-in ipaddress module handles the parsing of IP addresses. If
# python is built without ipv6 support, then ipaddress can't parse ipv6
# addresses, and the daemon will crash if it sees an ipv6 SPF record. In
# other words, it's completely broken.
PYTHON_REQ_USE="ipv6"

inherit distutils-r1
Expand All @@ -27,15 +24,7 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

# ipaddr is only needed with <python-3.3.
#
# The lower bound on pyspf is not strictly necessary, but some features
# are silently disabled with older versions of pyspf.
#
DEPEND="$(python_gen_cond_dep \
'>=dev-python/ipaddr-2.1.10[${PYTHON_USEDEP}]' \
'python2*')
>=dev-python/pyspf-2.0.9[${PYTHON_USEDEP}]"
DEPEND=">=dev-python/pyspf-2.0.9[${PYTHON_USEDEP}]"

RDEPEND="${DEPEND}
dev-python/authres[${PYTHON_USEDEP}]"
Expand Down

0 comments on commit 948a8a4

Please sign in to comment.