summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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