diff options
author | Ryan Hill <rhill@gentoo.org> | 2008-06-07 19:12:16 +0000 |
---|---|---|
committer | Ryan Hill <rhill@gentoo.org> | 2008-06-07 19:12:16 +0000 |
commit | 44cfd324b9f96ec687a1e261aa4d93dcf5998e85 (patch) | |
tree | c02268ec9763cf46c850695f53da2d8d876cdf2c /x11-libs/wxGTK | |
parent | amd64 stable, bug #225085 (diff) | |
download | historical-44cfd324b9f96ec687a1e261aa4d93dcf5998e85.tar.gz historical-44cfd324b9f96ec687a1e261aa4d93dcf5998e85.tar.bz2 historical-44cfd324b9f96ec687a1e261aa4d93dcf5998e85.zip |
Add patch from upstream to fix race condition in wxWakeUpIdle.
Package-Manager: portage-2.2_pre7-r1/cvs/Linux 2.6.25-gentoo-r3 Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz
Diffstat (limited to 'x11-libs/wxGTK')
-rw-r--r-- | x11-libs/wxGTK/ChangeLog | 8 | ||||
-rw-r--r-- | x11-libs/wxGTK/Manifest | 14 | ||||
-rw-r--r-- | x11-libs/wxGTK/files/wxGTK-2.8.7-race-fix.patch | 109 | ||||
-rw-r--r-- | x11-libs/wxGTK/wxGTK-2.8.7.1-r2.ebuild | 150 |
4 files changed, 279 insertions, 2 deletions
diff --git a/x11-libs/wxGTK/ChangeLog b/x11-libs/wxGTK/ChangeLog index 7f73bd323d65..1bfd5a7d49c7 100644 --- a/x11-libs/wxGTK/ChangeLog +++ b/x11-libs/wxGTK/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for x11-libs/wxGTK # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/ChangeLog,v 1.189 2008/03/17 12:27:47 pva Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/ChangeLog,v 1.190 2008/06/07 19:12:16 dirtyepic Exp $ + +*wxGTK-2.8.7.1-r2 (07 Jun 2008) + + 07 Jun 2008; Ryan Hill <dirtyepic@gentoo.org> + +files/wxGTK-2.8.7-race-fix.patch, +wxGTK-2.8.7.1-r2.ebuild: + Add patch from upstream to fix race condition in wxWakeUpIdle. 17 Mar 2008; Peter Volkov <pva@gentoo.org> wxGTK-2.6.4.0-r3.ebuild, wxGTK-2.8.7.1-r1.ebuild: diff --git a/x11-libs/wxGTK/Manifest b/x11-libs/wxGTK/Manifest index 890b3bf16d40..75d96eb816a8 100644 --- a/x11-libs/wxGTK/Manifest +++ b/x11-libs/wxGTK/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + AUX wxGTK-2.6.3-unicode-odbc.patch 729 RMD160 cad7401a478ccf30a06c2b856d446804d068a1fa SHA1 3cdaf28a083316c20bbb2d72c4a1b606ce001d2c SHA256 195494cc97b99674f08f30f46322458a90cc146cf70749cdb0c7d255424ab00f AUX wxGTK-2.6.4-collision.patch 5778 RMD160 cbe029a606ec1f46ae7f29605631b8f05bd50cb4 SHA1 05a80154ad673b26a6e8dadc79c488ce5a0357b4 SHA256 0f7ac329ce24fbac7828a0b7c249ac0b376334da0f563456572172359ad78435 AUX wxGTK-2.6.4.0-g_free.patch 1102 RMD160 a2b4fc260d834b5e8c5244a19b61dd2f74c9c3b1 SHA1 0af47b2b10b1c472b8d6ec9e43160c4b28527bf0 SHA256 029b962d7ca861e15b00712a786e070aaaaa89c1faa6b9a5e46e3c5a2b8b00f5 @@ -5,11 +8,20 @@ AUX wxGTK-2.6.4.0-wxrc_link_fix.patch 1085 RMD160 2af7918740d4826822af82a50b63ea AUX wxGTK-2.8.4-collision.patch 6073 RMD160 3e3d763d08d10a4d7745017fd2fc8625a6a4d6d9 SHA1 23576c694910c402f13fff3c0c360a7ebe2635dd SHA256 cc7b15e7c29469f5b5ec476f0cfc4e1bdf5693f1c8b95e51eb336af4bc72e838 AUX wxGTK-2.8.6-wxrc_link_fix.patch 989 RMD160 baf0009e0ecfe68b25df80e6b0956ef08f9e8bfd SHA1 dc8d7474647b5d8d0b9bc7c9bdf77899351808c1 SHA256 4eac080fe34870398309623cb363573b2d0242eb1dd24534efde4e7237c05fd0 AUX wxGTK-2.8.7-mmedia.patch 585 RMD160 d71b0a7211e42a58109e4f7859a87be2f23c4e19 SHA1 2c453b6a70de916ffc9e61518937fc6f487bd9bb SHA256 943203ed2ccfe52d4ea701bc15a15e9f65aff7e6e5a86145f9a593619e091f85 +AUX wxGTK-2.8.7-race-fix.patch 3623 RMD160 a05a4c1c6f7b5452c1dad3ec8a5806d8344e1e64 SHA1 0d98de48b4f4f5fa06c33fc1c2aa2b3f9a775417 SHA256 c463e541c0a8d4e856698a85afb5cad9c46f687988c047a6e32b55648cad4ca8 DIST wxPython-src-2.6.4.0.tar.bz2 19062795 RMD160 fe4d2cd91f83c6a8538f2f70f94d6553985f3958 SHA1 621f529e0a5c3e30d4a750046fd71179567a52f8 SHA256 124281b3f5d699eb0699022a0e00fd5359370b61748a0560b7109005d8fb06ba DIST wxPython-src-2.8.7.1.tar.bz2 26362160 RMD160 c22d6eb1dfcd165226b0ff50bfeb2aed21763a8e SHA1 5526ee4c4cc57bcebb4950ea05e24639ef8b02dd SHA256 4683dd50208b816a7fa482c4694fc4c132d8a18708102898377388ea32e083f3 DIST wxWidgets-2.6.4-HTML.tar.gz 1364468 RMD160 1330f83e821b5644043ca212f2991f6b55bb0e6f SHA1 4fa83af9d55de61a934961cb2e2f19f22930f592 SHA256 ec7c80be3cebc69e7fb63d56235cbd82f3cd943e422329d7e648ee745a07588c EBUILD wxGTK-2.6.4.0-r1.ebuild 4634 RMD160 6db1610df15f3c630a390d4c85177238dbb650a2 SHA1 01674d3d971f4f9d80cae000a459ae791218f370 SHA256 7eb2cfc6517e05d62b79a93e283406263493e95cbc940ecec41910cae6a6ca73 EBUILD wxGTK-2.6.4.0-r3.ebuild 4626 RMD160 72ca7a49233a3b10a917981f05ab677378a6acd8 SHA1 b53bef6b1bc1fde638835a221dc700da435024f0 SHA256 dd53ec972c28b62bc361fe4da1a1b691c3a38ef0cd9bd9c17b31f90c6f8b3ee8 EBUILD wxGTK-2.8.7.1-r1.ebuild 3348 RMD160 5c77d6f6fb8ca5f21fa5df984f1ad665227f6704 SHA1 3d76f263fb9acb473b6c717ff35f22c63d510640 SHA256 ac0e1930b89211631f22dad5d5328b3f58664e68a8a6404f061870165f3356a5 -MISC ChangeLog 29582 RMD160 4737809d77fb58e8784332354258b949dd358706 SHA1 cb84321ec832bf16fc8609a9255b3ae20c5dd2fa SHA256 8468147213301986878481c0062514bee976c7a4d5d56ba256041350b48992ba +EBUILD wxGTK-2.8.7.1-r2.ebuild 3449 RMD160 01ec7c72dd1c49ac071e3b6197b23fe986043785 SHA1 f50df902aa8e0fc470ad8a7f5bcc34c0fb0d85fc SHA256 dbf513c73d7726a92b0628e7bf1f2d7d84baaa191e6bc7bb7bb50803c69afa06 +MISC ChangeLog 29798 RMD160 49e69b7e87d546eab8ea8f4791b6603787b09089 SHA1 54282c781833855beae98cefdc8de8b363dd0adf SHA256 26a1403f72584138efdfa3ba23f340734497e345072e40e6179cb1e13c20e3c1 MISC metadata.xml 162 RMD160 c039a69ee8efb8cbbbf4b67df25a6e8506ae2610 SHA1 ef137d109c76b893201870840b179f4c42c0f3ff SHA256 fab42f6a31209847529447a2bea2b9dd746521fe5d59d967470736120712f093 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.9 (GNU/Linux) + +iEYEARECAAYFAkhK3YMACgkQiqiDRvmkBmIFFACeNikjGBPInIHAZ0Dm8a2/SLyK +C7wAnifZh3DBykGFBNNMSv35D3UE3U10 +=bvO9 +-----END PGP SIGNATURE----- diff --git a/x11-libs/wxGTK/files/wxGTK-2.8.7-race-fix.patch b/x11-libs/wxGTK/files/wxGTK-2.8.7-race-fix.patch new file mode 100644 index 000000000000..c58f3956d453 --- /dev/null +++ b/x11-libs/wxGTK/files/wxGTK-2.8.7-race-fix.patch @@ -0,0 +1,109 @@ +--- wxWidgets/src/gtk/app.cpp 2008/03/13 02:56:21 52464 ++++ wxWidgets/src/gtk/app.cpp 2008/03/13 04:37:03 52465 +@@ -174,59 +174,63 @@ + if (!wxTheApp) + return false; + +- bool moreIdles = false; +- ++ guint idleID_save; ++ { ++ // Allow another idle source to be added while this one is busy. ++ // Needed if an idle event handler runs a new event loop, ++ // for example by showing a dialog. ++#if wxUSE_THREADS ++ wxMutexLocker lock(gs_idleTagsMutex); ++#endif ++ idleID_save = wxTheApp->m_idleTag; ++ wxTheApp->m_idleTag = 0; ++ g_isIdle = true; ++ wxAddEmissionHook(); ++ } + #ifdef __WXDEBUG__ + // don't generate the idle events while the assert modal dialog is shown, + // this matches the behavior of wxMSW +- if (!wxTheApp->IsInAssert()) ++ if (wxTheApp->IsInAssert()) ++ return false; + #endif // __WXDEBUG__ +- { +- guint idleID_save; +- { +- // Allow another idle source to be added while this one is busy. +- // Needed if an idle event handler runs a new event loop, +- // for example by showing a dialog. +-#if wxUSE_THREADS +- wxMutexLocker lock(gs_idleTagsMutex); +-#endif +- idleID_save = wxTheApp->m_idleTag; +- wxTheApp->m_idleTag = 0; +- g_isIdle = true; +- wxAddEmissionHook(); +- } + +- // When getting called from GDK's time-out handler +- // we are no longer within GDK's grab on the GUI +- // thread so we must lock it here ourselves. +- gdk_threads_enter(); +- +- // Send idle event to all who request them as long as +- // no events have popped up in the event queue. +- do { +- moreIdles = wxTheApp->ProcessIdle(); +- } while (moreIdles && gtk_events_pending() == 0); ++ // When getting called from GDK's time-out handler ++ // we are no longer within GDK's grab on the GUI ++ // thread so we must lock it here ourselves. ++ gdk_threads_enter(); + +- // Release lock again +- gdk_threads_leave(); +- +- { +- // If another idle source was added, remove it ++ // Send idle event to all who request them as long as ++ // no events have popped up in the event queue. ++ bool moreIdles; ++ do { ++ moreIdles = wxTheApp->ProcessIdle(); ++ } while (moreIdles && gtk_events_pending() == 0); ++ ++ // Release lock again ++ gdk_threads_leave(); ++ + #if wxUSE_THREADS +- wxMutexLocker lock(gs_idleTagsMutex); ++ wxMutexLocker lock(gs_idleTagsMutex); + #endif +- if (wxTheApp->m_idleTag != 0) +- g_source_remove(wxTheApp->m_idleTag); +- wxTheApp->m_idleTag = idleID_save; +- g_isIdle = false; +- } +- } ++ // If another idle source was added, remove it ++ if (wxTheApp->m_idleTag != 0) ++ g_source_remove(wxTheApp->m_idleTag); ++ wxTheApp->m_idleTag = idleID_save; ++ g_isIdle = false; + +- if (!moreIdles) +- { + #if wxUSE_THREADS +- wxMutexLocker lock(gs_idleTagsMutex); ++ if (wxPendingEventsLocker) ++ wxPendingEventsLocker->Enter(); + #endif ++ // Pending events can be added asynchronously, ++ // need to keep idle source if any have appeared ++ moreIdles = moreIdles || (wxPendingEvents && !wxPendingEvents->IsEmpty()); ++#if wxUSE_THREADS ++ if (wxPendingEventsLocker) ++ wxPendingEventsLocker->Leave(); ++#endif ++ if (!moreIdles) ++ { + // Indicate that we are now in idle mode and event handlers + // will have to reinstall the idle handler again. + g_isIdle = true; + diff --git a/x11-libs/wxGTK/wxGTK-2.8.7.1-r2.ebuild b/x11-libs/wxGTK/wxGTK-2.8.7.1-r2.ebuild new file mode 100644 index 000000000000..6282e1a6a3ef --- /dev/null +++ b/x11-libs/wxGTK/wxGTK-2.8.7.1-r2.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-libs/wxGTK/wxGTK-2.8.7.1-r2.ebuild,v 1.1 2008/06/07 19:12:16 dirtyepic Exp $ + +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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86" +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? ( >=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_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}"/${PN}-2.6.3-unicode-odbc.patch + epatch "${FILESDIR}"/${PN}-2.8.4-collision.patch + epatch "${FILESDIR}"/${PN}-2.8.6-wxrc_link_fix.patch + epatch "${FILESDIR}"/${PN}-2.8.7-mmedia.patch # Bug #174874 + epatch "${FILESDIR}"/${PN}-2.8.7-race-fix.patch # https://bugzilla.redhat.com/440011 +} + +src_compile() { + 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 + $(use_enable debug) + $(use_enable pch precomp-headers) + $(use_with sdl) + $(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 + --with-libxpm + --with-libjpeg + --with-libtiff + $(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." + + 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 +} |