summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gryniewicz <dang@gentoo.org>2006-09-30 21:23:33 +0000
committerDaniel Gryniewicz <dang@gentoo.org>2006-09-30 21:23:33 +0000
commite41e62912db870aebbeccc74cd8efbb2c3734d71 (patch)
tree7b03b7e74753b802b9d328fdec4519284bce1aed /dev-python
parentversion bump closing security bug #149602 thanks to Janne Pikkarainen (diff)
downloadgentoo-2-e41e62912db870aebbeccc74cd8efbb2c3734d71.tar.gz
gentoo-2-e41e62912db870aebbeccc74cd8efbb2c3734d71.tar.bz2
gentoo-2-e41e62912db870aebbeccc74cd8efbb2c3734d71.zip
Add tree-model fix from bug #148247
(Portage version: 2.1.2_pre1-r3)
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/pygtk/ChangeLog8
-rw-r--r--dev-python/pygtk/files/digest-pygtk-2.10.1-r16
-rw-r--r--dev-python/pygtk/files/pygtk-2.10.1-tree-model.patch95
-rw-r--r--dev-python/pygtk/pygtk-2.10.1-r1.ebuild87
4 files changed, 195 insertions, 1 deletions
diff --git a/dev-python/pygtk/ChangeLog b/dev-python/pygtk/ChangeLog
index 686e19306205..a8bf8234e05d 100644
--- a/dev-python/pygtk/ChangeLog
+++ b/dev-python/pygtk/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-python/pygtk
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/ChangeLog,v 1.129 2006/09/26 20:04:36 the_paya Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/ChangeLog,v 1.130 2006/09/30 21:23:33 dang Exp $
+
+*pygtk-2.10.1-r1 (30 Sep 2006)
+
+ 30 Sep 2006; Daniel Gryniewicz <dang@gentoo.org>
+ +files/pygtk-2.10.1-tree-model.patch, +pygtk-2.10.1-r1.ebuild:
+ Add tree-model fix from bug #148247
26 Sep 2006; Javier Villavicencio <the_paya@gentoo.org>
pygtk-2.8.6.ebuild:
diff --git a/dev-python/pygtk/files/digest-pygtk-2.10.1-r1 b/dev-python/pygtk/files/digest-pygtk-2.10.1-r1
new file mode 100644
index 000000000000..b273d4436923
--- /dev/null
+++ b/dev-python/pygtk/files/digest-pygtk-2.10.1-r1
@@ -0,0 +1,6 @@
+MD5 ddf27329c38f1be822c1606c6aa1fb0b pygtk-2.10.1.tar.bz2 1884682
+RMD160 71179c7256bad6319cabbd305581ae67139b66f1 pygtk-2.10.1.tar.bz2 1884682
+SHA256 e572d09029a6df4ae2a2c56973ccd85d45129db1a27619a95fae2e47dc36023c pygtk-2.10.1.tar.bz2 1884682
+MD5 b7c7f1aaaf24165d4cb2a5f4e2225d34 pygtk2reference.tbz2 604463
+RMD160 3d4d9c5d5616dc6876c3c01fafaeadc1d96ccade pygtk2reference.tbz2 604463
+SHA256 4f19595f2ecac6a7265e4f130efe7e4c8543afc6ad16429db0411be6e841849b pygtk2reference.tbz2 604463
diff --git a/dev-python/pygtk/files/pygtk-2.10.1-tree-model.patch b/dev-python/pygtk/files/pygtk-2.10.1-tree-model.patch
new file mode 100644
index 000000000000..80916927feb6
--- /dev/null
+++ b/dev-python/pygtk/files/pygtk-2.10.1-tree-model.patch
@@ -0,0 +1,95 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN pygtk-2.10.1.orig/gtk/gtkobject-support.c pygtk-2.10.1/gtk/gtkobject-support.c
+--- pygtk-2.10.1.orig/gtk/gtkobject-support.c 2006-07-05 09:12:16.000000000 -0400
++++ pygtk-2.10.1/gtk/gtkobject-support.c 2006-09-30 17:10:16.000000000 -0400
+@@ -120,3 +120,19 @@
+ return list;
+ }
+
++void
++pygtk_boxed_unref_shared(PyObject *boxed)
++{
++ PyGBoxed *pyboxed;
++ g_return_if_fail(boxed != NULL && PyObject_TypeCheck(boxed, &PyGBoxed_Type));
++ pyboxed = (PyGBoxed *) boxed;
++ if (pyboxed->ob_refcnt != 1) {
++ if (!pyboxed->free_on_dealloc) {
++ pyboxed->boxed = g_boxed_copy(pyboxed->gtype,
++ pyboxed->boxed);
++ pyboxed->free_on_dealloc = TRUE;
++ }
++ }
++ Py_DECREF(boxed);
++}
++
+diff --exclude-from=/home/dang/.diffrc -u -ruN pygtk-2.10.1.orig/gtk/gtktreeview.override pygtk-2.10.1/gtk/gtktreeview.override
+--- pygtk-2.10.1.orig/gtk/gtktreeview.override 2006-07-19 16:29:19.000000000 -0400
++++ pygtk-2.10.1/gtk/gtktreeview.override 2006-09-30 17:10:16.000000000 -0400
+@@ -579,6 +579,7 @@
+ }
+ %%
+ override gtk_tree_selection_selected_foreach
++
+ static void
+ pygtk_tree_selection_foreach_marshal(GtkTreeModel *model,
+ GtkTreePath *path,
+@@ -597,17 +598,17 @@
+ py_path = pygtk_tree_path_to_pyobject(path);
+ py_iter = pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, FALSE, FALSE);
+ if (cunote->data)
+- retobj = PyEval_CallFunction(cunote->func, "(NNNO)",
++ retobj = PyEval_CallFunction(cunote->func, "(NNOO)",
+ py_model, py_path, py_iter,
+ cunote->data);
+ else
+- retobj = PyEval_CallFunction(cunote->func, "(NNN)",
++ retobj = PyEval_CallFunction(cunote->func, "(NNO)",
+ py_model, py_path, py_iter);
+
+ if (retobj == NULL) {
+ PyErr_Print();
+ }
+-
++ pygtk_boxed_unref_shared(py_iter);
+ Py_XDECREF(retobj);
+
+ pyg_gil_state_release(state);
+@@ -1124,13 +1125,14 @@
+ py_iter2 = pyg_boxed_new(GTK_TYPE_TREE_ITER, iter2, FALSE, FALSE);
+
+ if (cunote->data) {
+- retobj = PyEval_CallFunction(cunote->func, "(NNNO)", py_model,
++ retobj = PyEval_CallFunction(cunote->func, "(OONO)", py_model,
+ py_iter1, py_iter2, cunote->data);
+ } else {
+- retobj = PyEval_CallFunction(cunote->func, "(NNN)", py_model,
++ retobj = PyEval_CallFunction(cunote->func, "(OON)", py_model,
+ py_iter1, py_iter2);
+ }
+-
++ pygtk_boxed_unref_shared(py_iter1);
++ pygtk_boxed_unref_shared(py_iter2);
+ if (retobj)
+ ret = PyInt_AsLong(retobj);
+ if (PyErr_Occurred()) {
+diff --exclude-from=/home/dang/.diffrc -u -ruN pygtk-2.10.1.orig/gtk/pygtkcellrenderer.c pygtk-2.10.1/gtk/pygtkcellrenderer.c
+--- pygtk-2.10.1.orig/gtk/pygtkcellrenderer.c 2005-01-09 12:35:02.000000000 -0500
++++ pygtk-2.10.1/gtk/pygtkcellrenderer.c 2006-09-30 17:10:16.000000000 -0400
+@@ -250,7 +250,7 @@
+ Py_DECREF(py_ret);
+
+ out:
+- Py_DECREF(py_event);
++ pygtk_boxed_unref_shared(py_event);
+ Py_DECREF(py_widget);
+ Py_DECREF(py_background_area);
+ Py_DECREF(py_cell_area);
+diff --exclude-from=/home/dang/.diffrc -u -ruN pygtk-2.10.1.orig/gtk/pygtk-private.h pygtk-2.10.1/gtk/pygtk-private.h
+--- pygtk-2.10.1.orig/gtk/pygtk-private.h 2006-07-05 09:12:17.000000000 -0400
++++ pygtk-2.10.1/gtk/pygtk-private.h 2006-09-30 17:10:16.000000000 -0400
+@@ -70,4 +70,6 @@
+ #define PYGDK_TYPE_REGION (pygdk_region_get_type ())
+ #endif /* GDK_TYPE_REGION */
+
++void pygtk_boxed_unref_shared(PyObject *boxed);
++
+ #endif
diff --git a/dev-python/pygtk/pygtk-2.10.1-r1.ebuild b/dev-python/pygtk/pygtk-2.10.1-r1.ebuild
new file mode 100644
index 000000000000..6e5a6b2c2a66
--- /dev/null
+++ b/dev-python/pygtk/pygtk-2.10.1-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/pygtk-2.10.1-r1.ebuild,v 1.1 2006/09/30 21:23:33 dang Exp $
+
+inherit gnome.org python flag-o-matic eutils
+
+DESCRIPTION="GTK+2 bindings for Python"
+HOMEPAGE="http://www.pygtk.org/"
+SRC_URI="${SRC_URI}
+ doc? ( http://www.pygtk.org/dist/pygtk2reference.tbz2 )"
+
+LICENSE="LGPL-2.1"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="opengl doc"
+
+RDEPEND=">=dev-lang/python-2.3.5
+ >=dev-libs/glib-2.8.0
+ >=x11-libs/pango-1.10.0
+ >=dev-libs/atk-1.8.0
+ >=x11-libs/gtk+-2.10.0
+ >=gnome-base/libglade-2.5.0
+ >=dev-python/pycairo-1.0.2
+ >=dev-python/pygobject-2.12.1
+ !arm? ( dev-python/numeric )
+ opengl? ( virtual/opengl
+ dev-python/pyopengl
+ >=x11-libs/gtkglarea-1.99
+ )"
+
+DEPEND="${RDEPEND}
+ doc? ( dev-libs/libxslt >=app-text/docbook-xsl-stylesheets-1.70.1 )
+ >=dev-util/pkgconfig-0.9"
+
+src_unpack() {
+ unpack ${A}
+ if use doc; then
+ unpack pygtk2reference.tbz2
+ fi
+
+ # disable pyc compiling
+ mv "${S}"/py-compile "${S}"/py-compile.orig
+ ln -s /bin/true "${S}"/py-compile
+
+ cd "${S}"
+ # bug #148247
+ epatch "${FILESDIR}/${P}-tree-model.patch"
+}
+
+src_compile() {
+ use hppa && append-flags -ffunction-sections
+ econf $(use_enable doc docs) --enable-thread || die
+ # possible problems with parallel builds (#45776)
+ emake -j1 || die
+}
+
+src_install() {
+ make DESTDIR="${D}" install || die
+ dodoc AUTHORS ChangeLog INSTALL MAPPING NEWS README THREADS TODO
+ rm examples/Makefile*
+ cp -r examples ${D}/usr/share/doc/${PF}/
+
+ if use doc; then
+ cd "${S}"/../
+ dodir /usr/share/gtk-doc/html
+ cp -pPR pygtk2reference ${D}/usr/share/gtk-doc/html/
+ fi
+}
+
+src_test() {
+ cd tests
+ make check-local
+}
+
+pkg_postinst() {
+ python_version
+ python_mod_optimize /usr/share/pygtk/2.0/codegen /usr/$(get_libdir)/python${PYVER}/site-packages/gtk-2.0
+}
+
+pkg_postrm() {
+ python_version
+ python_mod_cleanup /usr/share/pygtk/2.0/codegen
+ python_mod_cleanup
+ rm -f ${ROOT}/usr/$(get_libdir)/python${PYVER}/site-packages/pygtk.{py,pth}
+ alternatives_auto_makesym /usr/$(get_libdir)/python${PYVER}/site-packages/pygtk.py pygtk.py-[0-9].[0-9]
+ alternatives_auto_makesym /usr/$(get_libdir)/python${PYVER}/site-packages/pygtk.pth pygtk.pth-[0-9].[0-9]
+}