diff options
author | root <root@rshg054.dnsready.net> | 2013-10-01 03:07:25 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-10-01 03:07:25 -0700 |
commit | a1792bae6f21dd0cca9e5a0d5cfad55edc1c4955 (patch) | |
tree | 1c6225df5977b18e7eb68340f773a18bd26dc500 /community/python-pillow | |
parent | a1ba981700ea6943bedc5d7bb769b1f893088c7f (diff) |
Tue Oct 1 03:05:59 PDT 2013
Diffstat (limited to 'community/python-pillow')
-rw-r--r-- | community/python-pillow/PKGBUILD | 68 | ||||
-rw-r--r-- | community/python-pillow/pull325.diff | 38 |
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"); + |