Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Jan 2016 01:02:27 +1100
From:      Kubilay Kocak <koobs@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   Re: svn commit: r407273 - in head/mail/py-pyspf: . files
Message-ID:  <56A77C73.2000900@FreeBSD.org>
In-Reply-To: <201601261401.u0QE1bRf036462@repo.freebsd.org>
References:  <201601261401.u0QE1bRf036462@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 27/01/2016 1:01 AM, Kubilay Kocak wrote:
> 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

Uh ...

Differential Revision: D5082

> 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?56A77C73.2000900>