Mk/Uses/python.mk: Fix USE_PYTHON=pep517: always compile and install bytecode

- While I'm here, use long options for easier reading [1][2]
- Bump PORTREVISION of dependent ports (USE_PYTHON=pep517) for package change

It fixes build_fs_violation of dependent ports in poudriere (with -t flag).
It is also the default behavior of installer [2].

from py-sphinx log:
=>> Checking for staging violations... done
=>> Error: Filesystem touched during stage (files must install to ${STAGEDIR}):
extra: usr/local/lib/python3.9/site-packages/importlib_metadata/__pycache__
=>> Cleaning up wrkdir

from installer documentation:
--compile-bytecode
    Possible choices: 0, 1, 2
    generate bytecode for the specified optimization level(s) (default=0, 1)
--no-compile-bytecode
    don’t generate bytecode for installed modules
    Default: False

With hat:	python
Reference:	https://pypa-build.readthedocs.io/en/stable/ [1]
		https://installer.pypa.io/en/stable/cli/installer/ [2]
This commit is contained in:
Po-Chuan Hsieh 2023-02-06 02:16:47 +08:00
parent 973f951b64
commit de6965254c
No known key found for this signature in database
GPG key ID: 9A4BD10F002DD04B
23 changed files with 30 additions and 11 deletions

View file

@ -179,13 +179,13 @@
# default: ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_PKGVERSION:C/[^A-Za-z0-9.]+/_/g}-py${PYTHON_VER}.egg-info
#
# PEP517_BUILD_CMD - Command sequence for a PEP-517 build frontend that builds a wheel.
# default: ${PYTHON_CMD} -m build -n -w
# default: ${PYTHON_CMD} -m build --no-isolation --wheel
#
# PEP517_BUILD_DEPEND - Port needed to execute ${PEP517_BUILD_CMD}.
# default: ${PYTHON_PKGNAMEPREFIX}build>0:devel/py-build@${PY_FLAVOR}
#
# PEP517_INSTALL_CMD - Command sequence for a PEP-517 install frontend that installs a wheel.
# default: ${PYTHON_CMD} -m installer -d ${STAGEDIR} --no-compile-bytecode ${BUILD_WRKSRC}/dist/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}-*.whl
# default: ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} ${BUILD_WRKSRC}/dist/${PORTNAME:C|[-_]+|_|g}-${PORTVERSION}-*.whl
#
# PEP517_INSTALL_DEPEND - Port needed to execute ${PEP517_INSTALL_CMD}.
# default: ${PYTHON_PKGNAMEPREFIX}installer>0:devel/py-installer@${PY_FLAVOR}
@ -656,10 +656,10 @@ PYDISTUTILS_EGGINFO?= ${PYDISTUTILS_PKGNAME:C/[^A-Za-z0-9.]+/_/g}-${PYDISTUTILS_
PYDISTUTILS_EGGINFODIR?=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
# PEP-517 support
PEP517_BUILD_CMD?= ${PYTHON_CMD} -m build -n -w
PEP517_BUILD_DEPEND?= ${PYTHON_PKGNAMEPREFIX}build>0:devel/py-build@${PY_FLAVOR}
PEP517_INSTALL_CMD?= ${PYTHON_CMD} -m installer -d ${STAGEDIR} --no-compile-bytecode ${BUILD_WRKSRC}/dist/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}-*.whl
PEP517_INSTALL_DEPEND?= ${PYTHON_PKGNAMEPREFIX}installer>0:devel/py-installer@${PY_FLAVOR}
PEP517_BUILD_CMD?= ${PYTHON_CMD} -m build --no-isolation --wheel
PEP517_BUILD_DEPEND?= ${PYTHON_PKGNAMEPREFIX}build>=0:devel/py-build@${PY_FLAVOR}
PEP517_INSTALL_CMD?= ${PYTHON_CMD} -m installer --destdir ${STAGEDIR} ${BUILD_WRKSRC}/dist/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}-*.whl
PEP517_INSTALL_DEPEND?= ${PYTHON_PKGNAMEPREFIX}installer>=0:devel/py-installer@${PY_FLAVOR}
# nose support
. if defined(_PYTHON_FEATURE_NOSE)
@ -858,7 +858,8 @@ do-install:
@${SED} -e 's|^|${PYTHONPREFIX_SITELIBDIR}/|' \
-e 's|^${PYTHONPREFIX_SITELIBDIR}/../../../bin/|bin/|' \
-e 's|\,.*$$||' \
${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME:C/[-_]+/_/g}-${PORTVERSION}.dist-info/RECORD >> ${_PYTHONPKGLIST}
${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/${PORTNAME:C|[-_]+|_|g}-${PORTVERSION}.dist-info/RECORD >> ${_PYTHONPKGLIST}
@cd ${STAGEDIR}${PREFIX} && ${FIND} lib -name '*.pyc' >> ${_PYTHONPKGLIST}
. endif
. endif # defined(_PYTHON_FEATURE_PEP517)

View file

@ -1,5 +1,6 @@
PORTNAME= gTTS
DISTVERSION= 2.3.1
PORTREVISION= 1
CATEGORIES= audio python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= resdk
DISTVERSION= 16.0.0
PORTREVISION= 1
CATEGORIES= biology python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,6 +1,7 @@
PORTNAME= cocotb
DISTVERSIONPREFIX= v
DISTVERSION= 1.7.2
PORTREVISION= 1
CATEGORIES= cad python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,6 +1,6 @@
PORTNAME= poetry
DISTVERSION= 1.3.2
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMESUFFIX= -python-tool

View file

@ -1,5 +1,6 @@
PORTNAME= find-libpython
PORTVERSION= 0.3.0
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= importlib-metadata
PORTVERSION= 6.0.0
PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= interface-meta
PORTVERSION= 1.3.0
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,6 +1,6 @@
PORTNAME= mediafile
DISTVERSION= 0.11.0
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= poetry-plugin-export
DISTVERSION= 1.2.0
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,6 +1,6 @@
PORTNAME= pyls-black
PORTVERSION= 0.4.7
PORTREVISION= 2
PORTREVISION= 3
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= pytoolconfig
PORTVERSION= 1.2.5
PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,6 +1,6 @@
PORTNAME= letsdns
DISTVERSION= 1.0.1
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= dns
MAINTAINER= flo@FreeBSD.org

View file

@ -1,5 +1,6 @@
PORTNAME= glcontext
DISTVERSION= 2.3.7
PORTREVISION= 1
CATEGORIES= graphics
#MASTER_SITES= PYPI # no tests
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= moderngl-window
DISTVERSION= 2.4.2
PORTREVISION= 1
CATEGORIES= graphics
#MASTER_SITES= PYPI # no tests
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= moderngl
DISTVERSION= 5.7.4
PORTREVISION= 1
CATEGORIES= graphics
#MASTER_SITES= PYPI # no tests
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= traitsui
DISTVERSION= 7.4.3
PORTREVISION= 1
CATEGORIES= graphics python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= einops
DISTVERSION= 0.6.0
PORTREVISION= 1
CATEGORIES= misc # machine-learning
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= securesystemslib
PORTVERSION= 0.26.0
PORTREVISION= 1
CATEGORIES= security python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= tuf
PORTVERSION= 2.1.0
PORTREVISION= 1
CATEGORIES= security devel python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= docker
PORTVERSION= 6.0.1
PORTREVISION= 1
CATEGORIES= sysutils python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= sphinx-autoapi
DISTVERSION= 2.0.1
PORTREVISION= 1
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,5 +1,6 @@
PORTNAME= fastapi
PORTVERSION= 0.89.1
PORTREVISION= 1
CATEGORIES= www python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}