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
There are numerous graphviz related packages in PyPI, including:
graphviz, graphviz-python and pygraphviz.
This port, py-graphviz, is not and does not provide the same package
as the 'graphviz' package on PyPI (CHEESESHOP).
Further, it blocks the creation of a correctly named py-graphviz port,
is a POLA violation in terms of users expecting to find and recieve
the package they expect based on a standard search, and is likely to
create confusion among other ports if they depend on a python graphviz
package, which could result in incorrect packages/dependencies.
This is why among other reasons, Python packages should be named
exactly what they are called in PyPI, or inside install_requires,
setup_requires or tests_requires as dependencies in other packages.
This change moves py-graphviz to py-pygraphviz to correct the above
incorrect naming.
While I'm here:
- Remove backup (http) MASTER_SITES, CHEESESHOP is highly-available
and provides a Geo-aware CDN by Fastly.
- Remove {BUILD,RUN}_DEPENDS in favour of the actual LIB_DEPENDS
- Use PYDISTUTILS_* framework variables to customise the build instead
of hack patching setup.py
- Enable autoplist, fixing builds on Python 3.x [1]
- Enable concurrent (Python version) installation
- Hack patch setup.py to preclude docs installation, as it adds a
directory to --record and breaks pkg-plist output [2]
- Remove DOCSDIR override (no longer necessary)
- Assign MAINTAINER'ship to python@
- Add TEST_DEPENDS and test target
- pkg-descr: Match WWW URL to setup.py:homepage field
- pkg-descr: Improve package description text (matching upstream)
While I'm sweeping dependencies:
- Fix a typo in science/gramps: s|>-|>=
[2] https://wiki.freebsd.org/Python (Open task for install_data bug)
Reported by: Ben Woods (via IRC) [1]
Drop the python version limit, by asking user to uncheck some options,
that will not work with python3 for now.
PR: 204594
Submitted by: John W. O'Brien <john@saltant.com>
Approved by: dikshie@sfc.wide.ad.jp (maintainer)
- update to 1.10
- add YAML option (on by default)
- remove gratuitous word from option descriptions
- USE_PYTHON=concurrent instead of setting EXAMPLESDIR
- alphabetize USE_PYTHON
- discard pkg-message given all options are enabled by default
While here limit python version to 2.x, because it's dependencies
graphics/py-graphviz and math/py-matplotlib failed to configure
with python3.
PR: 204594
Submitted by: John W. O'Brien <john@saltant.com>
Approved by: dikshie@sfc.wide.ad.jp (maintainer)
- Remove unneeded patch
- Respect DOCSDIR
- This port does not support NOPORTDOCS (yet)
PR: ports/159140 [1]
Submitted by: dikshie <dikshie@sfc.wide.ad.jp> (maintainer)