summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Hill <dirtyepic@gentoo.org>2010-01-19 01:19:36 +0000
committerRyan Hill <dirtyepic@gentoo.org>2010-01-19 01:19:36 +0000
commit557ebb80b680c5baa3e3c4f542dac26e3542089c (patch)
treef9d9873d7dd045d0a36d9ecbb10dbc8676659f65 /x11-libs/wxGTK
parentStable for HPPA too. (diff)
downloadgentoo-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/ChangeLog11
-rw-r--r--x11-libs/wxGTK/files/wxGTK-2.8.10.1-wxTimer-unbounded-hook.patch42
-rw-r--r--x11-libs/wxGTK/wxGTK-2.8.10.1-r4.ebuild160
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
+}