From 97b26830ad7e86262047ca9eda88270230ca01d2 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Tue, 22 Dec 2009 17:12:12 +0530 Subject: Add x11-wm/metacity-9999 * Has two patches carried over from 2.28.0 --- x11-wm/metacity/Manifest | 3 + ...city-2.28.0-restartstylehint-when-replace.patch | 139 +++++++++++++++++++++ .../files/metacity-2.28.0-sys-wait-header.patch | 19 +++ x11-wm/metacity/metacity-9999.ebuild | 78 ++++++++++++ 4 files changed, 239 insertions(+) create mode 100644 x11-wm/metacity/Manifest create mode 100644 x11-wm/metacity/files/metacity-2.28.0-restartstylehint-when-replace.patch create mode 100644 x11-wm/metacity/files/metacity-2.28.0-sys-wait-header.patch create mode 100644 x11-wm/metacity/metacity-9999.ebuild diff --git a/x11-wm/metacity/Manifest b/x11-wm/metacity/Manifest new file mode 100644 index 0000000..07ac9d0 --- /dev/null +++ b/x11-wm/metacity/Manifest @@ -0,0 +1,3 @@ +AUX metacity-2.28.0-restartstylehint-when-replace.patch 4709 RMD160 da983b21c50dbacd8f5df06f50d233eef6c25331 SHA1 248f8dce5fc3b88ce43e796ba7995bf0d76a9d99 SHA256 3a7e484ec2eb97e7b7f1baaa33e5d925e67a35c84e49c5abe6c32cf2c25f16eb +AUX metacity-2.28.0-sys-wait-header.patch 480 RMD160 5f3cb891f1f1e5e122db1b4a20af345df1963e48 SHA1 fb9cb941e877c552dd1aef8c49470bcdd300007f SHA256 7bcaa2ba358e8666cef98abeea30d7a01d8c9c9e60ead7ec0b2dee3ee6f84be0 +EBUILD metacity-9999.ebuild 2141 RMD160 951bc9c91c6dc78cdf28754b1ebe8d9a4a708659 SHA1 8b58cc597a9a7488c8ac34231592a023896787a5 SHA256 80a7b1cd3d11bd2329a5966ab4b78ea7d92f14e8dd01afde405fc85e808e4e69 diff --git a/x11-wm/metacity/files/metacity-2.28.0-restartstylehint-when-replace.patch b/x11-wm/metacity/files/metacity-2.28.0-restartstylehint-when-replace.patch new file mode 100644 index 0000000..54dd79e --- /dev/null +++ b/x11-wm/metacity/files/metacity-2.28.0-restartstylehint-when-replace.patch @@ -0,0 +1,139 @@ +From a3de65d5d1861f755ced7cad291fbbd4f1b8ef51 Mon Sep 17 00:00:00 2001 +From: Owen W. Taylor +Date: Sat, 22 Aug 2009 15:00:57 -0400 +Subject: [PATCH] Should set RestartStyleHint to RestartIfRunning when replaced + +This reverts most of commit abbd057eb967e6ab462ffe305f41b2b04d417b25; + + - It's fine to call meta_session_shutdown() after the display + is closed, since it's talking over the ICE connection + - We should not call warn_about_lame_clients_and_finish_interact() + unless we are interacting with the window manager in a session + save. + +However, the part of abbd057 that fixed accessing freed memory was +fixing a real problem; this patches does the same thing in a simpler +way by fixing an obvious type in meta_display_close() where it was +NULL'ing out the local variable 'display' rather than the global +variable 'the_display' and adding keeping the check in meta_finalize() +that was added in abbd057. + +The order of calling meta_session_shutdown() and +calling meta_display_close() is reverted back to the old order to +make it clear that it's OK if the display way already closed previously. + +http://bugzilla.gnome.org/show_bug.cgi?id=588119 +--- + src/core/display-private.h | 2 +- + src/core/display.c | 16 ++++------------ + src/core/main.c | 5 ++--- + src/core/session.c | 8 -------- + 4 files changed, 7 insertions(+), 24 deletions(-) + +diff --git a/src/core/display-private.h b/src/core/display-private.h +index 19287f3..9c8ebc6 100644 +--- a/src/core/display-private.h ++++ b/src/core/display-private.h +@@ -329,7 +329,7 @@ MetaScreen* meta_display_screen_for_xwindow (MetaDisplay *display, + void meta_display_grab (MetaDisplay *display); + void meta_display_ungrab (MetaDisplay *display); + +-void meta_display_unmanage_screen (MetaDisplay **display, ++void meta_display_unmanage_screen (MetaDisplay *display, + MetaScreen *screen, + guint32 timestamp); + +diff --git a/src/core/display.c b/src/core/display.c +index 55c374a..8e35a35 100644 +--- a/src/core/display.c ++++ b/src/core/display.c +@@ -926,7 +926,7 @@ meta_display_close (MetaDisplay *display, + meta_compositor_destroy (display->compositor); + + g_free (display); +- display = NULL; ++ the_display = NULL; + + meta_quit (META_EXIT_SUCCESS); + } +@@ -4762,13 +4762,10 @@ process_selection_clear (MetaDisplay *display, + meta_verbose ("Got selection clear for screen %d on display %s\n", + screen->number, display->name); + +- meta_display_unmanage_screen (&display, ++ meta_display_unmanage_screen (display, + screen, + event->xselectionclear.time); + +- if (!display) +- the_display = NULL; +- + /* display and screen may both be invalid memory... */ + + return; +@@ -4790,12 +4787,10 @@ process_selection_clear (MetaDisplay *display, + } + + void +-meta_display_unmanage_screen (MetaDisplay **displayp, ++meta_display_unmanage_screen (MetaDisplay *display, + MetaScreen *screen, + guint32 timestamp) + { +- MetaDisplay *display = *displayp; +- + meta_verbose ("Unmanaging screen %d on display %s\n", + screen->number, display->name); + +@@ -4805,10 +4800,7 @@ meta_display_unmanage_screen (MetaDisplay **displayp, + display->screens = g_slist_remove (display->screens, screen); + + if (display->screens == NULL) +- { +- meta_display_close (display, timestamp); +- *displayp = NULL; +- } ++ meta_display_close (display, timestamp); + } + + void +diff --git a/src/core/main.c b/src/core/main.c +index a36a396..44d317e 100644 +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -361,12 +361,11 @@ static void + meta_finalize (void) + { + MetaDisplay *display = meta_get_display(); +- +- meta_session_shutdown (); +- + if (display) + meta_display_close (display, + CurrentTime); /* I doubt correct timestamps matter here */ ++ ++ meta_session_shutdown (); + } + + static void +diff --git a/src/core/session.c b/src/core/session.c +index 7e3b389..0d69350 100644 +--- a/src/core/session.c ++++ b/src/core/session.c +@@ -376,14 +376,6 @@ meta_session_shutdown (void) + SmProp *props[1]; + char hint = SmRestartIfRunning; + +- if (!meta_get_display ()) +- { +- meta_verbose ("Cannot close session because there is no display"); +- return; +- } +- +- warn_about_lame_clients_and_finish_interact (FALSE); +- + if (session_connection == NULL) + return; + +-- +1.6.4 \ No newline at end of file diff --git a/x11-wm/metacity/files/metacity-2.28.0-sys-wait-header.patch b/x11-wm/metacity/files/metacity-2.28.0-sys-wait-header.patch new file mode 100644 index 0000000..5d7f4a1 --- /dev/null +++ b/x11-wm/metacity/files/metacity-2.28.0-sys-wait-header.patch @@ -0,0 +1,19 @@ +From: Alexis Ballier +Date: Thu, 5 Nov 2009 19:48:41 +0100 +Subject: Include sys/wait.h instead of only wait.h as described in POSIX specs. Fixes build on FreeBSD. + +--- + src/core/main.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +--- a/src/core/main.c ++++ b/src/core/main.c +@@ -58,7 +58,7 @@ + + #include + #include +-#include ++#include + #include + #include + #include diff --git a/x11-wm/metacity/metacity-9999.ebuild b/x11-wm/metacity/metacity-9999.ebuild new file mode 100644 index 0000000..d989737 --- /dev/null +++ b/x11-wm/metacity/metacity-9999.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-wm/metacity/metacity-2.28.0.ebuild,v 1.2 2009/11/06 15:43:38 mrpouet Exp $ + +EAPI="2" +# debug only changes CFLAGS +GCONF_DEBUG="no" + +inherit eutils gnome2 gnome2-live + +DESCRIPTION="GNOME default window manager" +HOMEPAGE="http://blogs.gnome.org/metacity/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="test xinerama" + +# XXX: libgtop is automagic, hard-enabled instead +RDEPEND=">=x11-libs/gtk+-2.10 + >=x11-libs/pango-1.2[X] + >=gnome-base/gconf-2 + >=dev-libs/glib-2.6 + >=x11-libs/startup-notification-0.7 + >=x11-libs/libXcomposite-0.2 + x11-libs/libXfixes + x11-libs/libXrender + x11-libs/libXdamage + x11-libs/libXcursor + x11-libs/libX11 + xinerama? ( x11-libs/libXinerama ) + x11-libs/libXext + x11-libs/libXrandr + x11-libs/libSM + x11-libs/libICE + media-libs/libcanberra[gtk] + gnome-base/libgtop + gnome-extra/zenity + !x11-misc/expocity" +DEPEND="${RDEPEND} + >=app-text/gnome-doc-utils-0.8 + sys-devel/gettext + >=dev-util/pkgconfig-0.9 + >=dev-util/intltool-0.35 + test? ( app-text/docbook-xml-dtd:4.5 ) + xinerama? ( x11-proto/xineramaproto ) + x11-proto/xextproto + x11-proto/xproto" + +DOCS="AUTHORS ChangeLog HACKING NEWS README *.txt doc/*.txt" + +pkg_setup() { + G2CONF="${G2CONF} + --enable-compositor + --enable-gconf + --enable-render + --enable-shape + --enable-sm + --enable-startup-notification + --enable-xsync + $(use_enable xinerama)" +} + +src_prepare() { + gnome2_src_prepare + + # Remove stupid CFLAGS, bug #259179 + sed "s:-Werror::g" -i configure.in configure || die "sed failed" + # Should set RestartStyleHint to RestartIfRunning when replaced, + # this fix a strange issue with gnome-session (100% of the CPU, + # and try to restart metacity infinitively when compiz is started) + # patch import from upstream bug #588119. + epatch "${FILESDIR}/${PN}-2.28.0-restartstylehint-when-replace.patch" + + # Use sys/wait.h header instead of wait.h as described in posix specs, + # bug 292009 + epatch "${FILESDIR}/${PN}-2.28.0-sys-wait-header.patch" +} -- cgit v1.2.3