debian/0000775000000000000000000000000013060525063007170 5ustar debian/control0000664000000000000000000003312312274165337010607 0ustar Source: pillow Section: python Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Matthias Klose Build-Depends: debhelper, tk-dev, dpkg-dev (>= 1.16.1~), python-all-dev (>= 2.7.3-11~), python-all-dbg, python-setuptools, python3-all-dev (>= 3.3), python3-all-dbg, python3-setuptools, python-tk, python-tk-dbg, python3-tk, python3-tk-dbg (>= 3.3), libsane-dev, libfreetype6-dev, libjpeg8-dev, zlib1g-dev, liblcms2-dev, libwebp-dev Build-Conflicts: python-numarray Standards-Version: 3.9.5 XS-Testsuite: autopkgtest Package: python-pil Architecture: any Depends: ${python:Depends}, mime-support | python-pil.imagetk, ${shlibs:Depends}, ${misc:Depends} Suggests: python-pil-doc, python-pil-dbg Provides: ${python:Provides}, python-pillow Breaks: python-imaging (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library (Pillow fork) The Python Imaging Library (PIL) adds an image object to your Python interpreter. You can load images from a variety of file formats, and apply a rich set of image operations to them. . Image Objects: o Bilevel, greyscale, palette, true colour (RGB), true colour with transparency (RGBA). o colour separation (CMYK). o Copy, cut, paste operations. o Flip, transpose, resize, rotate, and arbitrary affine transforms. o Transparency operations. o Channel and point operations. o Colour transforms, including matrix operations. o Image enhancement, including convolution filters. . File Formats: o Full (Open/Load/Save): BMP, EPS (with ghostscript), GIF, IM, JPEG, MSP, PDF, PNG, PPM, TIFF, XBM. o Read only (Open/Load): ARG, CUR, DCX, FLI, FPX, GBR, GD, ICO, IMT, IPTC, MCIDAS, MPEG, PhotoCD, PCX, PIXAR, PSD, TGA, SGI, SUN, TGA, WMF, XPM. o Save only: PDF, EPS (without ghostscript). Package: python-pil-dbg Section: debug Priority: extra Architecture: any Depends: python-pil (= ${binary:Version}), python-dbg, ${shlibs:Depends}, ${misc:Depends} Provides: python-imaging-dbg Breaks: python-imaging-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library (debug extension) The Python Imaging Library (PIL) adds an image object to your Python interpreter. You can load images from a variety of file formats, and apply a rich set of image operations to them. . This package contains the extension built for the Python debug interpreter. Package: python-pil.imagetk Architecture: any Depends: python-pil (= ${binary:Version}), python-tk (>= 2.5.2-1.1), ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} Suggests: python-pil-doc, python-pil.imagetk-dbg Provides: ${python:Provides}, python-imaging-tk Breaks: python-imaging-tk (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-tk (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - ImageTk Module (Pillow fork) Tk dependent python-pil module. Package: python-pil.imagetk-dbg Section: debug Priority: extra Architecture: any Depends: python-pil.imagetk (= ${binary:Version}), python-pil-dbg (= ${binary:Version}), python-dbg, ${shlibs:Depends}, ${misc:Depends} Provides: python-imaging-tk-dbg Breaks: python-imaging-tk-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-tk-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - ImageTk Module (debug extension) Tk dependent python-pil module. . This package contains the extension built for the Python debug interpreter. Package: python-sane Architecture: any Depends: python-pil (= ${binary:Version}), ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: python-tk (>= 2.5.2-1.1) Suggests: python-pil-doc, python-sane-dbg Provides: ${python:Provides}, python-imaging-sane Breaks: python-imaging-sane (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-sane (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - SANE interface (Pillow fork) The imaging-sane module is a Python interface to the SANE (Scanner Access is Now Easy) library, which provides access to various raster scanning devices such as flatbed scanners and digital cameras. Package: python-sane-dbg Section: debug Priority: extra Architecture: any Depends: python-sane (= ${binary:Version}), python-pil-dbg (= ${binary:Version}), python-dbg, ${shlibs:Depends}, ${misc:Depends} Provides: python-imaging-sane-dbg Breaks: python-imaging-sane-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-sane-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - SANE interface (debug extension) The imaging-sane module is a Python interface to the SANE (Scanner Access is Now Easy) library, which provides access to various raster scanning devices such as flatbed scanners and digital cameras. . This package contains the extension built for the Python debug interpreter. Package: python3-pil Architecture: any Depends: ${python3:Depends}, mime-support | python3-pil.imagetk, ${shlibs:Depends}, ${misc:Depends} Suggests: python-pil-doc, python3-pil-dbg Provides: ${python:Provides}, python3-pillow Conflicts: python3-imaging (<< 1.1.7+2.0.0-1.1) Breaks: python3-imaging (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library (Python3) The Python Imaging Library (PIL) adds an image object to your Python interpreter. You can load images from a variety of file formats, and apply a rich set of image operations to them. . Image Objects: o Bilevel, greyscale, palette, true colour (RGB), true colour with transparency (RGBA). o colour separation (CMYK). o Copy, cut, paste operations. o Flip, transpose, resize, rotate, and arbitrary affine transforms. o Transparency operations. o Channel and point operations. o Colour transforms, including matrix operations. o Image enhancement, including convolution filters. . File Formats: o Full (Open/Load/Save): BMP, EPS (with ghostscript), GIF, IM, JPEG, MSP, PDF, PNG, PPM, TIFF, XBM. o Read only (Open/Load): ARG, CUR, DCX, FLI, FPX, GBR, GD, ICO, IMT, IPTC, MCIDAS, MPEG, PhotoCD, PCX, PIXAR, PSD, TGA, SGI, SUN, TGA, WMF, XPM. o Save only: PDF, EPS (without ghostscript). Package: python3-pil-dbg Section: debug Priority: extra Architecture: any Depends: python3-pil (= ${binary:Version}), python3-dbg, ${shlibs:Depends}, ${misc:Depends} Breaks: python3-imaging-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library (Python3 debug extension) The Python Imaging Library (PIL) adds an image object to your Python interpreter. You can load images from a variety of file formats, and apply a rich set of image operations to them. . This package contains the extension built for the Python debug interpreter. Package: python3-pil.imagetk Architecture: any Depends: python3-pil (= ${binary:Version}), python3-tk (>= 2.5.2-1.1), ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends} Suggests: python-pil-doc, python3-pil.imagetk-dbg Provides: ${python:Provides} Breaks: python3-imaging-tk (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging-tk (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - ImageTk Module (Python3) Tk dependent python-pil module. Package: python3-pil.imagetk-dbg Section: debug Priority: extra Architecture: any Depends: python3-pil.imagetk (= ${binary:Version}), python3-pil-dbg (= ${binary:Version}), python3-dbg, ${shlibs:Depends}, ${misc:Depends} Breaks: python3-imaging-tk-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging-tk-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - ImageTk Module (Python3 debug extension) Tk dependent python-pil module. . This package contains the extension built for the Python debug interpreter. Package: python3-sane Architecture: any Depends: python3-pil (= ${binary:Version}), ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends} Recommends: python3-tk (>= 2.5.2-1.1) Suggests: python-pil-doc, python3-sane-dbg Provides: ${python3:Provides} Breaks: python3-imaging-sane (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging-sane (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - SANE interface (Python3) The imaging-sane module is a Python interface to the SANE (Scanner Access is Now Easy) library, which provides access to various raster scanning devices such as flatbed scanners and digital cameras. Package: python3-sane-dbg Section: debug Priority: extra Architecture: any Depends: python3-sane (= ${binary:Version}), python3-pil-dbg (= ${binary:Version}), python3-dbg, ${shlibs:Depends}, ${misc:Depends} Breaks: python3-imaging-sane-dbg (<< 1.1.7+2.0.0-1.1) Replaces: python3-imaging-sane-dbg (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library - SANE interface (Python3 debug extension) The imaging-sane module is a Python interface to the SANE (Scanner Access is Now Easy) library, which provides access to various raster scanning devices such as flatbed scanners and digital cameras. . This package contains the extension built for the Python debug interpreter. Package: python-pil-doc Section: doc Architecture: all Depends: ${misc:Depends} Suggests: python-pil-doc-html, python-pil-doc-pdf, python-doc, python3-pil | python-pil, python3-pil.imagetk | python-pil.imagetk Provides: python-imaging-doc Breaks: python-imaging-doc (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-doc (<< 1.1.7+2.0.0-1.1) Description: Examples for the Python Imaging Library The Python Imaging Library (PIL) adds an image object to your Python interpreter. You can load image objects from a variety of file formats, and apply a rich set of image operations to them. . This package contains PIL API documentation and some example scripts. You may also want to look at the python-pil-doc-html or python-pil-doc-pdf packages for the PIL handbook documentation. Package: python-imaging Architecture: all Depends: ${python:Depends}, ${misc:Depends}, python-pil Conflicts: python-imaging-compat (<< 1.1.7+2.0.0-1.1) Breaks: python-imaging-compat (<< 1.1.7+2.0.0-1.1) Replaces: python-imaging-compat (<< 1.1.7+2.0.0-1.1) Description: Python Imaging Library compatibility layer PIL used to provide a PIL.pth file which allowed you to `import Image` but this is deprecated. Use `from PIL import Image` now, or install this compatibility package to temporarily get the old behavior back. . This compatibility package is built for Python 2 only. Package: python-imaging-compat Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-imaging (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-imaging and can be safely removed. Package: python-imaging-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-pil-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-pil-dbg and can be safely removed. Package: python-imaging-tk Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-pil.imagetk (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-pil.imagetk and can be safely removed. Package: python-imaging-tk-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-pil.imagetk-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-pil.imagetk-dbg and can be safely removed. Package: python-imaging-sane Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-sane (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-sane and can be safely removed. Package: python-imaging-sane-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-sane-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-sane-dbg and can be safely removed. Package: python3-imaging Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-pil (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-pil and can be safely removed. Package: python3-imaging-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-pil-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-pil-dbg and can be safely removed. Package: python3-imaging-tk Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-pil.imagetk (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-pil.imagetk and can be safely removed. Package: python3-imaging-tk-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-pil.imagetk-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-pil.imagetk-dbg and can be safely removed. Package: python3-imaging-sane Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-sane (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-sane and can be safely removed. Package: python3-imaging-sane-dbg Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python3-sane-dbg (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python3-sane-dbg and can be safely removed. Package: python-imaging-doc Architecture: all Section: oldlibs Priority: extra Depends: ${misc:Depends}, python-pil-doc (>= ${binary:Version}) Description: Dummy transitional package This is a transitional package to python-pil-doc and can be safely removed. debian/changelog0000664000000000000000000005266613060525063011061 0ustar pillow (2.3.0-1ubuntu3.4) trusty-security; urgency=medium * SECURITY UPDATE: information disclosure via crafted image - debian/patches/CVE-2016-9189.patch: add overflow checks to map.c. - CVE-2016-9189 * SECURITY UPDATE: code execution via crafted image - debian/patches/CVE-2016-9190.patch: add size check to libImaging/Storage.c, add test to Tests/images/negative_size.ppm, Tests/test_file_ppm.py. - CVE-2016-9190 * SECURITY UPDATE: re-enabled CVE-2014-9601 fix - debian/patches/pillow-CVE-2014-9601-pre.patch: rename len variables as length in PIL/PngImagePlugin.py. - debian/patches/pillow-CVE-2014-9601.patch: updated. - debian/patches/revert-CVE-201409601.patch: removed - CVE-2014-9601 -- Marc Deslauriers Fri, 10 Mar 2017 08:26:41 -0500 pillow (2.3.0-1ubuntu3.3) trusty-security; urgency=medium * SECURITY UPDATE: revert fix for CVE-2014-9601 which caused regression - debian/patches/revert-CVE-201409601.patch -- Emily Ratliff Thu, 29 Sep 2016 20:48:05 -0500 pillow (2.3.0-1ubuntu3.2) trusty-security; urgency=medium * SECURITY UPDATE: buffer overflow in ImagingFliDecode() - debian/patches/pillow-CVE-2016-0775.patch: correct memcpy location - Thanks to Eric Soroos for finding and fixing this issue. - CVE-2016-0775 * SECURITY UPDATE: buffer overflow in ImagingLibTiffDecode - debian/patches/pillow-CVE-2016-0740.patch: correct type of size to match that returned by libtiff - Thanks to Eric Soroos for finding and fixing this issue. - CVE-2016-0740 * SECURITY UPDATE: PCD decoder overruns the shuffle buffer - debian/patches/pillow-CVE-2016-2533.patch: correct size adjustments - CVE-2016-2533 * SECURITY-UPDATE: Icns DOS fix - debian/patches/pillow-CVE-2014-3589.patch: Icns DOS fix - Thanks to Andrew Drake for reporting this issue. - CVE-2014-3589 * SECURITY-UPDATE: Fix potential PNG decompression DOS - debian/patches/pillow-CVE-2014-9601.patch: Fix PNG decompresson DOS - CVE-2014-9601 -- Emily Ratliff Mon, 26 Sep 2016 18:03:27 -0500 pillow (2.3.0-1ubuntu3) trusty; urgency=medium * SECURITY UPDATE: insecure use of temporary files - debian/patches/CVE-2014-193x.patch: use tempfile.mkstemp() in PIL/EpsImagePlugin.py, PIL/Image.py, PIL/IptcImagePlugin.py, PIL/JpegImagePlugin.py. - CVE-2014-1932 - CVE-2014-1933 -- Marc Deslauriers Mon, 31 Mar 2014 10:07:00 -0400 pillow (2.3.0-1ubuntu2) trusty; urgency=medium * No-change rebuild to drop Python 3.3 support. -- Matthias Klose Sun, 23 Mar 2014 15:28:42 +0000 pillow (2.3.0-1ubuntu1) trusty; urgency=medium * Merge with Debian; remaining changes: - Provide transitional packages. -- Matthias Klose Tue, 04 Feb 2014 14:51:27 +0100 pillow (2.3.0-1) unstable; urgency=medium * New upstream version. * Don't ship the color profiles in the source and disable the tests using the profiles. Closes: #737425. * Support a webp file in $ADTTMP in the testsuite, and generate it in the autopktests. Closes: #736242. -- Matthias Klose Tue, 04 Feb 2014 15:02:06 +0100 pillow (2.2.1-3ubuntu6) trusty; urgency=medium * Support a webp file in $ADTTMP in the testsuite, and generate it in the autopktests. -- Iain Lane Tue, 21 Jan 2014 12:11:02 +0000 pillow (2.2.1-3ubuntu5) trusty; urgency=medium * No-change rebuild for libwebp transition -- Iain Lane Mon, 20 Jan 2014 12:18:23 +0000 pillow (2.2.1-3ubuntu4) trusty; urgency=medium * No-change rebuild for Tcl/Tk 8.6. -- Matthias Klose Fri, 03 Jan 2014 01:55:28 +0100 pillow (2.2.1-3ubuntu3) trusty; urgency=medium * No change rebuild for python3.4. -- Matthias Klose Thu, 26 Dec 2013 00:54:13 +0100 pillow (2.2.1-3ubuntu2) trusty; urgency=medium * Include test images for the lcms2 support. -- Matthias Klose Mon, 16 Dec 2013 15:29:17 +0100 pillow (2.2.1-3ubuntu1) trusty; urgency=medium * Merge with Debian; remaining changes: - Provide transitional packages. -- Matthias Klose Mon, 16 Dec 2013 13:17:57 +0100 pillow (2.2.1-3) unstable; urgency=low * Add PngImagePlugin.py to PILcompat directory. * Add autopkgtest. Closes: #729462. * Build using lcms2. * Build with WebP support. Closes: #707827. -- Matthias Klose Mon, 16 Dec 2013 12:49:38 +0100 pillow (2.2.1-2) unstable; urgency=low * Fix build failure with new freetype header layout. -- Matthias Klose Mon, 02 Dec 2013 18:54:44 +0100 pillow (2.2.1-1) unstable; urgency=low * New upstream version, package source as pillow. * python-imaging: Breaks fretsonfire-game (<= 1.3.110.dfsg-3). Closes: #729209. -- Matthias Klose Mon, 11 Nov 2013 23:48:20 +0000 python-imaging (1.1.7+2.0.0-1.1) unstable; urgency=low * Non-maintainer upload * Rename python3-imaging* packages to python3-pil* * Rename python-imaging to python-pil and python-imaging-compat to python-imaging (use python-imaging until given package imports Image directly, i.e. needs .pth file) * Rename python-imaging-tk to python-pil.imagetk, provide the old name * Rename python-imaging-sane to python-sane, provide the old name * Rename other python-imaging-* packages to python-pil-* and Provide the old names -- Piotr Ożarowski Sun, 20 Oct 2013 22:23:11 +0200 python-imaging (1.1.7+2.0.0-1) experimental; urgency=low * Pillow 2.0.0 release. -- Matthias Klose Wed, 20 Mar 2013 16:44:01 -0700 python-imaging (1.1.7+1.7.8-4) experimental; urgency=low * Require python-defaults (>= 2.7.3-11) for the build. Closes: #700716. -- Matthias Klose Thu, 28 Feb 2013 14:59:19 +0100 python-imaging (1.1.7+1.7.8-3) experimental; urgency=low * Fix python-tk build dependencies. Closes: #700716. -- Matthias Klose Mon, 18 Feb 2013 02:24:36 +0100 python-imaging (1.1.7+1.7.8-2) experimental; urgency=low * Add python-imaging-compat modules to get back the old top-level module names (i.e. not subpackages within PIL) for Python 2 only. * python-imaging: Depend on python-imaging-compat for now. -- Matthias Klose Sun, 10 Feb 2013 16:48:37 +0100 python-imaging (1.1.7+1.7.8-1) experimental; urgency=low * Build from the Pillow fork, version 1.7.8, plus vcs updates. * Build using setuptools. * Build python3 packages, using port by Brian Crowell. * Allow the package to cross-build. -- Matthias Klose Thu, 31 Jan 2013 18:52:38 +0100 python-imaging (1.1.7-4) unstable; urgency=low * Add multiarch search directories as given by dpkg-architecture. This re-enables support for: tkinter, jpeg, zlib, freetype2, and littlecms (Marc Tardif, Barry Warsaw). LP: #806661. Closes: #632962, #632180. * Build using libjpeg8. -- Matthias Klose Sat, 09 Jul 2011 11:56:15 +0200 python-imaging (1.1.7-3) unstable; urgency=low * Fix buffer overflow (taken from Fedora). * Fix "split after open" bug. Closes: #561965. * Remove obsolete conflicts/replaces. -- Matthias Klose Tue, 28 Jun 2011 18:54:43 +0200 python-imaging (1.1.7-2) unstable; urgency=low * Build-depend on liblcms1-dev. Closes: #583620. * Build using dh_python2 instead of dh_pycentral. -- Matthias Klose Mon, 26 Jul 2010 11:46:12 +0200 python-imaging (1.1.7-1) unstable; urgency=low * New upstream version. -- Matthias Klose Fri, 20 Nov 2009 19:22:59 +0100 python-imaging (1.1.6-3.2) unstable; urgency=low * Non-maintainer upload. * Fix "manipulates site-packages/ directly, failing with Python 2.6" Applied and uploaded Kumar's patch. (Closes: #547844) -- Bastian Venthur Sat, 07 Nov 2009 12:54:12 +0100 python-imaging (1.1.6-3.1) unstable; urgency=low * Non-maintainer upload. * Switch from Tcl/Tk 8.4 to 8.5, following the move initiated in python-tk 2.5.2-1.1 (See: #521078): - Build-Depends on tk8.5-dev rather than tk8.4-dev. - Build-Depends on python-tk-dbg (>= 2.5.2-1.1) rather than python-tk-dbg (>= 2.4.3). - Depends on/Recommends python-tk (>= 2.5.2-1.1) rathen than python-tk (>= 2.4.3). - Use /usr/include/tcl8.5 in setup.py, instead of tcl8.4 Thanks to Jakub Wilk for the patch on which this is based, which fixes the FTBFS (Closes: #537003). -- Cyril Brulebois Thu, 03 Sep 2009 05:04:46 +0200 python-imaging (1.1.6-3) unstable; urgency=low * Do not build-depend on python-numarray, it's deprecated. Closes: #478466. * Merge from Ubuntu: - In __array_interface__ add support for 16bit TIF images (Luke Campagnola). LP: #198892. - Search for available image viewers. LP: #67755. Closes: #321658. -- Matthias Klose Mon, 23 Jun 2008 21:52:59 +0200 python-imaging (1.1.6-2) unstable; urgency=low * Build-depend on python-tk-dbg. Closes: #460372. * Apply fix for PIL not saving TIFF dpi correctly. Closes: #419463. -- Matthias Klose Mon, 28 Jan 2008 23:40:28 +0100 python-imaging (1.1.6-1) unstable; urgency=low * New upstream version. * Merge from Ubuntu: - Build python-debug packages. - Add build dependency on python-numarray-dbg. - Sane/_sane.c: Initialize variable. Ubuntu #88059. -- Matthias Klose Thu, 24 May 2007 06:31:21 +0200 python-imaging (1.1.5-11) unstable; urgency=low * python-imaging-sane: Depend on python-numarray. Closes: #382190. * Add dependencies on ${shlibs:Depends}, lost in -6. Closes: #378596. -- Matthias Klose Mon, 28 Aug 2006 23:14:10 +0000 python-imaging (1.1.5-10) unstable; urgency=low * pilfont.py: Add interpreter name. Closes: #350146. -- Matthias Klose Sat, 8 Jul 2006 00:07:36 +0000 python-imaging (1.1.5-9) unstable; urgency=low * Call dh_python before dh_pycentral. -- Matthias Klose Wed, 14 Jun 2006 23:16:29 +0000 python-imaging (1.1.5-8) unstable; urgency=low * Do not depend on python2.4. -- Matthias Klose Tue, 13 Jun 2006 22:47:12 +0000 python-imaging (1.1.5-7) unstable; urgency=low * Readd the provides for the versioned packages. -- Matthias Klose Fri, 9 Jun 2006 16:06:45 +0000 python-imaging (1.1.5-6) unstable; urgency=low * New maintainer. * Convert to python-central. -- Matthias Klose Tue, 6 Jun 2006 23:05:06 +0000 python-imaging (1.1.5-5) unstable; urgency=low * Test build using python-central. -- Matthias Klose Tue, 24 Jan 2006 18:15:59 +0000 python-imaging (1.1.5-4) unstable; urgency=low * Change section to python. * Remove binaries from python2.4-imaging package (closes: #316917). * Acknowledge NMU (1.1.4-3.1). Closes: #303897. -- Matthias Klose Tue, 12 Jul 2005 18:13:33 +0000 python-imaging (1.1.5-3) unstable; urgency=low * Fix upgrade from old python2.3-imaging package (closes: #316917). -- Matthias Klose Fri, 8 Jul 2005 13:29:34 +0000 python-imaging (1.1.5-2) unstable; urgency=low * Move the binary scripts into the python-imaging package. -- Matthias Klose Wed, 29 Jun 2005 11:18:24 +0200 python-imaging (1.1.5-0ubuntu1) breezy; urgency=low * Synchronise with Debian. -- Matthias Klose Mon, 27 Jun 2005 22:00:16 +0200 python-imaging (1.1.5-1) unstable; urgency=low * New upstream version (closes: #303067). * Merge changes from Ubuntu: - Add python2.4 packages, drop python2.1 and python2.2 packages. Closes: #292567. -- Matthias Klose Mon, 27 Jun 2005 20:21:06 +0200 python-imaging (1.1.4-3.1) unstable; urgency=low * NMU. * debian/control: Build-Depends: change libjpegg-dev to libjpeg-dev. (Closes: #303897). Thanks Daniel Schepler. -- Bill Allombert Thu, 14 Apr 2005 18:10:45 +0200 python-imaging (1.1.4-3) unstable; urgency=low * New maintainer. - ACKing NMUs. - No longer use dpatch -- they were introduced by the first NMU; I tend to use a real source management system. ;-) * Reworded a few Description: tags to shut up Lintian. -- Matthias Urlichs Mon, 5 Jan 2004 19:00:21 +0100 python-imaging (1.1.4-2.2) unstable; urgency=low * NMU from Minneapolis BSP. * Fixed freetype header reference. (Closes: #222469) -- Scott Dier Sat, 13 Dec 2003 23:26:22 -0600 python-imaging (1.1.4-2.1) unstable; urgency=low * Non-maintainer upload * use dh_python, which needs build-depends on python (Closes: #188146) - removal of .py[co] files * Standards version 3.6.1 * use dpatch: - 01_fix_png_text_parsing (Closes: #211712) - 02_fix_olefileio_typo (Closes: #197165) (Closes: #198210) - 03_remove_rexec_usage (Closes: #182149) - 04_retain_gif_transparency (Closes: #159693) - 05_dump_to_jpeg (Closes: #146493) * install docs in python-imaging-doc package (Closes: #176420) * Sane patch already applied (Closes: #156158) * add mime-support | python(X.Y)-imaging-tk to depends, because the Image.show() function uses either TkImage or _showmime * improve -tk package description (Closes: #209976) -- Bastian Kleineidam Sat, 4 Oct 2003 16:57:59 +0200 python-imaging (1.1.4-2) unstable; urgency=low * New source version due to the fact that testing cannot handle all- architecture binary-only uploads (Closes: #212853) -- Simon Richter Tue, 30 Sep 2003 02:45:34 +0200 python-imaging (1.1.4-1) unstable; urgency=low * New upstream release -- Simon Richter Thu, 10 Apr 2003 17:49:10 +0200 python-imaging (1.1.3-4) unstable; urgency=low * Accepted changes from NMU, although I still don't like distutils for being opaque (Actually closes: #161120, #161718, #162065) * We now use Tcl/Tk 8.4 -- Simon Richter Tue, 26 Nov 2002 16:49:50 +0100 python-imaging (1.1.3-3.3) unstable; urgency=low * Add python2.[123]-tk to the build dependencies. -- Matthias Klose Thu, 3 Oct 2002 14:38:11 +0200 python-imaging (1.1.3-3.1) unstable; urgency=low * NMU. * Build using distutils (closes: #161120, #161718, #162065). -- Matthias Klose Sat, 28 Sep 2002 15:28:40 +0200 python-imaging (1.1.3-3) unstable; urgency=low * Added Python 2.3 support -- Simon Richter Sun, 15 Sep 2002 18:10:28 +0200 python-imaging (1.1.3-2) unstable; urgency=low * Also switched python-imaging-sane and python-imaging-tk to 2.2 as default version * Dropped python 1.5 packages -- Simon Richter Thu, 29 Aug 2002 14:53:50 +0200 python-imaging (1.1.3-1.1) unstable; urgency=low * Change python default to python2.2. -- Matthias Klose Sat, 24 Aug 2002 14:02:03 +0200 python-imaging (1.1.3-1) unstable; urgency=low * New upstream release (Closes: #138739) -- Simon Richter Fri, 22 Mar 2002 15:46:31 +0100 python-imaging (1.1.2-5) unstable; urgency=low * Applied a patch from CVS that fixes an invalid call to __init__ without an object reference (Closes: #133272) * Made Image.show() use the generic "see" command rather than "xv" (Closes: #133078) -- Simon Richter Mon, 11 Feb 2002 20:41:29 +0100 python-imaging (1.1.2-4) unstable; urgency=low * Acknowledged changes from NMU (Closes: #117859, #118267) -- Simon Richter Fri, 18 Jan 2002 15:26:24 +0100 python-imaging (1.1.2-3.2) unstable; urgency=low * NMU, coordinated with maintainer, to make package compliant with the new Debian Python policy draft (#117859, #118267): - python2 packages removed - new python1.5, python2.1 and python2.2 packages - python-* packages are empty placeholders for the default Python version packages, 2.1. -- Gregor Hoffleit Fri, 9 Nov 2001 10:43:35 +0100 python-imaging (1.1.2-3.1) unstable; urgency=low * NMU. Build with python (2.1), remove python2 packages. -- Matthias Klose Fri, 9 Nov 2001 07:42:52 +0100 python-imaging (1.1.2-3) unstable; urgency=low * Indented the lists in the description fields, so dselect knows these are preformatted (Closes: #106439). -- Simon Richter Tue, 24 Jul 2001 18:06:39 +0200 python-imaging (1.1.2-2) unstable; urgency=low * Added an rm to the configure target so ImConfig.h (which upstream forgot to delete) is removed before the build. For some reason it took precedence over the generated ImConfig.h from configure (Closes: #105999) * Removed an unnecessary (for Debian) -I/usr/local/include which apparently slipped through -- Simon Richter Sat, 21 Jul 2001 15:55:10 +0200 python-imaging (1.1.2-1) unstable; urgency=low * New upstream release * Split out documentation into python-imaging-doc-handbook package -- Simon Richter Sat, 9 Jun 2001 19:23:51 +0200 python-imaging (1.1.1.ds1-6) unstable; urgency=low * Fixed debian/rules to take the version number from the changelog rather than hardcoded -- Simon Richter Tue, 8 May 2001 02:11:15 +0200 python-imaging (1.1.1.ds1-5) unstable; urgency=low * Took over maintainership (Closes: #72435) -- Simon Richter Tue, 8 May 2001 02:10:16 +0200 python-imaging (1.1.1.ds1-4) unstable; urgency=low * Add zlib1g-dev to build dependencies (fixes #89705). * Build python2-imaging with correct python version (fixes #90567). -- Matthias Klose Thu, 29 Mar 2001 20:19:53 +0200 python-imaging (1.1.1.ds1-3) unstable; urgency=low * Fix dependencies. -- Matthias Klose Sat, 3 Mar 2001 17:56:08 +0100 python-imaging (1.1.1.ds1-2) unstable; urgency=low * Rebuild for tk8.3. * New python2 packages. * Reorganized source code, so version number has to change in source. -- Matthias Klose Sat, 24 Feb 2001 18:46:58 +0100 python-imaging (1.1.1-1) unstable; urgency=low * New upstream version. -- Matthias Klose Tue, 28 Nov 2000 11:19:12 +0100 python-imaging (1.1-2) unstable; urgency=low * debian/control: Add missing build dependencies (fixes #66393). * Link module with shared libs (jpeg, z). Fixes #66653. -- Matthias Klose Mon, 3 Jul 2000 14:56:30 +0200 python-imaging (1.1-1) unstable; urgency=low * New upstream release. * Add manual in PDF format. -- Matthias Klose Mon, 26 Jun 2000 16:39:31 +0200 python-imaging (1.0.1-3) frozen unstable; urgency=low * Add cascading stylesheet labdoc.css (fixes #63052). * Move ImageTk.py to python-imaging-tk package (fixes part of #63050). -- Matthias Klose Thu, 4 May 2000 01:07:41 +0200 python-imaging (1.0.1-2) frozen unstable; urgency=low * debian/python-imaging-doc.doc-base: Missing /usr/doc -> /usr/share/doc transition (fixes important #56372). -- Matthias Klose Sat, 19 Feb 2000 10:41:04 +0100 python-imaging (1.0.1-1) unstable; urgency=low * /usr/doc -> /usr/share/doc transition. * Apply patch from Erno Kuusela (closes #50768). -- Matthias Klose Sun, 5 Dec 1999 17:56:48 +0100 python-imaging (1.0.1-0pre2) unstable; urgency=low * debian/control: Add conflicts for python-pil (closes: #43736). -- Matthias Klose Sat, 4 Sep 1999 14:33:05 +0200 python-imaging (1.0.1-0pre1) unstable; urgency=low * New upstream release. * Renamed package to match upstream name (Imaging-1.0.1). * Separated out Tk dependencies to python-pil-tk package (fixes #41690). * Build python-imaging-sane package. -- Matthias Klose Sun, 15 Aug 1999 21:22:07 +0200 python-pil (1.0final-1) unstable; urgency=low * New upstream release. * Now really depends on python-tk (Closes #41690). * Separated out python-pil-doc and python-pil-scripts package. -- Matthias Klose Wed, 4 Aug 1999 19:46:00 +0200 python-pil (1.0b1-1) unstable; urgency=low * New upstream release. * Fixes #34902. -- Matthias Klose Sun, 28 Mar 1999 10:59:57 +0200 python-pil (0.3b2-3) frozen unstable; urgency=low * Corrected location of doc files (fixes #30735). -- Matthias Klose Tue, 15 Dec 1998 14:57:43 +0100 python-pil (0.3b2-2) frozen unstable; urgency=low * Renamed package pil to python-pil to conform to Debian python policy (fixes #27495). * Link against ncurses4. -- Matthias Klose Thu, 26 Nov 1998 23:55:11 +0200 python-pil (0.3b2-2) unstable; urgency=low * Build dynamically loadable Tcl module `PIL'. -- Matthias Klose Tue, 11 Aug 1998 14:29:25 +0200 python-pil (0.3b2-1) unstable; urgency=low * New upstream release 0.3b2. * Added documentation from website -- Matthias Klose Tue, 21 Jul 1998 11:49:38 +0200 python-pil (0.3-0beta1.1) unstable; urgency=low * New upstream release 0.3b1. Includes pilfont. -- Matthias Klose Mon, 13 Jul 1998 18:58:12 +0200 python-pil (0.3-0alpha4.1) unstable; urgency=low * Initial Release. -- Matthias Klose Thu, 28 May 1998 16:35:22 +0200 debian/PILcompat/0000775000000000000000000000000012274167713011032 5ustar debian/PILcompat/PILcompat.pth0000664000000000000000000000001212105740706013360 0ustar PILcompat debian/PILcompat/setup.py0000664000000000000000000000051412105740706012534 0ustar from distutils.core import setup from distutils.sysconfig import get_python_lib setup( name='PILcompat', description='PIL compatibility hack', packages=['PILcompat'], author='Ubuntu Developers', author_email='ubuntu-devel-discuss@lists.ubuntu.com', data_files=[(get_python_lib(), ['PILcompat.pth'])], ) debian/PILcompat/PILcompat/0000775000000000000000000000000012253564560012660 5ustar debian/PILcompat/PILcompat/PSDraw.py0000664000000000000000000000003112105740706014356 0ustar from PIL.PSDraw import * debian/PILcompat/PILcompat/ImageChops.py0000664000000000000000000000003512105740706015241 0ustar from PIL.ImageChops import * debian/PILcompat/PILcompat/ImageFont.py0000664000000000000000000000003412105740706015072 0ustar from PIL.ImageFont import * debian/PILcompat/PILcompat/ImageTk.py0000664000000000000000000000003212105740706014540 0ustar from PIL.ImageTk import * debian/PILcompat/PILcompat/ImagePath.py0000664000000000000000000000003412105740706015060 0ustar from PIL.ImagePath import * debian/PILcompat/PILcompat/ImageSequence.py0000664000000000000000000000004012105740706015731 0ustar from PIL.ImageSequence import * debian/PILcompat/PILcompat/PngImagePlugin.py0000664000000000000000000000004112253564560016073 0ustar from PIL.PngImagePlugin import * debian/PILcompat/PILcompat/ImageWin.py0000664000000000000000000000003312105740706014720 0ustar from PIL.ImageWin import * debian/PILcompat/PILcompat/ImageGL.py0000664000000000000000000000003212105740706014464 0ustar from PIL.ImageGL import * debian/PILcompat/PILcompat/ImageDraw.py0000664000000000000000000000003412105740706015061 0ustar from PIL.ImageDraw import * debian/PILcompat/PILcompat/ImageFileIO.py0000664000000000000000000000003612105740706015275 0ustar from PIL.ImageFileIO import * debian/PILcompat/PILcompat/ImageCrackCode.py0000664000000000000000000000004112105740706016000 0ustar from PIL.ImageCrackCode import * debian/PILcompat/PILcompat/ImageQt.py0000664000000000000000000000003212105740706014546 0ustar from PIL.ImageQt import * debian/PILcompat/PILcompat/ImageColor.py0000664000000000000000000000003512105740706015243 0ustar from PIL.ImageColor import * debian/PILcompat/PILcompat/ImageStat.py0000664000000000000000000000003412105740706015077 0ustar from PIL.ImageStat import * debian/PILcompat/PILcompat/ImageFilter.py0000664000000000000000000000003612105740706015413 0ustar from PIL.ImageFilter import * debian/PILcompat/PILcompat/ImagePalette.py0000664000000000000000000000003712105740706015565 0ustar from PIL.ImagePalette import * debian/PILcompat/PILcompat/ImageOps.py0000664000000000000000000000003312105740706014724 0ustar from PIL.ImageOps import * debian/PILcompat/PILcompat/ImageEnhance.py0000664000000000000000000000003712105740706015530 0ustar from PIL.ImageEnhance import * debian/PILcompat/PILcompat/Image.py0000664000000000000000000000003012105740706014237 0ustar from PIL.Image import * debian/PILcompat/PILcompat/ImageGrab.py0000664000000000000000000000003412105740706015037 0ustar from PIL.ImageGrab import * debian/PILcompat/PILcompat/ImageFile.py0000664000000000000000000000003412105740706015043 0ustar from PIL.ImageFile import * debian/PILcompat/PILcompat/ImageMath.py0000664000000000000000000000003412105740706015055 0ustar from PIL.ImageMath import * debian/source/0000775000000000000000000000000012274165612010476 5ustar debian/source/format0000664000000000000000000000001412047130125011671 0ustar 3.0 (quilt) debian/compat0000664000000000000000000000000212047127217010371 0ustar 5 debian/patches/0000775000000000000000000000000013060544507010623 5ustar debian/patches/no-lib64-hack.diff0000664000000000000000000000231612274163142013713 0ustar Index: b/setup.py =================================================================== --- a/setup.py +++ b/setup.py @@ -216,26 +216,6 @@ pass # homebrew not installed elif sys.platform.startswith("linux"): - for platform_ in (plat.processor(), plat.architecture()[0]): - - if not platform_: - continue - - if platform_ in ["x86_64", "64bit"]: - _add_directory(library_dirs, "/lib64") - _add_directory(library_dirs, "/usr/lib64") - _add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu") - break - elif platform_ in ["i386", "i686", "32bit"]: - _add_directory(library_dirs, "/usr/lib/i386-linux-gnu") - break - else: - raise ValueError( - "Unable to identify Linux platform: `%s`" % platform_) - - # XXX Kludge. Above /\ we brute force support multiarch. Here we - # try Barry's more general approach. Afterward, something should - # work ;-) self.add_multiarch_paths() elif sys.platform.startswith("netbsd"): debian/patches/pillow-CVE-2014-3589.patch0000664000000000000000000000111412772325062014556 0ustar Description: Icns DOS fix (CVE-2014-3589) Origin: based on upstream, 205e056f8f9b06ed7b925cf8aa0874bc4aaf8a7d Forwarded: not-needed Last-Update: 2016-09-26 --- pillow-2.3.0.orig/PIL/IcnsImagePlugin.py +++ pillow-2.3.0/PIL/IcnsImagePlugin.py @@ -120,6 +120,8 @@ class IcnsFile: i = HEADERSIZE while i < filesize: sig, blocksize = nextheader(fobj) + if blocksize <= 0: + raise SyntaxError('invalid block header') i = i + HEADERSIZE blocksize = blocksize - HEADERSIZE dct[sig] = (i, blocksize) debian/patches/generate-webp-file0000664000000000000000000000131212274375776014225 0ustar Index: b/Tests/test_file_webp.py =================================================================== --- a/Tests/test_file_webp.py +++ b/Tests/test_file_webp.py @@ -1,6 +1,7 @@ from tester import * from PIL import Image +import os try: from PIL import _webp @@ -27,7 +28,11 @@ assert_no_exception(lambda: image.getdata()) # generated with: dwebp -ppm ../../Images/lena.webp -o lena_webp_bits.ppm - target = Image.open('Tests/images/lena_webp_bits.ppm') + if 'ADTTMP' in os.environ: + target = Image.open(os.path.join(os.environ['ADTTMP'], 'lena_webp.ppm')) + else: + target = Image.open('Tests/images/lena_webp_bits.ppm') + assert_image_equal(image, target) debian/patches/series0000664000000000000000000000046113060525074012037 0ustar no-lib64-hack.diff toplevel-setup.py generate-webp-file disable-icm-tests.diff CVE-2014-193x.patch pillow-CVE-2016-0740.patch pillow-CVE-2016-0775.patch pillow-CVE-2014-3589.patch pillow-CVE-2016-2533.patch pillow-CVE-2014-9601-pre.patch pillow-CVE-2014-9601.patch CVE-2016-9189.patch CVE-2016-9190.patch debian/patches/toplevel-setup.py0000664000000000000000000001414512274163367014201 0ustar Index: b/setup.py =================================================================== --- a/setup.py +++ b/setup.py @@ -15,7 +15,13 @@ import sys from distutils.command.build_ext import build_ext -from distutils import sysconfig +try: + import sysconfig + host_platform = sysconfig.get_platform() +except: + from distutils import sysconfig + host_platform = sys.platform + from setuptools import Extension, setup, find_packages @@ -82,6 +88,7 @@ import _tkinter except ImportError: _tkinter = None + print('XXXXX _tkinter not found XXXXX') NAME = 'Pillow' @@ -138,6 +145,38 @@ if getattr(self, 'enable_%s' % x): self.feature.required.append(x) + def add_gcc_paths(self): + gcc = sysconfig.get_config_var('CC') + tmpfile = os.path.join(self.build_temp, 'gccpaths') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + ret = os.system('%s -E -v - %s 1>/dev/null' % (gcc, tmpfile)) + is_gcc = False + in_incdirs = False + inc_dirs = [] + lib_dirs = [] + try: + if ret >> 8 == 0: + with open(tmpfile) as fp: + for line in fp.readlines(): + if line.startswith("gcc version"): + is_gcc = True + elif line.startswith("#include <...>"): + in_incdirs = True + elif line.startswith("End of search list"): + in_incdirs = False + elif is_gcc and line.startswith("LIBRARY_PATH"): + for d in line.strip().split("=")[1].split(":"): + d = os.path.normpath(d) + if '/gcc/' not in d: + _add_directory(self.compiler.library_dirs, + d) + elif is_gcc and in_incdirs and '/gcc/' not in line: + _add_directory(self.compiler.include_dirs, + line.strip()) + finally: + os.unlink(tmpfile) + def build_extensions(self): global TCL_ROOT @@ -186,12 +225,12 @@ # # add platform directories - if sys.platform == "cygwin": + if host_platform == "cygwin": # pythonX.Y.dll.a is in the /usr/lib/pythonX.Y/config directory _add_directory(library_dirs, os.path.join( "/usr/lib", "python%s" % sys.version[:3], "config")) - elif sys.platform == "darwin": + elif host_platform == "darwin": # attempt to make sure we pick freetype2 over other versions _add_directory(include_dirs, "/sw/include/freetype2") _add_directory(include_dirs, "/sw/lib/freetype2/include") @@ -215,10 +254,10 @@ except: pass # homebrew not installed - elif sys.platform.startswith("linux"): + elif host_platform.startswith("linux"): self.add_multiarch_paths() - elif sys.platform.startswith("netbsd"): + elif host_platform.startswith("netbsd"): _add_directory(library_dirs, "/usr/pkg/lib") _add_directory(include_dirs, "/usr/pkg/include") @@ -285,7 +324,7 @@ if _find_include_file(self, "zlib.h"): if _find_library_file(self, "z"): feature.zlib = "z" - elif sys.platform == "win32" and _find_library_file(self, "zlib"): + elif host_platform == "win32" and _find_library_file(self, "zlib"): feature.zlib = "zlib" # alternative name if feature.want('jpeg'): @@ -293,16 +332,16 @@ if _find_library_file(self, "jpeg"): feature.jpeg = "jpeg" elif ( - sys.platform == "win32" and + host_platform == "win32" and _find_library_file(self, "libjpeg")): feature.jpeg = "libjpeg" # alternative name if feature.want('tiff'): if _find_library_file(self, "tiff"): feature.tiff = "tiff" - if sys.platform == "win32" and _find_library_file(self, "libtiff"): + if host_platform == "win32" and _find_library_file(self, "libtiff"): feature.tiff = "libtiff" - if sys.platform == "darwin" and _find_library_file(self, "libtiff"): + if host_platform == "darwin" and _find_library_file(self, "libtiff"): feature.tiff = "libtiff" if feature.want('freetype'): @@ -384,7 +423,7 @@ if feature.tiff: libs.append(feature.tiff) defs.append(("HAVE_LIBTIFF", None)) - if sys.platform == "win32": + if host_platform == "win32": libs.extend(["kernel32", "user32", "gdi32"]) if struct.unpack("h", "\0\1".encode('ascii'))[0] == 1: defs.append(("WORDS_BIGENDIAN", None)) @@ -409,7 +448,7 @@ if os.path.isfile("_imagingcms.c") and feature.lcms: extra = [] - if sys.platform == "win32": + if host_platform == "win32": extra.extend(["user32", "gdi32"]) exts.append(Extension( "PIL._imagingcms", ["_imagingcms.c"], libraries=["lcms2"] + extra)) @@ -426,7 +465,7 @@ exts.append(Extension( "PIL._webp", ["_webp.c"], libraries=libs, define_macros=defs)) - if sys.platform == "darwin": + if host_platform == "darwin": # locate Tcl/Tk frameworks frameworks = [] framework_roots = [ @@ -477,7 +516,7 @@ print("-" * 68) print("version Pillow %s" % VERSION) v = sys.version.split("[") - print("platform %s %s" % (sys.platform, v[0].strip())) + print("platform %s %s" % (host_platform, v[0].strip())) for v in v[1:]: print(" [%s" % v.strip()) print("-" * 68) debian/patches/CVE-2016-9190.patch0000664000000000000000000000400613060544507013247 0ustar Backport of: From 5d8a0be45aad78c5a22c8d099118ee26ef8144af Mon Sep 17 00:00:00 2001 From: wiredfool Date: Sun, 25 Sep 2016 10:44:22 +0100 Subject: [PATCH] Memory error in Storage.c when accepting negative image size arguments --- Tests/images/negative_size.ppm | 1 + Tests/test_file_ppm.py | 12 ++++++++++++ libImaging/Storage.c | 4 ++++ 3 files changed, 17 insertions(+) create mode 100755 Tests/images/negative_size.ppm Index: pillow-2.3.0/Tests/images/negative_size.ppm =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ pillow-2.3.0/Tests/images/negative_size.ppm 2017-03-10 10:16:12.701584730 -0500 @@ -0,0 +1 @@ +P632 358888888632! Index: pillow-2.3.0/Tests/test_file_ppm.py =================================================================== --- pillow-2.3.0.orig/Tests/test_file_ppm.py 2017-03-10 10:16:12.705584775 -0500 +++ pillow-2.3.0/Tests/test_file_ppm.py 2017-03-10 10:41:53.218666060 -0500 @@ -12,3 +12,15 @@ assert_equal(im.mode, "RGB") assert_equal(im.size, (128, 128)) assert_equal(im.format, "PPM") + +def test_neg_ppm(): + """test_neg_ppm + + Storage.c accepted negative values for xsize, ysize. + open_ppm is a core debugging item that doesn't check any parameters for + sanity. + """ + + assert_exception(ValueError, lambda: Image.core.open_ppm('Tests/images/negative_size.ppm')) + + Index: pillow-2.3.0/libImaging/Storage.c =================================================================== --- pillow-2.3.0.orig/libImaging/Storage.c 2017-03-10 10:16:12.705584775 -0500 +++ pillow-2.3.0/libImaging/Storage.c 2017-03-10 10:16:12.701584730 -0500 @@ -379,6 +379,10 @@ } else bytes = strlen(mode); /* close enough */ + if (xsize < 0 || ysize < 0) { + return (Imaging) ImagingError_ValueError("bad image size"); + } + if ((Py_ssize_t) xsize * ysize * bytes <= THRESHOLD) { im = ImagingNewBlock(mode, xsize, ysize); if (im) debian/patches/CVE-2016-9189.patch0000664000000000000000000000221213060524406013250 0ustar Description: fix information disclosure via crafted image Origin: upstream, https://github.com/python-pillow/Pillow/commit/c50ebe6459a131a1ea8ca531f10da616d3ceaa0f Origin: upstream, https://github.com/python-pillow/Pillow/commit/7d6f4104a114d106cd9502e040a78e793fb72393 Origin: upstream, https://github.com/python-pillow/Pillow/commit/a662443b7f3fe394115d2eb9d71fb956b3848063 Bug: https://github.com/python-pillow/Pillow/issues/2105 Index: pillow-2.3.0/map.c =================================================================== --- pillow-2.3.0.orig/map.c 2017-03-10 08:24:20.163155775 -0500 +++ pillow-2.3.0/map.c 2017-03-10 08:24:20.163155775 -0500 @@ -354,8 +354,18 @@ stride = xsize * 4; } + if (stride > 0 && ysize > INT_MAX / stride) { + PyErr_SetString(PyExc_MemoryError, "Integer overflow in ysize"); + return NULL; + } + size = (Py_ssize_t) ysize * stride; + if (offset > PY_SSIZE_T_MAX - size) { + PyErr_SetString(PyExc_MemoryError, "Integer overflow in offset"); + return NULL; + } + /* check buffer size */ if (PyImaging_GetBuffer(target, &view) < 0) return NULL; debian/patches/pillow-CVE-2016-0740.patch0000664000000000000000000000077512772324715014562 0ustar Description: fix for buffer overflow in TiffDecode.c (CVE-2016-0740) Origin: based on upstream, 4cc6b8c92b0afb6f8712c17ce39ddb2bb308dd8f Forwarded: not-needed Last-Update: 2016-09-26 --- pillow-2.3.0.orig/libImaging/TiffDecode.c +++ pillow-2.3.0/libImaging/TiffDecode.c @@ -168,7 +168,7 @@ int ImagingLibTiffDecode(Imaging im, Ima char *filename = "tempfile.tif"; char *mode = "r"; TIFF *tiff; - int size; + tsize_t size; /* buffer is the encoded file, bytes is the length of the encoded file */ debian/patches/disable-icm-tests.diff0000664000000000000000000000056312274164130014766 0ustar Index: b/Tests/run.py =================================================================== --- a/Tests/run.py +++ b/Tests/run.py @@ -40,6 +40,8 @@ for file in files: test, ext = os.path.splitext(os.path.basename(file)) + if test == 'test_imagecms': + continue if include and test not in include: continue print("running", test, "...") debian/patches/CVE-2014-193x.patch0000664000000000000000000001257612316273371013363 0ustar Description: fix insecure use of temporary files Origin: backport, https://github.com/wiredfool/Pillow/commit/a549e77bd8219a75ac745dcecc09cb963b4032a6 Origin: backport, https://github.com/wiredfool/Pillow/commit/1e331e3e6a40141ca8eee4f5da9f74e895423b66 Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737059 Index: pillow-2.3.0/PIL/EpsImagePlugin.py =================================================================== --- pillow-2.3.0.orig/PIL/EpsImagePlugin.py 2013-12-28 03:33:26.000000000 -0500 +++ pillow-2.3.0/PIL/EpsImagePlugin.py 2014-03-31 10:06:46.768238362 -0400 @@ -67,16 +67,31 @@ import tempfile, os, subprocess - file = tempfile.mktemp() + out_fd, outfile = tempfile.mkstemp() + os.close(out_fd) + in_fd, infile = tempfile.mkstemp() + os.close(in_fd) + + with open(infile, 'wb') as f: + fp.seek(offset) + while length >0: + s = fp.read(100*1024) + if not s: + break + length = length - len(s) + f.write(s) # Build ghostscript command command = ["gs", - "-q", # quite mode - "-g%dx%d" % size, # set output geometry (pixels) - "-r%d" % (72*scale), # set input DPI (dots per inch) - "-dNOPAUSE -dSAFER", # don't pause between pages, safe mode - "-sDEVICE=ppmraw", # ppm driver - "-sOutputFile=%s" % file,# output file + "-q", # quiet mode + "-g%dx%d" % size, # set output geometry (pixels) + "-r%d" % (72*scale), # set input DPI (dots per inch) + "-dNOPAUSE -dSAFER", # don't pause between pages, safe mode + "-sDEVICE=ppmraw", # ppm driver + "-sOutputFile=%s" % outfile, # output file + "-c", "%d %d translate" % (-bbox[0], -bbox[1]), + # adjust for image origin + "-f", infile, # input file ] if gs_windows_binary is not None: @@ -87,23 +102,15 @@ # push data through ghostscript try: gs = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE) - # adjust for image origin - if bbox[0] != 0 or bbox[1] != 0: - gs.stdin.write(("%d %d translate\n" % (-bbox[0], -bbox[1])).encode('ascii')) - fp.seek(offset) - while length > 0: - s = fp.read(8192) - if not s: - break - length = length - len(s) - gs.stdin.write(s) gs.stdin.close() status = gs.wait() if status: raise IOError("gs failed (status %d)" % status) - im = Image.core.open_ppm(file) + im = Image.core.open_ppm(outfile) finally: - try: os.unlink(file) + try: + os.unlink(outfile) + os.unlink(infile) except: pass return im Index: pillow-2.3.0/PIL/Image.py =================================================================== --- pillow-2.3.0.orig/PIL/Image.py 2013-12-28 04:08:14.000000000 -0500 +++ pillow-2.3.0/PIL/Image.py 2014-03-31 10:06:46.768238362 -0400 @@ -495,14 +495,17 @@ self.readonly = 0 def _dump(self, file=None, format=None): - import tempfile + import tempfile, os if not file: - file = tempfile.mktemp() + f, file = tempfile.mkstemp(format or '') + os.close(f) + self.load() if not format or format == "PPM": self.im.save_ppm(file) else: - file = file + "." + format + if file.endswith(format): + file = file + "." + format self.save(file, format) return file Index: pillow-2.3.0/PIL/IptcImagePlugin.py =================================================================== --- pillow-2.3.0.orig/PIL/IptcImagePlugin.py 2013-12-28 03:33:26.000000000 -0500 +++ pillow-2.3.0/PIL/IptcImagePlugin.py 2014-03-31 10:06:46.768238362 -0400 @@ -172,8 +172,8 @@ self.fp.seek(offset) # Copy image data to temporary file - outfile = tempfile.mktemp() - o = open(outfile, "wb") + o_fd, outfile = tempfile.mkstemp(text=False) + o = os.fdopen(o_fd) if encoding == "raw": # To simplify access to the extracted file, # prepend a PPM header Index: pillow-2.3.0/PIL/JpegImagePlugin.py =================================================================== --- pillow-2.3.0.orig/PIL/JpegImagePlugin.py 2013-12-28 03:33:26.000000000 -0500 +++ pillow-2.3.0/PIL/JpegImagePlugin.py 2014-03-31 10:06:46.768238362 -0400 @@ -344,13 +344,17 @@ # ALTERNATIVE: handle JPEGs via the IJG command line utilities import tempfile, os - file = tempfile.mktemp() - os.system("djpeg %s >%s" % (self.filename, file)) + f, path = tempfile.mkstemp() + os.close(f) + if os.path.exists(self.filename): + os.system("djpeg '%s' >'%s'" % (self.filename, path)) + else: + raise ValueError("Invalid Filename") try: - self.im = Image.core.open_ppm(file) + self.im = Image.core.open_ppm(path) finally: - try: os.unlink(file) + try: os.unlink(path) except: pass self.mode = self.im.mode debian/patches/pillow-CVE-2014-9601-pre.patch0000664000000000000000000001670413060524235015336 0ustar From d594c0241aabeda6725fefc44ccc7f945c0464c9 Mon Sep 17 00:00:00 2001 From: hugovk Date: Wed, 21 May 2014 20:45:02 +0300 Subject: [PATCH] Rename len variables as length to avoid the built-in function name. --- PIL/PngImagePlugin.py | 78 +++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) Index: pillow-2.3.0/PIL/PngImagePlugin.py =================================================================== --- pillow-2.3.0.orig/PIL/PngImagePlugin.py 2017-03-10 08:22:15.969778713 -0500 +++ pillow-2.3.0/PIL/PngImagePlugin.py 2017-03-10 08:22:15.969778713 -0500 @@ -89,33 +89,33 @@ "Fetch a new chunk. Returns header information." if self.queue: - cid, pos, len = self.queue[-1] + cid, pos, length = self.queue[-1] del self.queue[-1] self.fp.seek(pos) else: s = self.fp.read(8) cid = s[4:] pos = self.fp.tell() - len = i32(s) + length = i32(s) if not is_cid(cid): raise SyntaxError("broken PNG file (chunk %s)" % repr(cid)) - return cid, pos, len + return cid, pos, length def close(self): self.queue = self.crc = self.fp = None - def push(self, cid, pos, len): + def push(self, cid, pos, length): - self.queue.append((cid, pos, len)) + self.queue.append((cid, pos, length)) - def call(self, cid, pos, len): + def call(self, cid, pos, length): "Call the appropriate chunk handler" if Image.DEBUG: - print("STREAM", cid, pos, len) - return getattr(self, "chunk_" + cid.decode('ascii'))(pos, len) + print("STREAM", cid, pos, length) + return getattr(self, "chunk_" + cid.decode('ascii'))(pos, length) def crc(self, cid, data): "Read and verify checksum" @@ -139,10 +139,10 @@ cids = [] while True: - cid, pos, len = self.read() + cid, pos, length = self.read() if cid == endchunk: break - self.crc(cid, ImageFile._safe_read(self.fp, len)) + self.crc(cid, ImageFile._safe_read(self.fp, length)) cids.append(cid) return cids @@ -190,10 +190,10 @@ self.im_tile = None self.im_palette = None - def chunk_iCCP(self, pos, len): + def chunk_iCCP(self, pos, length): # ICC profile - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) # according to PNG spec, the iCCP chunk contains: # Profile name 1-79 bytes (character string) # Null separator 1 byte (null character) @@ -213,10 +213,10 @@ self.im_info["icc_profile"] = icc_profile return s - def chunk_IHDR(self, pos, len): + def chunk_IHDR(self, pos, length): # image header - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) self.im_size = i32(s), i32(s[4:]) try: self.im_mode, self.im_rawmode = _MODES[(i8(s[8]), i8(s[9]))] @@ -228,30 +228,30 @@ raise SyntaxError("unknown filter category") return s - def chunk_IDAT(self, pos, len): + def chunk_IDAT(self, pos, length): # image data self.im_tile = [("zip", (0,0)+self.im_size, pos, self.im_rawmode)] - self.im_idat = len + self.im_idat = length raise EOFError - def chunk_IEND(self, pos, len): + def chunk_IEND(self, pos, length): # end of PNG image raise EOFError - def chunk_PLTE(self, pos, len): + def chunk_PLTE(self, pos, length): # palette - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) if self.im_mode == "P": self.im_palette = "RGB", s return s - def chunk_tRNS(self, pos, len): + def chunk_tRNS(self, pos, length): # transparency - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) if self.im_mode == "P": if _simple_palette.match(s): i = s.find(b"\0") @@ -265,17 +265,17 @@ self.im_info["transparency"] = i16(s), i16(s[2:]), i16(s[4:]) return s - def chunk_gAMA(self, pos, len): + def chunk_gAMA(self, pos, length): # gamma setting - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) self.im_info["gamma"] = i32(s) / 100000.0 return s - def chunk_pHYs(self, pos, len): + def chunk_pHYs(self, pos, length): # pixels per unit - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) px, py = i32(s), i32(s[4:]) unit = i8(s[8]) if unit == 1: # meter @@ -285,10 +285,10 @@ self.im_info["aspect"] = px, py return s - def chunk_tEXt(self, pos, len): + def chunk_tEXt(self, pos, length): # text - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) try: k, v = s.split(b"\0", 1) except ValueError: @@ -301,10 +301,10 @@ self.im_info[k] = self.im_text[k] = v return s - def chunk_zTXt(self, pos, len): + def chunk_zTXt(self, pos, length): # compressed text - s = ImageFile._safe_read(self.fp, len) + s = ImageFile._safe_read(self.fp, length) try: k, v = s.split(b"\0", 1) except ValueError: @@ -358,16 +358,16 @@ # # get next chunk - cid, pos, len = self.png.read() + cid, pos, length = self.png.read() try: - s = self.png.call(cid, pos, len) + s = self.png.call(cid, pos, length) except EOFError: break except AttributeError: if Image.DEBUG: - print(cid, pos, len, "(unknown)") - s = ImageFile._safe_read(self.fp, len) + print(cid, pos, length, "(unknown)") + s = ImageFile._safe_read(self.fp, length) self.png.crc(cid, s) @@ -388,7 +388,7 @@ rawmode, data = self.png.im_palette self.palette = ImagePalette.raw(rawmode, data) - self.__idat = len # used by load_read() + self.__idat = length # used by load_read() def verify(self): @@ -421,13 +421,13 @@ self.fp.read(4) # CRC - cid, pos, len = self.png.read() + cid, pos, length = self.png.read() if cid not in [b"IDAT", b"DDAT"]: - self.png.push(cid, pos, len) + self.png.push(cid, pos, length) return b"" - self.__idat = len # empty chunks are allowed + self.__idat = length # empty chunks are allowed # read more data from this chunk if bytes <= 0: @@ -580,7 +580,7 @@ else: if "transparency" in im.encoderinfo: # don't bother with transparency if it's an RGBA - # and it's in the info dict. It's probably just stale. + # and it's in the info dict. It's probably just stale. raise IOError("cannot use transparency for this mode") else: if im.mode == "P" and im.im.getpalettemode() == "RGBA": debian/patches/changes-1.1.7.diff0000664000000000000000000000247512122445577013544 0ustar Index: b/setup.py =================================================================== --- a/setup.py +++ b/setup.py @@ -127,20 +127,6 @@ _add_directory(include_dirs, "/usr/X11/include") elif sys.platform.startswith("linux"): - for platform_ in (platform.processor(),platform.architecture()[0]): - if not platform_: continue - - if platform_ in ["x86_64", "64bit"]: - _add_directory(library_dirs, "/lib64") - _add_directory(library_dirs, "/usr/lib64") - _add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu") - break - elif platform_ in ["i386", "i686", "32bit"]: - _add_directory(library_dirs, "/usr/lib/i386-linux-gnu") - break - else: - raise ValueError("Unable to identify Linux platform: `%s`" % platform_) - # XXX Kludge. Above /\ we brute force support multiarch. Here we # try Barry's more general approach. Afterward, something should # work ;-) Index: b/Scripts/pilfont.py =================================================================== --- a/Scripts/pilfont.py +++ b/Scripts/pilfont.py @@ -1,3 +1,5 @@ +#! /usr/bin/python + # # The Python Imaging Library # $Id$ debian/patches/pillow-CVE-2016-0775.patch0000664000000000000000000000103312772325000014542 0ustar Description: fix for buffer overflow (CVE-2016-0775) Origin: based on upstream, bcaaf97f4ff25b3b5b9e8efeda364e17e80858ec Forwarded: not-needed Last-Update: 2016-09-26 --- pillow-2.3.0.orig/libImaging/FliDecode.c +++ pillow-2.3.0/libImaging/FliDecode.c @@ -185,7 +185,7 @@ ImagingFliDecode(Imaging im, ImagingCode /* COPY chunk */ for (y = 0; y < state->ysize; y++) { UINT8* buf = (UINT8*) im->image[y]; - memcpy(buf+x, data, state->xsize); + memcpy(buf, data, state->xsize); data += state->xsize; } break; debian/patches/pillow-CVE-2014-9601.patch0000664000000000000000000000527113060524363014551 0ustar Description: Prevent decompression DOS (CVE-2014-9601) Origin: based on upstream, b3e09122e527ae554eb590741bbd7611d5710e40 Forwarded: not-needed Last-Update: 2017-03-10 Index: pillow-2.3.0/PIL/PngImagePlugin.py =================================================================== --- pillow-2.3.0.orig/PIL/PngImagePlugin.py 2017-03-10 08:23:03.034300566 -0500 +++ pillow-2.3.0/PIL/PngImagePlugin.py 2017-03-10 08:23:28.126578792 -0500 @@ -72,6 +72,20 @@ _simple_palette = re.compile(b'^\xff+\x00\xff*$') +# Maximum decompressed size for a iTXt or zTXt chunk. +# Eliminates decompression bombs where compressed chunks can expand 1000x +MAX_TEXT_CHUNK = ImageFile.SAFEBLOCK +# Set the maximum total text chunk size. +MAX_TEXT_MEMORY = 64 * MAX_TEXT_CHUNK + +def _safe_zlib_decompress(s): + dobj = zlib.decompressobj() + plaintext = dobj.decompress(s, MAX_TEXT_CHUNK) + if dobj.unconsumed_tail: + raise ValueError("Decompressed Data Too Large") + return plaintext + + # -------------------------------------------------------------------- # Support classes. Suitable for PNG and related formats like MNG etc. @@ -190,6 +204,14 @@ self.im_tile = None self.im_palette = None + self.text_memory = 0 + + def check_text_memory(self, chunklen): + self.text_memory += chunklen + if self.text_memory > MAX_TEXT_MEMORY: + raise ValueError("Too much memory used in text chunks: %s>MAX_TEXT_MEMORY" % + self.text_memory) + def chunk_iCCP(self, pos, length): # ICC profile @@ -207,7 +229,7 @@ if comp_method != 0: raise SyntaxError("Unknown compression method %s in iCCP chunk" % comp_method) try: - icc_profile = zlib.decompress(s[i+2:]) + icc_profile = _safe_zlib_decompress(s[i+2:]) except zlib.error: icc_profile = None # FIXME self.im_info["icc_profile"] = icc_profile @@ -299,6 +321,7 @@ v = v.decode('latin-1', 'replace') self.im_info[k] = self.im_text[k] = v + self.check_text_memory(len(v)) return s def chunk_zTXt(self, pos, length): @@ -317,7 +340,7 @@ raise SyntaxError("Unknown compression method %s in zTXt chunk" % comp_method) import zlib try: - v = zlib.decompress(v[1:]) + v = _safe_zlib_decompress(v[1:]) except zlib.error: v = b"" @@ -327,6 +350,7 @@ v = v.decode('latin-1', 'replace') self.im_info[k] = self.im_text[k] = v + self.check_text_memory(len(v)) return s # -------------------------------------------------------------------- debian/patches/pillow-CVE-2016-2533.patch0000664000000000000000000000142012772325141014542 0ustar Description: PCD decoder overruns the shuffle buffer (CVE-2016-2533) Origin: based on upstream, ae453aa18b66af54e7ff716f4ccb33adca60afd4 Forwarded: not-needed Last-Update: 2016-09-26 --- pillow-2.3.0.orig/libImaging/PcdDecode.c +++ pillow-2.3.0/libImaging/PcdDecode.c @@ -47,7 +47,7 @@ ImagingPcdDecode(Imaging im, ImagingCode out[0] = ptr[x]; out[1] = ptr[(x+4*state->xsize)/2]; out[2] = ptr[(x+5*state->xsize)/2]; - out += 4; + out += 3; } state->shuffle((UINT8*) im->image[state->y], @@ -62,7 +62,7 @@ ImagingPcdDecode(Imaging im, ImagingCode out[0] = ptr[x+state->xsize]; out[1] = ptr[(x+4*state->xsize)/2]; out[2] = ptr[(x+5*state->xsize)/2]; - out += 4; + out += 3; } state->shuffle((UINT8*) im->image[state->y], debian/copyright0000664000000000000000000000276412047127217011137 0ustar This package was debianized by Simon Richter on Mon, 21 May 2001 22:20:43 +0200. As of 2004-01-05, it is maintained by Matthias Urlichs . It was downloaded from http://www.pythonware.com/downloads/index.htm Copyright: The Python Imaging Library is Copyright (c) 1997-2001 by Secret Labs AB Copyright (c) 1995-2001 by Fredrik Lundh By obtaining, using, and/or copying this software and/or its associated documentation, you agree that you have read, understood, and will comply with the following terms and conditions: Permission to use, copy, modify, and distribute this software and its associated documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of Secret Labs AB or the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. debian/tests/0000775000000000000000000000000012267460132010335 5ustar debian/tests/control0000664000000000000000000000013712267453013011741 0ustar Tests: selftest-py2 selftest-py3 Depends: @ Tests: upstream-py2 upstream-py3 Depends: @, webp debian/tests/upstream-py20000664000000000000000000000015412267460125012632 0ustar #!/bin/sh set -e dwebp -ppm Images/lena.webp -o $ADTTMP/lena_webp.ppm 2>&1 python Tests/run.py --installed debian/tests/upstream-py30000664000000000000000000000015512267460132012632 0ustar #!/bin/sh set -e dwebp -ppm Images/lena.webp -o $ADTTMP/lena_webp.ppm 2>&1 python3 Tests/run.py --installed debian/tests/selftest-py20000664000000000000000000000012112253564560012620 0ustar #!/bin/sh set -e cp -r selftest.py Images $ADTTMP cd $ADTTMP python selftest.py debian/tests/selftest-py30000664000000000000000000000012212253564560012622 0ustar #!/bin/sh set -e cp -r selftest.py Images $ADTTMP cd $ADTTMP python3 selftest.py debian/rules0000775000000000000000000001647612261407332010266 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 PYVERS := $(shell pyversions -vr) PYVER := $(shell python -c 'import sys; print sys.version[:3]') PY3VERS := $(shell py3versions -vr) PY3VER := $(shell python3 -c 'import sys; print(sys.version[:3])') include /usr/share/python/python.mk include /usr/share/dpkg/architecture.mk ifneq ($(DEB_BUILD_MULTIARCH),$(DEB_HOST_MULTIARCH)) SET_CROSS_ENV = PYTHONPATH=/usr/lib/python$$pv/plat-$(DEB_HOST_MULTIARCH) # FIXME: is this sufficient? SET_CROSS_ENV += _PYTHON_HOST_PLATFORM=$(DEB_HOST_GNU_CPU) endif build-arch: build build-indep: build build: build-stamp build-stamp: $(PYVERS:%=build-stamp-python%) $(PY3VERS:%=build-stamp-python%) touch $@ build-stamp-python%: # tar xvf debian/lcms-images.tar.gz $(SET_CROSS_ENV) python$* setup.py build cd Sane && $(SET_CROSS_ENV) python$* setup.py build $(SET_CROSS_ENV) python$*-dbg setup.py build cd Sane && $(SET_CROSS_ENV) python$*-dbg setup.py build touch $@ clean: dh_testdir dh_testroot rm -f *-stamp* rm -rf compile build Sane/build rm -rf debian/PILcompat/build rm -rf Pillow*.egg-info find -name '*.py[co]' -exec rm -f {} \; # rm -f $$(tar tf debian/lcms-images.tar.gz) dh_clean get-doc: wget -r --no-parent --no-host-directories --cut-dirs=2 \ http://www.pythonware.com/library/pil/handbook/index.htm install: build install-prereq $(PYVERS:%=install-python%) $(PY3VERS:%=install3-python%) dh_installdocs -ppython-pil-doc #Docs/* dh_installexamples -ppython-pil-doc Scripts/* dh_installdocs -ppython-pil README.rst dh_installdocs -ppython-sane Sane/sanedoc.txt # dh_installexamples -ppython-sane Sane/demo*.py : # Replace all '#!' calls to python with /usr/bin/python : # and make them executable for i in `find debian/python-pil* -mindepth 3 -type f`; do \ sed '1s,#!.*python[^ ]*\(.*\),#! /usr/bin/python\1,' \ $$i > $$i.temp; \ if cmp --quiet $$i $$i.temp; then \ rm -f $$i.temp; \ else \ mv -f $$i.temp $$i; \ chmod 755 $$i; \ echo "fixed interpreter: $$i"; \ fi; \ done for i in `find debian/python3-pil* -mindepth 3 -type f`; do \ sed '1s,#!.*python[^ ]*\(.*\),#! /usr/bin/python3\1,' \ $$i > $$i.temp; \ if cmp --quiet $$i $$i.temp; then \ rm -f $$i.temp; \ else \ mv -f $$i.temp $$i; \ chmod 755 $$i; \ echo "fixed interpreter: $$i"; \ fi; \ done for i in debian/python3-pil/usr/bin/*.py; do \ mv $$i debian/python3-pil/usr/bin/$$(basename $$i .py); \ done install-prereq: dh_testdir dh_testroot dh_clean -k install-python%: $(SET_CROSS_ENV) python$* setup.py install --root $(CURDIR)/debian/python-pil \ $(py_setup_install_args) cd Sane && $(SET_CROSS_ENV) python$* setup.py install \ --root $(CURDIR)/debian/python-sane $(py_setup_install_args) mkdir -p debian/python-pil/usr/include/python$* install -o root -g root -m 644 \ libImaging/Imaging.h \ libImaging/ImPlatform.h \ libImaging/ImDib.h \ debian/python-pil/usr/include/python$* dh_movefiles -ppython-pil.imagetk \ --sourcedir=debian/python-pil \ usr/lib/python$*/$(call py_sitename_sh, $*)/PIL/_imagingtk.so \ usr/lib/python$*/$(call py_sitename_sh, $*)/PIL/ImageTk.py $(SET_CROSS_ENV) python$*-dbg setup.py install \ --root $(CURDIR)/debian/python-pil-dbg \ $(py_setup_install_args) mkdir -p debian/python-pil-dbg/usr/include/python$*_d for i in Imaging.h ImPlatform.h ImDib.h; do \ ln -sf ../python$*/$$i \ debian/python-pil-dbg/usr/include/python$*_d/$$i; \ done cd Sane && $(SET_CROSS_ENV) python$*-dbg setup.py install \ --root $(CURDIR)/debian/python-sane-dbg $(py_setup_install_args) find debian/python-pil*-dbg \ ! -type d ! \( -name '*_d.so' -o -name '*.h' \) | xargs rm -f find debian/python-pil*-dbg -depth -empty -exec rmdir {} \; dh_movefiles -ppython-pil.imagetk-dbg \ --sourcedir=debian/python-pil-dbg \ usr/lib/python$*/$(call py_sitename_sh, $*)/PIL/_imagingtk_d.so # Install the compatibility modules for python2 only. cd debian/PILcompat && python$* setup.py install \ --root $(CURDIR)/debian/python-imaging --install-layout=deb find debian/python-imaging -name '*.egg-info' | xargs -r rm -rf install3-python%: $(SET_CROSS_ENV) python$* setup.py install \ --root $(CURDIR)/debian/python3-pil \ $(py_setup_install_args) cd Sane && $(SET_CROSS_ENV) python$* setup.py install \ --root $(CURDIR)/debian/python3-sane $(py_setup_install_args) incdir=$$(python$* -c 'import sysconfig; print(sysconfig.get_path("include"))'); \ mkdir -p debian/python3-pil/$$incdir; \ install -o root -g root -m 644 \ libImaging/Imaging.h \ libImaging/ImPlatform.h \ libImaging/ImDib.h \ debian/python3-pil/$$incdir abitag=.$$(python$* -c "import sysconfig; print(sysconfig.get_config_var('SOABI'))")-$(DEB_HOST_MULTIARCH); \ dh_movefiles -ppython3-pil.imagetk \ --sourcedir=debian/python3-pil \ usr/lib/python3/$(call py_sitename_sh, $*)/PIL/_imagingtk$$abitag.so \ usr/lib/python3/$(call py_sitename_sh, $*)/PIL/ImageTk.py $(SET_CROSS_ENV) python$*-dbg setup.py install \ --root $(CURDIR)/debian/python3-pil-dbg \ $(py_setup_install_args) incname=$$(basename $$(python$* -c 'import sysconfig; print(sysconfig.get_path("include"))')); \ incddir=$$(python$*-dbg -c 'import sysconfig; print(sysconfig.get_path("include"))'); \ mkdir -p debian/python3-pil-dbg/$$incddir; \ for i in Imaging.h ImPlatform.h ImDib.h; do \ ln -sf ../$$incname/$$i \ debian/python3-pil-dbg/$$incddir/$$i; \ done cd Sane && $(SET_CROSS_ENV) python$*-dbg setup.py install \ --root $(CURDIR)/debian/python3-sane-dbg $(py_setup_install_args) find debian/python3-pil*-dbg \ ! -type d ! \( -name '*.so' -o -name '*.h' \) | xargs rm -f find debian/python3-pil*-dbg -depth -empty -exec rmdir {} \; abitag=.$$(python$*-dbg -c "import sysconfig; print(sysconfig.get_config_var('SOABI'))")-$(DEB_HOST_MULTIARCH); \ dh_movefiles -ppython3-pil.imagetk-dbg \ --sourcedir=debian/python3-pil-dbg \ usr/lib/python3/$(call py_sitename_sh, $*)/PIL/_imagingtk$$abitag.so # Build architecture-independent files here. # Pass -i to all debhelper commands in this target to reduce clutter. binary-indep: build install dh_testdir -i dh_testroot -i dh_installdocs -i dh_installexamples -i dh_installchangelogs -i #CHANGES dh_python2 -i dh_link -i dh_compress -i -X.py dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i # Build architecture-dependent files here. binary-arch: build install dh_testdir -a dh_testroot -a dh_installdocs -a dh_installexamples -a dh_installchangelogs -a #CHANGES for p in \ python-pil python-pil.imagetk python-sane \ python3-pil python3-pil.imagetk python3-sane; \ do \ rm -rf debian/$$p-dbg/usr/share/doc/$$p-dbg; \ ln -s $$p debian/$$p-dbg/usr/share/doc/$$p-dbg; \ done dh_python2 -a dh_python3 -a dh_strip -ppython-pil --dbg-package=python-pil-dbg dh_strip -ppython-pil.imagetk --dbg-package=python-pil.imagetk-dbg dh_strip -ppython-sane --dbg-package=python-sane-dbg dh_strip -ppython3-pil --dbg-package=python3-pil-dbg dh_strip -ppython3-pil.imagetk --dbg-package=python3-pil.imagetk-dbg dh_strip -ppython3-sane --dbg-package=python3-sane-dbg dh_link -a dh_compress -a -X.py dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install