[python-pillow] Enable jpg2k support, enable webp on s390x, fix ghostscript detection
Sandro Mani
smani at fedoraproject.org
Wed Apr 16 22:09:29 UTC 2014
commit 9f4ae1ef99101aac4705a3bb284fc57205523ac2
Author: Sandro Mani <manisandro at gmail.com>
Date: Thu Apr 17 00:09:15 2014 +0200
Enable jpg2k support, enable webp on s390x, fix ghostscript detection
python-imaging-Pillow_ghostscript.patch | 89 +++++++++++++++++++++++++++++++
python-pillow.spec | 26 ++++++---
2 files changed, 106 insertions(+), 9 deletions(-)
---
diff --git a/python-imaging-Pillow_ghostscript.patch b/python-imaging-Pillow_ghostscript.patch
new file mode 100644
index 0000000..068e387
--- /dev/null
+++ b/python-imaging-Pillow_ghostscript.patch
@@ -0,0 +1,89 @@
+From 82d7524add60d020a339503efe0559a11f89e238 Mon Sep 17 00:00:00 2001
+From: wiredfool <eric-github at soroos.net>
+Date: Fri, 4 Apr 2014 13:33:54 -0700
+Subject: [PATCH] made has_ghostscript a method, using it from test_imagefile
+
+---
+ PIL/EpsImagePlugin.py | 15 +++++++++++++++
+ Tests/test_file_eps.py | 12 +-----------
+ Tests/test_imagefile.py | 6 ++++--
+ 3 files changed, 20 insertions(+), 13 deletions(-)
+
+diff --git a/PIL/EpsImagePlugin.py b/PIL/EpsImagePlugin.py
+index 8868634..4d19c1f 100644
+--- a/PIL/EpsImagePlugin.py
++++ b/PIL/EpsImagePlugin.py
+@@ -50,6 +50,21 @@
+ else:
+ gs_windows_binary = False
+
++def has_ghostscript():
++ if gs_windows_binary:
++ return True
++ if not sys.platform.startswith('win'):
++ import subprocess
++ try:
++ gs = subprocess.Popen(['gs','--version'], stdout=subprocess.PIPE)
++ gs.stdout.read()
++ return True
++ except OSError:
++ # no ghostscript
++ pass
++ return False
++
++
+ def Ghostscript(tile, size, fp, scale=1):
+ """Render an image using Ghostscript"""
+
+diff --git a/Tests/test_file_eps.py b/Tests/test_file_eps.py
+index 61faa63..0041824 100644
+--- a/Tests/test_file_eps.py
++++ b/Tests/test_file_eps.py
+@@ -4,19 +4,9 @@
+ import sys
+ import io
+
+-if not EpsImagePlugin.gs_windows_binary:
+- # already checked. Not there.
++if not EpsImagePlugin.has_ghostscript():
+ skip()
+
+-if not sys.platform.startswith('win'):
+- import subprocess
+- try:
+- gs = subprocess.Popen(['gs','--version'], stdout=subprocess.PIPE)
+- gs.stdout.read()
+- except OSError:
+- # no ghostscript
+- skip()
+-
+ #Our two EPS test files (they are identical except for their bounding boxes)
+ file1 = "Tests/images/zero_bb.eps"
+ file2 = "Tests/images/non_zero_bb.eps"
+diff --git a/Tests/test_imagefile.py b/Tests/test_imagefile.py
+index 12061eb..adf282b 100644
+--- a/Tests/test_imagefile.py
++++ b/Tests/test_imagefile.py
+@@ -2,6 +2,7 @@
+
+ from PIL import Image
+ from PIL import ImageFile
++from PIL import EpsImagePlugin
+
+ codecs = dir(Image.core)
+
+@@ -46,8 +47,9 @@ def roundtrip(format):
+ assert_image_equal(*roundtrip("TGA"))
+ assert_image_equal(*roundtrip("PCX"))
+
+- im1, im2 = roundtrip("EPS")
+- assert_image_similar(im1, im2.convert('L'),20) # EPS comes back in RGB
++ if EpsImagePlugin.has_ghostscript():
++ im1, im2 = roundtrip("EPS")
++ assert_image_similar(im1, im2.convert('L'),20) # EPS comes back in RGB
+
+ if "jpeg_encoder" in codecs:
+ im1, im2 = roundtrip("JPEG") # lossy compression
+--
+1.9.1
+
diff --git a/python-pillow.spec b/python-pillow.spec
index 1be1ee3..91d6770 100644
--- a/python-pillow.spec
+++ b/python-pillow.spec
@@ -25,7 +25,7 @@
Name: python-pillow
Version: 2.4.0
-Release: 1%{?snap}%{?dist}
+Release: 2%{?snap}%{?dist}
Summary: Python image processing library
# License: see http://www.pythonware.com/products/pil/license.htm
@@ -36,6 +36,8 @@ URL: http://python-imaging.github.com/Pillow/
# wget --content-disposition https://github.com/python-imaging/Pillow/tarball/$commit
Source0: https://github.com/python-imaging/Pillow/tarball/%{commit}/python-imaging-Pillow-%{version}-%{ahead}-g%{shortcommit}.tar.gz
+# Fix ghostscript detection (upstream commit 82d7524add60d020a339503efe0559a11f89e238)
+Patch0: python-imaging-Pillow_ghostscript.patch
BuildRequires: tk-devel
BuildRequires: libjpeg-devel
@@ -43,11 +45,9 @@ BuildRequires: zlib-devel
BuildRequires: freetype-devel
BuildRequires: lcms2-devel
BuildRequires: sane-backends-devel
-BuildRequires: ghostscript
-# Don't build with webp support on s390* archs, see bug #962091 (s390*)
-%ifnarch s390 s390x
+# BuildRequires: ghostscript # Running test fails, see #921706#c38
+BuildRequires: openjpeg2-devel
BuildRequires: libwebp-devel
-%endif
BuildRequires: python2-devel
BuildRequires: python-setuptools
@@ -56,6 +56,7 @@ BuildRequires: PyQt4
BuildRequires: numpy
BuildRequires: python-sphinx
BuildRequires: python-sphinx-theme-better
+BuildRequires: python-cffi
%if %{with_python3}
BuildRequires: python3-devel
@@ -65,6 +66,7 @@ BuildRequires: python3-PyQt4
BuildRequires: python3-numpy
BuildRequires: python3-sphinx
BuildRequires: python3-sphinx-theme-better
+BuildRequires: python3-cffi
%endif
# For EpsImagePlugin.py
@@ -206,6 +208,7 @@ PIL image wrapper for Qt.
%prep
%setup -q -n python-imaging-Pillow-%{shortcommit}
+%patch0 -p1
%if %{with_python3}
# Create Python 3 source tree
@@ -279,8 +282,8 @@ ln -s $PWD/Images $PWD/build/%py2_libbuilddir/Images
cp -R $PWD/Tests $PWD/build/%py2_libbuilddir/Tests
cp -R $PWD/selftest.py $PWD/build/%py2_libbuilddir/selftest.py
pushd build/%py2_libbuilddir
-PYTHONPATH=$PWD/build/%py2_libbuilddir %{__python} selftest.py
-PYTHONPATH=$PWD/build/%py2_libbuilddir %{__python} Tests/run.py
+PYTHONPATH=$PWD %{__python} selftest.py
+PYTHONPATH=$PWD %{__python} Tests/run.py
popd
%if %{with_python3}
@@ -290,8 +293,8 @@ 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
-PYTHONPATH=$PWD/build/%py3_libbuilddir %{__python3} selftest.py
-PYTHONPATH=$PWD/build/%py3_libbuilddir %{__python3} Tests/run.py
+PYTHONPATH=$PWD %{__python3} selftest.py
+PYTHONPATH=$PWD %{__python3} Tests/run.py
popd
popd
%endif
@@ -357,6 +360,11 @@ popd
%endif
%changelog
+* Thu Apr 17 2014 Sandro Mani <manisandro at gmail.com> - 2.4.0-2
+- Enable Jpeg2000 support
+- Enable webp support also on s390* archs, bug #962091 is now fixed
+- Add upstream patch for ghostscript detection
+
* Wed Apr 02 2014 Sandro Mani <manisandro at gmail.com> - 2.4.0-1
- Update to 2.4.0
More information about the scm-commits
mailing list