aboutsummaryrefslogtreecommitdiffstats
path: root/mail/py-pyspf
diff options
context:
space:
mode:
authorkoobs <koobs@FreeBSD.org>2016-01-26 22:01:37 +0800
committerkoobs <koobs@FreeBSD.org>2016-01-26 22:01:37 +0800
commitb4253edb5a595f8db7372a2bf422a8f033bb16ee (patch)
treed2beb9afb57c2216481c869d8a663541ff489947 /mail/py-pyspf
parent3d248905e76b964ea30223901fa37aeb46bcf7d4 (diff)
downloadfreebsd-ports-gnome-b4253edb5a595f8db7372a2bf422a8f033bb16ee.tar.gz
freebsd-ports-gnome-b4253edb5a595f8db7372a2bf422a8f033bb16ee.tar.zst
freebsd-ports-gnome-b4253edb5a595f8db7372a2bf422a8f033bb16ee.zip
mail/py-pyspf: Fix dependencies (missing & incorrect)
Revision 404778 [1] modified py-pyspf to only use dns/py3dns instead of conditionally using dns/py-dns and py-py3dns depending on whether Python 2.x or 3.x was being used. dns/py-py3dns is a Python 3.x *only* package, but the port does not currently [2] limit itself to USES=python:3.0+. This results in errors for all dependent ports of py-pyspf when Python 2.x is used, which was reported for mail/postfix-policyd-spf-python. [3] pyspf's README notes the following requirements: This package requires PyDNS (or Py3DNS for running with Python 3) and either the ipaddr or python3.3 and later This package requires authres from either pypi or http://launchpad.net/authentication-results-python to process and generate RFC 5451 Authentication Results headers. The spf module in this version has been tested with python3.2 and does not require using 2to3. Accordingly, this change: - Reverts to conditional RUN_DEPENDS on dns/py-dns or py-py3dns depending on whether Python 2.x or Python 3.x is being used. - Adds authres to RUN_DEPENDS - Adds a conditional RUN_DEPENDS on devel/py-ipaddr, depending on Python version. While I'm here: - Sort and group USE{S} entries - Match COMMENT to setup.py:description - Add test and post-extract targets, TEST_DEPENDS, and patch files so that tests can be run properly - Pet several portlint warnings [1] https://svnweb.freebsd.org/changeset/ports/404778 [2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206645 [3] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=206643 QA: * portlint: OK (WARN: Makefile: [47]: possible use of "${CHMOD}") * porttest: OK (poudriere: 11amd64, python27, python34) * unittest: OK (Ran 425 tests in 0.155s) PR: 206643 Reported by: danger Approved by: portmgr (blanket) MFH: 2016Q1 Differential Revision: DXXXX
Diffstat (limited to 'mail/py-pyspf')
-rw-r--r--mail/py-pyspf/Makefile35
-rw-r--r--mail/py-pyspf/files/patch-test_testspf.py37
-rw-r--r--mail/py-pyspf/pkg-descr2
3 files changed, 65 insertions, 9 deletions
diff --git a/mail/py-pyspf/Makefile b/mail/py-pyspf/Makefile
index afff7f8f7092..e7f608bf9731 100644
--- a/mail/py-pyspf/Makefile
+++ b/mail/py-pyspf/Makefile
@@ -4,29 +4,50 @@
PORTNAME= pyspf
PORTVERSION= 2.0.12
DISTVERSIONSUFFIX= t
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= mail python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= sunpoet@FreeBSD.org
-COMMENT= Python implementation of the RFC 4408 SPF protocol
+COMMENT= SPF (Sender Policy Framework) implemented in Python
LICENSE= PSFL
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}py3dns>=0:${PORTSDIR}/dns/py-py3dns
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}authres>=0:${PORTSDIR}/mail/py-authres
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}yaml>=0:${PORTSDIR}/devel/py-yaml
-NO_ARCH= yes
-USE_PYTHON= autoplist concurrent distutils
USES= python shebangfix
+USE_PYTHON= autoplist concurrent distutils
+
+NO_ARCH= yes
+
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
PLIST_FILES= bin/spf.py
-
SHEBANG_FILES= spf.py
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} <= 3300
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}ipaddr>=0:${PORTSDIR}/devel/py-ipaddr
+.endif
+
+.if ${PYTHON_REL} >= 3000
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}py3dns>=0:${PORTSDIR}/dns/py-py3dns
+.else
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}dns>=0:${PORTSDIR}/dns/py-dns
+.endif
+
+# Make the tests run as a module
+post-extract:
+ @${TOUCH} ${WRKSRC}/test/__init__.py
+
post-install:
${CHMOD} ${BINMODE} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/spf.py
${LN} -s ${PYTHONPREFIX_SITELIBDIR}/spf.py ${STAGEDIR}${PREFIX}/bin/
-.include <bsd.port.mk>
+do-test:
+ @cd ${WRKSRC} && ${PYTHON_CMD} -m test.testspf
+
+.include <bsd.port.post.mk>
diff --git a/mail/py-pyspf/files/patch-test_testspf.py b/mail/py-pyspf/files/patch-test_testspf.py
new file mode 100644
index 000000000000..816b539f0ac4
--- /dev/null
+++ b/mail/py-pyspf/files/patch-test_testspf.py
@@ -0,0 +1,37 @@
+--- test/testspf.py.orig 2015-01-12 22:47:56 UTC
++++ test/testspf.py
+@@ -221,9 +221,9 @@ def makeSuite(filename):
+
+ def suite():
+ suite = unittest.makeSuite(SPFTestCases,'test')
+- suite.addTest(makeSuite('test.yml'))
+- suite.addTest(makeSuite('rfc7208-tests.yml'))
+- suite.addTest(makeSuite('rfc4408-tests.yml'))
++ suite.addTest(makeSuite('test/test.yml'))
++ suite.addTest(makeSuite('test/rfc7208-tests.yml'))
++ suite.addTest(makeSuite('test/rfc4408-tests.yml'))
+ import doctest
+ suite.addTest(doctest.DocTestSuite(spf))
+ return suite
+@@ -237,9 +237,9 @@ if __name__ == '__main__':
+ # a specific test selected by id from YAML files
+ if not tc:
+ tc = unittest.TestSuite()
+- t0 = loadYAML('rfc7208-tests.yml')
+- t1 = loadYAML('rfc4408-tests.yml')
+- t2 = loadYAML('test.yml')
++ t0 = loadYAML('test/rfc7208-tests.yml')
++ t1 = loadYAML('test/rfc4408-tests.yml')
++ t2 = loadYAML('test/test.yml')
+ if i in t0:
+ tc.addTest(SPFTestCase(t0[i]))
+ if i in t1:
+@@ -248,7 +248,7 @@ if __name__ == '__main__':
+ tc.addTest(SPFTestCase(t2[i]))
+ if not tc:
+ # load zonedata for doctests
+- fp = open('doctest.yml','rb')
++ fp = open('test/doctest.yml','rb')
+ try:
+ zonedata = loadZone(next(yaml.safe_load_all(fp)))
+ finally: fp.close()
diff --git a/mail/py-pyspf/pkg-descr b/mail/py-pyspf/pkg-descr
index 8f437b1d05f5..5578a870848f 100644
--- a/mail/py-pyspf/pkg-descr
+++ b/mail/py-pyspf/pkg-descr
@@ -3,6 +3,4 @@ was the first SPF implementation to fully conform to RFC 4408. This
release has also added IPv6 support. pyspf is the library behind
several of the open SPF project's SPF record testing tools.
-Currently part of the pymilter project: http://pymilter.sourceforge.net
-
WWW: https://pypi.python.org/pypi/pyspf