[Buildroot] [PATCH v5 1/1] package/python-pillow: fix pkg-config search paths
Arnout Vandecappelle
arnout at mind.be
Tue May 3 20:18:54 UTC 2022
On 03/05/2022 00:09, James Hilliard wrote:
> Currently pillow doesn't correctly search pkg-config system paths
> for some libraries which can prevent some libraries from being
> properly detected/enabled in pillow.
>
> This is due to pillow implementing custom header validation
> checks which need system paths present to function correctly:
> https://github.com/python-pillow/Pillow/blob/9.0.1/setup.py#L633
>
> Removed custom BUILD_CMDS and INSTALL_TARGET_CMDS which were
> causing python-pillow to be installed for the host, they are
> not required, we just need to set build_ext at the start
> of PYTHON_PILLOW_BUILD_OPTS instead.
>
> Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
Applied to master, thanks.
Regards,
Arnout
> ---
> Changes v4 -> v5:
> - use backported upstream patch
> Changes v3 -> v4:
> - pass BUILD_OPTS to INSTALL_TARGET_OPTS
> Changes v2 -> v3:
> - actually remove MAX_CONCURRENCY env variable
> Changes v1 -> v2:
> - remove unrelated MAX_CONCURRENCY env variable
> ---
> ...Search-pkg-config-system-libs-cflags.patch | 33 +++++++++++++++++++
> package/python-pillow/python-pillow.mk | 23 +++----------
> 2 files changed, 37 insertions(+), 19 deletions(-)
> create mode 100644 package/python-pillow/0001-Search-pkg-config-system-libs-cflags.patch
>
> diff --git a/package/python-pillow/0001-Search-pkg-config-system-libs-cflags.patch b/package/python-pillow/0001-Search-pkg-config-system-libs-cflags.patch
> new file mode 100644
> index 0000000000..d0552ce0f4
> --- /dev/null
> +++ b/package/python-pillow/0001-Search-pkg-config-system-libs-cflags.patch
> @@ -0,0 +1,33 @@
> +From 9ea46247048f861f088f09541cd434aeb16e6f9c Mon Sep 17 00:00:00 2001
> +From: James Hilliard <james.hilliard1 at gmail.com>
> +Date: Tue, 15 Mar 2022 23:31:59 -0600
> +Subject: [PATCH] Search pkg-config system libs/cflags.
> +
> +We need to search the system paths as well from pkg-config for
> +some packages to be found properly.
> +
> +Signed-off-by: James Hilliard <james.hilliard1 at gmail.com>
> +[james.hilliard1 at gmail.com: backport from upstream commit
> +9ea46247048f861f088f09541cd434aeb16e6f9c]
> +---
> + setup.py | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/setup.py b/setup.py
> +index 9a05e5105..d41aedbd6 100755
> +--- a/setup.py
> ++++ b/setup.py
> +@@ -252,8 +252,8 @@ def _cmd_exists(cmd):
> + def _pkg_config(name):
> + try:
> + command = os.environ.get("PKG_CONFIG", "pkg-config")
> +- command_libs = [command, "--libs-only-L", name]
> +- command_cflags = [command, "--cflags-only-I", name]
> ++ command_libs = [command, "--libs-only-L", "--keep-system-libs", name]
> ++ command_cflags = [command, "--cflags-only-I", "--keep-system-cflags", name]
> + if not DEBUG:
> + command_libs.append("--silence-errors")
> + command_cflags.append("--silence-errors")
> +--
> +2.25.1
> +
> diff --git a/package/python-pillow/python-pillow.mk b/package/python-pillow/python-pillow.mk
> index 901876e0ee..1d99f44fa1 100644
> --- a/package/python-pillow/python-pillow.mk
> +++ b/package/python-pillow/python-pillow.mk
> @@ -12,7 +12,10 @@ PYTHON_PILLOW_LICENSE_FILES = LICENSE
> PYTHON_PILLOW_CPE_ID_VENDOR = python
> PYTHON_PILLOW_CPE_ID_PRODUCT = pillow
> PYTHON_PILLOW_SETUP_TYPE = setuptools
> -PYTHON_PILLOW_BUILD_OPTS = --disable-platform-guessing
> +
> +PYTHON_PILLOW_DEPENDENCIES = host-pkgconf
> +PYTHON_PILLOW_BUILD_OPTS = build_ext --disable-platform-guessing
> +PYTHON_PILLOW_INSTALL_TARGET_OPTS = $(PYTHON_PILLOW_BUILD_OPTS)
>
> ifeq ($(BR2_PACKAGE_FREETYPE),y)
> PYTHON_PILLOW_DEPENDENCIES += freetype
> @@ -68,22 +71,4 @@ else
> PYTHON_PILLOW_BUILD_OPTS += --disable-webp --disable-webpmux
> endif
>
> -define PYTHON_PILLOW_BUILD_CMDS
> - cd $(PYTHON_PILLOW_BUILDDIR); \
> - PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> - $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \
> - $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \
> - $(PYTHON_PILLOW_BASE_BUILD_OPTS) $(PYTHON_PILLOW_BUILD_OPTS)
> -endef
> -
> -define PYTHON_PILLOW_INSTALL_TARGET_CMDS
> - cd $(PYTHON_PILLOW_BUILDDIR); \
> - PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 \
> - $(PYTHON_PILLOW_BASE_ENV) $(PYTHON_PILLOW_ENV) \
> - $(PYTHON_PILLOW_PYTHON_INTERPRETER) setup.py build_ext \
> - $(PYTHON_PILLOW_BUILD_OPTS) install \
> - $(PYTHON_PILLOW_BASE_INSTALL_TARGET_OPTS) \
> - $(PYTHON_PILLOW_INSTALL_TARGET_OPTS)
> -endef
> -
> $(eval $(python-package))
More information about the buildroot
mailing list