diff options
author | Ryan Hill <dirtyepic@gentoo.org> | 2010-01-19 01:19:36 +0000 |
---|---|---|
committer | Ryan Hill <dirtyepic@gentoo.org> | 2010-01-19 01:19:36 +0000 |
commit | 557ebb80b680c5baa3e3c4f542dac26e3542089c (patch) | |
tree | f9d9873d7dd045d0a36d9ecbb10dbc8676659f65 /x11-libs/wxGTK | |
parent | Stable for HPPA too. (diff) | |
download | gentoo-2-557ebb80b680c5baa3e3c4f542dac26e3542089c.tar.gz gentoo-2-557ebb80b680c5baa3e3c4f542dac26e3542089c.tar.bz2 gentoo-2-557ebb80b680c5baa3e3c4f542dac26e3542089c.zip |
Added upstream patch to prevent leaking timer handles in idle apps. (Bug
#301143 by Richard Ash)
(Portage version: 2.2_rc61/cvs/Linux x86_64)
Diffstat (limited to 'x11-libs/wxGTK')
-rw-r--r-- | x11-libs/wxGTK/ChangeLog | 11 | ||||
-rw-r--r-- | x11-libs/wxGTK/files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch | 42 | ||||
-rw-r--r-- | x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild | 160 |
3 files changed, 211 insertions, 2 deletions
diff --git a/x11-libs/wxGTK/ChangeLog b/x11-libs/wxGTK/ChangeLog index 8fa4cbb4ba50..8bdf73c2ec75 100644 --- a/x11-libs/wxGTK/ChangeLog +++ b/x11-libs/wxGTK/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for x11-libs/wxGTK -# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/ChangeLog,v 1.241 2009/09/15 01:08:27 dirtyepic Exp $ +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/ChangeLog,v 1.242 2010/01/19 01:19:35 dirtyepic Exp $ + +*wxGTK-2.8.10.1-r4 (19 Jan 2010) + + 19 Jan 2010; Ryan Hill <dirtyepic@gentoo.org> +wxGTK-2.8.10.1-r4.ebuild, + +files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch: + Added upstream patch to prevent leaking timer handles in idle apps. (Bug + #301143 by Richard Ash) 15 Sep 2009; Ryan Hill <dirtyepic@gentoo.org> -wxGTK-2.6.4.0-r4.ebuild, -wxGTK-2.8.9.1-r3.ebuild, -wxGTK-2.8.9.2-r1.ebuild, diff --git a/x11-libs/wxGTK/files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch b/x11-libs/wxGTK/files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch new file mode 100644 index 000000000000..ab9e48419e4f --- /dev/null +++ b/x11-libs/wxGTK/files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch @@ -0,0 +1,42 @@ +https://bugs.gentoo.org/301143 +http://trac.wxwidgets.org/ticket/11315 + +diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp +index c203f08..3ccf82f 100644 +--- a/src/gtk/app.cpp ++++ b/src/gtk/app.cpp +@@ -149,9 +149,11 @@ extern "C" + // One-shot emission hook for "event" signal, to install idle handler. + // This will be called when the "event" signal is issued on any GtkWidget object. + static gboolean +-event_emission_hook(GSignalInvocationHint*, guint, const GValue*, gpointer) ++event_emission_hook(GSignalInvocationHint*, guint, const GValue*, gpointer data) + { + wxapp_install_idle_handler(); ++ bool* hook_installed = (bool*)data; ++ *hook_installed = false; + // remove hook + return false; + } +@@ -159,12 +161,17 @@ event_emission_hook(GSignalInvocationHint*, guint, const GValue*, gpointer) + // add emission hook for "event" signal, to re-install idle handler when needed + static inline void wxAddEmissionHook() + { ++ static bool hook_installed; + GType widgetType = GTK_TYPE_WIDGET; +- // if GtkWidget type is loaded +- if (g_type_class_peek(widgetType) != NULL) ++ // if hook not installed and GtkWidget type is loaded ++ if (!hook_installed && g_type_class_peek(widgetType)) + { +- guint sig_id = g_signal_lookup("event", widgetType); +- g_signal_add_emission_hook(sig_id, 0, event_emission_hook, NULL, NULL); ++ static guint sig_id; ++ if (sig_id == 0) ++ sig_id = g_signal_lookup("event", widgetType); ++ hook_installed = true; ++ g_signal_add_emission_hook( ++ sig_id, 0, event_emission_hook, &hook_installed, NULL); + } + } + diff --git a/x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild b/x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild new file mode 100644 index 000000000000..c1bb2b899077 --- /dev/null +++ b/x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild,v 1.1 2010/01/19 01:19:35 dirtyepic Exp $ + +EAPI="2" + +inherit eutils versionator flag-o-matic + +DESCRIPTION="GTK+ version of wxWidgets, a cross-platform C++ GUI toolkit." +HOMEPAGE="http://wxwidgets.org/" + +BASE_PV="$(get_version_component_range 1-3)" +BASE_P="${PN}-${BASE_PV}" + +# we use the wxPython tarballs because they include the full wxGTK sources and +# docs, and are released more frequently than wxGTK. +SRC_URI="mirror://sourceforge/wxpython/wxPython-src-${PV}.tar.bz2" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="X doc debug gnome gstreamer odbc opengl pch sdl" + +RDEPEND=" + dev-libs/expat + odbc? ( dev-db/unixODBC ) + sdl? ( media-libs/libsdl ) + X? ( + >=x11-libs/gtk+-2.4 + >=dev-libs/glib-2.4 + media-libs/jpeg + media-libs/tiff + x11-libs/libSM + x11-libs/libXinerama + x11-libs/libXxf86vm + gnome? ( gnome-base/libgnomeprintui ) + gstreamer? ( + >=gnome-base/gconf-2.0 + >=media-libs/gstreamer-0.10 ) + opengl? ( virtual/opengl ) + )" + +DEPEND="${RDEPEND} + dev-util/pkgconfig + X? ( + x11-proto/xproto + x11-proto/xineramaproto + x11-proto/xf86vidmodeproto + )" + +PDEPEND=">=app-admin/eselect-wxwidgets-0.7" + +SLOT="2.8" +LICENSE="wxWinLL-3 + GPL-2 + odbc? ( LGPL-2 ) + doc? ( wxWinFDL-3 )" + +S="${WORKDIR}/wxPython-src-${PV}" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-2.6.3-unicode-odbc.patch + epatch "${FILESDIR}"/${PN}-2.8.10-collision.patch + epatch "${FILESDIR}"/${PN}-2.8.7-mmedia.patch # Bug #174874 + # this version only: + epatch "${FILESDIR}"/${P}-CVE-2009-2369.patch # Bug #277722 + epatch "${FILESDIR}"/${P}-gsocket.patch # Bug #278778 + epatch "${FILESDIR}"/${P}-wxTimer-unbounded-hook.patch # Bug #301143 +} + +src_configure() { + local myconf + + append-flags -fno-strict-aliasing + + # X independent options + myconf="--enable-compat26 + --enable-shared + --enable-unicode + --with-regex=builtin + --with-zlib=sys + --with-expat=sys + $(use_enable debug) + $(use_enable pch precomp-headers) + $(use_with sdl)" + + use odbc \ + && myconf="${myconf} --with-odbc=sys" \ + || myconf="${myconf} $(use_with odbc)" + + # wxGTK options + # --enable-graphics_ctx - needed for webkit, editra + # --without-gnomevfs - bug #203389 + + use X && \ + myconf="${myconf} + --enable-graphics_ctx + --enable-gui + --with-libpng=sys + --with-libxpm=sys + --with-libjpeg=sys + --with-libtiff=sys + $(use_enable gstreamer mediactrl) + $(use_enable opengl) + $(use_with opengl) + $(use_with gnome gnomeprint) + --without-gnomevfs" + + # wxBase options + use X || \ + myconf="${myconf} + --disable-gui" + + mkdir "${S}"/wxgtk_build + cd "${S}"/wxgtk_build + + ECONF_SOURCE="${S}" econf ${myconf} || die "configure failed." +} + +src_compile() { + cd "${S}"/wxgtk_build + + emake || die "make failed." + + if [[ -d contrib/src ]]; then + cd contrib/src + emake || die "make contrib failed." + fi +} + +src_install() { + cd "${S}"/wxgtk_build + + emake DESTDIR="${D}" install || die "install failed." + + if [[ -d contrib/src ]]; then + cd contrib/src + emake DESTDIR="${D}" install || die "install contrib failed." + fi + + cd "${S}"/docs + dodoc changes.txt readme.txt todo30.txt + newdoc base/readme.txt base_readme.txt + newdoc gtk/readme.txt gtk_readme.txt + + if use doc; then + dohtml -r "${S}"/docs/html/* + fi + + # We don't want this + rm "${D}"usr/share/locale/it/LC_MESSAGES/wxmsw.mo +} + +pkg_postinst() { + has_version app-admin/eselect-wxwidgets \ + && eselect wxwidgets update +} + +pkg_postrm() { + has_version app-admin/eselect-wxwidgets \ + && eselect wxwidgets update +} |