diff options
author | koobs <koobs@FreeBSD.org> | 2016-01-26 22:01:37 +0800 |
---|---|---|
committer | koobs <koobs@FreeBSD.org> | 2016-01-26 22:01:37 +0800 |
commit | b4253edb5a595f8db7372a2bf422a8f033bb16ee (patch) | |
tree | d2beb9afb57c2216481c869d8a663541ff489947 /mail/py-pyspf | |
parent | 3d248905e76b964ea30223901fa37aeb46bcf7d4 (diff) | |
download | freebsd-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/Makefile | 35 | ||||
-rw-r--r-- | mail/py-pyspf/files/patch-test_testspf.py | 37 | ||||
-rw-r--r-- | mail/py-pyspf/pkg-descr | 2 |
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 |