diff options
author | Daniel Gryniewicz <dang@gentoo.org> | 2006-09-30 21:23:33 +0000 |
---|---|---|
committer | Daniel Gryniewicz <dang@gentoo.org> | 2006-09-30 21:23:33 +0000 |
commit | e41e62912db870aebbeccc74cd8efbb2c3734d71 (patch) | |
tree | 7b03b7e74753b802b9d328fdec4519284bce1aed /dev-python | |
parent | version bump closing security bug #149602 thanks to Janne Pikkarainen (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | dev-python/pygtk/files/digest-pygtk-2.10.1-r1 | 6 | ||||
-rw-r--r-- | dev-python/pygtk/files/pygtk-2.10.1-tree-model.patch | 95 | ||||
-rw-r--r-- | dev-python/pygtk/pygtk-2.10.1-r1.ebuild | 87 |
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] +} |