svn commit: r407273 - in head/mail/py-pyspf: . files
Kubilay Kocak
koobs at FreeBSD.org
Tue Jan 26 14:01:39 UTC 2016
Author: koobs
Date: Tue Jan 26 14:01:37 2016
New Revision: 407273
URL: https://svnweb.freebsd.org/changeset/ports/407273
Log:
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
Added:
head/mail/py-pyspf/files/
head/mail/py-pyspf/files/patch-test_testspf.py (contents, props changed)
Modified:
head/mail/py-pyspf/Makefile
head/mail/py-pyspf/pkg-descr
Modified: head/mail/py-pyspf/Makefile
==============================================================================
--- head/mail/py-pyspf/Makefile Tue Jan 26 12:13:46 2016 (r407272)
+++ head/mail/py-pyspf/Makefile Tue Jan 26 14:01:37 2016 (r407273)
@@ -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 at 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>
Added: head/mail/py-pyspf/files/patch-test_testspf.py
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/mail/py-pyspf/files/patch-test_testspf.py Tue Jan 26 14:01:37 2016 (r407273)
@@ -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()
Modified: head/mail/py-pyspf/pkg-descr
==============================================================================
--- head/mail/py-pyspf/pkg-descr Tue Jan 26 12:13:46 2016 (r407272)
+++ head/mail/py-pyspf/pkg-descr Tue Jan 26 14:01:37 2016 (r407273)
@@ -3,6 +3,4 @@ was the first SPF implementation to full
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
More information about the svn-ports-head
mailing list