tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[HEADS UP] Python-3.x support improved


I've just committed changes to pkgsrc allowing python-3.x to be used
as default more easily. For this, I've removed the
PYTHON_VERSIONS_INCLUDE_3X variable that was supposed to be set
per-package to allow a package to be built against python-3.x. This is
now allowed by default.

To try it out, set PYTHON_VERSION_DEFAULT=33 in your /etc/mk.conf; I
suggest rebuilding all packages from scratch if you do that.

To make this useful, I've also marked many packages explicitly as not
building or working correctly with python-3.x, either because they
themselves are not ready or because a dependency isn't. This is
annotated by

PYTHON_VERSIONS_INCOMPATIBLE=  33 # not yet ported as of x.y.z



respectively. Please use the same style for other packages, try with
both python-2.7 and python-3.3 during updates, and keep the
information up-to-date.

Previously I had already added lang/python/
which automatically switches between the python-2.x and python-3.x
versions of packages where these are provided as separate tarballs.
See that file for details.

Some comments on packaging python modules in general:

Use or, not

Don't write your own python path fixer, use REPLACE_PYTHON (including

Remove python or py from PKGNAME -- pkgsrc has the "py-" prefix for
python modules.

Use REPLACE_PYTHON instead of writing your own fixers (you need to
include lang/python/ for that).

Some packages are not smart enough to know about PEP 3147, which
specifies a __pycache__ directory as location for pre-compiled python
modules. You can mark such packages with

PY_PEP3147=    no

to fix package installation with python-3.x.

Let me know if I broke anything. I've done multiple bulk builds of
~3700 packages, but I might have overlooked something.


Home | Main Index | Thread Index | Old Index