From 69999c51bd5cc3e1b7a38e523ea282388c59186c Mon Sep 17 00:00:00 2001 From: Andreas Billmeier Date: Wed, 19 Feb 2025 10:41:32 +0100 Subject: [PATCH] dev-python/pillow: re-add 10.4.0 from main repo archive Closes: https://git.edevau.net/onkelbeh/HomeAssistantRepository/issues/4133 Signed-off-by: Andreas Billmeier --- README.md | 4 +- dev-python/pillow/Manifest | 5 +- .../pillow/files/pillow-10.2.0-cross.patch | 62 ++++++++ dev-python/pillow/pillow-10.4.0.ebuild | 137 ++++++++++++++++++ dev-python/pillow/pillow-9.3.0-r1.ebuild | 2 +- 5 files changed, 206 insertions(+), 4 deletions(-) create mode 100644 dev-python/pillow/files/pillow-10.2.0-cross.patch create mode 100644 dev-python/pillow/pillow-10.4.0.ebuild diff --git a/README.md b/README.md index f220332c2..510d326de 100644 --- a/README.md +++ b/README.md @@ -606,7 +606,7 @@ A daily compile test is run at Github with Python 3.9 to catch general faults. E ## Licenses This repository itself is released under GPL-3 (like most Gentoo repositories), all work on the depending components under the licenses they came from. Perhaps you came here because I filed an issue at your component about a bad or missing license. It is easy to [assign a license](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). During cleanups and license investigations I have been asked often which license to choose. I am not a lawyer, but I can offer the following table, counted over this repository, perhaps this helps your decision. If a package has more than one license listed, all of them are counted. -There are 2342 Ebuilds in total, 2328 of them have in total 2368 (43 different) licenses assigned. +There are 2343 Ebuilds in total, 2329 of them have in total 2369 (43 different) licenses assigned. |License| Ebuilds using it| |-------|-----| @@ -638,6 +638,7 @@ There are 2342 Ebuilds in total, 2328 of them have in total 2368 (43 different) |LGPL-2+|2| |public-domain|2| |ElementTree|2| +|HPND|2| |BSD-4|2| |LGPL-2|2| |BitstreamVera|1| @@ -647,7 +648,6 @@ There are 2342 Ebuilds in total, 2328 of them have in total 2368 (43 different) |Boost-1.0|1| |PSF-2.4|1| |NEWLIB|1| -|HPND|1| |CC-BY-NC-SA-3.0|1| |MPL-1.1|1| |CC-BY-NC-SA-4.0|1| diff --git a/dev-python/pillow/Manifest b/dev-python/pillow/Manifest index 86c38e97a..8435fb5bf 100644 --- a/dev-python/pillow/Manifest +++ b/dev-python/pillow/Manifest @@ -1,3 +1,6 @@ +AUX pillow-10.2.0-cross.patch 2390 BLAKE2B d690b3f93d59c32d0f1b209b51ea4787230892488059ec206f548276a1f697394ca539fcd9f92fa7c547b37dd6b4fc738400a3034f54eec6260f0f98ae372b39 SHA512 4afaec6964298e2f1c21fea77791ce0cdacdbc65bf9798d46e99681c772065c1ad1175f5821162157cacac64f556e320af2ca7dcbd0806c07d04f8116f8f508c +DIST pillow-10.4.0.gh.tar.gz 46617167 BLAKE2B 3eb7852ab087d18e5b9a03d6cbf83ead96b637a71d4209a4574d66c9d098936d240c0be3235d9e951ec094b9b0def196b265a8e68f59802f843171c74ca7bbac SHA512 835a8766c384ec3fcf67b42c9bbad35dad0848cc5bd9eba1b0768a864e174a1d9c4a5e989f22496a40f2c29dd7f492f6f80465903fe872b10749cfa0340e1bc5 DIST pillow-9.3.0.gh.tar.gz 50370806 BLAKE2B d0d4775c8b60e40560328e4f1c14055743d1a826b0ab01353075f1f48a461bcd8bf5883f18713976399f9b0f688125f3a883ea5818a359db9e540aac8895f02a SHA512 60c529d8a222a521a0c3f4254917aa3f6c5a47c7cb8930b4b9a05ef442d1a7e776018dc4ac834a9effc1342f8457898cae79820531ff430728f6c39d6297b2d7 -EBUILD pillow-9.3.0-r1.ebuild 3133 BLAKE2B 808b7d1350d50f5512c7e38b9c16cb4189bd08bf64cc12da630f3a7f70da7f5f5350d069b0a5e40e444ccf59a2575e970dcf230b07f77fb7f2331aa731550319 SHA512 33838d31c0123bf7e45246bbaebd065d74558f06e193fc426ebbe6f1a48dbd157209facc95cd51b9a601771bead3dbe990509d8ef9c2e3dd7ebe94ad885b0c27 +EBUILD pillow-10.4.0.ebuild 3260 BLAKE2B cffd5f498b1842ed0a387e23283dd5230a1a42e8f9fe79f791837d286b172f0604ec67a2d5b0cd7e343163b302d9ee4c71f1f1197b46ddfd806625e275785af3 SHA512 6b2e6c55e73a478306ee0047c627fac0a4bf022fa109551304ab95ff15386a924965e552c9003b5abc4654c30c5ec3709193e2ce3b8eddc7d0e6a93c67d58971 +EBUILD pillow-9.3.0-r1.ebuild 3133 BLAKE2B 2ffb1f928439f1ccf987aa6fb136efd8e829c539d1e64006490fbbe8a4574278efd5ff5cee7cc7cf4d5de3164ece8ddcd543461a1902bd4ce423648074158930 SHA512 8154590708f0f629f482971b852de23dcee13f9440ba49ea8d77a37fb05b3862fe87a6e9e40afc59cbdb8eb36eabe4a7f33779474d826ed84577c2361d2d086d MISC metadata.xml 631 BLAKE2B cda3df63a3bacffde043eef6ba61724901c162a16c78c91aed77d86a8b945b1e433f861d7598d3090bb3a99ac6b7b84d6625f310d6aff7430edb38af8d64f269 SHA512 186c23985165836f73248a6f610e61af6d8998d1df597ffc91e2b23dff5215e2d100b85232b9dd388dfd6055f93fc03d295f23863ba2f3037537b31f6258f98a diff --git a/dev-python/pillow/files/pillow-10.2.0-cross.patch b/dev-python/pillow/files/pillow-10.2.0-cross.patch new file mode 100644 index 000000000..864a9b121 --- /dev/null +++ b/dev-python/pillow/files/pillow-10.2.0-cross.patch @@ -0,0 +1,62 @@ +From 774d7a570d9f76903de3c3267512b8a7d252c21e Mon Sep 17 00:00:00 2001 +From: James Le Cuirot +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 diff --git a/dev-python/pillow/pillow-10.4.0.ebuild b/dev-python/pillow/pillow-10.4.0.ebuild new file mode 100644 index 000000000..ca0bc7579 --- /dev/null +++ b/dev-python/pillow/pillow-10.4.0.ebuild @@ -0,0 +1,137 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +# setuptools wrapper +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE='tk?,threads(+)' + +inherit distutils-r1 toolchain-funcs virtualx + +MY_PN=Pillow +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Python Imaging Library (fork)" +HOMEPAGE=" + https://python-pillow.org/ + https://github.com/python-pillow/Pillow/ + https://pypi.org/project/pillow/ +" +SRC_URI=" + https://github.com/python-pillow/Pillow/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="amd64 arm arm64 x86" +IUSE="examples imagequant +jpeg jpeg2k lcms test tiff tk truetype webp xcb zlib" +REQUIRED_USE="test? ( jpeg jpeg2k lcms tiff truetype )" +RESTRICT="!test? ( test )" + +DEPEND=" + imagequant? ( media-gfx/libimagequant:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + lcms? ( media-libs/lcms:2= ) + tiff? ( media-libs/tiff:=[jpeg,zlib] ) + truetype? ( media-libs/freetype:2= ) + webp? ( media-libs/libwebp:= ) + xcb? ( x11-libs/libxcb ) + zlib? ( sys-libs/zlib:= ) +" +RDEPEND=" + ${DEPEND} + dev-python/olefile[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + virtual/pkgconfig + test? ( + dev-python/defusedxml[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[png] + ) + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/python-pillow/pillow/pull/7634 + "${FILESDIR}/${PN}-10.2.0-cross.patch" +) + +usepil() { + usex "${1}" enable disable +} + +python_configure_all() { + cat >> setup.cfg <<-EOF || die + [build_ext] + debug = True + disable_platform_guessing = True + $(usepil truetype)_freetype = True + $(usepil jpeg)_jpeg = True + $(usepil jpeg2k)_jpeg2000 = True + $(usepil lcms)_lcms = True + $(usepil tiff)_tiff = True + $(usepil imagequant)_imagequant = True + $(usepil webp)_webp = True + $(usepil webp)_webpmux = True + $(usepil xcb)_xcb = True + $(usepil zlib)_zlib = True + EOF + if use truetype; then + # these dependencies are implicitly disabled by USE=-truetype + # and we can't pass both disable_* and vendor_* + # https://bugs.gentoo.org/935124 + cat >> setup.cfg <<-EOF || die + vendor_raqm = False + vendor_fribidi = False + EOF + fi + + tc-export PKG_CONFIG +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO (is clipboard unreliable in Xvfb?) + Tests/test_imagegrab.py::TestImageGrab::test_grabclipboard + # requires xz-utils[extra-filters]? + Tests/test_file_libtiff.py::TestFileLibTiff::test_lzma + ) + + "${EPYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}" + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + # leak tests are fragile and broken under xdist + epytest -k "not leak" -p timeout || die "Tests failed with ${EPYTHON}" +} + +python_install() { + python_doheader src/libImaging/*.h + distutils-r1_python_install +} + +python_install_all() { + if use examples ; then + docinto example + dodoc docs/example/* + docompress -x /usr/share/doc/${PF}/example + fi + distutils-r1_python_install_all +} diff --git a/dev-python/pillow/pillow-9.3.0-r1.ebuild b/dev-python/pillow/pillow-9.3.0-r1.ebuild index 030ec8780..5614306eb 100644 --- a/dev-python/pillow/pillow-9.3.0-r1.ebuild +++ b/dev-python/pillow/pillow-9.3.0-r1.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{11..13} ) PYTHON_REQ_USE='tk?,threads(+)' inherit distutils-r1 toolchain-funcs virtualx