From owner-dev-commits-ports-main@freebsd.org Tue May 25 13:58:26 2021 Return-Path: Delivered-To: dev-commits-ports-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 602D464D411; Tue, 25 May 2021 13:58:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FqFzQ1SCFz4mM8; Tue, 25 May 2021 13:58:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A4871EB23; Tue, 25 May 2021 13:58:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 14PDwP7X093236; Tue, 25 May 2021 13:58:25 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 14PDwPE0093235; Tue, 25 May 2021 13:58:25 GMT (envelope-from git) Date: Tue, 25 May 2021 13:58:25 GMT Message-Id: <202105251358.14PDwPE0093235@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Dmitry Marakasov Subject: git: 40d7b487381c - main - Mk: add framework support for two digit python minor version MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: amdmi3 X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 40d7b487381cc91eb3156103e6ffe8c02d5e8a70 Auto-Submitted: auto-generated X-BeenThere: dev-commits-ports-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commits to the main branch of the FreeBSD ports repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2021 13:58:26 -0000 The branch main has been updated by amdmi3: URL: https://cgit.FreeBSD.org/ports/commit/?id=40d7b487381cc91eb3156103e6ffe8c02d5e8a70 commit 40d7b487381cc91eb3156103e6ffe8c02d5e8a70 Author: Dmitry Marakasov AuthorDate: 2021-04-09 23:16:29 +0000 Commit: Dmitry Marakasov CommitDate: 2021-05-25 13:55:44 +0000 Mk: add framework support for two digit python minor version PR: 255013 Differential Revision: https://reviews.freebsd.org/D29418 Exp-run by: antoine Approved by: wen@, no objection from python@ or portmgr@ --- Mk/Uses/python.mk | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Mk/Uses/python.mk b/Mk/Uses/python.mk index 425ff113a748..aaece9e92c2e 100644 --- a/Mk/Uses/python.mk +++ b/Mk/Uses/python.mk @@ -337,23 +337,28 @@ _PYTHON_ARGS= 3.6+ .endif # 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]} +_PYTHON_VERSION_CHECK:= ${_PYTHON_ARGS:C/^([1-9]\.[1-9]?[0-9])$/\1-\1/} +_PYTHON_VERSION_MINIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/([1-9]\.[1-9]?[0-9])[-+].*/\1/} +_PYTHON_VERSION_MINIMUM:= ${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[0-9]}${_PYTHON_VERSION_MINIMUM_TMP:M[1-9].[1-9][0-9]} +_PYTHON_VERSION_MAXIMUM_TMP:= ${_PYTHON_VERSION_CHECK:C/.*-([1-9]\.[1-9]?[0-9])/\1/} +_PYTHON_VERSION_MAXIMUM:= ${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[0-9]}${_PYTHON_VERSION_MAXIMUM_TMP:M[1-9].[1-9][0-9]} # At this point we should have no argument left in ${_PYTHON_ARGS} # except a version spec -_PYTHON_ARGS:= ${_PYTHON_ARGS:N[1-9].[0-9]-[1-9].[0-9]:N[1-9].[0-9]:N[1-9].[0-9]+:N-[1-9].[0-9]} +_V1= [1-9].[0-9] +_V2= [1-9].[1-9][0-9] +_PYTHON_ARGS:= ${_PYTHON_ARGS:N${_V1}-${_V1}:N${_V1}-${_V2}:N${_V2}-${_V2}:N${_V1}:N${_V2}:N${_V1}+:N${_V2}+:N-${_V1}:N-${_V2}} .if !empty(_PYTHON_ARGS) IGNORE= uses unknown USES=python arguments: ${_PYTHON_ARGS} .endif +# Pattern to convert python versions (X.Y or X.YY) to comparable format X.YY +_VC= C/^([1-9]\.)([0-9])$$/\10\2/ + .undef _PYTHON_VERSION_NONSUPPORTED -.if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION} < ${_PYTHON_VERSION_MINIMUM}) +.if !empty(_PYTHON_VERSION_MINIMUM) && (${_PYTHON_VERSION:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MINIMUM} at least -.elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION} > ${_PYTHON_VERSION_MAXIMUM}) +.elif !empty(_PYTHON_VERSION_MAXIMUM) && (${_PYTHON_VERSION:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}}) _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most .endif @@ -364,9 +369,9 @@ _PYTHON_VERSION_NONSUPPORTED= ${_PYTHON_VERSION_MAXIMUM} at most __VER= ${ver} .if !defined(_PYTHON_VERSION) && \ !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ - ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ + ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ - ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) + ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) _PYTHON_VERSION= ${ver} .endif .endfor @@ -381,9 +386,9 @@ IGNORE= needs an unsupported version of Python . for ver in ${PYTHON_DEFAULT} ${PYTHON2_DEFAULT} ${PYTHON3_DEFAULT} ${_PYTHON_VERSIONS} __VER= ${ver} . if !(!empty(_PYTHON_VERSION_MINIMUM) && ( \ - ${__VER} < ${_PYTHON_VERSION_MINIMUM})) && \ + ${__VER:${_VC}} < ${_PYTHON_VERSION_MINIMUM:${_VC}})) && \ !(!empty(_PYTHON_VERSION_MAXIMUM) && ( \ - ${__VER} > ${_PYTHON_VERSION_MAXIMUM})) + ${__VER:${_VC}} > ${_PYTHON_VERSION_MAXIMUM:${_VC}})) . if empty(_VALID_PYTHON_VERSIONS:M${ver}) _VALID_PYTHON_VERSIONS+= ${ver} . endif @@ -416,7 +421,7 @@ FLAVOR= ${FLAVORS:[1]} . endif .endif -.if ${FLAVOR:Mpy[23][0-9]} +.if ${FLAVOR:Mpy[23][0-9]}${FLAVOR:Mpy[23][1-9][0-9]} _PYTHON_VERSION= ${FLAVOR:S/py//:C/(.)/\1./} .endif