[Buildroot] [PATCH v6 5/5] package/pkg-python.mk: migrate setuptools to pep517
Marcus Hoffmann
buildroot at bubu1.eu
Tue Feb 6 22:31:01 UTC 2024
Hi James, all
On 26.11.23 19:08, James Hilliard wrote:
> Now that setuptools and its dependencies are using pep517 we can
> migrate the setuptools infrastructure itself to use the pep517
> build frontend.
>
> As part of this we need to migrate the all python packages using
> _BUILD_OPTS to the new config settings format used by the pep517
> build frontend.
>
> Use new setup type variables to define setup type specific
> dependencies instead of using the conditional block.
>
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
> Reviewed-by: Yegor Yefremov <yegorslists at googlemail.com>
I tested this with all python packages we use in our project and except
for uvloop (see below) it all went well.
The patch looks sensible to me as well.
Reviewed-by: Marcus Hoffmann <buildroot at bubu1.eu>
Tested-by: Marcus Hoffmann <buildroot at bubu1.eu>
> ---
> Changes v5 -> v6:
> - use setup type variables for dependencies
> Changes v4 -> v5:
> - rebase on next
> Changes v1 -> v3:
> - rebase on master
> - combine setuptools-rust and maturin env variables
> - drop patch which is now upstream
> ---
> package/pkg-python.mk | 160 ++++++++++-----------
> package/python-evdev/python-evdev.mk | 4 +-
> package/python-lxml/python-lxml.mk | 8 +-
> package/python-m2crypto/python-m2crypto.mk | 4 +-
> package/python-pillow/python-pillow.mk | 35 +++--
> package/python-psycopg2/python-psycopg2.mk | 5 +-
> package/python-pyzmq/python-pyzmq.mk | 4 +-
This parts needs a rebase.
> package/python-uvloop/python-uvloop.mk | 6 +-
> 8 files changed, 113 insertions(+), 113 deletions(-)
>
> diff --git a/package/pkg-python.mk b/package/pkg-python.mk
> index bda79116c8..cb9f6ab5e6 100644
> --- a/package/pkg-python.mk
> +++ b/package/pkg-python.mk
> @@ -86,15 +86,62 @@ HOST_PKG_PYTHON_DISTUTILS_INSTALL_CMD = \
> setup.py install \
> --prefix=$(HOST_DIR)
>
> -# Target setuptools-based packages
> -PKG_PYTHON_SETUPTOOLS_ENV = \
> +# Target pep517-based packages
> +PKG_PYTHON_PEP517_ENV = \
> $(PKG_PYTHON_ENV)
>
> -PKG_PYTHON_SETUPTOOLS_CMD = \
> - $(if $(wildcard $($(PKG)_BUILDDIR)/setup.py),setup.py,-c 'from setuptools import setup;setup()')
> +PKG_PYTHON_PEP517_BUILD_CMD = \
> + -m build -n -w
> +
> +PKG_PYTHON_PEP517_INSTALL_OPTS = \
> + --interpreter=/usr/bin/python \
> + --script-kind=posix
> +
> +PKG_PYTHON_PEP517_INSTALL_TARGET_CMD = \
> + $(TOPDIR)/support/scripts/pyinstaller.py \
> + dist/* \
> + $(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_CMD = \
> + $(TOPDIR)/support/scripts/pyinstaller.py \
> + dist/* \
> + $(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 \
> + --data=$(STAGING_DIR)/usr
> +
> +PKG_PYTHON_PEP517_DEPENDENCIES = \
> + host-python-pypa-build \
> + host-python-installer
> +
> +# Host pep517-based packages
> +HOST_PKG_PYTHON_PEP517_ENV = \
> + $(HOST_PKG_PYTHON_ENV)
> +
> +HOST_PKG_PYTHON_PEP517_BUILD_CMD = \
> + -m build -n -w
> +
> +HOST_PKG_PYTHON_PEP517_INSTALL_CMD = \
> + $(TOPDIR)/support/scripts/pyinstaller.py \
> + dist/* \
> + --interpreter=$(HOST_DIR)/bin/python \
> + --script-kind=posix \
> + --purelib=$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
> + --headers=$(HOST_DIR)/include/python$(PYTHON3_VERSION_MAJOR) \
> + --scripts=$(HOST_DIR)/bin \
> + --data=$(HOST_DIR)
> +
> +# Target setuptools-based packages
> +PKG_PYTHON_SETUPTOOLS_ENV = \
> + $(PKG_PYTHON_PEP517_ENV)
>
> PKG_PYTHON_SETUPTOOLS_BUILD_CMD = \
> - $(PKG_PYTHON_SETUPTOOLS_CMD) build
> + $(PKG_PYTHON_PEP517_BUILD_CMD)
>
> PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
> --install-headers=/usr/include/python$(PYTHON3_VERSION_MAJOR) \
> @@ -103,30 +150,24 @@ PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
> --single-version-externally-managed
>
> PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_CMD = \
> - $(PKG_PYTHON_SETUPTOOLS_CMD) \
> - install --no-compile \
> - $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \
> - --root=$(TARGET_DIR)
> + $(PKG_PYTHON_PEP517_INSTALL_TARGET_CMD)
>
> PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_CMD = \
> - $(PKG_PYTHON_SETUPTOOLS_CMD) \
> - install \
> - $(PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS) \
> - --root=$(STAGING_DIR)
> + $(PKG_PYTHON_PEP517_INSTALL_STAGING_CMD)
> +
> +PKG_PYTHON_SETUPTOOLS_DEPENDENCIES = \
> + $(PKG_PYTHON_PEP517_DEPENDENCIES) \
> + host-python-setuptools
>
> # Host setuptools-based packages
> HOST_PKG_PYTHON_SETUPTOOLS_ENV = \
> - $(HOST_PKG_PYTHON_ENV)
> + $(HOST_PKG_PYTHON_PEP517_ENV)
>
> HOST_PKG_PYTHON_SETUPTOOLS_BUILD_CMD = \
> - $(PKG_PYTHON_SETUPTOOLS_CMD) build
> + $(HOST_PKG_PYTHON_PEP517_BUILD_CMD)
>
> HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_CMD = \
> - $(PKG_PYTHON_SETUPTOOLS_CMD) \
> - install \
> - --prefix=$(HOST_DIR) \
> - --root=/ \
> - --single-version-externally-managed
> + $(HOST_PKG_PYTHON_PEP517_INSTALL_CMD)
>
> # Target setuptools-rust-based packages
> PKG_PYTHON_SETUPTOOLS_RUST_ENV = \
> @@ -143,6 +184,10 @@ PKG_PYTHON_SETUPTOOLS_RUST_INSTALL_TARGET_CMD = \
> PKG_PYTHON_SETUPTOOLS_RUST_INSTALL_STAGING_CMD = \
> $(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_CMD)
>
> +PKG_PYTHON_SETUPTOOLS_RUST_DEPENDENCIES = \
> + $(PKG_PYTHON_SETUPTOOLS_DEPENDENCIES) \
> + host-python-setuptools-rust
> +
> # Host setuptools-rust-based packages
> HOST_PKG_PYTHON_SETUPTOOLS_RUST_ENV = \
> $(HOST_PKG_PYTHON_SETUPTOOLS_ENV) \
> @@ -155,52 +200,6 @@ HOST_PKG_PYTHON_SETUPTOOLS_RUST_BUILD_CMD = \
> HOST_PKG_PYTHON_SETUPTOOLS_RUST_INSTALL_CMD = \
> $(HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_CMD)
>
> -# Target pep517-based packages
> -PKG_PYTHON_PEP517_ENV = \
> - $(PKG_PYTHON_ENV)
> -
> -PKG_PYTHON_PEP517_BUILD_CMD = \
> - -m build -n -w
> -
> -PKG_PYTHON_PEP517_INSTALL_OPTS = \
> - --interpreter=/usr/bin/python \
> - --script-kind=posix
> -
> -PKG_PYTHON_PEP517_INSTALL_TARGET_CMD = \
> - $(TOPDIR)/support/scripts/pyinstaller.py \
> - dist/* \
> - $(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_CMD = \
> - $(TOPDIR)/support/scripts/pyinstaller.py \
> - dist/* \
> - $(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 \
> - --data=$(STAGING_DIR)/usr
> -
> -# Host pep517-based packages
> -HOST_PKG_PYTHON_PEP517_ENV = \
> - $(HOST_PKG_PYTHON_ENV)
> -
> -HOST_PKG_PYTHON_PEP517_BUILD_CMD = \
> - -m build -n -w
> -
> -HOST_PKG_PYTHON_PEP517_INSTALL_CMD = \
> - $(TOPDIR)/support/scripts/pyinstaller.py \
> - dist/* \
> - --interpreter=$(HOST_DIR)/bin/python \
> - --script-kind=posix \
> - --purelib=$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
> - --headers=$(HOST_DIR)/include/python$(PYTHON3_VERSION_MAJOR) \
> - --scripts=$(HOST_DIR)/bin \
> - --data=$(HOST_DIR)
> -
> # Target flit packages
> PKG_PYTHON_FLIT_ENV = \
> $(PKG_PYTHON_PEP517_ENV)
> @@ -214,6 +213,10 @@ PKG_PYTHON_FLIT_INSTALL_TARGET_CMD = \
> PKG_PYTHON_FLIT_INSTALL_STAGING_CMD = \
> $(PKG_PYTHON_PEP517_INSTALL_STAGING_CMD)
>
> +PKG_PYTHON_FLIT_DEPENDENCIES = \
> + $(PKG_PYTHON_PEP517_DEPENDENCIES) \
> + host-python-flit-core
> +
> # Host flit packages
> HOST_PKG_PYTHON_FLIT_ENV = \
> $(HOST_PKG_PYTHON_PEP517_ENV)
> @@ -249,6 +252,10 @@ PKG_PYTHON_MATURIN_INSTALL_TARGET_CMD = \
> PKG_PYTHON_MATURIN_INSTALL_STAGING_CMD = \
> $(PKG_PYTHON_PEP517_INSTALL_STAGING_CMD)
>
> +PKG_PYTHON_MATURIN_DEPENDENCIES = \
> + $(PKG_PYTHON_PEP517_DEPENDENCIES) \
> + host-python-maturin
> +
> # Host maturin packages
> HOST_PKG_PYTHON_MATURIN_ENV = \
> $(HOST_PKG_PYTHON_PEP517_ENV) \
> @@ -327,28 +334,17 @@ else
> $(2)_DEPENDENCIES += host-python3
> endif # ($(4),target)
>
> -# Setuptools based packages will need setuptools for the host Python
> -# interpreter (both host and target).
> +# Setup type specific dependencies are the same whether we are
> +# building for the host or the target.
> #
> -ifneq ($$(filter setuptools setuptools-rust,$$($(2)_SETUP_TYPE)),)
> -$(2)_DEPENDENCIES += host-python-setuptools
> -ifeq ($$($(2)_SETUP_TYPE),setuptools-rust)
> -$(2)_DEPENDENCIES += host-python-setuptools-rust
> -endif
> -else ifneq ($$(filter flit maturin pep517,$$($(2)_SETUP_TYPE)),)
> -$(2)_DEPENDENCIES += host-python-pypa-build host-python-installer
> -ifeq ($$($(2)_SETUP_TYPE),flit)
> -$(2)_DEPENDENCIES += host-python-flit-core
> -endif
> -ifeq ($$($(2)_SETUP_TYPE),maturin)
> -$(2)_DEPENDENCIES += host-python-maturin
> -endif
> -else ifeq ($$($(2)_SETUP_TYPE),flit-bootstrap)
> +ifeq ($$($(2)_SETUP_TYPE),flit-bootstrap)
> # Don't add dependency on host-python-installer for
> # host-python-installer itself, and its dependencies.
> ifeq ($$(filter host-python-flit-core host-python-installer,$(1)),)
> $(2)_DEPENDENCIES += host-python-installer
> endif
> +else
> +$(2)_DEPENDENCIES += $$(PKG_PYTHON_$$($(2)_SETUP_TYPE_UPPER)_DEPENDENCIES)
> endif
>
> # Pyo3 based packages(setuptools-rust and maturin) will need rust
> diff --git a/package/python-evdev/python-evdev.mk b/package/python-evdev/python-evdev.mk
> index 5cf62b5160..b509b43e8a 100644
> --- a/package/python-evdev/python-evdev.mk
> +++ b/package/python-evdev/python-evdev.mk
> @@ -12,7 +12,7 @@ PYTHON_EVDEV_LICENSE = Revised BSD License
> PYTHON_EVDEV_LICENSE_FILES = LICENSE
>
> PYTHON_EVDEV_BUILD_OPTS = \
> - build_ecodes \
> - --evdev-headers $(STAGING_DIR)/usr/include/linux/input.h:$(STAGING_DIR)/usr/include/linux/input-event-codes.h:$(STAGING_DIR)/usr/include/linux/uinput.h
> + -C--build-option=build_ecodes \
> + -C--build-option=--evdev-headers=$(STAGING_DIR)/usr/include/linux/input.h:$(STAGING_DIR)/usr/include/linux/input-event-codes.h:$(STAGING_DIR)/usr/include/linux/uinput.h
>
> $(eval $(python-package))
> diff --git a/package/python-lxml/python-lxml.mk b/package/python-lxml/python-lxml.mk
> index 3ef3aabdbc..4454f5aa0c 100644
> --- a/package/python-lxml/python-lxml.mk
> +++ b/package/python-lxml/python-lxml.mk
> @@ -28,11 +28,11 @@ HOST_PYTHON_LXML_DEPENDENCIES = host-libxml2 host-libxslt host-zlib
> # python-lxml needs these scripts in order to properly detect libxml2 and
> # libxslt compiler and linker flags
> PYTHON_LXML_BUILD_OPTS = \
> - --xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \
> - --xml2-config=$(STAGING_DIR)/usr/bin/xml2-config
> + -C--build-option=--xslt-config=$(STAGING_DIR)/usr/bin/xslt-config \
> + -C--build-option=--xml2-config=$(STAGING_DIR)/usr/bin/xml2-config
> HOST_PYTHON_LXML_BUILD_OPTS = \
> - --xslt-config=$(HOST_DIR)/bin/xslt-config \
> - --xml2-config=$(HOST_DIR)/bin/xml2-config
> + -C--build-option=--xslt-config=$(HOST_DIR)/bin/xslt-config \
> + -C--build-option=--xml2-config=$(HOST_DIR)/bin/xml2-config
>
> $(eval $(python-package))
> $(eval $(host-python-package))
> diff --git a/package/python-m2crypto/python-m2crypto.mk b/package/python-m2crypto/python-m2crypto.mk
> index 69a0c28df5..6c07f42d06 100644
> --- a/package/python-m2crypto/python-m2crypto.mk
> +++ b/package/python-m2crypto/python-m2crypto.mk
> @@ -13,6 +13,8 @@ PYTHON_M2CRYPTO_LICENSE_FILES = LICENCE
> PYTHON_M2CRYPTO_CPE_ID_VENDOR = m2crypto_project
> PYTHON_M2CRYPTO_CPE_ID_PRODUCT = m2crypto
> PYTHON_M2CRYPTO_DEPENDENCIES = openssl host-swig
> -PYTHON_M2CRYPTO_BUILD_OPTS = --openssl=$(STAGING_DIR)/usr
> +PYTHON_M2CRYPTO_BUILD_OPTS = \
> + -C--build-option=build_ext \
> + -C--build-option=--openssl=$(STAGING_DIR)/usr
>
> $(eval $(python-package))
> diff --git a/package/python-pillow/python-pillow.mk b/package/python-pillow/python-pillow.mk
> index bc94062da8..e2077654d2 100644
> --- a/package/python-pillow/python-pillow.mk
> +++ b/package/python-pillow/python-pillow.mk
> @@ -14,61 +14,60 @@ PYTHON_PILLOW_CPE_ID_PRODUCT = pillow
> PYTHON_PILLOW_SETUP_TYPE = setuptools
>
> PYTHON_PILLOW_DEPENDENCIES = host-pkgconf
> -PYTHON_PILLOW_BUILD_OPTS = build_ext --disable-platform-guessing
> -PYTHON_PILLOW_INSTALL_TARGET_OPTS = $(PYTHON_PILLOW_BUILD_OPTS)
> +PYTHON_PILLOW_BUILD_OPTS = -C--build-option=build_ext -C--build-option=--disable-platform-guessing
>
> ifeq ($(BR2_PACKAGE_FREETYPE),y)
> PYTHON_PILLOW_DEPENDENCIES += freetype
> -PYTHON_PILLOW_BUILD_OPTS += --enable-freetype
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-freetype
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-freetype
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-freetype
> endif
>
> ifeq ($(BR2_PACKAGE_JPEG),y)
> PYTHON_PILLOW_DEPENDENCIES += jpeg
> -PYTHON_PILLOW_BUILD_OPTS += --enable-jpeg
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-jpeg
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-jpeg
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-jpeg
> endif
>
> ifeq ($(BR2_PACKAGE_LCMS2),y)
> PYTHON_PILLOW_DEPENDENCIES += lcms2
> -PYTHON_PILLOW_BUILD_OPTS += --enable-lcms
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-lcms
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-lcms
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-lcms
> endif
>
> ifeq ($(BR2_PACKAGE_LIBXCB),y)
> PYTHON_PILLOW_DEPENDENCIES += libxcb
> -PYTHON_PILLOW_BUILD_OPTS += --enable-xcb
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-xcb
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-xcb
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-xcb
> endif
>
> ifeq ($(BR2_PACKAGE_OPENJPEG),y)
> PYTHON_PILLOW_DEPENDENCIES += openjpeg
> -PYTHON_PILLOW_BUILD_OPTS += --enable-jpeg2000
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-jpeg2000
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-jpeg2000
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-jpeg2000
> endif
>
> ifeq ($(BR2_PACKAGE_TIFF),y)
> PYTHON_PILLOW_DEPENDENCIES += tiff
> -PYTHON_PILLOW_BUILD_OPTS += --enable-tiff
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-tiff
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-tiff
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-tiff
> endif
>
> ifeq ($(BR2_PACKAGE_WEBP),y)
> PYTHON_PILLOW_DEPENDENCIES += webp
> -PYTHON_PILLOW_BUILD_OPTS += --enable-webp
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-webp
> ifeq ($(BR2_PACKAGE_WEBP_DEMUX)$(BR2_PACKAGE_WEBP_MUX),yy)
> -PYTHON_PILLOW_BUILD_OPTS += --enable-webpmux
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--enable-webpmux
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-webpmux
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-webpmux
> endif
> else
> -PYTHON_PILLOW_BUILD_OPTS += --disable-webp --disable-webpmux
> +PYTHON_PILLOW_BUILD_OPTS += -C--build-option=--disable-webp -C--build-option=--disable-webpmux
> endif
>
> $(eval $(python-package))
> diff --git a/package/python-psycopg2/python-psycopg2.mk b/package/python-psycopg2/python-psycopg2.mk
> index 0149b8d185..1b33b7505d 100644
> --- a/package/python-psycopg2/python-psycopg2.mk
> +++ b/package/python-psycopg2/python-psycopg2.mk
> @@ -13,7 +13,8 @@ PYTHON_PSYCOPG2_LICENSE_FILES = LICENSE
> PYTHON_PSYCOPG2_DEPENDENCIES = postgresql
> # Force psycopg2 to use the Buildroot provided postgresql version
> # instead of the one from the host machine
> -PYTHON_PSYCOPG2_BUILD_OPTS = build_ext --pg-config=$(STAGING_DIR)/usr/bin/pg_config
> -PYTHON_PSYCOPG2_INSTALL_TARGET_OPTS = build_ext --pg-config=$(STAGING_DIR)/usr/bin/pg_config
> +PYTHON_PSYCOPG2_BUILD_OPTS = \
> + -C--build-option=build_ext \
> + -C--build-option=--pg-config=$(STAGING_DIR)/usr/bin/pg_config
>
> $(eval $(python-package))
> diff --git a/package/python-pyzmq/python-pyzmq.mk b/package/python-pyzmq/python-pyzmq.mk
> index 5792957eaf..1b7bceae5e 100644
> --- a/package/python-pyzmq/python-pyzmq.mk
> +++ b/package/python-pyzmq/python-pyzmq.mk
> @@ -12,7 +12,7 @@ PYTHON_PYZMQ_LICENSE = LGPL-3.0+, BSD-3-Clause, Apache-2.0
> PYTHON_PYZMQ_LICENSE_FILES = COPYING.LESSER COPYING.BSD
> PYTHON_PYZMQ_DEPENDENCIES = host-python-packaging zeromq
> PYTHON_PYZMQ_SETUP_TYPE = setuptools
> -PYTHON_PYZMQ_BUILD_OPTS = --zmq=$(STAGING_DIR)/usr
> +PYTHON_PYZMQ_BUILD_OPTS = -C--build-option=--zmq=$(STAGING_DIR)/usr
>
> # Due to issues with cross-compiling, hardcode to the zeromq in BR
> define PYTHON_PYZMQ_PATCH_ZEROMQ_VERSION
> @@ -23,7 +23,7 @@ endef
> PYTHON_PYZMQ_POST_PATCH_HOOKS += PYTHON_PYZMQ_PATCH_ZEROMQ_VERSION
>
> ifeq ($(BR2_PACKAGE_ZEROMQ_DRAFTS),y)
> -PYTHON_PYZMQ_BUILD_OPTS += --enable-drafts
> +PYTHON_PYZMQ_BUILD_OPTS += -C--build-option=--enable-drafts
> endif
>
> $(eval $(python-package))
> diff --git a/package/python-uvloop/python-uvloop.mk b/package/python-uvloop/python-uvloop.mk
> index 285884a2bb..70508fb6de 100644
> --- a/package/python-uvloop/python-uvloop.mk
> +++ b/package/python-uvloop/python-uvloop.mk
> @@ -10,8 +10,10 @@ PYTHON_UVLOOP_SITE = https://files.pythonhosted.org/packages/9c/16/728cc5dde368e
> PYTHON_UVLOOP_SETUP_TYPE = setuptools
> PYTHON_UVLOOP_LICENSE = Apache-2.0, MIT
> PYTHON_UVLOOP_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT
> -PYTHON_UVLOOP_BUILD_OPTS = build_ext --inplace --use-system-libuv
> -PYTHON_UVLOOP_INSTALL_TARGET_OPTS = build_ext --inplace --use-system-libuv
> PYTHON_UVLOOP_DEPENDENCIES = libuv
This needs a new dependency on host-python-cython now. Otherwise it
fails with the following error:
ERROR Missing dependencies:
Cython<0.30.0,>=0.29.36
> +PYTHON_UVLOOP_BUILD_OPTS = \
> + -C--build-option=build_ext \
> + -C--build-option=--inplace \
> + -C--build-option=--use-system-libuv
>
> $(eval $(python-package))
More information about the buildroot
mailing list