Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jan 2016 14:01:37 +0000 (UTC)
From:      Kubilay Kocak <koobs@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r407273 - in head/mail/py-pyspf: . files
Message-ID:  <201601261401.u0QE1bRf036462@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601261401.u0QE1bRf036462>