From 9d0cf2321c0fb1741b525301af12e8cbea06ff55 Mon Sep 17 00:00:00 2001 From: tigro Date: Wed, 20 Sep 2023 11:17:24 +0300 Subject: [PATCH] import python-pillow-9.5.0-2.el9 --- .gitignore | 2 +- .python-pillow.metadata | 2 +- SOURCES/pillow_mingw.patch | 78 +++++ SPECS/python-pillow.spec | 608 +++++++++++++++++++++++-------------- 4 files changed, 462 insertions(+), 228 deletions(-) create mode 100644 SOURCES/pillow_mingw.patch diff --git a/.gitignore b/.gitignore index acca1fe..04954d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/Pillow-5.1.1.tar.gz +SOURCES/Pillow-9.5.0.tar.gz diff --git a/.python-pillow.metadata b/.python-pillow.metadata index 34d63e5..b5833bc 100644 --- a/.python-pillow.metadata +++ b/.python-pillow.metadata @@ -1 +1 @@ -2120f1bbf8d39cb0f1a5a50fb79b993e8b75851c SOURCES/Pillow-5.1.1.tar.gz +2eecd1b48ae358de352e1116b9ae3bbb53be3869 SOURCES/Pillow-9.5.0.tar.gz diff --git a/SOURCES/pillow_mingw.patch b/SOURCES/pillow_mingw.patch new file mode 100644 index 0000000..e126913 --- /dev/null +++ b/SOURCES/pillow_mingw.patch @@ -0,0 +1,78 @@ +diff -rupN --no-dereference Pillow-9.5.0/setup.py Pillow-9.5.0-new/setup.py +--- Pillow-9.5.0/setup.py 2023-04-01 09:49:41.000000000 +0200 ++++ Pillow-9.5.0-new/setup.py 2023-04-03 09:25:21.948393861 +0200 +@@ -135,7 +135,7 @@ class RequiredDependencyException(Except + pass + + +-PLATFORM_MINGW = os.name == "nt" and "GCC" in sys.version ++PLATFORM_MINGW = "mingw32" in os.getenv("CC", "") + PLATFORM_PYPY = hasattr(sys, "pypy_version_info") + + +@@ -504,7 +504,7 @@ class pil_build_ext(build_ext): + # + # add platform directories + +- if self.disable_platform_guessing: ++ if self.disable_platform_guessing or PLATFORM_MINGW: + pass + + elif sys.platform == "cygwin": +@@ -594,7 +594,7 @@ class pil_build_ext(build_ext): + # FIXME: check /opt/stuff directories here? + + # standard locations +- if not self.disable_platform_guessing: ++ if not self.disable_platform_guessing and not PLATFORM_MINGW: + _add_directory(library_dirs, "/usr/local/lib") + _add_directory(include_dirs, "/usr/local/include") + +@@ -840,7 +840,7 @@ class pil_build_ext(build_ext): + if feature.xcb: + libs.append(feature.xcb) + defs.append(("HAVE_XCB", None)) +- if sys.platform == "win32": ++ if sys.platform == "win32" or PLATFORM_MINGW: + libs.extend(["kernel32", "user32", "gdi32"]) + if struct.unpack("h", b"\0\1")[0] == 1: + defs.append(("WORDS_BIGENDIAN", None)) +@@ -862,6 +862,8 @@ class pil_build_ext(build_ext): + if feature.freetype: + srcs = [] + libs = ["freetype"] ++ if sys.platform == "win32" or PLATFORM_MINGW: ++ libs.extend(["dl"]) + defs = [] + if feature.raqm: + if not feature.want_vendor("raqm"): # using system Raqm +@@ -884,7 +886,7 @@ class pil_build_ext(build_ext): + + if feature.lcms: + extra = [] +- if sys.platform == "win32": ++ if sys.platform == "win32" or PLATFORM_MINGW: + extra.extend(["user32", "gdi32"]) + self._update_extension("PIL._imagingcms", [feature.lcms] + extra) + else: +@@ -903,7 +905,7 @@ class pil_build_ext(build_ext): + else: + self._remove_extension("PIL._webp") + +- tk_libs = ["psapi"] if sys.platform in ("win32", "cygwin") else [] ++ tk_libs = ["psapi"] if sys.platform in ("win32", "cygwin") or PLATFORM_MINGW else [] + self._update_extension("PIL._imagingtk", tk_libs) + + build_ext.build_extensions(self) +diff -rupN --no-dereference Pillow-9.5.0/src/libImaging/ImPlatform.h Pillow-9.5.0-new/src/libImaging/ImPlatform.h +--- Pillow-9.5.0/src/libImaging/ImPlatform.h 2023-04-01 09:49:41.000000000 +0200 ++++ Pillow-9.5.0-new/src/libImaging/ImPlatform.h 2023-04-03 09:25:21.949393602 +0200 +@@ -28,7 +28,7 @@ + #if defined(_WIN32) || defined(__CYGWIN__) + + #define WIN32_LEAN_AND_MEAN +-#include ++#include + + #ifdef __CYGWIN__ + #undef _WIN64 diff --git a/SPECS/python-pillow.spec b/SPECS/python-pillow.spec index 0aef0d1..3664288 100644 --- a/SPECS/python-pillow.spec +++ b/SPECS/python-pillow.spec @@ -1,139 +1,89 @@ -%global py3_incdir %(python3 -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())') -%global py3_libbuilddir %(python3 -c 'import sys; import sysconfig; print("lib.{p}-{v[0]}.{v[1]}".format(p=sysconfig.get_platform(), v=sys.version_info))') +%global py3_incdir %(RPM_BUILD_ROOT= %{python3} -Ic 'import sysconfig; print(sysconfig.get_path("include"))') %global srcname pillow -# bootstrap building docs (pillow is required by docutils, docutils are -# required by sphinx; pillow build-requires sphinx) -%global with_docs 1 + +# Dependencies are missing to build the documentation +%bcond_with doc + +%if 0%{?rhel} +%bcond_with mingw +%else +%bcond_without mingw +%endif Name: python-%{srcname} -Version: 5.1.1 -Release: 18%{?dist} +Version: 9.5.0 +Release: 2%{?dist} Summary: Python image processing library # License: see http://www.pythonware.com/products/pil/license.htm License: MIT URL: http://python-pillow.github.io/ Source0: https://github.com/python-pillow/Pillow/archive/%{version}/Pillow-%{version}.tar.gz -Patch0: 0001-Fix-potential-un-terminated-buffer-problem-CWE-120.patch -Patch1: 0002-Fix-potential-leaked-storage-issues-CWE-772.patch -Patch2: 0003-Fix-dereferencing-type-punned-pointer.patch -# Combined fixes for CVE-2020-5312 improperly restricted operations on memory buffer in libImaging/PcxDecode.c -# https://bugzilla.redhat.com/show_bug.cgi?id=1789533 -# https://github.com/python-pillow/Pillow/commit/93b22b846e0269ee9594ff71a72bec02d2bea8fd -# and for CVE-2019-16865 reading specially crafted image files leads to allocation of large amounts of memory and denial of service -# https://bugzilla.redhat.com/show_bug.cgi?id=1774066 -# https://github.com/python-pillow/Pillow/commit/cc16025e234b7a7a4dd3a86d2fdc0980698db9cc -# https://github.com/python-pillow/Pillow/commit/b36c1bc943d554ba223086c7efb502d080f73905 -# https://github.com/python-pillow/Pillow/commit/f228d0ccbf6bf9392d7fcd51356ef2cfda80c75a -# https://github.com/python-pillow/Pillow/commit/b9693a51c99c260bd66d1affeeab4a226cf7e5a5 -Patch3: CVE-2020-5312_CVE-2019-16865.patch -# Fix for CVE-2020-5311 - out-of-bounds write in expandrow in libImaging/SgiRleDecode.c -# https://bugzilla.redhat.com/show_bug.cgi?id=1789535 -# https://github.com/python-pillow/Pillow/commit/a79b65c47c7dc6fe623aadf09aa6192fc54548f3 -Patch4: CVE-2020-5311.patch -# CVE-2020-5313 out-of-bounds read in ImagingFliDecode when loading FLI images -# Upstream fix: https://github.com/python-pillow/Pillow/commit/a09acd0decd8a87ccce939d5ff65dab59e7d365b?patch -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1789532 -Patch5: CVE-2020-5313.patch -# CVE-2020-11538 out-of-bounds reads/writes in the parsing of SGI image files in expandrow/expandrow2 -# Upstream fix: https://github.com/python-pillow/Pillow/pull/4504/ -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1852814 -Patch6: CVE-2020-11538.patch -# CVE-2020-35653 decoding a crafted PCX file could result in buffer over-read -# Note that there is a wrong CVE number in the commit msg -# Upstream fix: https://github.com/python-pillow/Pillow/commit/2f409261eb1228e166868f8f0b5da5cda52e55bf -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1915432 -Patch7: CVE-2020-35653.patch -# CVE-2020-35655 decoding crafted SGI RLE image files could result in buffer over-read -# Upstream fix: https://github.com/python-pillow/Pillow/commit/120eea2e4547a7d1826afdf01563035844f0b7d5 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2020-35653 -Patch8: CVE-2020-35655.patch -# CVE-2021-25290 negative-offset memcpy with an invalid size in TiffDecode.c -# Upstream fix: https://github.com/python-pillow/Pillow/commit/86f02f7c70862a0954bfe8133736d352db978eaa -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1934685 -Patch9: CVE-2021-25290.patch -# CVE-2021-25292 backtracking regex in PDF parser could be used as a DOS attack -# Upstream fix: https://github.com/python-pillow/Pillow/commit/3bce145966374dd39ce58a6fc0083f8d1890719c -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-25292 -Patch10: CVE-2021-25292.patch -# CVE-2021-25293 out-of-bounds read in SGIRleDecode.c -# Upstream fix: https://github.com/python-pillow/Pillow/commit/4853e522bddbec66022c0915b9a56255d0188bf9 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-25293 -Patch11: CVE-2021-25293.patch -# CVE-2021-27921 reported size of a contained image is not properly checked for a BLP container -# CVE-2021-27922 reported size of a contained image is not properly checked for an ICNS container -# CVE-2021-27923 reported size of a contained image is not properly checked for an ICO container -# Upstream fix: https://github.com/python-pillow/Pillow/commit/480f6819b592d7f07b9a9a52a7656c10bbe07442 -# Tracking bugs: -# - https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-27921 -# - https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-27922 -# - https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-27923 -Patch12: CVE-2021-27921_27922_27923.patch -# CVE-2021-25288 and 25287 out-of-bounds read in J2kDecode in j2ku_gray_i and j2ku_graya_la -# Upstream fixes this patch combines: -# - Original fix for the CVEs: https://github.com/python-pillow/Pillow/commit/3bf5eddb89afdf690eceaa52bc4d3546ba9a5f87 -# - Older commit the fix is based on: https://github.com/python-pillow/Pillow/commit/cf6da6b79080a8c16984102fdc85f7ce28dca613 -# Tracking bugs: -# - https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-25287 -# - https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-25288 -Patch13: CVE-2021-25287_25288.patch -# CVE-2021-28675 DoS in PsdImagePlugin -# Upstream fix: https://github.com/python-pillow/Pillow/commit/22e9bee4ef225c0edbb9323f94c26cee0c623497 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-28675 -Patch14: CVE-2021-28675.patch -# CVE-2021-28676 infinite loop in FliDecode.c can lead to DoS -# Upstream fix: https://github.com/python-pillow/Pillow/commit/bb6c11fb889e6c11b0ee122b828132ee763b5856 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-28676 -Patch15: CVE-2021-28676.patch -# CVE-2021-28677 DoS in the open phase via a malicious EPS file -# Upstream fix: https://github.com/python-pillow/Pillow/commit/5a5e6db0abf4e7a638fb1b3408c4e495a096cb92 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-28677 -Patch16: CVE-2021-28677.patch -# CVE-2021-28678 improper check in BlpImagePlugin can lead to DoS -# Upstream fix: https://github.com/python-pillow/Pillow/commit/496245aa4365d0827390bd0b6fbd11287453b3a1 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2021-28678 -Patch17: CVE-2021-28678.patch -# CVE-2021-34552: buffer overflow in Convert.c because it allow an attacker to pass -# controlled parameters directly into a convert function -# Upstream fix: https://github.com/python-pillow/Pillow/pull/5567 -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=1982378 -Patch18: CVE-2021-34552.patch -# CVE-2022-22817: PIL.ImageMath.eval allows evaluation of arbitrary expressions -# Upstream fixes: -# https://github.com/python-pillow/Pillow/commit/8531b01d6cdf0b70f256f93092caa2a5d91afc11 -# https://github.com/python-pillow/Pillow/commit/f84ab3bb8a0a196a52e8a76bebed2853362629de -# Tracking bug: https://bugzilla.redhat.com/show_bug.cgi?id=2042527 -Patch19: CVE-2022-22817.patch -# CVE-2022-22815 python-pillow: improperly initializes ImagePath.Path in path_getbbox() in path.c -# CVE-2022-22816 python-pillow: buffer over-read during initialization of ImagePath.Path in path_getbbox() in path.c -# Upstream fix: https://github.com/python-pillow/Pillow/commit/5543e4e2d409cd9e409bc64cdc77be0af007a31f -# Memory issue fix: https://github.com/python-pillow/Pillow/pull/5958 -# Tracking bugs: -# https://bugzilla.redhat.com/show_bug.cgi?id=2042511 -# https://bugzilla.redhat.com/show_bug.cgi?id=2042522 -Patch20: CVE-2022-22815_CVE-2022-22816.patch + +# MinGW build fixes +Patch0: pillow_mingw.patch BuildRequires: freetype-devel BuildRequires: gcc BuildRequires: ghostscript BuildRequires: lcms2-devel +BuildRequires: libimagequant-devel BuildRequires: libjpeg-devel +BuildRequires: libraqm-devel BuildRequires: libtiff-devel BuildRequires: libwebp-devel BuildRequires: openjpeg2-devel BuildRequires: tk-devel BuildRequires: zlib-devel -BuildRequires: python3-cffi -BuildRequires: python3-devel -BuildRequires: python3-numpy -BuildRequires: python3-setuptools -%if 0%{?with_docs} -BuildRequires: python3-sphinx -BuildRequires: python3-sphinx_rtd_theme -%endif # with_docs -BuildRequires: python3-tkinter +BuildRequires: python%{python3_pkgversion}-cffi +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-numpy +BuildRequires: python%{python3_pkgversion}-olefile +BuildRequires: python%{python3_pkgversion}-pytest +BuildRequires: python%{python3_pkgversion}-qt5 +BuildRequires: python%{python3_pkgversion}-setuptools +%if %{with doc} +BuildRequires: make +BuildRequires: python%{python3_pkgversion}-sphinx +BuildRequires: python%{python3_pkgversion}-sphinx-copybutton +BuildRequires: python%{python3_pkgversion}-sphinx_rtd_theme +BuildRequires: python%{python3_pkgversion}-sphinx-removed-in +%endif +BuildRequires: python%{python3_pkgversion}-tkinter + +%if %{with mingw} +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw32-gcc +BuildRequires: mingw32-python3 +BuildRequires: mingw32-python3-setuptools +BuildRequires: mingw32-dlfcn +BuildRequires: mingw32-freetype +BuildRequires: mingw32-lcms2 +BuildRequires: mingw32-libimagequant +BuildRequires: mingw32-libjpeg +BuildRequires: mingw32-libtiff +BuildRequires: mingw32-libwebp +BuildRequires: mingw32-openjpeg2 +BuildRequires: mingw32-tk +BuildRequires: mingw32-zlib + +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc +BuildRequires: mingw64-python3 +BuildRequires: mingw64-python3-setuptools +BuildRequires: mingw64-dlfcn +BuildRequires: mingw64-freetype +BuildRequires: mingw64-lcms2 +BuildRequires: mingw64-libimagequant +BuildRequires: mingw64-libjpeg +BuildRequires: mingw64-libtiff +BuildRequires: mingw64-libwebp +BuildRequires: mingw64-openjpeg2 +BuildRequires: mingw64-tk +BuildRequires: mingw64-zlib +%endif # For EpsImagePlugin.py Requires: ghostscript @@ -146,57 +96,90 @@ Python image processing library, fork of the Python Imaging Library (PIL) This library provides extensive file format support, an efficient internal representation, and powerful image processing capabilities. -There are these subpackages: tk (tk interface), +There are four subpackages: tk (tk interface), qt (PIL image wrapper for Qt), devel (development) and doc (documentation). -%package -n python3-%{srcname} +%package -n python%{python3_pkgversion}-%{srcname} Summary: Python 3 image processing library -%{?python_provide:%python_provide python3-%{srcname}} -Provides: python3-imaging = %{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}} +Provides: python%{python3_pkgversion}-imaging = %{version}-%{release} # For MicImagePlugin.py, FpxImagePlugin.py +Requires: python%{python3_pkgversion}-olefile -%description -n python3-%{srcname} +%description -n python%{python3_pkgversion}-%{srcname} Python image processing library, fork of the Python Imaging Library (PIL) This library provides extensive file format support, an efficient internal representation, and powerful image processing capabilities. -There are these subpackages: tk (tk interface), +There are four subpackages: tk (tk interface), qt (PIL image wrapper for Qt), devel (development) and doc (documentation). -%package -n python3-%{srcname}-devel +%package -n python%{python3_pkgversion}-%{srcname}-devel Summary: Development files for %{srcname} -Requires: python3-devel, libjpeg-devel, zlib-devel -Requires: python3-%{srcname}%{?_isa} = %{version}-%{release} -%{?python_provide:%python_provide python3-%{srcname}-devel} -Provides: python3-imaging-devel = %{version}-%{release} +Requires: python%{python3_pkgversion}-devel, libjpeg-devel, zlib-devel +Requires: python%{python3_pkgversion}-%{srcname}%{?_isa} = %{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}-devel} +Provides: python%{python3_pkgversion}-imaging-devel = %{version}-%{release} -%description -n python3-%{srcname}-devel +%description -n python%{python3_pkgversion}-%{srcname}-devel Development files for %{srcname}. -%package -n python3-%{srcname}-doc +%package -n python%{python3_pkgversion}-%{srcname}-doc Summary: Documentation for %{srcname} BuildArch: noarch -Requires: python3-%{srcname} = %{version}-%{release} -%{?python_provide:%python_provide python3-%{srcname}-doc} -Provides: python3-imaging-doc = %{version}-%{release} +Requires: python%{python3_pkgversion}-%{srcname} = %{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}-doc} +Provides: python%{python3_pkgversion}-imaging-doc = %{version}-%{release} -%description -n python3-%{srcname}-doc +%description -n python%{python3_pkgversion}-%{srcname}-doc Documentation for %{srcname}. -%package -n python3-%{srcname}-tk +%package -n python%{python3_pkgversion}-%{srcname}-tk Summary: Tk interface for %{srcname} -Requires: python3-tkinter -Requires: python3-%{srcname}%{?_isa} = %{version}-%{release} -%{?python_provide:%python_provide python3-%{srcname}-tk} -Provides: python3-imaging-tk = %{version}-%{release} +Requires: python%{python3_pkgversion}-tkinter +Requires: python%{python3_pkgversion}-%{srcname}%{?_isa} = %{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}-tk} +Provides: python%{python3_pkgversion}-imaging-tk = %{version}-%{release} + +%description -n python%{python3_pkgversion}-%{srcname}-tk +Tk interface for %{srcname}. + + +%package -n python%{python3_pkgversion}-%{srcname}-qt +Summary: Qt %{srcname} image wrapper +Requires: python%{python3_pkgversion}-qt5 +Requires: python%{python3_pkgversion}-%{srcname}%{?_isa} = %{version}-%{release} +%{?python_provide:%python_provide python%{python3_pkgversion}-%{srcname}-qt} +Provides: python%{python3_pkgversion}-imaging-qt = %{version}-%{release} + +%description -n python%{python3_pkgversion}-%{srcname}-qt +Qt %{srcname} image wrapper. + + +%if %{with mingw} +%package -n mingw32-python3-%{srcname} +Summary: MinGW Windows Python2 %{srcname} library +BuildArch: noarch + +%description -n mingw32-python3-%{srcname} +MinGW Windows Python2 %{srcname} library. + -%description -n python3-%{srcname}-tk -Tk interface for %{name}. +%package -n mingw64-python3-%{srcname} +Summary: MinGW Windows Python2 %{srcname} library +BuildArch: noarch + +%description -n mingw64-python3-%{srcname} +MinGW Windows Python2 %{srcname} library. + + +%{?mingw_debug_package} +%endif %prep @@ -204,33 +187,70 @@ Tk interface for %{name}. %build +# Native build %py3_build -%if 0%{?with_docs} -PYTHONPATH=$PWD/build/%py3_libbuilddir make -C docs html BUILDDIR=_build_py3 SPHINXBUILD=sphinx-build-%python3_version +# MinGW build +%if %{with mingw} +PKG_CONFIG=mingw32-pkg-config %{mingw32_py3_build} +PKG_CONFIG=mingw64-pkg-config %{mingw64_py3_build} +%endif + +# Doc build +%if %{with doc} +PYTHONPATH=$(echo $PWD/build/lib.linux-*) make -C docs html BUILDDIR=_build_py3 SPHINXBUILD=sphinx-build-%python3_version rm -f docs/_build_py3/html/.buildinfo -%endif # with_docs +%endif %install +# Native build install -d %{buildroot}/%{py3_incdir}/Imaging install -m 644 src/libImaging/*.h %{buildroot}/%{py3_incdir}/Imaging %py3_install +# MinGW build +%if %{with mingw} +install -d %{buildroot}/%{mingw32_py3_incdir}/Imaging +install -m 644 src/libImaging/*.h %{buildroot}/%{mingw32_py3_incdir}/Imaging + +install -d %{buildroot}/%{mingw64_py3_incdir}/Imaging +install -m 644 src/libImaging/*.h %{buildroot}/%{mingw64_py3_incdir}/Imaging + +%{mingw32_py3_install} +%{mingw64_py3_install} + +# Remove sample scripts +rm -rf %{buildroot}%{mingw32_bindir} +rm -rf %{buildroot}%{mingw64_bindir} +%endif + + +%if %{with mingw} +%mingw_debug_install_post +%endif + %check -ln -s $PWD/Images $PWD/build/%py3_libbuilddir/Images -cp -R $PWD/Tests $PWD/build/%py3_libbuilddir/Tests -cp -R $PWD/selftest.py $PWD/build/%py3_libbuilddir/selftest.py -pushd build/%py3_libbuilddir +# Check Python 3 modules +ln -s $PWD/Images $(echo $PWD/build/lib.linux-*)/Images +cp -R $PWD/Tests $(echo $PWD/build/lib.linux-*)/Tests +cp -a $PWD/selftest.py $(echo $PWD/build/lib.linux-*)/selftest.py +pushd build/lib.linux-* PYTHONPATH=$PWD %{__python3} selftest.py popd +%ifnarch s390x +%pytest -v -k "not test_qt_image_qapplication" || : +%else +%pytest -v -k "not test_qt_image_qapplication" || : +%endif -%files -n python3-%{srcname} -%doc README.rst CHANGES.rst +%files -n python%{python3_pkgversion}-%{srcname} +%doc README.md CHANGES.rst %license docs/COPYING -%{python3_sitearch}/* +%{python3_sitearch}/PIL/ +%{python3_sitearch}/Pillow-%{version}-py%{python3_version}.egg-info # These are in subpackages %exclude %{python3_sitearch}/PIL/_imagingtk* %exclude %{python3_sitearch}/PIL/ImageTk* @@ -240,96 +260,232 @@ popd %exclude %{python3_sitearch}/PIL/__pycache__/SpiderImagePlugin* %exclude %{python3_sitearch}/PIL/__pycache__/ImageQt* -%files -n python3-%{srcname}-devel +%files -n python%{python3_pkgversion}-%{srcname}-devel %{py3_incdir}/Imaging/ -%files -n python3-%{srcname}-doc -%if 0%{?with_docs} +%if %{with doc} +%files -n python%{python3_pkgversion}-%{srcname}-doc %doc docs/_build_py3/html -%endif # with_docs +%endif -%files -n python3-%{srcname}-tk +%files -n python%{python3_pkgversion}-%{srcname}-tk %{python3_sitearch}/PIL/_imagingtk* %{python3_sitearch}/PIL/ImageTk* %{python3_sitearch}/PIL/SpiderImagePlugin* %{python3_sitearch}/PIL/__pycache__/ImageTk* %{python3_sitearch}/PIL/__pycache__/SpiderImagePlugin* +%files -n python%{python3_pkgversion}-%{srcname}-qt +%{python3_sitearch}/PIL/ImageQt* +%{python3_sitearch}/PIL/__pycache__/ImageQt* + +%if %{with mingw} +%files -n mingw32-python3-%{srcname} +%license docs/COPYING +%{mingw32_python3_sitearch}/PIL/ +%{mingw32_python3_sitearch}/Pillow-%{version}-py%{mingw32_python3_version}.egg-info/ +%{mingw32_py3_incdir}/Imaging/ + +%files -n mingw64-python3-%{srcname} +%license docs/COPYING +%{mingw64_python3_sitearch}/PIL/ +%{mingw64_python3_sitearch}/Pillow-%{version}-py%{mingw64_python3_version}.egg-info/ +%{mingw64_py3_incdir}/Imaging/ +%endif + %changelog -* Fri Feb 11 2022 Charalampos Stratakis - 5.1.1-18 -- Fixup for CVE-2022-22817 -- Security fixes for CVE-2022-22815, CVE-2022-22816 -Resolves: rhbz#2042511, rhbz#2042522 - -* Fri Feb 04 2022 Charalampos Stratakis - 5.1.1-17 -- Fix for CVE-2022-22817 -Resolves: rhbz#2042527 - -* Mon Aug 02 2021 Charalampos Stratakis - 5.1.1-16 -- Fix for CVE-2021-34552 -Resolves: rhbz#1982378 - -* Mon Jun 14 2021 Lumír Balhar - 5.1.1-15 -- Fixes for CVE-2021-25288, CVE-2021-25287, CVE-2021-28675, CVE-2021-28676, -CVE-2021-28677 and CVE-2021-28678 -Resolves: rhbz#1958231, rhbz#1958226, rhbz#1958240, rhbz#1958252, rhbz#1958257, rhbz#1958263 - -* Fri Apr 09 2021 Lumír Balhar - 5.1.1-14 -- Fixes for CVE-2021-25290, CVE-2021-25292, CVE-2021-25293, CVE-2021-27921 -CVE-2021-27922, and CVE-2021-27923 -Resolves: rhbz#1934685 rhbz#1934699 rhbz#1934705 rhbz#1935384 rhbz#1935396 rhbz#1935401 - -* Thu Feb 18 2021 Lumír Balhar - 5.1.1-13 -- Fixes for CVE-2020-35653 and CVE-2020-35655 -Resolves: rhbz#1915420 rhbz#1915432 - -* Mon Jul 13 2020 Lumír Balhar - 5.1.1-12 -- Fix for CVE-2020-11538 -Resolves: rhbz#1852814 - -* Wed Mar 04 2020 Lumír Balhar - 5.1.1-11 -- Fix for CVE-2020-5313 -Resolves: rhbz#1789532 - -* Mon Feb 17 2020 Lumír Balhar - 5.1.1-10 -- Bump and rebuild for gating to deliver CVE fixes -Resolves: rhbz#1789535 - -* Mon Feb 17 2020 Lumír Balhar - 5.1.1-9 -- Fix for CVE-2020-5311 - out-of-bounds write in expandrow -Resolves: rhbz#1789535 - -* Fri Feb 14 2020 Lumír Balhar - 5.1.1-8 -- Combined fixes for CVE-2020-5312 and CVE-2019-16865 -Resolves: rhbz#1789533 -Resolves: rhbz#1774066 - -* Tue Nov 27 2018 Lumír Balhar - 5.1.1-7 -- Add upstream patch to solve build-time warning -- Move patches to dist-git -- Resolves: rhbz#1639348 - -* Mon Oct 15 2018 Lumír Balhar - 5.1.1-6 -- Add patches to fix issues found by static code analysis -- Resolves: rhbz#1602669 - -* Wed Jun 27 2018 Petr Viktorin - 5.1.1-5 -- Correct dependency on python3-tkinter - -* Tue Jun 19 2018 Petr Viktorin - 5.1.1-4 -- Drop dependency on python3-olefile (breaking MicImagePlugin.py, FpxImagePlugin) - -* Thu Jun 14 2018 Petr Viktorin - 5.1.1-3 -- Remove the Python 2 subpackage -- Remove the libimagequant dependency - The imagequant library was only used to support a non-default image - quantization mode. - -* Thu May 31 2018 Petr Viktorin - 5.1.1-2 -- Remove the python2 version of docs -- Remove Qt subpackages -- Drop dependency on python2-olefile (breaking MicImagePlugin.py, FpxImagePlugin) +* Wed Sep 20 2023 Arkady L. Shane - 9.5.0-2 +- Rebuilt for MSVSphere 9.2 + +* Fri Jun 16 2023 Python Maint - 9.5.0-2 +- Rebuilt for Python 3.12 + +* Mon Apr 03 2023 Sandro Mani - 9.5.0-1 +- Update to 9.5.0 + +* Sat Mar 04 2023 Sandro Mani - 9.4.0-3 +- Rebuild (libimagequant) + +* Fri Jan 20 2023 Fedora Release Engineering - 9.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Mon Jan 02 2023 Sandro Mani - 9.4.0-1 +- Update to 9.4.0 + +* Mon Oct 31 2022 Sandro Mani - 9.3.0-2 +- Rebuild (mingw-python-3.11) + +* Sun Oct 30 2022 Sandro Mani - 9.3.0-1 +- Update to 9.3.0 + +* Fri Jul 22 2022 Fedora Release Engineering - 9.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sun Jul 03 2022 Sandro Mani - 9.2.0-1 +- Update to 9.2.0 + +* Wed Jun 22 2022 Charalampos Stratakis - 9.1.1-4 +- Fix FTBFS with setuptools >= 62.1 +Resolves: rhbz#2097095 + +* Mon Jun 13 2022 Python Maint - 9.1.1-3 +- Rebuilt for Python 3.11 + +* Fri May 20 2022 Sandro Mani - 9.1.1-2 +- Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 + +* Fri May 20 2022 Sandro Mani - 9.1.1-1 +- Update to 9.1.1 + +* Tue Apr 05 2022 Sandro Mani - 9.1.0-1 +- Update to 9.1.0 + +* Fri Mar 25 2022 Sandro Mani - 9.0.1-7 +- Rebuild with mingw-gcc-12 + +* Thu Mar 03 2022 Sandro Mani - 9.0.1-6 +- Fix name -> srcname + +* Thu Feb 24 2022 Sandro Mani - 9.0.1-5 +- Make mingw subpackages noarch + +* Thu Feb 24 2022 Sandro Mani - 9.0.1-4 +- Add mingw subpackages + +* Thu Feb 03 2022 Sandro Mani - 9.0.1-1 +- Update to 9.0.1 + +* Fri Jan 21 2022 Fedora Release Engineering - 9.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Jan 03 2022 Sandro Mani - 9.0.0-1 +- Update to 9.0.0 + +* Fri Oct 15 2021 Sandro Mani - 8.4.0-1 +- Update to 8.4.0 + +* Fri Sep 03 2021 Sandro Mani - 8.3.2-1 +- Update to 8.3.2 + +* Fri Jul 23 2021 Fedora Release Engineering - 8.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jul 07 2021 Sandro Mani - 8.3.1-1 +- Update to 8.3.1 + +* Thu Jun 03 2021 Python Maint - 8.2.0-3 +- Rebuilt for Python 3.10 + +* Mon May 24 2021 Sandro Mani - 8.2.0-2 +- Run full test suite + +* Fri Apr 02 2021 Sandro Mani - 8.2.0-1 +- Update to 8.2.0 + +* Sat Mar 06 2021 Sandro Mani - 8.1.2-1 +- Update to 8.1.2 + +* Tue Mar 02 2021 Sandro Mani - 8.1.1-1 +- Update to 8.1.1 + +* Wed Jan 27 2021 Fedora Release Engineering - 8.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Jan 09 2021 Robert-André Mauchin - 8.1.0-2 +- Add patch to fix the import error occurring with Python 3.10 +- Fix: rhbz#1904379 + +* Sun Jan 03 2021 Sandro Mani - 8.1.0-1 +- Update to 8.1.0 + +* Fri Oct 23 2020 Sandro Mani - 8.0.1-1 +- Update to 8.0.1 + +* Thu Oct 15 2020 Sandro Mani - 8.0.0-1 +- Update to 8.0.0 + +* Wed Jul 29 2020 Fedora Release Engineering - 7.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 30 2020 Sandro Mani - 7.2.0-1 +- Update to 7.2.0 + +* Sat May 23 2020 Miro Hrončok - 7.1.2-2 +- Rebuilt for Python 3.9 + +* Sat Apr 25 2020 Sandro Mani - 7.1.2-1 +- Update to 7.1.2 + +* Tue Apr 21 2020 Charalampos Stratakis - 7.1.1-2 +- Fix html docs build failure with Sphinx3 (rhbz#1823884) + +* Thu Apr 02 2020 Sandro Mani - 7.1.1-1 +- Update to 7.1.1 + +* Thu Jan 30 2020 Fedora Release Engineering - 7.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 07 2020 Sandro Mani - 7.0.0-1 +- Update to 7.0.0 +- Drop python2 packages + +* Mon Oct 21 2019 Sandro Mani - 6.2.1-1 +- Update to 6.2.1 + +* Mon Oct 07 2019 Petr Viktorin - 6.2.0-2 +- Remove optional build dependency on python2-cffi + +* Tue Oct 01 2019 Sandro Mani - 6.2.0-1 +- Update to 6.2.0 + +* Fri Aug 16 2019 Miro Hrončok - 6.1.0-4 +- Rebuilt for Python 3.8 + +* Mon Aug 12 2019 Sandro Mani - 6.1.0-3 +- Drop python2-pillow-qt, python2-pillow-tk + +* Fri Jul 26 2019 Fedora Release Engineering - 6.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 01 2019 Sandro Mani - 6.1.0-1 +- Update to 6.1.0 + +* Fri May 31 2019 Elliott Sales de Andrade - 6.0.0-2 +- Fix broken Python/C interop on s390x + +* Tue Apr 02 2019 Sandro Mani - 6.0.0-1 +- Update to 6.0.0 + +* Sun Mar 10 2019 Sandro Mani - 5.4.1-4 +- Drop python2-pillow-doc + +* Mon Mar 04 2019 Yatin Karel - 5.4.1-3 +- Fix python3 conditional + +* Sat Feb 02 2019 Fedora Release Engineering - 5.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 07 2019 Sandro Mani - 5.4.1-1 +- Update to 5.4.1 + +* Mon Oct 01 2018 Sandro Mani - 5.3.0-1 +- Update to 5.3.0 + +* Sat Jul 14 2018 Fedora Release Engineering - 5.2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Mon Jul 02 2018 Miro Hrončok - 5.2.0-2 +- Rebuilt for Python 3.7 + +* Mon Jul 02 2018 Sandro Mani - 5.2.0-1 +- Update to 5.2.0 + +* Wed Jun 27 2018 Miro Hrončok - 5.1.1-3 +- Fix the tkinter dependency + +* Sat Jun 16 2018 Miro Hrončok - 5.1.1-2 +- Rebuilt for Python 3.7 * Wed Apr 25 2018 Sandro Mani - 5.1.1-1 - Update to 5.1.1