FreeBSD Bugzilla – Attachment 210532 Details for
Bug 243185
Remove the legacy way of passing Python version, before flavors were a thing.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
v2
python-depends-args-D23084.diff (text/plain), 6.04 KB, created by
Mathieu Arnold
on 2020-01-08 13:07:19 UTC
(
hide
)
Description:
v2
Filename:
MIME Type:
Creator:
Mathieu Arnold
Created:
2020-01-08 13:07:19 UTC
Size:
6.04 KB
patch
obsolete
>base commit: r522257 >diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk >index 0d10c42bbb87..b080eedf15ac 100644 >--- a/Mk/Uses/python.mk >+++ b/Mk/Uses/python.mk >@@ -323,40 +323,21 @@ _PYTHON_TEST_DEP= yes > .if ${PYTHON2_DEFAULT} != ${PYTHON_DEFAULT} && ${PYTHON3_DEFAULT} != ${PYTHON_DEFAULT} > WARNING+= "PYTHON_DEFAULT must be a version present in PYTHON2_DEFAULT or PYTHON3_DEFAULT, if you want more Python flavors, set BUILD_ALL_PYTHON_FLAVORS in your make.conf" > .endif > > .if ${_PYTHON_ARGS} == "2" > DEV_ERROR+= "USES=python:2 is no longer supported, use USES=python:2.7" > .elif ${_PYTHON_ARGS} == "3" > DEV_ERROR+= "USES=python:3 is no longer supported, use USES=python:3.5+ or an appropriate version range" > .endif # ${_PYTHON_ARGS} == "2" > >-.if defined(PYTHON_VERSION) >-# A port/user requests a specific python version for its dependencies via >-# DEPENDS_ARGS, since it requires the specific python version itself. >-# Several things can happen now: >-# a) the dependency supports the requested version -> everything's fine >-# b) the dependency does not support the requested version >-# 1) the dependency works in a way that the different python >-# versions do not matter -> everything's fine >-# 2) the dependency is likely to break due to the conflict >-# nothing's fine >-# >-# b.2) needs to be resolved. Due to the complexity of how different pieces of >-# software are built, we can't solve this automatically. Instead, let's assume >-# that maintainers know what they are doing and assume PYTHON_VERSION to be a >-# hint. Just warn maintainers, if the versions do not match >-# (_PYTHON_VERSION_NONSUPPORTED). >-_PYTHON_VERSION:= ${PYTHON_VERSION:S/^python//} >-.else > _PYTHON_VERSION:= ${PYTHON_DEFAULT} >-.endif # defined(PYTHON_VERSION) > > # Validate Python version whether it meets the version restriction. > _PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[0-9])$/\1-\1/} > _PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[0-9])[-+].*/\1/} > _PYTHON_VERSION_MINIMUM:= ${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[0-9]} > _PYTHON_VERSION_MAXIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/.*-([1-9]\.[0-9])/\1/} > _PYTHON_VERSION_MAXIMUM:= ${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[0-9]} > > # At this point we should have no argument left in ${_PYTHON_ARGS} > # except a version spec >@@ -367,24 +348,20 @@ IGNORE= uses unknown USES=python arguments: ${_PYTHON_ARGS} > > .undef _PYTHON_VERSION_NONSUPPORTED > .if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION} < ${_PYTHON_VERSION_MINIMUM}) > _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least > .elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION} > ${_PYTHON_VERSION_MAXIMUM}) > _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most > .endif > > # If we have an unsupported version of Python, try another. > .if defined(_PYTHON_VERSION_NONSUPPORTED) >-.if defined(PYTHON_VERSION) || defined(PYTHON_CMD) >-_PV:= ${_PYTHON_VERSION} # preserve the specified python version >-IGNORE= needs Python ${_PYTHON_VERSION_NONSUPPORTED}, but ${_PV} was specified >-.endif # defined(PYTHON_VERSION) || defined(PYTHON_CMD) > .undef _PYTHON_VERSION > .for ver in ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} > __VER= ${ver} > .if !defined(_PYTHON_VERSION) && \ > !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ > ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ > !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ > ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) > _PYTHON_VERSION= ${ver} > .endif >@@ -447,39 +424,21 @@ PKGNAMESUFFIX= ${PYTHON_PKGNAMESUFFIX} > .endif > > # To avoid having dependencies with @ and empty flavor: > # _PYTHON_VERSION is either set by (first that matches): > # - If using Python flavors, from the current Python flavor > # - If using a version restriction (USES=python:3.5+), from the first > # acceptable default Python version. > # - From PYTHON_DEFAULT > PY_FLAVOR= py${_PYTHON_VERSION:S/.//} > >-# Pass PYTHON_VERSION down the dependency chain. This ensures that >-# port A -> B -> C all will use the same python version and do not >-# try to find a different one, if the passed version fits into >-# the supported version range. >-PYTHON_VERSION?= python${_PYTHON_VERSION} >-.if !defined(PYTHON_NO_DEPENDS) && \ >- ${PYTHON_VERSION} != python${PYTHON_DEFAULT} >-DEPENDS_ARGS+= PYTHON_VERSION=${PYTHON_VERSION} >-.endif >- >-# NOTE: >-# >-# PYTHON_VERSION will hold whatever is passed down the dependency chain. >-# If a user runs `make PYTHON_VERSION=python3.5, PYTHON_VERSION will be >-# set to 'python3.5'. A port however may require a different version, >-# which is stored (above) in _PYTHON_VERSION. >-# Every python bit below hence should use python${_PYTHON_VERSION}, since >-# this is the value, the _port_ requires >-# >+PYTHON_VERSION= python${_PYTHON_VERSION} > > # Got the correct python version, set some publicly accessible variables > PYTHON_VER= ${_PYTHON_VERSION} > PYTHON_SUFFIX= ${_PYTHON_VERSION:S/.//g} > PYTHON_MAJOR_VER= ${PYTHON_VER:R} > PYTHON_REL= # empty > PYTHON_ABIVER= # empty > PYTHON_PORTSDIR= ${_PYTHON_RELPORTDIR}${PYTHON_SUFFIX} > # Protect partial checkouts from Mk/Scripts/functions.sh:export_ports_env(). > .if !defined(_PORTS_ENV_CHECK) || exists(${PORTSDIR}/${PYTHON_PORTSDIR}) >@@ -550,21 +509,21 @@ BUILD_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} > RUN_DEPENDS+= cython-${PYTHON_VER}:lang/cython@${PY_FLAVOR} > .endif > > .if defined(_PYTHON_FEATURE_CONCURRENT) > .if !defined(_PYTHON_FEATURE_FLAVORS) && (${_PYTHON_VERSION_MINIMUM:M3*} || ${_PYTHON_VERSION_MAXIMUM:M2*}) > DEV_WARNING+= "USE_PYTHON=concurrent when only one of Python 2 or 3 is supported AND not using flavors does not make any sense" > .endif > _USES_POST+= uniquefiles:dirs > .if defined(_PYTHON_FEATURE_FLAVORS) && ${FLAVOR} == ${FLAVORS:[1]} > UNIQUE_DEFAULT_LINKS= yes >-.elif !defined(_PYTHON_FEATURE_FLAVORS) && ${PYTHON_VERSION} == python${PYTHON_DEFAULT} >+.elif !defined(_PYTHON_FEATURE_FLAVORS) && ${_PYTHON_VERSION} == ${PYTHON_DEFAULT} > UNIQUE_DEFAULT_LINKS= yes > .else > UNIQUE_DEFAULT_LINKS= no > .endif > UNIQUE_PREFIX= ${PYTHON_PKGNAMEPREFIX} > UNIQUE_SUFFIX= -${PYTHON_VER} > UNIQUE_SUFFIX_TYPES+= SUFFIX_MAN > UNIQUE_SUFFIX_MAN_WITH_EXT= .[1-9ln] > UNIQUE_SUFFIX_MAN_EXTRA_EXT= .gz >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 243185
:
210527
|
210532
|
210535