summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-python/pillow/files/pillow-4.3.0-no-qt.patch30
-rw-r--r--dev-python/pillow/pillow-4.3.0-r3.ebuild106
2 files changed, 136 insertions, 0 deletions
diff --git a/dev-python/pillow/files/pillow-4.3.0-no-qt.patch b/dev-python/pillow/files/pillow-4.3.0-no-qt.patch
new file mode 100644
index 000000000000..231c605b8347
--- /dev/null
+++ b/dev-python/pillow/files/pillow-4.3.0-no-qt.patch
@@ -0,0 +1,30 @@
+diff --git a/PIL/ImageQt.py b/PIL/ImageQt.py
+index 36b4e1eb..ddde2cd9 100644
+--- a/PIL/ImageQt.py
++++ b/PIL/ImageQt.py
+@@ -20,24 +20,7 @@ from . import Image
+ from ._util import isPath
+ from io import BytesIO
+
+-qt_is_installed = True
+-qt_version = None
+-try:
+- from PyQt5.QtGui import QImage, qRgba, QPixmap
+- from PyQt5.QtCore import QBuffer, QIODevice
+- qt_version = '5'
+-except (ImportError, RuntimeError):
+- try:
+- from PyQt4.QtGui import QImage, qRgba, QPixmap
+- from PyQt4.QtCore import QBuffer, QIODevice
+- qt_version = '4'
+- except (ImportError, RuntimeError):
+- try:
+- from PySide.QtGui import QImage, qRgba, QPixmap
+- from PySide.QtCore import QBuffer, QIODevice
+- qt_version = 'side'
+- except ImportError:
+- qt_is_installed = False
++qt_is_installed = False
+
+
+ def rgb(r, g, b, a=255):
diff --git a/dev-python/pillow/pillow-4.3.0-r3.ebuild b/dev-python/pillow/pillow-4.3.0-r3.ebuild
new file mode 100644
index 000000000000..a799e79a1d3a
--- /dev/null
+++ b/dev-python/pillow/pillow-4.3.0-r3.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{4,5,6} )
+PYTHON_REQ_USE='tk?,threads(+)'
+
+inherit distutils-r1 eutils virtualx
+
+MY_PN=Pillow
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Python Imaging Library (fork)"
+HOMEPAGE="https://python-pillow.org/"
+SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
+
+LICENSE="HPND"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples imagequant jpeg jpeg2k lcms qt5 test tiff tk truetype webp zlib"
+
+REQUIRED_USE="test? ( jpeg tiff )"
+
+RDEPEND="
+ dev-python/olefile[${PYTHON_USEDEP}]
+ imagequant? ( media-gfx/libimagequant:0 )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ lcms? ( media-libs/lcms:2= )
+ qt5? ( dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}] )
+ tiff? ( media-libs/tiff:0=[jpeg,zlib] )
+ truetype? ( media-libs/freetype:2= )
+ webp? ( media-libs/libwebp:0= )
+ zlib? ( sys-libs/zlib:0= )"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ )
+ test? (
+ dev-python/nose[${PYTHON_USEDEP}]
+ media-gfx/imagemagick[png]
+ )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/pillow-4.3.0-no-scripts.patch
+ # can be removed at v5, patch already uptream. See bug 593816.
+ "${FILESDIR}"/pillow-4.3.0-freetype2.9-test-metrics.patch
+)
+
+src_prepare() {
+ if ! use qt5; then
+ # When we don't use qt5, we want to forcibly disable it by patching it
+ # out. Otherwise, we might encounter unexpected problems like in
+ # bug #662236
+ eapply "${FILESDIR}/${PN}-4.3.0-no-qt.patch"
+ fi
+ eapply_user
+}
+
+python_configure_all() {
+ # It's important that these flags are also passed during the install phase
+ # as well. Make sure of that if you change the lines below. See bug 661308.
+ mydistutilsargs=(
+ build_ext
+ --disable-platform-guessing
+ $(use_enable truetype freetype)
+ $(use_enable jpeg)
+ $(use_enable jpeg2k jpeg2000)
+ $(use_enable lcms)
+ $(use_enable tiff)
+ $(use_enable imagequant)
+ $(use_enable webp)
+ $(use_enable webp webpmux)
+ $(use_enable zlib)
+ )
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ "${PYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}"
+ virtx nosetests -vx Tests/test_*.py
+}
+
+python_install() {
+ python_doheader libImaging/*.h
+ distutils-r1_python_install
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+ if use examples ; then
+ docinto examples
+ dodoc Scripts/*
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+ distutils-r1_python_install_all
+}