summaryrefslogtreecommitdiff
path: root/community/python-pillow
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-10-01 03:07:25 -0700
committerroot <root@rshg054.dnsready.net>2013-10-01 03:07:25 -0700
commita1792bae6f21dd0cca9e5a0d5cfad55edc1c4955 (patch)
tree1c6225df5977b18e7eb68340f773a18bd26dc500 /community/python-pillow
parenta1ba981700ea6943bedc5d7bb769b1f893088c7f (diff)
Tue Oct 1 03:05:59 PDT 2013
Diffstat (limited to 'community/python-pillow')
-rw-r--r--community/python-pillow/PKGBUILD68
-rw-r--r--community/python-pillow/pull325.diff38
2 files changed, 106 insertions, 0 deletions
diff --git a/community/python-pillow/PKGBUILD b/community/python-pillow/PKGBUILD
new file mode 100644
index 000000000..3cf4c2a3c
--- /dev/null
+++ b/community/python-pillow/PKGBUILD
@@ -0,0 +1,68 @@
+# $Id: PKGBUILD 97882 2013-09-30 13:00:41Z bgyorgy $
+# Maintainer: Kyle Keen <keenerd@gmail.com>
+# Contributor: minder
+
+pkgbase=python-pillow
+pkgname=(python-pillow python2-pillow)
+_appname=Pillow
+pkgver=2.1.0
+pkgrel=5
+pkgdesc="Python Imaging Library (PIL) fork. Python3 version."
+arch=('i686' 'x86_64')
+url="http://python-imaging.github.io/"
+license=('BSD')
+makedepends=('python-setuptools' 'python2-setuptools' 'lcms' 'libwebp' 'tk' 'sane')
+# remove pull325.diff on 2.1.1 release, fixes FS#36945
+source=("http://pypi.python.org/packages/source/P/$_appname/$_appname-$pkgver.zip"
+ "pull325.diff")
+md5sums=('ec630d8ae15d4a3c4ae7b7efdeac8200'
+ 'aa3fa12bd2d61041f6d01fedddab39fb')
+
+build() {
+ cd "$srcdir"
+ cp -r "$srcdir/$_appname-$pkgver" "$srcdir/${_appname}2-$pkgver"
+}
+
+package_python-pillow() {
+ depends=('python' 'lcms' 'libwebp')
+ optdepends=('tk: for the ImageTK module'
+ 'sane: for the Sane module'
+ 'python-pyqt4: for the ImageQt module')
+ cd "$srcdir/$_appname-$pkgver"
+ python3 setup.py install --root="$pkgdir/" --optimize=0
+ pushd Sane
+ python3 setup.py install --root="$pkgdir/" --optimize=0
+ popd
+ install -Dm644 docs/LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ # clean up bins
+ cd "$pkgdir/usr/bin"
+ for f in *.py; do
+ mv "$f" "${f%.py}"
+ done
+}
+
+package_python2-pillow() {
+ pkgdesc="Python Imaging Library (PIL) fork. Python2 version."
+ depends=('python2' 'lcms' 'libwebp')
+ optdepends=('tk: for the ImageTK module'
+ 'sane: for the Sane module'
+ 'python2-pyqt4: for the ImageQt module')
+ provides=('python-imaging' 'python2-imaging')
+ conflicts=('python-imaging' 'python2-imaging')
+ replaces=('python2-imaging')
+ cd "$srcdir/${_appname}2-$pkgver"
+ patch -Np1 -i ../pull325.diff
+ python2 setup.py install --root="$pkgdir/" --optimize=0
+ pushd Sane
+ python2 setup.py install --root="$pkgdir/" --optimize=0
+ popd
+ install -Dm644 docs/LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ # clean up bins
+ cd "$pkgdir/usr/bin"
+ for f in *.py; do
+ mv "$f" "${f%.py}2"
+ done
+}
+
diff --git a/community/python-pillow/pull325.diff b/community/python-pillow/pull325.diff
new file mode 100644
index 000000000..48b36ab48
--- /dev/null
+++ b/community/python-pillow/pull325.diff
@@ -0,0 +1,38 @@
+diff --git a/PIL/Image.py b/PIL/Image.py
+index bb15aaa..2e120e5 100644
+--- a/PIL/Image.py
++++ b/PIL/Image.py
+@@ -706,7 +706,7 @@ def convert(self, mode=None, data=None, dither=None,
+ if self.mode == "L" and mode == "RGBA" and "transparency" in self.info:
+ from PIL import ImagePalette
+ self.mode = "P"
+- bytePalette = bytes([i//3 for i in range(768)])
++ bytePalette = bytes(bytearray([i//3 for i in range(768)]))
+ self.palette = ImagePalette.raw("RGB", bytePalette)
+ self.palette.dirty = 1
+ self.load()
+diff --git a/_imaging.c b/_imaging.c
+index 9f48030..84f06e9 100644
+--- a/_imaging.c
++++ b/_imaging.c
+@@ -287,6 +287,7 @@ int PyImaging_GetBuffer(PyObject* buffer, Py_buffer *view)
+ static const char* wrong_raw_mode = "unrecognized raw mode";
+ static const char* outside_image = "image index out of range";
+ static const char* outside_palette = "palette index out of range";
++static const char* wrong_palette_size = "invalid palette size";
+ static const char* no_palette = "image has no palette";
+ static const char* readonly = "image is readonly";
+ /* static const char* no_content = "image has no content"; */
+@@ -1413,6 +1414,11 @@ int PyImaging_GetBuffer(PyObject* buffer, Py_buffer *view)
+ return NULL;
+ }
+
++ if ( palettesize * 8 / bits > 256) {
++ PyErr_SetString(PyExc_ValueError, wrong_palette_size);
++ return NULL;
++ }
++
+ ImagingPaletteDelete(self->image->palette);
+
+ strcpy(self->image->mode, "P");
+