[dev-python/pmw] fork portage ebuild to make it depend on our split python-tk. This package is needed for sci-chemistry/pymol

This commit is contained in:
Joost Ruis
2011-08-22 05:49:40 +00:00
parent 07a32b529d
commit 8bc0608954
4 changed files with 121 additions and 0 deletions
+4
View File
@@ -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
@@ -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)
@@ -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/*',
]
+50
View File
@@ -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
}