summaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/metacity/Manifest3
-rw-r--r--x11-wm/metacity/files/metacity-2.28.0-restartstylehint-when-replace.patch139
-rw-r--r--x11-wm/metacity/files/metacity-2.28.0-sys-wait-header.patch19
-rw-r--r--x11-wm/metacity/metacity-9999.ebuild78
4 files changed, 239 insertions, 0 deletions
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 <otaylor@fishsoup.net>
+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 <aballier@gentoo.org>
+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 <stdlib.h>
+ #include <sys/types.h>
+-#include <wait.h>
++#include <sys/wait.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <signal.h>
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"
+}