[Buildroot] [PATCH v2 1/3] package/pkg-python: deduplicate common env/opts variables
Arnout Vandecappelle
arnout at mind.be
Sat Apr 30 18:50:59 UTC 2022
On 29/04/2022 00:17, James Hilliard wrote:
> There are many varibles shared via setuptools, distutils and pep517,
> combine those common env/opts variables to make them easier to
> maintain.
>
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
Applied to master, thanks.
Regards,
Arnout
> ---
> Changes v1 -> v2:
> - restore accidentially dropped LDSHARED in distutils env
> ---
> package/pkg-python.mk | 96 +++++++++++++++++++------------------------
> 1 file changed, 43 insertions(+), 53 deletions(-)
>
> diff --git a/package/pkg-python.mk b/package/pkg-python.mk
> index e9de5cb8d3..b86e12423f 100644
> --- a/package/pkg-python.mk
> +++ b/package/pkg-python.mk
> @@ -33,78 +33,77 @@ PKG_PYTHON_HOST_PLATFORM = linux-$(PKG_PYTHON_ARCH)
> PKG_PYTHON_SYSCONFIGDATA_PATH = $(PYTHON3_PATH)/_sysconfigdata__linux_*.py
> PKG_PYTHON_SYSCONFIGDATA_NAME = `{ [ -e $(PKG_PYTHON_SYSCONFIGDATA_PATH) ] && basename $(PKG_PYTHON_SYSCONFIGDATA_PATH) .py; } || true`
>
> -# Target distutils-based packages
> -PKG_PYTHON_DISTUTILS_ENV = \
> +# Target python packages
> +PKG_PYTHON_ENV = \
> + _PYTHON_HOST_PLATFORM="$(PKG_PYTHON_HOST_PLATFORM)" \
> + _PYTHON_PROJECT_BASE="$(PYTHON3_DIR)" \
> + _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
> PATH=$(BR_PATH) \
> $(TARGET_CONFIGURE_OPTS) \
> - LDSHARED="$(TARGET_CROSS)gcc -shared" \
> PYTHONPATH="$(PYTHON3_PATH)" \
> PYTHONNOUSERSITE=1 \
> - SETUPTOOLS_USE_DISTUTILS=stdlib \
> - _PYTHON_HOST_PLATFORM="$(PKG_PYTHON_HOST_PLATFORM)" \
> - _PYTHON_PROJECT_BASE="$(PYTHON3_DIR)" \
> - _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
> _python_sysroot=$(STAGING_DIR) \
> _python_prefix=/usr \
> _python_exec_prefix=/usr
>
> +# Host python packages
> +HOST_PKG_PYTHON_ENV = \
> + PATH=$(BR_PATH) \
> + PYTHONNOUSERSITE=1 \
> + $(HOST_CONFIGURE_OPTS)
> +
> +# Target distutils-based packages
> +PKG_PYTHON_DISTUTILS_ENV = \
> + $(PKG_PYTHON_ENV) \
> + LDSHARED="$(TARGET_CROSS)gcc -shared" \
> + SETUPTOOLS_USE_DISTUTILS=stdlib \
> +
> PKG_PYTHON_DISTUTILS_BUILD_OPTS = \
> --executable=/usr/bin/python
>
> -PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS = \
> +PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \
> --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> - --prefix=/usr \
> + --prefix=/usr
> +
> +PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS = \
> + $(PKG_PYTHON_DISTUTILS_INSTALL_OPTS) \
> --root=$(TARGET_DIR)
>
> PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS = \
> - --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> - --prefix=/usr \
> + $(PKG_PYTHON_DISTUTILS_INSTALL_OPTS) \
> --root=$(STAGING_DIR)
>
> # Host distutils-based packages
> HOST_PKG_PYTHON_DISTUTILS_ENV = \
> - PATH=$(BR_PATH) \
> - PYTHONNOUSERSITE=1 \
> - SETUPTOOLS_USE_DISTUTILS=stdlib \
> - $(HOST_CONFIGURE_OPTS)
> + $(HOST_PKG_PYTHON_ENV) \
> + SETUPTOOLS_USE_DISTUTILS=stdlib
>
> HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS = \
> --prefix=$(HOST_DIR)
>
> # Target setuptools-based packages
> PKG_PYTHON_SETUPTOOLS_ENV = \
> - _PYTHON_HOST_PLATFORM="$(PKG_PYTHON_HOST_PLATFORM)" \
> - _PYTHON_PROJECT_BASE="$(PYTHON3_DIR)" \
> - _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
> - PATH=$(BR_PATH) \
> - $(TARGET_CONFIGURE_OPTS) \
> - PYTHONPATH="$(PYTHON3_PATH)" \
> - PYTHONNOUSERSITE=1 \
> - SETUPTOOLS_USE_DISTUTILS=stdlib \
> - _python_sysroot=$(STAGING_DIR) \
> - _python_prefix=/usr \
> - _python_exec_prefix=/usr
> + $(PKG_PYTHON_ENV) \
> + SETUPTOOLS_USE_DISTUTILS=stdlib
>
> -PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS = \
> +PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
> --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> --prefix=/usr \
> --executable=/usr/bin/python \
> - --single-version-externally-managed \
> + --single-version-externally-managed
> +
> +PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS = \
> + $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \
> --root=$(TARGET_DIR)
>
> PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS = \
> - --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> - --prefix=/usr \
> - --executable=/usr/bin/python \
> - --single-version-externally-managed \
> + $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \
> --root=$(STAGING_DIR)
>
> # Host setuptools-based packages
> HOST_PKG_PYTHON_SETUPTOOLS_ENV = \
> - PATH=$(BR_PATH) \
> - PYTHONNOUSERSITE=1 \
> - SETUPTOOLS_USE_DISTUTILS=stdlib \
> - $(HOST_CONFIGURE_OPTS)
> + $(HOST_PKG_PYTHON_ENV) \
> + SETUPTOOLS_USE_DISTUTILS=stdlib
>
> HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
> --prefix=$(HOST_DIR) \
> @@ -113,28 +112,21 @@ HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
>
> # Target pep517-based packages
> PKG_PYTHON_PEP517_ENV = \
> - _PYTHON_HOST_PLATFORM="$(PKG_PYTHON_HOST_PLATFORM)" \
> - _PYTHON_PROJECT_BASE="$(PYTHON3_DIR)" \
> - _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
> - PATH=$(BR_PATH) \
> - $(TARGET_CONFIGURE_OPTS) \
> - PYTHONPATH="$(PYTHON3_PATH)" \
> - PYTHONNOUSERSITE=1 \
> - _python_sysroot=$(STAGING_DIR) \
> - _python_prefix=/usr \
> - _python_exec_prefix=/usr
> + $(PKG_PYTHON_ENV)
>
> -PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS = \
> +PKG_PYTHON_PEP517_INSTALL_OPTS = \
> --interpreter=/usr/bin/python \
> - --script-kind=posix \
> + --script-kind=posix
> +
> +PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS = \
> + $(PKG_PYTHON_PEP517_INSTALL_OPTS) \
> --purelib=$(TARGET_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
> --headers=$(TARGET_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> --scripts=$(TARGET_DIR)/usr/bin \
> --data=$(TARGET_DIR)/usr
>
> PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS = \
> - --interpreter=/usr/bin/python \
> - --script-kind=posix \
> + $(PKG_PYTHON_PEP517_INSTALL_OPTS) \
> --purelib=$(STAGING_DIR)/usr/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
> --headers=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> --scripts=$(STAGING_DIR)/usr/bin \
> @@ -142,9 +134,7 @@ PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS = \
>
> # Host pep517-based packages
> HOST_PKG_PYTHON_PEP517_ENV = \
> - PATH=$(BR_PATH) \
> - PYTHONNOUSERSITE=1 \
> - $(HOST_CONFIGURE_OPTS)
> + $(HOST_PKG_PYTHON_ENV)
>
> HOST_PKG_PYTHON_PEP517_BOOTSTRAP_INSTALL_OPTS = \
> --installdir=$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages
More information about the buildroot
mailing list