From 8bc06089549caab3bc6feb5bf23aac125008e87e Mon Sep 17 00:00:00 2001 From: Joost Ruis Date: Mon, 22 Aug 2011 05:49:40 +0000 Subject: [PATCH] [dev-python/pmw] fork portage ebuild to make it depend on our split python-tk. This package is needed for sci-chemistry/pymol --- dev-python/pmw/Manifest | 4 ++ dev-python/pmw/files/1.3.2-python2.5.patch | 54 +++++++++++++++++++ .../pmw/files/pmw-1.3.2-install-no-docs.patch | 13 +++++ dev-python/pmw/pmw-1.3.2-r2.ebuild | 50 +++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 dev-python/pmw/Manifest create mode 100644 dev-python/pmw/files/1.3.2-python2.5.patch create mode 100644 dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch create mode 100644 dev-python/pmw/pmw-1.3.2-r2.ebuild diff --git a/dev-python/pmw/Manifest b/dev-python/pmw/Manifest new file mode 100644 index 000000000..b75946485 --- /dev/null +++ b/dev-python/pmw/Manifest @@ -0,0 +1,4 @@ +AUX 1.3.2-python2.5.patch 2030 RMD160 5bb1f44f8d67903fabfba7c51e300e9638bc64db SHA1 ede19deb49c5531462186496b4d47134a8e420bb SHA256 7f0d3940926ca59245251b8c471d446741096fc35cbd4198d2b4ec4985029f35 +AUX pmw-1.3.2-install-no-docs.patch 493 RMD160 bb6b8017e19da6627f15bd6d8a0d7ecf1e166faf SHA1 fc1c2f9eef884e74ca0fe8f3b720563fbedcf411 SHA256 4511b359a315fc5c2c5c143622f32c227a620a2f916f94aee7dcea9d1cb95145 +DIST Pmw.1.3.2.tar.gz 399262 RMD160 ad3fca73405a8c8a7e2ec81096b00665e2937964 SHA1 e2d8dd6eed7378acf8723c860107a12d7e808227 SHA256 0c9ab8f9cbd57f926e22253d73048fdccfb7e033c3482b083a6fb41848074a18 +EBUILD pmw-1.3.2-r2.ebuild 1116 RMD160 27c9470220014a58b0c1f9d0a168d78b95ae59db SHA1 05ea7cc4a898f5b83f3145c08dcf6d39624dfd39 SHA256 bbcc4aff9a4ea3a8daa65e185bf68a9a53c3bd4420fa7b3ffd4b12ee6bf3f58c diff --git a/dev-python/pmw/files/1.3.2-python2.5.patch b/dev-python/pmw/files/1.3.2-python2.5.patch new file mode 100644 index 000000000..ff8cce07d --- /dev/null +++ b/dev-python/pmw/files/1.3.2-python2.5.patch @@ -0,0 +1,54 @@ +Source: http://github.com/nanotube/pmw_fixes/commit/5e6dcbdaef2bb6c40037b922dd0efa081f1575ab (Daniel Folkinshteyn) + +fix bug in OptionMenu.setitems, introduced with the fixing of this python +bug: +http://bugs.python.org/issue1342811 + +versions of python 2.5.4 and newer now automatically delete commands when +items are deleted +however, that causes error if the command is deleted manually beforehand. +old versions, on the contrary, require manual command deletion to free up +the objects. + +so we put in a python version check to see if we need to manually delete +commands. + +fixes the Pmw bug referred to here: +http://sourceforge.net/forum/forum.php?thread_id=3283195&forum_id=33675 +and here: +http://sourceforge.net/tracker/?func=detail&aid=2795731&group_id=10743&ati +d=110743 + +--- a/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py ++++ b/src/Pmw/Pmw_1_3/lib/PmwOptionMenu.py +@@ -1,6 +1,7 @@ + import types + import Tkinter + import Pmw ++import sys + + class OptionMenu(Pmw.MegaWidget): + +@@ -59,11 +60,17 @@ class OptionMenu(Pmw.MegaWidget): + + def setitems(self, items, index = None): + +- # Clean up old items and callback commands. +- for oldIndex in range(len(self._itemList)): +- tclCommandName = str(self._menu.entrycget(oldIndex, 'command')) +- if tclCommandName != '': +- self._menu.deletecommand(tclCommandName) ++ # python version check ++ # python versions >= 2.5.4 automatically clean commands ++ # and manually cleaning them causes errors when deleting items ++ ++ if sys.version_info[0] * 100 + sys.version_info[1] * 10 + \ ++ sys.version_info[2] < 254: ++ # Clean up old items and callback commands. ++ for oldIndex in range(len(self._itemList)): ++ tclCommandName = str(self._menu.entrycget(oldIndex, 'command')) ++ if tclCommandName != '': ++ self._menu.deletecommand(tclCommandName) + self._menu.delete(0, 'end') + self._itemList = list(items) + diff --git a/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch b/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch new file mode 100644 index 000000000..325dc4e29 --- /dev/null +++ b/dev-python/pmw/files/pmw-1.3.2-install-no-docs.patch @@ -0,0 +1,13 @@ +diff -uNr Pmw.1.3.2.orig/src/setup.py Pmw.1.3.2/src/setup.py +--- Pmw.1.3.2.orig/src/setup.py 2008-08-02 15:40:19.000000000 -0430 ++++ Pmw.1.3.2/src/setup.py 2008-08-02 15:40:36.000000000 -0430 +@@ -16,9 +16,7 @@ + 'Pmw.Pmw_1_3.lib',], + + package_data={'Pmw': ['Pmw_1_3/lib/Pmw.def', +- 'Pmw_1_3/doc/*', + 'Pmw_1_3/contrib/*', +- 'Pmw_1_3/demos/*', + 'Pmw_1_3/tests/*', + 'Pmw_1_3/bin/*', + ] diff --git a/dev-python/pmw/pmw-1.3.2-r2.ebuild b/dev-python/pmw/pmw-1.3.2-r2.ebuild new file mode 100644 index 000000000..f6d08a6c1 --- /dev/null +++ b/dev-python/pmw/pmw-1.3.2-r2.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: Exp $ + +EAPI="3" +PYTHON_DEPEND="2" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="3.*" + +inherit distutils eutils + +MY_P="Pmw.${PV}" + +DESCRIPTION="A toolkit for building high-level compound widgets in Python using the Tkinter module." +HOMEPAGE="http://pmw.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="alpha amd64 ia64 ppc sparc x86 ~amd64-linux ~x86-linux" +IUSE="doc examples" + +DEPEND="dev-lang/python-tk" +RDEPEND="" + +S="${WORKDIR}/${MY_P}/src" + +DOCS="Pmw/README" +PYTHON_MODNAME="Pmw" + +src_prepare() { + distutils_src_prepare + epatch "${FILESDIR}/${P}-install-no-docs.patch" + epatch "${FILESDIR}/${PV}-python2.5.patch" +} + +src_install() { + distutils_src_install + + local DIR="${PYTHON_MODNAME}/Pmw_1_3" + + if use doc; then + dohtml -a html,gif,py "${DIR}"/doc/* || die "Installation of documentation failed" + fi + + if use examples; then + insinto "/usr/share/doc/${PF}/examples" + doins "${DIR}"/demos/* || die "Installation of demos failed" + fi +}