diff options
Diffstat (limited to 'dev-python/pygtk')
-rw-r--r-- | dev-python/pygtk/ChangeLog | 9 | ||||
-rw-r--r-- | dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch | 58 | ||||
-rw-r--r-- | dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch | 9 | ||||
-rw-r--r-- | dev-python/pygtk/pygtk-2.24.0-r4.ebuild | 100 |
4 files changed, 175 insertions, 1 deletions
diff --git a/dev-python/pygtk/ChangeLog b/dev-python/pygtk/ChangeLog index 569e5d753fb4..f50b49e93898 100644 --- a/dev-python/pygtk/ChangeLog +++ b/dev-python/pygtk/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-python/pygtk # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/ChangeLog,v 1.290 2013/05/03 14:26:01 ssuominen Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/ChangeLog,v 1.291 2013/09/29 10:21:40 pacho Exp $ + +*pygtk-2.24.0-r4 (29 Sep 2013) + + 29 Sep 2013; Pacho Ramos <pacho@gentoo.org> + +files/pygtk-2.24.0-fix-leaks.patch, +files/pygtk-2.24.0-test-fail.patch, + +pygtk-2.24.0-r4.ebuild: + Upstream patch for fixing leaks, make tests exit with right result 03 May 2013; Samuli Suominen <ssuominen@gentoo.org> -pygtk-2.24.0-r2.ebuild: old diff --git a/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch b/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch new file mode 100644 index 000000000000..9106d43c4192 --- /dev/null +++ b/dev-python/pygtk/files/pygtk-2.24.0-fix-leaks.patch @@ -0,0 +1,58 @@ +From eca72baa5616fbe4dbebea43c7e5940847dc5ab8 Mon Sep 17 00:00:00 2001 +From: Owen W. Taylor <otaylor@fishsoup.net> +Date: Tue, 27 Sep 2011 04:17:52 +0000 +Subject: Fix leaks of Pango objects + +Gtk.PrintContext.create_pango_context() +Gtk.PrintContext.create_pango_layout() +pangocairo.CairoContext.create_layout() + +were leaking the objects they returned. + +https://bugzilla.gnome.org/show_bug.cgi?id=660216 +--- +diff --git a/gtk/gtk-2.10.defs b/gtk/gtk-2.10.defs +index 69c7e0c..faa45e1 100644 +--- a/gtk/gtk-2.10.defs ++++ b/gtk/gtk-2.10.defs +@@ -1388,12 +1388,14 @@ + (define-method create_pango_context + (of-object "GtkPrintContext") + (c-name "gtk_print_context_create_pango_context") ++ (caller-owns-return #t) + (return-type "PangoContext*") + ) + + (define-method create_pango_layout + (of-object "GtkPrintContext") + (c-name "gtk_print_context_create_pango_layout") ++ (caller-owns-return #t) + (return-type "PangoLayout*") + ) + +diff --git a/pangocairo.override b/pangocairo.override +index bb923e6..5101107 100644 +--- a/pangocairo.override ++++ b/pangocairo.override +@@ -118,11 +118,16 @@ _wrap_pango_cairo_update_context(PyGObject *self, PyObject *args, PyObject *kwar + static PyObject * + _wrap_pango_cairo_create_layout(PyGObject *self) + { +- PangoLayout *ret; ++ PangoLayout *layout; ++ PyObject *ret; + +- ret = pango_cairo_create_layout(PycairoContext_GET(self)); ++ layout = pango_cairo_create_layout(PycairoContext_GET(self)); + /* pygobject_new handles NULL checking */ +- return pygobject_new((GObject *)ret); ++ ret = pygobject_new((GObject *)layout); ++ if (layout) ++ g_object_unref(layout); ++ ++ return ret; + } + + static PyObject * +-- +cgit v0.9.2 diff --git a/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch b/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch new file mode 100644 index 000000000000..5bb1aec13d89 --- /dev/null +++ b/dev-python/pygtk/files/pygtk-2.24.0-test-fail.patch @@ -0,0 +1,9 @@ +--- tests/runtests.py ++++ tests/runtests.py +@@ -41,4 +41,5 @@ + suite.addTest(loader.loadTestsFromName(name)) + + testRunner = unittest.TextTestRunner() +-testRunner.run(suite) ++result = testRunner.run(suite) ++sys.exit(not result.wasSuccessful()) diff --git a/dev-python/pygtk/pygtk-2.24.0-r4.ebuild b/dev-python/pygtk/pygtk-2.24.0-r4.ebuild new file mode 100644 index 000000000000..e20315193047 --- /dev/null +++ b/dev-python/pygtk/pygtk-2.24.0-r4.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/pygtk/pygtk-2.24.0-r4.ebuild,v 1.1 2013/09/29 10:21:40 pacho Exp $ + +EAPI="5" +GCONF_DEBUG="no" +GNOME_TARBALL_SUFFIX="bz2" +PYTHON_COMPAT=( python2_{6,7} ) + +inherit autotools eutils flag-o-matic gnome2 python-r1 virtualx + +DESCRIPTION="GTK+2 bindings for Python" +HOMEPAGE="http://www.pygtk.org/" + +LICENSE="LGPL-2.1" +SLOT="2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" +IUSE="doc examples test" + +RDEPEND=" + >=dev-libs/glib-2.8:2 + >=x11-libs/pango-1.16 + >=dev-libs/atk-1.12 + >=x11-libs/gtk+-2.24:2 + >=dev-python/pycairo-1.0.2[${PYTHON_USEDEP}] + >=dev-python/pygobject-2.26.8-r53:2[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + >=gnome-base/libglade-2.5:2.0 +" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( + dev-libs/libxslt + >=app-text/docbook-xsl-stylesheets-1.70.1 ) +" + +src_prepare() { + # Fix declaration of codegen in .pc + epatch "${FILESDIR}/${PN}-2.13.0-fix-codegen-location.patch" + epatch "${FILESDIR}/${PN}-2.14.1-libdir-pc.patch" + + # Fix leaks of Pango objects + epatch "${FILESDIR}/${PN}-2.24.0-fix-leaks.patch" + + # Fail when tests are failing, bug #391307 + epatch "${FILESDIR}/${PN}-2.24.0-test-fail.patch" + + # Examples is handled "manually" + sed -e 's/\(SUBDIRS = .* \)examples/\1/' \ + -i Makefile.am Makefile.in || die + + sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' configure.ac || die #466968 + + AT_M4DIR="m4" eautoreconf + + prepare_pygtk() { + mkdir -p "${BUILD_DIR}" || die + } + python_foreach_impl prepare_pygtk +} + +src_configure() { + use hppa && append-flags -ffunction-sections + configure_pygtk() { + ECONF_SOURCE="${S}" gnome2_src_configure \ + $(use_enable doc docs) \ + --with-glade \ + --enable-thread + } + python_foreach_impl run_in_build_dir configure_pygtk +} + +src_compile() { + python_foreach_impl run_in_build_dir gnome2_src_compile +} + +src_test() { + # Let tests pass without permissions problems, bug #245103 + gnome2_environment_reset + unset DBUS_SESSION_BUS_ADDRESS + + testing() { + cd tests + Xemake check-local + } + python_foreach_impl run_in_build_dir testing +} + +src_install() { + dodoc AUTHORS ChangeLog INSTALL MAPPING NEWS README THREADS TODO + + if use examples; then + rm examples/Makefile* + insinto /usr/share/doc/${PF} + doins -r examples + fi + + python_foreach_impl run_in_build_dir gnome2_src_install + prune_libtool_files --modules +} |