Commit graph

68 commits

Author SHA1 Message Date
Mathieu Arnold
8a81735222 Add a USES=python:patch for when Python is needed during the patch
phase.

Sponsored by:	Absolight
2018-01-25 12:36:54 +00:00
Mathieu Arnold
7db6ff5279 Describe when allflavors should be used.
Sponsored by:	Absolight
2018-01-22 19:59:31 +00:00
Mathieu Arnold
8cd72097ee Remove PYTHON*_DEFAULT_VERSION. 2018-01-21 10:51:29 +00:00
Mathieu Arnold
bf406b4d24 Enhance USES=uniquefiles to be more generic.
This allows to have more complex renaming schemes.  Until now, it could
only add a prefix or a suffix, but this was not working at all for man
pages, because it would give man/man1/pyfoo.1.gz-2.7 or
man/man1/pyfoo-1-2.7.gz.  With this change, a man page will be correctly
renamed to man/man1/pyfoo-2.7.1.gz.

Unfix ports that were already handling man pages.

PR:		220214
Submitted by:	Fukang Chen (previous patch)
Exp-run by:	antoine
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D13444
2017-12-19 16:23:48 +00:00
Mathieu Arnold
8113a6f477 Rework PY_FLAVOR to always work.
Before this, it could have been set to the current flavor of the port
that may not have been related to Python at all.

This of course never came up during development because at that time,
the only flavors were the Python flavors.

Reported by:	dbn
Sponsored by:	Absolight
2017-12-14 13:48:58 +00:00
Mathieu Arnold
986d88d505 Add a DEV_WARNING about some hypotetical case.
Sponsored by:	Absolight
2017-12-12 12:31:10 +00:00
Mathieu Arnold
477fb04a27 Limit matching Python flavors to two digits.
Sponsored by:	Absolight
2017-12-12 11:40:45 +00:00
Mathieu Arnold
4c26d3c024 Make USE_PYTHON=concurrent flavors friendly.
Before, it would only create the default symlink if the Python version
was the default Python version.  Change that to if the Python flavor is
the default flavor.

PR:		224242
Sponsored by:	Absolight
2017-12-11 12:41:56 +00:00
Mathieu Arnold
2cd9e57d75 Remove extra .endif.
Reported by:	antoine
Sponsored by:	Absolight
2017-12-04 15:43:36 +00:00
Mathieu Arnold
6063af74e8 Add a USES=python:env, that will not add a dependency on Python.
It has the same effect than setting PYTHON_NO_DEPENDS, but in a more
compact way.

Sponsored by:	Absolight
2017-12-04 15:27:29 +00:00
Mathieu Arnold
e7c64ad660 Add a note about USE_PYTHON=optsuffix being a kludge.
Sponsored by:	Absolight
2017-12-04 11:26:47 +00:00
Mathieu Arnold
c3feeef2c1 Depend on pkgnames and not files, always better.
Sponsored by:	Absolight
2017-12-04 11:17:23 +00:00
Mathieu Arnold
9b3f71316a Deprecate USES=python:2 and USES=python:3
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D13291
2017-12-04 11:07:10 +00:00
Mathieu Arnold
c891fd5d24 Correctly fix the Python 3 being the default but in fact not problem.
Sponsored by:	Absolight
2017-12-04 11:07:07 +00:00
Mathieu Arnold
ae164d1dfd Add a WARNING for people trying to do clever but bad things with Python
versions.

Sponsored by:	Absolight
2017-12-04 11:07:04 +00:00
Dmitry Marakasov
9a7c47672e Fix default python flavor wrt python version
There's a flaw in FLAVOR selection logic which makes python FLAVOR
default to py27 even with DEFAULT_VERSIONS=python=3.6. Fix this and
generate FLAVOR based on PYTHON_DEFAULT, PYTHON2_DEFAULT, PYTHON3_DEFAULT
(in that order) similar to how it's done in other parts of python.mk.
This does not affect FLAVOR in default setup (py27 remains), but
if python default version is modified, it will now properly affect FLAVOR.

Approved by:	portmgr (antoine)
Differential Revision:	D13326
2017-12-03 20:03:09 +00:00
Mathieu Arnold
551be3c723 Convert Python ports to FLAVORS.
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
2017-11-30 15:50:30 +00:00
Rene Ladan
3d0c93eb6a Remove Python 3.3 from the Ports Framework. 2017-09-03 10:36:15 +00:00
Bryan Drewery
ec65ac0994 Specifying an invalid PYTHON_VERSION against its USES should be IGNORED.
The port's own USES may note that is only supports certain versions.  If it
is attempted to build an unsupported version there's no reason to even
try.  Rather than giving a WARNING, actually mark it IGNORE.

Currently this should only impact devel/py3-enum34 which does not support
the default python3 version of 3.6.

With hat:	portmgr
2017-06-17 23:26:58 +00:00
Bryan Drewery
4745d5c87d Don't pass the default version in DEPENDS_ARGS.
This greatly simplifies handling for Poudriere.

With hat:	portmgr
2017-06-06 00:28:56 +00:00
Antoine Brodin
d3b29b8f76 Use POSIX conformant expressions with grep(1)
PR:		218690
Submitted by:	Kyle Evans
With hat:	portmgr
2017-04-21 19:35:24 +00:00
Antoine Brodin
20b3a34a02 Rename python setuptools ports to better match other python ports
Reviewed by:	mat, sunpoet
With hat:	portmgr
Differential Revision:	https://reviews.freebsd.org/D9983
2017-03-16 19:23:48 +00:00
Sunpoet Po-Chuan Hsieh
e730d999d3 Add more PLIST_SUB to Mk/Uses/python.mk
- Add PYTHON_PYOEXTENSION and PYTHON_SUFFIX
- Add PYTHON2 and PYTHON3
- Respect PYTHON_VERSION
- Rename PYOEXTENSION to PYTHON_PYOEXTENSION

This change would help:
- Build databases/postgresql*-plpython with Python 3
  (It has PLIST issue since bsd.python.mk to Uses/python.mk transition)
- Simplify Makefile

PR:		205807
Differential Revision:	https://reviews.FreeBSD.org/D4758
Exp-run by:	antoine
2017-01-07 21:42:28 +00:00
Wen Heping
234f3ad658 - Repocopy lang/python35 --> lang/python36 and update to 3.6.0 2016-12-25 15:08:35 +00:00
Antoine Brodin
7fca73cfef Change the default version of python3 from 3.4 to 3.5
Thanks to Ruslan Makhmatkhanov for doing all the fixes

PR:		204519
With hat:	portmgr
2016-10-14 19:50:00 +00:00
Mathieu Arnold
0761532ec5 Always include bsd.default-versions.mk in bsd.port.mk.
The variable defined in it are now always available after including
bsd.port.pre.mk.

PR:		210666
Submitted by:	mat
Exp-run by:	antoine
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D6933
2016-08-03 12:09:37 +00:00
Antoine Brodin
1f14e228b1 Reduce a little bit foot shooting for people installing python 3 ports using
PYTHON_ABIVER/PYTHON_INCLUDEDIR, when they use default options for
lang/python3x, by providing a reasonable default value to PYTHON_ABIVER

With hat:	portmgr
2016-06-25 19:51:32 +00:00
Antoine Brodin
28b17725ab Remove ${PORTSDIR} from python _DEPENDS 2016-04-28 12:17:09 +00:00
Mathieu Arnold
d5e588bc6e Make all the targets in USES use the _USES_* helpers.
It is left as an exercise to the reader to reorder some of those targets
to fix some small problems, and to add a comment about why each target
is ran when it is ran.

Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D5717
2016-04-22 09:24:34 +00:00
Mathieu Arnold
9097255acf Try to be more helpful to our users, and keep all the possible versions
close to their default value in Mk/bsd.default-versions.mk.

Sponsored by:	Absolight
2016-04-14 13:34:25 +00:00
Baptiste Daroussin
421767bd88 Remove the now unneeded ${PORTSDIR} from dependency definition in
The infrastructure Makefiles

PR:		206569
Exp run by:	antoine
Differential Revision:	D5047
2016-03-27 01:23:25 +00:00
Bryan Drewery
54e86d8d01 For PYTHON_NO_DEPENDS don't pass PYTHON_VERSION to dependencies.
The PYTHON_NO_DEPENDS only really makes sense in meta ports, where passing
the PYTHON_VERSION doesn't make sense.  The ports listed will pick up
USES+=python and the default version as needed.

This fixes depending on both lang/python2 and lang/python3 in a meta package.
2016-02-19 20:44:52 +00:00
Ruslan Makhmatkhanov
a5fd273ab4 Update examples to exclude version 3.2
With hat:		python
2016-02-02 20:21:47 +00:00
Ruslan Makhmatkhanov
ed63d28c08 Remove expired lang/python32
Python 3.2 has reached it's EOL. Please update to Python 3.5

With hat:	python
2016-02-02 20:16:34 +00:00
Sunpoet Po-Chuan Hsieh
929b0596d0 - Remove _PYTHON_CMD
PR:		206380
Submitted by:	John Hein <z7dr6ut7gs@snkmail.com>
2016-01-22 11:33:58 +00:00
Sunpoet Po-Chuan Hsieh
fc996dfe53 - Sort PYTHON_* knobs 2016-01-02 17:30:28 +00:00
Kubilay Kocak
30e7a4173b Mk/Uses/python.mk: Add support for optional 'test' argument
Some ports may need to use Python for their testing suite but otherwise
do not need it at all (ie, not for build or run). This patch adds
support for the test argument to be used in the USES clause, such as
python:3.2+,test. This enables the relevant Python environment and
modifies TEST_DEPENDS as necessary.

For non-Python ports that use Python as their testing suite, add
python:<ver>,test as required to the USES clause.

PR:			205616
Submitted by:		Brendan Molloy <brendan+freebsd bbqsrc net>
Reviewed by:		mat, miwi, koobs, antoine
Approved by:		koobs (python)
Differential Revision:	https://reviews.freebsd.org/D4711
2016-01-02 15:24:37 +00:00
John Marino
6256117d69 lang/python27(3*), Mk/Uses/python.mk: remove make spawn
There are some inefficiencies in python.mk that significantly slow down
full tree scanning.  The use of bmake to obtain the current version of
a specific python is responsible for the majority of the slow done.

This commit splits out the PYTHON_PORTVERSION definition (which is the
same as the lang/python* PORTVERSION) into separate files.  With this
change, python.mk can simple include the makefile fragment instead of
spawning a new instance of make.

Different Revision:	https://reviews.freebsd.org/D4660
Approved by:		antoine (python), mva (python)
2015-12-29 12:03:09 +00:00
Antoine Brodin
d05e4290c0 Remove PYTHON_PORTVERSION guards since it's no longer exported
With hat:	portmgr
2015-12-27 16:44:32 +00:00
Antoine Brodin
c6ef4747ef Do not cache PYTHON_PORTVERSION, it is not invariant between ports 2015-12-25 21:55:34 +00:00
Bryan Drewery
ab43229f76 Fix partial tree checkouts with 'all-depends-list', 'make clean', etc, after
inclusion of the ports_env feature into that handling around r399791.

With hat:	portmgr
Reported by:	ian, lev
2015-11-09 18:52:19 +00:00
Bryan Drewery
95e25b27ad Avoid redundantly looking up python command executions for dependency calculation.
This gets all-depends-list in x11/kde4 down to 30 seconds after the 52->41
second improvement in r399703.

With hat:	portmgr
2015-10-19 21:10:56 +00:00
Baptiste Daroussin
8cea2b0147 Readd PORTSDIR for now we will only start removing them after 2016Q1 is branched
This gives more time for tools to get updated, available in packages etc before
bothering users
2015-10-15 07:36:38 +00:00
Baptiste Daroussin
869e1f27d0 Drop the necessity to add ${PORTSDIR} to dependency line
Modify make describe to automatically prepend ${PORTSDIR} if the path for the
port is not absolute

Checked with poudriere, portmaster, portupgrade

PR:		203685
Exp-run by:	antoine
Differential Revision:	https://reviews.freebsd.org/D3866
2015-10-14 16:49:35 +00:00
Ruslan Makhmatkhanov
b654068d0e textproc/py-xml: remove port
This package has been included into python standard library since python 2.2 or
2.0, but some of our ports used apis not available in stock python xml package.
Now all the issue are fixed and we can finally remove this port.

It is dead upstream and because of it's invasive nature it may break innocent
ports while installed (there were known issues for Eric and Docutils), so it was
removed in most distributions years ago. There is comprehensive summary on
reasons why PyXML was removed at Fedora Project [1]. The same reasons are also
applicable to our tree.

[1] https://fedoraproject.org/wiki/Features/RemovePyXML
2015-09-16 14:40:24 +00:00
Antoine Brodin
0622d6683a Since PEP 0488 and python 3.5, pyo files are eliminated and bytecode files
for level 1 optimization have opt-1.pyc extension
Adjust USE_PYTHON=py3kplist to handle this

Tested by:	koobs
2015-09-14 12:26:28 +00:00
Kubilay Kocak
dafc3395c8 Uses/python.mk: Fix PYTHON_REL for pre-release Python versions
Modify the PYTHON_REL variable assignment in python.mk so that it
can support PORTVERSION's that have non-integer suffixes such as
the current lang/python35 version (PORTVERSION currently 3.5.0.r3).

Currently, ports that use PYTHON_REL while DEFAULT_VERSIONS is set to
3.5, fail to build with the following make error:

make: "/usr/ports/Mk/Uses/python.mk" line 503:
warning: String comparison operator should be either == or !=
make: "/usr/ports/Mk/Uses/python.mk" line 503:
Malformed conditional (${PYTHON_REL} >= 3200 && defined(_PYTHON_FEATURE_PY3KPLIST))

This is caused by a non-integer value ("r3") in PYTHON_REL.

While I'm here, add a comment block to be clear on what we
(currently) want to achieve.

PR:			203093
Reported by:		Andrew Berg (aberg010 my.hennepintech.edu)
Reviewed by:		antoine
MFH:			2015Q3
Differential Revision:	https://reviews.freebsd.org/D3662
2015-09-14 08:28:57 +00:00
Kubilay Kocak
7142ad4179 [NEW] lang/python35: Welcome Python 3.5.x! (Note: RC3)
FreeBSD welcomes Python 3.5 (early, pre-release) to the Ports tree,
with 3.5.0 release candidate 3!

Please test this port and Python 3.5 profusely. If you notice issues,
please report them upstream at: https://bugs.python.org to ensure a
robust upcoming 3.5.0 release.

Whats New in Python 3.5:

 * https://docs.python.org/3.5/whatsnew/3.5.html

Python 3.5 Release Schedule (PEP 478)

 * http://www.python.org/dev/peps/pep-0478

Note: This port retires an old fcntlmodule.c patch, possibly
temporarily. User impact *should* be zero. For more information
see: https://bugs.python.org/issue25026

Requested by:	Webair Inc :)
2015-09-08 16:08:13 +00:00
Max Brazhnikov
22e7d267d7 Pass the default Python version (or the version required by port)
for CMake based ports.  By default CMake picks up the highest
available version of Python package, therefore ports which use CMake
may fail to build or link to different Python library than one could
expect (e.g. bugs 199685, 200518).
In essence this commit reverts r366996.

PR:		168159
Exp-run by:	antoine
Approved by:	mva
2015-06-10 09:23:54 +00:00
Antoine Brodin
1b85bc9332 Switch PYTHON_REL from a 3 digits number to a 4 digits number to handle
python 2.7.10

Differential Revision:	https://reviews.freebsd.org/D2639
Reviewed by:	sunpoet, mva
2015-05-26 16:47:02 +00:00