mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-05-05 19:11:57 +02:00
pillow: sync with Gentoo
This commit is contained in:
parent
1f3b6fa446
commit
a37d18d4a4
2 changed files with 68 additions and 9 deletions
62
dev-python/pillow/files/pillow-10.2.0-cross.patch
Normal file
62
dev-python/pillow/files/pillow-10.2.0-cross.patch
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
From 774d7a570d9f76903de3c3267512b8a7d252c21e Mon Sep 17 00:00:00 2001
|
||||
From: James Le Cuirot <chewi@gentoo.org>
|
||||
Date: Fri, 22 Dec 2023 22:38:27 +0000
|
||||
Subject: [PATCH] Fix cross-compiling by searching the right lib and include
|
||||
directories
|
||||
|
||||
We were previously searching the `{sys.prefix}/lib` and
|
||||
`{sys.prefix}/include` directories unconditionally. This is problematic
|
||||
when cross-compiling, as it does not take account of any sysroot where
|
||||
alternative libraries and headers are located. Adding `-I/usr/include`
|
||||
causes the build to explode, at least when cross-compiling from 64-bit
|
||||
to 32-bit.
|
||||
|
||||
Python does not officially support cross-compiling, but Gentoo achieves
|
||||
this by modifying the sysconfig variables like `LIBDIR` and `INCLUDEDIR`
|
||||
with great results.
|
||||
|
||||
Assuming "lib" is bad. 64-bit Linux systems often use lib64, putting
|
||||
32-bit libraries under lib. You cannot assume that either though, as
|
||||
pure 64-bit Linux systems may just use lib instead. Things get even
|
||||
stranger on RISC-V.
|
||||
|
||||
The value of `sys.prefix` changes when using a virtualenv. Dependencies
|
||||
may be installed here, so it does make sense to continue supporting this
|
||||
case, even if it is incompatible with cross-compiling. Unlike regular
|
||||
environments, "lib" is generally used for libraries, although a lib64
|
||||
symlink may also be present.
|
||||
---
|
||||
setup.py | 13 +++++++++++--
|
||||
1 file changed, 11 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 1bf0bcff558..07163d001fc 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -15,6 +15,7 @@
|
||||
import struct
|
||||
import subprocess
|
||||
import sys
|
||||
+import sysconfig
|
||||
import warnings
|
||||
|
||||
from setuptools import Extension, setup
|
||||
@@ -504,8 +505,16 @@ def build_extensions(self):
|
||||
for d in os.environ[k].split(os.path.pathsep):
|
||||
_add_directory(library_dirs, d)
|
||||
|
||||
- _add_directory(library_dirs, os.path.join(sys.prefix, "lib"))
|
||||
- _add_directory(include_dirs, os.path.join(sys.prefix, "include"))
|
||||
+ _add_directory(
|
||||
+ library_dirs,
|
||||
+ (sys.prefix == sys.base_prefix and sysconfig.get_config_var("LIBDIR"))
|
||||
+ or os.path.join(sys.prefix, "lib"),
|
||||
+ )
|
||||
+ _add_directory(
|
||||
+ include_dirs,
|
||||
+ (sys.prefix == sys.base_prefix and sysconfig.get_config_var("INCLUDEDIR"))
|
||||
+ or os.path.join(sys.prefix, "include"),
|
||||
+ )
|
||||
|
||||
#
|
||||
# add platform directories
|
||||
|
|
@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}"
|
|||
|
||||
LICENSE="HPND"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
|
||||
IUSE="examples imagequant +jpeg jpeg2k lcms raqm test tiff tk truetype webp xcb zlib"
|
||||
REQUIRED_USE="test? ( jpeg jpeg2k lcms tiff truetype )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
|
@ -72,6 +72,11 @@ EPYTEST_DESELECT=(
|
|||
Tests/test_qt_image_qapplication.py::test_sanity
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
# https://github.com/python-pillow/pillow/pull/7634
|
||||
"${FILESDIR}/${P}-cross.patch"
|
||||
)
|
||||
|
||||
usepil() {
|
||||
usex "${1}" enable disable
|
||||
}
|
||||
|
|
@ -95,14 +100,6 @@ python_configure_all() {
|
|||
$(usepil zlib)_zlib = True
|
||||
EOF
|
||||
|
||||
# setup.py won't let us add the right toolchain paths but it does
|
||||
# accept additional ones from INCLUDE and LIB so set these. You
|
||||
# wouldn't normally need these at all as the toolchain should look
|
||||
# here anyway but it doesn't for this setup.py.
|
||||
export \
|
||||
INCLUDE="${ESYSROOT}"/usr/include \
|
||||
LIB="${ESYSROOT}"/usr/$(get_libdir)
|
||||
|
||||
# We have patched in this env var.
|
||||
tc-export PKG_CONFIG
|
||||
}
|
||||
Loading…
Reference in a new issue