summaryrefslogtreecommitdiff
blob: c6bb65b0a2fc00e7cbcb3d51537a80e86c9b56e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

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."
PYTHON_REQ_USE="ipv6"

inherit distutils-r1 versionator

DESCRIPTION="Python-based policy daemon for Postfix SPF verification"
HOMEPAGE="https://launchpad.net/pypolicyd-spf"
SRC_URI="http://launchpad.net/pypolicyd-spf/$(get_version_component_range 1-2)/${PV}/+download/${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

# ipaddr is only needed with <python-3.3.
#
# The lower version bound is reported at,
#
#   https://bugs.launchpad.net/pypolicyd-spf/+bug/1229862
#
# 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}]"

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

DOCS=( CHANGES policyd-spf.conf.commented README README.per_user_whitelisting )

python_prepare_all() {
	# The "real" config file mentions the commented one, so we point
	# users in the right direction.
	local oldconf="policyd-spf.conf.commented"
	local newconf="/usr/share/doc/${PF}/${oldconf}"

	sed -i "1 s~ ${oldconf}~,\n#  ${newconf}~" policyd-spf.conf \
		|| die 'failed to update commented config file path'

	distutils-r1_python_prepare_all
}