1 # NOTE: for version >= 7.0.0 without python 2 support see python3-pillow.spec
3 # NOTE: -qt supports PyQt5 > PySide2 > PyQt4 > PySide modules (in order of preference; PyQt4 and PySide are deprecated)
5 # bootstrap building docs (pillow is required by docutils, docutils are
6 # required by sphinx; pillow build-requires sphinx)
9 %bcond_with doc # Sphinx documentation (crashes - without DISPLAY?)
10 %bcond_without tests # unit tests
11 %bcond_without python2 # CPython 2.x module
12 %bcond_with python3 # CPython 3.x module
15 Summary: Python 2 image processing library
16 Summary(pl.UTF-8): Biblioteka do przetwarzania obrazów dla Pythona 2
17 Name: python-%{module}
18 # NOTE: keep 6.x in this spec for python 2.x support (see note above)
21 # License: see http://www.pythonware.com/products/pil/license.htm
23 Group: Libraries/Python
24 #Source0Download: https://pypi.org/simple/pillow/
25 Source0: https://files.pythonhosted.org/packages/source/P/Pillow/Pillow-%{version}.tar.gz
26 # Source0-md5: 46cad14f0044a5ac4b2d801271528893
27 Patch0: %{name}-subpackage.patch
29 URL: https://python-pillow.org/
30 BuildRequires: freetype-devel >= 2
31 BuildRequires: ghostscript
32 BuildRequires: lcms2-devel >= 2
33 BuildRequires: libimagequant-devel
34 BuildRequires: libjpeg-devel
35 BuildRequires: libraqm-devel
36 BuildRequires: libtiff-devel >= 4
37 BuildRequires: libwebp-devel
38 BuildRequires: openjpeg2-devel >= 2
39 BuildRequires: pkgconfig
40 BuildRequires: rpmbuild(macros) >= 1.714
41 BuildRequires: tk-devel
42 BuildRequires: zlib-devel
44 BuildRequires: python-cffi
45 BuildRequires: python-devel >= 1:2.7
46 BuildRequires: python-numpy
47 BuildRequires: python-setuptools
48 BuildRequires: python-tkinter
51 BuildRequires: python-sphinx_rtd_theme
52 BuildRequires: sphinx-pdg-2
55 BuildRequires: python3-cffi
56 BuildRequires: python3-devel >= 1:3.5
57 BuildRequires: python3-numpy
58 BuildRequires: python3-setuptools
59 BuildRequires: python3-tkinter
61 BuildRequires: python3-sphinx_rtd_theme
62 BuildRequires: sphinx-pdg-3
65 # For EpsImagePlugin.py
67 Provides: python-PIL = %{version}-%{release}
68 Provides: pythonegg(pil) = %{version}
69 Obsoletes: python-PIL < 1:1.1.8
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define py2_libbuilddir %(python -c 'import sys; import sysconfig; print("lib.{p}-{v[0]}.{v[1]}".format(p=sysconfig.get_platform(), v=sys.version_info))')
73 %define py3_libbuilddir %(python3 -c 'import sys; import sysconfig; print("lib.{p}-{v[0]}.{v[1]}".format(p=sysconfig.get_platform(), v=sys.version_info))')
76 Python image processing library, fork of the Python Imaging Library
79 This library provides extensive file format support, an efficient
80 internal representation, and powerful image processing capabilities.
82 There are four additional subpackages:
84 - qt (PIL image wrapper for Qt),
85 - devel (development),
86 - doc (documentation).
88 %description -l pl.UTF-8
89 Pythonowa biblioteka do przetwarzania obrazów - odgałęzienie projektu
90 PIL (Python Imaging Library).
92 Ta biblioteka zapewnia obsługę wielu formatów plików, wydajną
93 reprezentację wewnętrzną oraz potężne możliwości przetwarzania.
95 Są cztery dodatkowe podpakiety:
97 - qt (obudowanie obrazów PIL dla Qt),
98 - devel (do programowania),
102 Summary: Development files for Pillow module
103 Summary(pl.UTF-8): Pliki programistyczne modułu Pillow
104 Group: Development/Libraries
105 Requires: %{name} = %{version}-%{release}
106 Requires: libjpeg-devel
107 Requires: python-devel >= 1:2.7
109 Provides: python-PIL-devel = %{version}-%{release}
110 Obsoletes: python-PIL-devel < 1:1.1.8
113 Development files for Pillow module.
115 %description devel -l pl.UTF-8
116 Pliki programistyczne modułu Pillow.
119 Summary: Documentation for Pillow module
120 Summary(pl.UTF-8): Dokumentacja do modułu Pillow
122 Requires: %{name} = %{version}-%{release}
126 Documentation for Pillow module.
128 %description doc -l pl.UTF-8
129 Dokumentacja do modułu Pillow.
132 Summary: Tk interface for Pillow module
133 Summary(pl.UTF-8): Interfejs Tk do modułu Pillow
134 Group: Libraries/Python
135 Requires: %{name} = %{version}-%{release}
136 Requires: python-tkinter
137 Provides: python-PIL-tk = %{version}-%{release}
138 Obsoletes: python-PIL-tk < 1:1.1.8
141 Tk interface for Pillow module.
143 %description tk -l pl.UTF-8
144 Interfejs Tk do modułu Pillow.
147 Summary: PIL image wrapper for Qt
148 Summary(pl.UTF-8): Obudowanie obrazów PIL dla Qt
149 Group: Libraries/Python
150 Requires: %{name} = %{version}-%{release}
151 Requires: python-PyQt5
152 Provides: python-PIL-qt = %{version}-%{release}
155 PIL image wrapper for Qt.
157 %description qt -l pl.UTF-8
158 Obudowanie obrazów PIL dla Qt.
160 %package -n python3-%{module}
161 Summary: Python 3 image processing library
162 Summary(pl.UTF-8): Biblioteka do przetwarzania obrazów dla Pythona 3
163 Group: Libraries/Python
164 Provides: python3-PIL = %{version}-%{release}
166 %description -n python3-%{module}
167 Python image processing library, fork of the Python Imaging Library
170 This library provides extensive file format support, an efficient
171 internal representation, and powerful image processing capabilities.
173 There are four additional subpackages:
175 - qt (PIL image wrapper for Qt),
176 - devel (development),
177 - doc (documentation).
179 %description -n python3-%{module} -l pl.UTF-8
180 Pythonowa biblioteka do przetwarzania obrazów - odgałęzienie projektu
181 PIL (Python Imaging Library).
183 Ta biblioteka zapewnia obsługę wielu formatów plików, wydajną
184 reprezentację wewnętrzną oraz potężne możliwości przetwarzania.
186 Są cztery dodatkowe podpakiety:
188 - qt (obudowanie obrazów PIL dla Qt),
189 - devel (do programowania),
190 - doc (dokumentacja).
192 %package -n python3-%{module}-devel
193 Summary: Development files for Pillow module
194 Summary(pl.UTF-8): Pliki programistyczne modułu Pillow
195 Group: Development/Libraries
196 Requires: libjpeg-devel
197 Requires: python3-%{module} = %{version}-%{release}
198 Requires: python3-devel >= 1:3.5
201 %description -n python3-%{module}-devel
202 Development files for Pillow module.
204 %description -n python3-%{module}-devel -l pl.UTF-8
205 Pliki programistyczne modułu Pillow.
207 %package -n python3-%{module}-doc
208 Summary: Documentation for Pillow module
209 Summary(pl.UTF-8): Dokumentacja do modułu Pillow
211 Requires: python3-%{module} = %{version}-%{release}
214 %description -n python3-%{module}-doc
215 Documentation for Pillow module.
217 %description -n python3-%{module}-doc -l pl.UTF-8
218 Dokumentacja do modułu Pillow.
220 %package -n python3-%{module}-tk
221 Summary: Tk interface for Pillow module
222 Summary(pl.UTF-8): Interfejs Tk do modułu Pillow
223 Group: Libraries/Python
224 Requires: python3-tkinter >= 1:3.5
225 Requires: python3-%{module} = %{version}-%{release}
227 %description -n python3-%{module}-tk
228 Tk interface for Pillow module.
230 %description -n python3-%{module}-tk -l pl.UTF-8
231 Interfejs Tk do modułu Pillow.
233 %package -n python3-%{module}-qt
234 Summary: PIL image wrapper for Qt
235 Summary(pl.UTF-8): Obudowanie obrazów PIL dla Qt
236 Group: Libraries/Python
237 Requires: python3-%{module} = %{version}-%{release}
238 Requires: python3-PyQt5
239 Obsoletes: python3-%{module} <= 2.0.0-5.git93a488e8
241 %description -n python3-%{module}-qt
242 PIL image wrapper for Qt.
244 %description -n python3-%{module}-qt -l pl.UTF-8
245 Obudowanie obrazów PIL dla Qt.
248 %setup -q -n Pillow-%{version}
250 %if "%{_lib}" == "libx32"
258 PYTHONPATH=$(pwd)/build-2/%{py2_libbuilddir} \
259 %{__make} -C docs html \
260 SPHINXBUILD=sphinx-build-2
267 PYTHONPATH=$(pwd)/build-3/%{py3_libbuilddir} \
268 %{__make} -C docs html \
269 SPHINXBUILD=sphinx-build-3
274 # Check Python 2 modules
275 cp -R $PWD/Tests $PWD/build-2/%py2_libbuilddir/Tests
276 cp -R $PWD/selftest.py $PWD/build-2/%py2_libbuilddir/selftest.py
277 cd build-2/%py2_libbuilddir
279 %{__python} selftest.py
281 %{__rm} -r build-2/%py2_libbuilddir/Tests
282 %{__rm} build-2/%py2_libbuilddir/selftest.py*
285 # Check Python 3 modules
286 cp -R $PWD/Tests $PWD/build-3/%py3_libbuilddir/Tests
287 cp -R $PWD/selftest.py $PWD/build-3/%py3_libbuilddir/selftest.py
288 cd build-3/%py3_libbuilddir
290 %{__python3} selftest.py
292 %{__rm} -r build-3/%py3_libbuilddir/Tests
293 %{__rm} build-3/%py3_libbuilddir/selftest.py
294 %{__rm} build-3/%py3_libbuilddir/__pycache__/selftest.*
299 rm -rf $RPM_BUILD_ROOT
302 # Install Python 2 modules
303 install -d $RPM_BUILD_ROOT%{py_incdir}/Imaging
304 cp -p src/libImaging/*.h $RPM_BUILD_ROOT%{py_incdir}/Imaging
310 # Install Python 3 modules
311 install -d $RPM_BUILD_ROOT%{py3_incdir}/Imaging
312 cp -p src/libImaging/*.h $RPM_BUILD_ROOT%{py3_incdir}/Imaging
317 rm -rf $RPM_BUILD_ROOT
320 %defattr(644,root,root,755)
321 %doc CHANGES.rst README.rst docs/COPYING
322 %dir %{py_sitedir}/PIL
323 %{py_sitedir}/PIL/*.py[co]
324 %attr(755,root,root) %{py_sitedir}/PIL/_imaging.so
325 %attr(755,root,root) %{py_sitedir}/PIL/_imagingcms.so
326 %attr(755,root,root) %{py_sitedir}/PIL/_imagingft.so
327 %attr(755,root,root) %{py_sitedir}/PIL/_imagingmath.so
328 %attr(755,root,root) %{py_sitedir}/PIL/_imagingmorph.so
329 %attr(755,root,root) %{py_sitedir}/PIL/_webp.so
330 %{py_sitedir}/Pillow-%{version}-py*.egg-info
331 # These are in subpackages
332 %exclude %{py_sitedir}/PIL/ImageQt.py*
333 %exclude %{py_sitedir}/PIL/ImageTk.py*
334 %exclude %{py_sitedir}/PIL/SpiderImagePlugin.py*
335 %exclude %{py_sitedir}/PIL/_tkinter_finder.py*
338 %defattr(644,root,root,755)
343 %defattr(644,root,root,755)
344 %doc docs/_build/html/*
348 %defattr(644,root,root,755)
349 %attr(755,root,root) %{py_sitedir}/PIL/_imagingtk.so
350 %{py_sitedir}/PIL/ImageTk.py[co]
351 %{py_sitedir}/PIL/SpiderImagePlugin.py[co]
352 %{py_sitedir}/PIL/_tkinter_finder.py[co]
355 %defattr(644,root,root,755)
356 %{py_sitedir}/PIL/ImageQt.py[co]
359 %files -n python3-%{module}
360 %defattr(644,root,root,755)
361 %doc CHANGES.rst README.rst docs/COPYING
362 %dir %{py3_sitedir}/PIL
363 %{py3_sitedir}/PIL/*.py
364 %attr(755,root,root) %{py3_sitedir}/PIL/_imaging.cpython-*.so
365 %attr(755,root,root) %{py3_sitedir}/PIL/_imagingcms.cpython-*.so
366 %attr(755,root,root) %{py3_sitedir}/PIL/_imagingft.cpython-*.so
367 %attr(755,root,root) %{py3_sitedir}/PIL/_imagingmath.cpython-*.so
368 %attr(755,root,root) %{py3_sitedir}/PIL/_imagingmorph.cpython-*.so
369 %attr(755,root,root) %{py3_sitedir}/PIL/_webp.cpython-*.so
370 %dir %{py3_sitedir}/PIL/__pycache__
371 %{py3_sitedir}/PIL/__pycache__/*.py[co]
372 %{py3_sitedir}/Pillow-%{version}-py*.egg-info
373 # These are in subpackages
374 %exclude %{py3_sitedir}/PIL/ImageQt.py
375 %exclude %{py3_sitedir}/PIL/ImageTk.py
376 %exclude %{py3_sitedir}/PIL/SpiderImagePlugin.py
377 %exclude %{py3_sitedir}/PIL/_tkinter_finder.py
378 %exclude %{py3_sitedir}/PIL/__pycache__/ImageQt.cpython-*.py[co]
379 %exclude %{py3_sitedir}/PIL/__pycache__/ImageTk.cpython-*.py[co]
380 %exclude %{py3_sitedir}/PIL/__pycache__/SpiderImagePlugin.cpython-*.py[co]
381 %exclude %{py3_sitedir}/PIL/__pycache__/_tkinter_finder.cpython-*.py[co]
383 %files -n python3-%{module}-devel
384 %defattr(644,root,root,755)
385 %{py3_incdir}/Imaging
388 %files -n python3-%{module}-doc
389 %defattr(644,root,root,755)
390 %doc docs/_build/html
393 %files -n python3-%{module}-tk
394 %defattr(644,root,root,755)
395 %attr(755,root,root) %{py3_sitedir}/PIL/_imagingtk.cpython-*.so
396 %{py3_sitedir}/PIL/ImageTk.py
397 %{py3_sitedir}/PIL/SpiderImagePlugin.py
398 %{py3_sitedir}/PIL/_tkinter_finder.py
399 %{py3_sitedir}/PIL/__pycache__/ImageTk.cpython-*.py[co]
400 %{py3_sitedir}/PIL/__pycache__/SpiderImagePlugin.cpython-*.py[co]
401 %{py3_sitedir}/PIL/__pycache__/_tkinter_finder.cpython-*.py[co]
403 %files -n python3-%{module}-qt
404 %defattr(644,root,root,755)
405 %{py3_sitedir}/PIL/ImageQt.py
406 %{py3_sitedir}/PIL/__pycache__/ImageQt.cpython-*.py[co]