From 2fb2767f1d9bdafce0083792060775ae84742ab3 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Mon, 2 May 2022 16:09:19 -0600 Subject: [PATCH] package/python-pillow: fix pkg-config search paths 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 Signed-off-by: Arnout Vandecappelle (Essensium/Mind) (cherry picked from commit 10664068b994277c6c3e78553ea4b613ec3d9935) Signed-off-by: Peter Korsgaard --- ...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 +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@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))