Ports using USE_PYTHON=distutils are now flavored. They will
automatically get flavors (py27, py34, py35, py36) depending on what
versions they support.
There is also a USE_PYTHON=flavors for ports that do not use distutils
but need FLAVORS to be set. A USE_PYTHON=noflavors can be set if
using distutils but flavors are not wanted.
A new USE_PYTHON=optsuffix that will add PYTHON_PKGNAMESUFFIX has been
added to cope with Python ports that did not have the Python
PKGNAMEPREFIX but are flavored.
USES=python now also exports a PY_FLAVOR variable that contains the
current python flavor. It can be used in dependency lines when the
port itself is not python flavored. For example, deskutils/calibre.
By default, all the flavors are generated. To only generate flavors
for the versions in PYTHON2_DEFAULT and PYTHON3_DEFAULT, define
BUILD_DEFAULT_PYTHON_FLAVORS in your make.conf.
In all the ports with Python dependencies, the *_DEPENDS entries MUST
end with the flavor so that the framework knows which to build/use.
This is done by appending '@${PY_FLAVOR}' after the origin (or
@${FLAVOR} if in a Python module with Python flavors, as the content
will be the same). For example:
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}
PR: 223071
Reviewed by: portmgr, python
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D12464
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
- Update MASTER_SITES: change from SF to CHEESESHOP
- Update RUN_DEPENDS: always use dns/py-py3dns
- Bump PORTREVISION for dependency change
- Bump PORTREVISION for dependent ports