Bug#787806: jessie-pu: package python-reportlab/3.1.8-3+deb8u1
Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu
Hello,
I would like to update python-reportlab in jessie as it suffers from a
regression compared to wheezy in the way it handles PNG with transparency
(see #785023 for details). Working code now throws exceptions when it
processes such files.
The patch we used is an upstream patch and the modified code is thus
in use in unstable in the new upstream version that just landed (3.2.0-1).
I checked with the bug reporter that the proposed update does fix
the issue with him.
The debdiff is attached.
Cheers,
--
Raphaël Hertzog ◈ Debian Developer
Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/
diff -Nru python-reportlab-3.1.8/debian/changelog python-reportlab-3.1.8/debian/changelog
--- python-reportlab-3.1.8/debian/changelog 2014-08-18 16:44:41.000000000 +0200
+++ python-reportlab-3.1.8/debian/changelog 2015-06-03 21:10:38.000000000 +0200
@@ -1,3 +1,12 @@
+python-reportlab (3.1.8-3+deb8u1) jessie; urgency=medium
+
+ * Non-maintainer upload.
+ * Add handle-png-with-transparency.patch to avoid failing when reading
+ a PNG with transparency. Closes: #785023
+ This fixes a regression compared to the version in Wheezy.
+
+ -- Raphaël Hertzog <hertzog@debian.org> Wed, 03 Jun 2015 21:04:12 +0200
+
python-reportlab (3.1.8-3) unstable; urgency=medium
* Build-depend on dh-python.
diff -Nru python-reportlab-3.1.8/debian/patches/handle-png-with-transparency.patch python-reportlab-3.1.8/debian/patches/handle-png-with-transparency.patch
--- python-reportlab-3.1.8/debian/patches/handle-png-with-transparency.patch 1970-01-01 01:00:00.000000000 +0100
+++ python-reportlab-3.1.8/debian/patches/handle-png-with-transparency.patch 2015-06-03 21:08:58.000000000 +0200
@@ -0,0 +1,33 @@
+Description: ImageReader handle png indexed with transparency specially
+Bug-Debian: https://bugs.debian.org/785023
+Origin: upstream, https://bitbucket.org/rptlab/reportlab/commits/7df61e325601580bc36db042c6d6a8a776f62eef
+
+diff --git a/src/reportlab/lib/utils.py b/src/reportlab/lib/utils.py
+--- a/src/reportlab/lib/utils.py
++++ b/src/reportlab/lib/utils.py
+@@ -823,7 +823,12 @@
+ im = im.convert('RGB')
+ self.mode = 'RGB'
+ elif mode not in ('L','RGB','CMYK'):
+- im = im.convert('RGB')
++ if im.format=='PNG' and im.mode=='P' and 'transparency' in im.info:
++ im = im.convert('RGBA')
++ self._dataA = ImageReader(im.split()[3])
++ im = im.convert('RGB')
++ else:
++ im = im.convert('RGB')
+ self.mode = 'RGB'
+ if hasattr(im, 'tobytes'): #make pillow and PIL both happy, for now
+ self._data = im.tobytes()
+diff --git a/tests/test_pdfgen_general.py b/tests/test_pdfgen_general.py
+--- a/tests/test_pdfgen_general.py
++++ b/tests/test_pdfgen_general.py
+@@ -715,6 +715,8 @@
+ if haveImages:
+ c.drawImage(gif, 1*inch, 1.2*inch, w, h, mask=myMask)
+ c.drawImage(gif, 3*inch, 1.2*inch, w, h, mask='auto')
++ c.drawImage(os.path.join(testsFolder,'test-rgba.png'),5*inch,1.2*inch,width=10,height=10,mask='auto')
++ c.drawImage(os.path.join(testsFolder,'test-indexed.png'),5.5*inch,1.2*inch,width=10,height=10,mask='auto')
+ else:
+ c.rect(1*inch, 1.2*inch, w, h)
+ c.rect(3*inch, 1.2*inch, w, h)
diff -Nru python-reportlab-3.1.8/debian/patches/series python-reportlab-3.1.8/debian/patches/series
--- python-reportlab-3.1.8/debian/patches/series 2014-08-11 23:31:18.000000000 +0200
+++ python-reportlab-3.1.8/debian/patches/series 2015-06-03 21:10:54.000000000 +0200
@@ -1 +1,2 @@
gsfonts.diff
+handle-png-with-transparency.patch
Reply to: