diff options
author | Mike Gilbert <floppym@gentoo.org> | 2013-05-27 23:27:33 +0000 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2013-05-27 23:27:33 +0000 |
commit | 50606df0cf3f587a4573d4236f81dad2d0f67d78 (patch) | |
tree | bc058a8dbefb8f6f6b79a4385597f16d59e11d40 /dev-python/imaging | |
parent | Do not use relative paths in patch, bug 471208. (diff) | |
download | gentoo-2-50606df0cf3f587a4573d4236f81dad2d0f67d78.tar.gz gentoo-2-50606df0cf3f587a4573d4236f81dad2d0f67d78.tar.bz2 gentoo-2-50606df0cf3f587a4573d4236f81dad2d0f67d78.zip |
Copy dev-python/pillow-2.0.0 to dev-python/imaging-2.0.0 in preparation for a pkgmove. Apply rebased patches from Arfrever's Progress overlay. Enable python3 support. Bug 401009.
(Portage version: 2.2.0_alpha177/cvs/Linux x86_64, signed Manifest commit with key 0BBEEA1FEA4843A4)
Diffstat (limited to 'dev-python/imaging')
-rw-r--r-- | dev-python/imaging/ChangeLog | 13 | ||||
-rw-r--r-- | dev-python/imaging/files/imaging-2.0.0-GifImagePlugin.patch | 24 | ||||
-rw-r--r-- | dev-python/imaging/files/imaging-2.0.0-delete_hardcoded_paths.patch | 178 | ||||
-rw-r--r-- | dev-python/imaging/files/imaging-2.0.0-gif_transparency.patch | 14 | ||||
-rw-r--r-- | dev-python/imaging/files/imaging-2.0.0-libm_linking.patch | 20 | ||||
-rw-r--r-- | dev-python/imaging/imaging-2.0.0.ebuild | 122 | ||||
-rw-r--r-- | dev-python/imaging/metadata.xml | 5 |
7 files changed, 374 insertions, 2 deletions
diff --git a/dev-python/imaging/ChangeLog b/dev-python/imaging/ChangeLog index 6bee4ed7b2d8..b93ea9af812e 100644 --- a/dev-python/imaging/ChangeLog +++ b/dev-python/imaging/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-python/imaging # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/imaging/ChangeLog,v 1.85 2013/05/07 23:27:25 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/imaging/ChangeLog,v 1.86 2013/05/27 23:27:33 floppym Exp $ + +*imaging-2.0.0 (27 May 2013) + + 27 May 2013; Mike Gilbert <floppym@gentoo.org> + +files/imaging-2.0.0-GifImagePlugin.patch, + +files/imaging-2.0.0-delete_hardcoded_paths.patch, + +files/imaging-2.0.0-gif_transparency.patch, + +files/imaging-2.0.0-libm_linking.patch, +imaging-2.0.0.ebuild, metadata.xml: + Copy dev-python/pillow-2.0.0 to dev-python/imaging-2.0.0 in preparation for a + pkgmove. Apply rebased patches from Arfrever's Progress overlay. Enable + python3 support. Bug 401009. *imaging-1.1.7-r4 (07 May 2013) diff --git a/dev-python/imaging/files/imaging-2.0.0-GifImagePlugin.patch b/dev-python/imaging/files/imaging-2.0.0-GifImagePlugin.patch new file mode 100644 index 000000000000..e380db3a7803 --- /dev/null +++ b/dev-python/imaging/files/imaging-2.0.0-GifImagePlugin.patch @@ -0,0 +1,24 @@ +commit cb4f0f2b3c57a76551c7dfdae6a67f4b58da4681 +Author: Alex Clark <aclark@aclark.net> +Date: Wed Feb 6 09:25:03 2013 -0500 + + Revert "Fix saving images with added transparency" + + This reverts commit cc439099c1e8c81a929ea446caa6791d7d9b6bd6. + +diff --git a/PIL/GifImagePlugin.py b/PIL/GifImagePlugin.py +index 2036893..443d4db 100644 +--- a/PIL/GifImagePlugin.py ++++ b/PIL/GifImagePlugin.py +@@ -364,11 +364,6 @@ def getheader(im, palette=None, info=None): + for i in range(maxcolor): + s.append(o8(i) * 3) + +- if im.info.has_key('transparency'): +- transparentIndex = im.info['transparency'] +- s.append('!' + o8(0xf9) + o8(4) + o8(1) + o8(0) + o8(0) + +- o8(transparentIndex) + o8(0)) +- + return s + + def getdata(im, offset = (0, 0), **params): diff --git a/dev-python/imaging/files/imaging-2.0.0-delete_hardcoded_paths.patch b/dev-python/imaging/files/imaging-2.0.0-delete_hardcoded_paths.patch new file mode 100644 index 000000000000..ed5bdca65cb3 --- /dev/null +++ b/dev-python/imaging/files/imaging-2.0.0-delete_hardcoded_paths.patch @@ -0,0 +1,178 @@ +--- setup.py ++++ setup.py +@@ -56,11 +56,6 @@ + return None + + +-def _lib_include(root): +- # map root to (root/lib, root/include) +- return os.path.join(root, "lib"), os.path.join(root, "include") +- +- + def _read(file): + return open(file, 'rb').read() + +@@ -105,102 +100,17 @@ + _add_directory(include_dirs, include_root) + + # +- # add platform directories +- +- if sys.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": +- # 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") +- # fink installation directories +- _add_directory(library_dirs, "/sw/lib") +- _add_directory(include_dirs, "/sw/include") +- # darwin ports installation directories +- _add_directory(library_dirs, "/opt/local/lib") +- _add_directory(include_dirs, "/opt/local/include") +- # freetype2 ships with X11 +- _add_directory(library_dirs, "/usr/X11/lib") +- _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 ;-) +- self.add_multiarch_paths() +- +- _add_directory(library_dirs, "/usr/local/lib") +- # FIXME: check /opt/stuff directories here? +- +- prefix = sysconfig.get_config_var("prefix") +- if prefix: +- _add_directory(library_dirs, os.path.join(prefix, "lib")) +- _add_directory(include_dirs, os.path.join(prefix, "include")) +- +- # + # locate tkinter libraries + + + if _tkinter: + TCL_VERSION = _tkinter.TCL_VERSION[:3] + +- if _tkinter and not TCL_ROOT: +- # we have Tkinter but the TCL_ROOT variable was not set; +- # try to locate appropriate Tcl/Tk libraries +- PYVERSION = sys.version[0] + sys.version[2] +- TCLVERSION = TCL_VERSION[0] + TCL_VERSION[2] +- roots = [ +- # common installation directories, mostly for Windows +- # (for Unix-style platforms, we'll check in well-known +- # locations later) +- os.path.join("/py" + PYVERSION, "Tcl"), +- os.path.join("/python" + PYVERSION, "Tcl"), +- "/Tcl", "/Tcl" + TCLVERSION, "/Tcl" + TCL_VERSION, +- os.path.join(os.environ.get("ProgramFiles", ""), "Tcl"), +- ] +- for TCL_ROOT in roots: +- TCL_ROOT = os.path.abspath(TCL_ROOT) +- if os.path.isfile(os.path.join(TCL_ROOT, "include", "tk.h")): +- # FIXME: use distutils logging (?) +- print("--- using Tcl/Tk libraries at", TCL_ROOT) +- print("--- using Tcl/Tk version", TCL_VERSION) +- TCL_ROOT = _lib_include(TCL_ROOT) +- break +- else: +- TCL_ROOT = None +- + + # + # add standard directories + +- # look for tcl specific subdirectory (e.g debian) +- if _tkinter: +- tcl_dir = "/usr/include/tcl" + TCL_VERSION +- if os.path.isfile(os.path.join(tcl_dir, "tk.h")): +- _add_directory(include_dirs, tcl_dir) +- + # standard locations +- _add_directory(library_dirs, "/usr/local/lib") +- _add_directory(include_dirs, "/usr/local/include") +- +- _add_directory(library_dirs, "/usr/lib") + _add_directory(include_dirs, "/usr/include") + + # +@@ -333,28 +243,7 @@ + "_webp", ["_webp.c"], libraries=["webp"])) + + +- if sys.platform == "darwin": +- # locate Tcl/Tk frameworks +- frameworks = [] +- framework_roots = [ +- "/Library/Frameworks", +- "/System/Library/Frameworks"] +- for root in framework_roots: +- if (os.path.exists(os.path.join(root, "Tcl.framework")) and +- os.path.exists(os.path.join(root, "Tk.framework"))): +- print("--- using frameworks at %s" % root) +- frameworks = ["-framework", "Tcl", "-framework", "Tk"] +- dir = os.path.join(root, "Tcl.framework", "Headers") +- _add_directory(self.compiler.include_dirs, dir, 0) +- dir = os.path.join(root, "Tk.framework", "Headers") +- _add_directory(self.compiler.include_dirs, dir, 1) +- break +- if frameworks: +- exts.append(Extension( +- "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"], +- extra_compile_args=frameworks, extra_link_args=frameworks)) +- feature.tcl = feature.tk = 1 # mark as present +- elif feature.tcl and feature.tk: ++ if feature.tcl and feature.tk: + exts.append(Extension( + "_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"], + libraries=[feature.tcl, feature.tk])) +@@ -445,30 +334,6 @@ + if m.group(1) < "1.2.3": + return m.group(1) + +- # http://hg.python.org/users/barry/rev/7e8deab93d5a +- def add_multiarch_paths(self): +- # Debian/Ubuntu multiarch support. +- # https://wiki.ubuntu.com/MultiarchSpec +- # self.build_temp +- tmpfile = os.path.join(self.build_temp, 'multiarch') +- if not os.path.exists(self.build_temp): +- os.makedirs(self.build_temp) +- ret = os.system('dpkg-architecture -qDEB_HOST_MULTIARCH > %s' % +- tmpfile) +- ret = os.system( +- 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' % +- tmpfile) +- try: +- if ret >> 8 == 0: +- fp = open(tmpfile, 'r') +- multiarch_path_component = fp.readline().strip() +- _add_directory(self.compiler.library_dirs, +- '/usr/lib/' + multiarch_path_component) +- _add_directory(self.compiler.include_dirs, +- '/usr/include/' + multiarch_path_component) +- finally: +- os.unlink(tmpfile) +- + setup( + name=NAME, + version=VERSION, diff --git a/dev-python/imaging/files/imaging-2.0.0-gif_transparency.patch b/dev-python/imaging/files/imaging-2.0.0-gif_transparency.patch new file mode 100644 index 000000000000..70cfc1d72a78 --- /dev/null +++ b/dev-python/imaging/files/imaging-2.0.0-gif_transparency.patch @@ -0,0 +1,14 @@ +--- PIL/GifImagePlugin.py ++++ PIL/GifImagePlugin.py +@@ -364,6 +364,11 @@ + for i in range(maxcolor): + s.append(o8(i) * 3) + ++ if im.info.has_key('transparency'): ++ transparentIndex = im.info['transparency'] ++ s.append('!' + o8(0xf9) + o8(4) + o8(1) + o8(0) + o8(0) + ++ o8(transparentIndex) + o8(0)) ++ + return s + + def getdata(im, offset = (0, 0), **params): diff --git a/dev-python/imaging/files/imaging-2.0.0-libm_linking.patch b/dev-python/imaging/files/imaging-2.0.0-libm_linking.patch new file mode 100644 index 000000000000..35d1df5a406b --- /dev/null +++ b/dev-python/imaging/files/imaging-2.0.0-libm_linking.patch @@ -0,0 +1,20 @@ +--- setup.py ++++ setup.py +@@ -197,7 +197,7 @@ + for file in _LIB_IMAGING: + files.append(os.path.join("libImaging", file + ".c")) + +- libs = [] ++ libs = ["m"] + defs = [] + if feature.jpeg: + libs.append(feature.jpeg) +@@ -249,7 +249,7 @@ + libraries=[feature.tcl, feature.tk])) + + if os.path.isfile("_imagingmath.c"): +- exts.append(Extension("_imagingmath", ["_imagingmath.c"])) ++ exts.append(Extension("_imagingmath", ["_imagingmath.c"], libraries=["m"])) + + self.extensions[:] = exts + diff --git a/dev-python/imaging/imaging-2.0.0.ebuild b/dev-python/imaging/imaging-2.0.0.ebuild new file mode 100644 index 000000000000..7a27bece2a7c --- /dev/null +++ b/dev-python/imaging/imaging-2.0.0.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/imaging/imaging-2.0.0.ebuild,v 1.1 2013/05/27 23:27:33 floppym Exp $ + +EAPI=5 +PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} ) +PYTHON_REQ_USE='tk?' + +inherit distutils-r1 eutils + +MY_PN=Pillow +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Python Imaging Library (fork)" +HOMEPAGE="https://github.com/python-imaging/Pillow https://pypi.python.org/pypi/Pillow" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x86-solaris" +IUSE="doc examples jpeg lcms scanner test tiff tk truetype webp zlib" + +RDEPEND=" + truetype? ( media-libs/freetype:2= ) + jpeg? ( virtual/jpeg ) + lcms? ( media-libs/lcms:0= ) + scanner? ( media-gfx/sane-backends:0= ) + tiff? ( media-libs/tiff:0= ) + webp? ( media-libs/libwebp:0= ) + zlib? ( sys-libs/zlib:0= )" +DEPEND="${RDEPEND} + dev-python/setuptools[${PYTHON_USEDEP}] + doc? ( dev-python/sphinx )" + +# Tests don't handle missing jpeg, tiff & zlib properly. +# https://github.com/python-imaging/Pillow/pull/199 +REQUIRED_USE="test? ( jpeg tiff zlib )" + +S="${WORKDIR}/${MY_P}" + +src_prepare() { + # Tests like to write to cwd. + # https://github.com/python-imaging/Pillow/pull/200 + use test && DISTUTILS_IN_SOURCE_BUILD=1 + + distutils-r1_src_prepare +} + +python_prepare_all() { + # Apply patches before executing sed. + local patches=( + "${FILESDIR}/imaging-1.1.7-no-xv.patch" + "${FILESDIR}/imaging-2.0.0-delete_hardcoded_paths.patch" + "${FILESDIR}/imaging-2.0.0-gif_transparency.patch" + "${FILESDIR}/imaging-2.0.0-libm_linking.patch" + "${FILESDIR}/imaging-2.0.0-GifImagePlugin.patch" + ) + epatch "${patches[@]}" + + # Add shebangs. + # https://github.com/python-imaging/Pillow/pull/197 + sed -e "1i#!/usr/bin/env python" -i Scripts/*.py || die + + # Disable all the stuff we don't want. + local f + for f in jpeg lcms tiff tk webp zlib; do + if ! use ${f}; then + sed -i -e "s:feature.${f} =:& None #:" setup.py || die + fi + done + if ! use truetype; then + sed -i -e 's:feature.freetype =:& None #:' setup.py || die + fi + + distutils-r1_python_prepare_all +} + +# XXX: split into two ebuilds? +wrap_phase() { + "${@}" + + if use scanner; then + cd Sane || die + "${@}" + fi +} + +python_compile() { + wrap_phase distutils-r1_python_compile +} + +python_compile_all() { + use doc && emake -C docs html +} + +python_test() { + "${PYTHON}" selftest.py || die "Tests fail with ${EPYTHON}" + "${PYTHON}" Tests/run.py --installed || die "Tests fail with ${EPYTHON}" +} + +python_install() { + python_doheader libImaging/{Imaging.h,ImPlatform.h} + + wrap_phase distutils-r1_python_install +} + +python_install_all() { + use doc && local HTML_DOCS=( docs/_build/. ) + use examples && local EXAMPLES=( Scripts/. ) + + distutils-r1_python_install_all + + if use scanner; then + docinto sane + dodoc Sane/{CHANGES,README,sanedoc.txt} + fi + + if use examples && use scanner; then + docinto examples/sane + doins Sane/demo_*.py + fi +} diff --git a/dev-python/imaging/metadata.xml b/dev-python/imaging/metadata.xml index de483c53568f..338413c17e70 100644 --- a/dev-python/imaging/metadata.xml +++ b/dev-python/imaging/metadata.xml @@ -1,5 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<herd>python</herd> + <herd>python</herd> + <use> + <flag name='webp'>Enable support for webp image format.</flag> + </use> </pkgmetadata> |