summaryrefslogtreecommitdiff
path: root/x11-wm/mutter
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /x11-wm/mutter
reinit the tree, so we can have metadata
Diffstat (limited to 'x11-wm/mutter')
-rw-r--r--x11-wm/mutter/Manifest13
-rw-r--r--x11-wm/mutter/files/3.22.4-clutter-missing-null-terminator.patch28
-rw-r--r--x11-wm/mutter/files/3.22.4-wayland-clipboard-fix.patch32
-rw-r--r--x11-wm/mutter/files/3.22.4-wayland-crash-fix.patch31
-rw-r--r--x11-wm/mutter/files/3.22.4-wayland-ensure-pending-geometry.patch47
-rw-r--r--x11-wm/mutter/files/3.22.4-wayland-size-hints.patch56
-rw-r--r--x11-wm/mutter/files/3.24.4-gudev-232.patch33
-rw-r--r--x11-wm/mutter/metadata.xml11
-rw-r--r--x11-wm/mutter/mutter-3.22.4-r1.ebuild144
-rw-r--r--x11-wm/mutter/mutter-3.24.4.ebuild140
10 files changed, 535 insertions, 0 deletions
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
new file mode 100644
index 000000000000..1683033f8a42
--- /dev/null
+++ b/x11-wm/mutter/Manifest
@@ -0,0 +1,13 @@
+AUX 3.22.4-clutter-missing-null-terminator.patch 1071 SHA256 0936643c48849fc23f048258c2701029d2935c2080f7ac26e41a7601f95f8780 SHA512 743bf69779f4b7fe7eedd483682e7fc353bac42bffe2cdfa4ac079c29eef81e0be7fdd993752523d8ff3ac71f86dea78ad2041afeb68815cf4d564c68bbfe631 WHIRLPOOL a560b66f7ef706a9261d70ea0fbb9aac761e4eab9b9ed81dfe05a2ca995c23e886af899f62b9ab4e61c1f37e0a95eb257e341c2c39153324895c352ff3633ce5
+AUX 3.22.4-wayland-clipboard-fix.patch 1283 SHA256 78be68b36b916dccc6110ea42d3e55c01e44211a26e66e83659896b280cb2302 SHA512 71436a5ea1cb325795ceedc536211dd3c28ef5bb0e8c9904b171354031c0d26e896ec0ab3ed85c3e4fabdba01f70ca9433a9111f7fd0b7bb04bf6ac365e9dce3 WHIRLPOOL 23cde5bb2f14bbae5d4643cd71aaea1dcaa31ca4e6d9d85328524938359ec8907614e1568332dae5ca52dadef3113a23cf0ced269c9c1cce0dc1e0bd9b69a27a
+AUX 3.22.4-wayland-crash-fix.patch 1149 SHA256 39f5d2ef9a361f85bf558def5c6485829402927866a15138fd9682c9deb0663a SHA512 68b629b25be5e019581aba2883f2409b65279758d814ce8f854b9052357adf44e3f2a649ef4aa8ef398afa8e4a58117fe1a8ccc6040c3578acfefbcb721cdf4a WHIRLPOOL b3ac3ed48f477ccf3f54cb9eb08c0ff74e236bb2baaa5087061071f1f590461503bc3fb784a65cb51a83d52b8f819619f8dd24737326f4d19d3d2b8e31a9e341
+AUX 3.22.4-wayland-ensure-pending-geometry.patch 1744 SHA256 5d00ea04d27c250f001c74e23d9c677f83c86ecdb5c0ccc1dcd77844be04b26e SHA512 e84319db9c0541b71dec03bd466b64f6e71637034bc91263d25fcf6546469435a4d77acaa32b24532e540fe62b079521f4d60c5cc2e1f0571b2f3cbc4917c964 WHIRLPOOL 394cde119e4294ed68f01154a7df2e780bdef68df81d67ad74df40bf0d55a3f4e0cd4da5c21dc77ba7ecacfa0efbdc3e9c73b4e582c47db613a933d1217c95da
+AUX 3.22.4-wayland-size-hints.patch 2281 SHA256 8908f9be047d39530c7c530d048b246f750799100986047e6d8e0f4757ee6ed7 SHA512 cf2afdb822f67a729713df571db446e955b111ac5d56342ba318646a6b3302a8cac394d63166c4043b94678360d19e3d35ddf60102794c038fdfc9039729318a WHIRLPOOL 362078706b55332d6413a3ffef32b41d97dcfdfc6c76efa99cfd74dc1a25932d44f253a150e6becf1621b0e40c087536f281ad010d4358753f16e42b967cc0a6
+AUX 3.24.4-gudev-232.patch 1034 SHA256 309b1b8c0c8aa710f03de5239bde72b92ed3baef5293326956525f82d676c445 SHA512 a73aabd388c73a6a4ab91f69cdd647e5e2b1295f67c1576725f7cbaa8dc24afeb77a7f4e3880f6b2e8fc604aeefb4b44f30cc80f3f2f88b0d0c03b49dd6bbfe2 WHIRLPOOL 4eb402669f253fad8efe592e340528bc1cb47e2b2d3b729aa4d7c52beeeef520f1a5cc5930c2b472635f1d7a88d1f98a17d6930fc6e304e1b2da1eccac497468
+DIST mutter-3.22.4.tar.xz 3536792 SHA256 37ea9f398758b48b7a2db17145143bc32bd0f6df7c69c631b52b719a9067b219 SHA512 849e98186cecb4ffcab3da055febf72ef76fa87ecbdc506c696c2c7debd5183361c4b3b31d00d3c85e45d7f47aa5abf748d999571b147c831eb999116919023c WHIRLPOOL f6c7cda3ee6fdce7ef376e384591f7e3e07060db4f3d006842d15973296dc341bf4f9e56f9c3603a5bdb064f22a9835693c110a401bbaa893b6952591904f357
+DIST mutter-3.24.4.tar.xz 3583916 SHA256 7300b3fbf1bd0f7fe25e4869dd37134f2127bb6d9b8aa3aadd0eaf3c8bbf9aea SHA512 7ae579ab3e9df09cae37fbc1b277e382c9f610058b914b69a7bdb89f3bec510403210c0cded16a6487111507151f4d7075d161e051c0b88585d6ab6b4575b8d3 WHIRLPOOL 141151e402c80711f091ff62fdb468da4bf1d8b9fe556e9b13e2b3bce7833776ca50c15709303a0d7ce8a435c06ab2b2f5b761f6193248ec29f3d41e4551988b
+EBUILD mutter-3.22.4-r1.ebuild 4117 SHA256 95872d91be7e083c6f366f307ac0b1c5e816cc097a588e11010c494eb8f372dd SHA512 36e28f4334d87b8d2319c19ec384593b2d8bba8e206b21d13e043ba3381cb8215ee5836d8427e0b4bb025efa23ea0f89175e6c04c278cb340f40d6961152d8a7 WHIRLPOOL 13176d0fdbfa73a711cebe4e32f3e9f7ef55fb6f0eb792656bcb7f2b07dea36db7d59e5b609a0e72f41da5e553ec3e381cdff3433a2b2dbb79b229fd161a7e0c
+EBUILD mutter-3.24.4.ebuild 3636 SHA256 23ee9d2e31c9f08d531a06cc071b217b87f7ce00f896ff79757d3d51caf3dc4a SHA512 9457b7d6a6b3f15f2d88b1b6c3ee1715b198cf749cf13ee66fd7133c64ab6c449ecb91b78a90675ae30206c3034ed2716f1953296d42ad5d2ef2cc1b8b9ed473 WHIRLPOOL c0646237d47358b079085290fef57fe06b9111a68772afbe431a4a6378274c83b8bf62e19d43aa8d169228c5fa8ee9d538da044712c7aa5f44f835359db8c1da
+MISC ChangeLog 9902 SHA256 345940ef8fe59a3bc0ae3dd30d345885d8f9b70b87cedcdda295c1c16b7432db SHA512 13212784664467cbcb6b4f028665d8f2528360399aff4b73fb49b9e52a8d186f63eeede38a36b0bb681a0a93ba2907baaf8f11e253742a8964763382c614e107 WHIRLPOOL 620573991576968c56aa8ec5b1271bfd3d3c8e22848c361da6022e088d9695c89996b0f80d81c581facd654d1363feec345df8051cb4f6022e1af44a2440dc56
+MISC ChangeLog-2015 9695 SHA256 74b10c6eaf2c1278b40e8fd0fb56d679d0584dfaeda0a386b18bfe0e45e4309c SHA512 1d6beab276a0283c0cbe0f4dfe69bd8ed442f972f4d8b84f2d9ba7d823230faa59e6c6460a34e012116bd5ff6800dc5113aa23abc13655b3253214331630dda7 WHIRLPOOL 9c143d95ba6852f4a99bc2a150427129a1ff775c3a59a088a016d24703b5db71c57c7f39c05d94438b9076c6c73c8bc53596ebbdbf7f95d724081ee677f4e1f1
+MISC metadata.xml 325 SHA256 d5bffb3858c18700cf75a1e6c9ef2324652c05e618abbcd60686d28a73bc6487 SHA512 2732e366e7870b21a854e6bccf57d479c754fe5a9cf17673c3a78e231a1b476b684fd97497f8ab51c57137d066f9bfa6590458f56e5f42c5c38e1cd00962fe80 WHIRLPOOL e8fcc1027b2efe93e5044c2d9cb39844b98b7a985de837c386a1653c8c7ed124b801393d0fc9920c87de75004c7d5e7248f70c09a18921ea2b3093b7b85ed160
diff --git a/x11-wm/mutter/files/3.22.4-clutter-missing-null-terminator.patch b/x11-wm/mutter/files/3.22.4-clutter-missing-null-terminator.patch
new file mode 100644
index 000000000000..ed16b8c6f4b8
--- /dev/null
+++ b/x11-wm/mutter/files/3.22.4-clutter-missing-null-terminator.patch
@@ -0,0 +1,28 @@
+From f6888519ff3e20ec8f5e6064bff5707acbe13fbd Mon Sep 17 00:00:00 2001
+From: Nigel Taylor <nigel@openbsd.org>
+Date: Fri, 5 May 2017 08:42:47 -0400
+Subject: [PATCH 2/5] clutter: conform/actor-graph: Add missing
+ null-termination
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759085
+---
+ clutter/tests/conform/actor-graph.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/clutter/tests/conform/actor-graph.c b/clutter/tests/conform/actor-graph.c
+index 0dad49b..8fbf4bc 100644
+--- a/clutter/tests/conform/actor-graph.c
++++ b/clutter/tests/conform/actor-graph.c
+@@ -350,7 +350,8 @@ actor_replace_child (void)
+ g_assert_cmpstr (clutter_actor_get_name (iter), ==, "qux");
+
+ clutter_actor_add_child (actor, g_object_new (CLUTTER_TYPE_ACTOR,
+- "name", "foo"));
++ "name", "foo",
++ NULL));
+
+ clutter_actor_replace_child (actor, iter,
+ g_object_new (CLUTTER_TYPE_ACTOR,
+--
+2.10.1
+
diff --git a/x11-wm/mutter/files/3.22.4-wayland-clipboard-fix.patch b/x11-wm/mutter/files/3.22.4-wayland-clipboard-fix.patch
new file mode 100644
index 000000000000..24e6fd36a309
--- /dev/null
+++ b/x11-wm/mutter/files/3.22.4-wayland-clipboard-fix.patch
@@ -0,0 +1,32 @@
+From 19f08fbdbba113883c6011e4b8ccf3ea3a6eb57e Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Wed, 10 May 2017 20:28:42 +0200
+Subject: [PATCH 5/5] xwayland: Use the right atom type for further selection
+ requests to X11
+
+If we translate between text/plain;charset-utf-8 from the wayland side to
+UTF8_STRING on the X11 side, we want to continue all further X11 selection
+requests using the same translated UTF8_STRING atom than we use in the
+first XConvertSelection call.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=782472
+---
+ src/wayland/meta-xwayland-selection.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wayland/meta-xwayland-selection.c b/src/wayland/meta-xwayland-selection.c
+index a78e846..24b8cd2 100644
+--- a/src/wayland/meta-xwayland-selection.c
++++ b/src/wayland/meta-xwayland-selection.c
+@@ -829,7 +829,7 @@ meta_x11_source_send (MetaWaylandDataSource *source,
+ /* Takes ownership of fd */
+ selection->x11_selection =
+ x11_selection_data_new (compositor->xwayland_manager.selection_data,
+- fd, mime_type);
++ fd, gdk_x11_get_xatom_name (type_atom));
+
+ XConvertSelection (xdisplay,
+ selection->selection_atom, type_atom,
+--
+2.10.1
+
diff --git a/x11-wm/mutter/files/3.22.4-wayland-crash-fix.patch b/x11-wm/mutter/files/3.22.4-wayland-crash-fix.patch
new file mode 100644
index 000000000000..a6eddb1f72e0
--- /dev/null
+++ b/x11-wm/mutter/files/3.22.4-wayland-crash-fix.patch
@@ -0,0 +1,31 @@
+From ba317dcd74baebfd8f8c8dd417ded71f6cc8c771 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
+Date: Mon, 17 Apr 2017 13:27:35 +0800
+Subject: [PATCH 1/5] wayland/subsurface: Handle clients committing on
+ destroyed subsurface
+
+A client can still commit state to a destroyed subsurface. It wont
+update anything on the screen, since the subsurface will not be
+visible, but mutter should still handle it and not crash.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=781391
+---
+ src/wayland/meta-wayland-surface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
+index 99e3dfd..a6079ee 100644
+--- a/src/wayland/meta-wayland-surface.c
++++ b/src/wayland/meta-wayland-surface.c
+@@ -605,7 +605,7 @@ subsurface_role_get_toplevel (MetaWaylandSurfaceRole *surface_role)
+ meta_wayland_surface_role_get_surface (surface_role);
+ MetaWaylandSurface *parent = surface->sub.parent;
+
+- if (parent->role)
++ if (parent && parent->role)
+ return meta_wayland_surface_role_get_toplevel (parent->role);
+ else
+ return NULL;
+--
+2.10.1
+
diff --git a/x11-wm/mutter/files/3.22.4-wayland-ensure-pending-geometry.patch b/x11-wm/mutter/files/3.22.4-wayland-ensure-pending-geometry.patch
new file mode 100644
index 000000000000..543d6edb8e76
--- /dev/null
+++ b/x11-wm/mutter/files/3.22.4-wayland-ensure-pending-geometry.patch
@@ -0,0 +1,47 @@
+From ca31a94e54819b5bfeccbeef4e7c041bbef15eac Mon Sep 17 00:00:00 2001
+From: Olivier Fourdan <ofourdan@redhat.com>
+Date: Fri, 5 May 2017 13:55:51 +0200
+Subject: [PATCH 3/5] wayland: Make sure we have a pending geometry
+
+If the client doesn't set a geometry using xdg_shell, we'll compute its
+geometry based on its surface and subsurfaces.
+
+Yet, we translate that as a window (re)size only when there is a pending
+geometry, that we don't have when we computed the geometry by ourself.
+
+Make sure we set the pending new geometry flag when computing the
+geometry when it actually changed.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=782213
+---
+ src/wayland/meta-wayland-xdg-shell.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
+index aa355da..87a8382 100644
+--- a/src/wayland/meta-wayland-xdg-shell.c
++++ b/src/wayland/meta-wayland-xdg-shell.c
+@@ -1263,11 +1263,19 @@ xdg_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
+ }
+ else if (!priv->has_set_geometry)
+ {
++ MetaRectangle new_geometry = { 0 };
++
+ /* If the surface has never set any geometry, calculate
+ * a default one unioning the surface and all subsurfaces together. */
++
+ meta_wayland_surface_calculate_window_geometry (surface,
+- &priv->geometry,
++ &new_geometry,
+ 0, 0);
++ if (!meta_rectangle_equal (&new_geometry, &priv->geometry))
++ {
++ pending->has_new_geometry = TRUE;
++ priv->geometry = new_geometry;
++ }
+ }
+ }
+
+--
+2.10.1
+
diff --git a/x11-wm/mutter/files/3.22.4-wayland-size-hints.patch b/x11-wm/mutter/files/3.22.4-wayland-size-hints.patch
new file mode 100644
index 000000000000..03b2b22fe655
--- /dev/null
+++ b/x11-wm/mutter/files/3.22.4-wayland-size-hints.patch
@@ -0,0 +1,56 @@
+From 40a3d67698dc992d084886e01b07a78d438bbf8e Mon Sep 17 00:00:00 2001
+From: Olivier Fourdan <ofourdan@redhat.com>
+Date: Wed, 10 May 2017 08:59:53 +0200
+Subject: [PATCH 4/5] wayland: Apply size hints regardless of geometry
+
+Previously we would bail out early in xdg_toplevel_role_commit() if no
+geometry change was set, ignoring the possible min/max size hints
+changes.
+
+But setting a min/max size hint without changing the geometry is
+perfectly valid, so we ought to apply the min/max changes regardless of
+a geometry change.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=782213
+---
+ src/wayland/meta-wayland-xdg-shell.c | 22 ++++++++++------------
+ 1 file changed, 10 insertions(+), 12 deletions(-)
+
+diff --git a/src/wayland/meta-wayland-xdg-shell.c b/src/wayland/meta-wayland-xdg-shell.c
+index 87a8382..bd576f6 100644
+--- a/src/wayland/meta-wayland-xdg-shell.c
++++ b/src/wayland/meta-wayland-xdg-shell.c
+@@ -615,20 +615,18 @@ xdg_toplevel_role_commit (MetaWaylandSurfaceRole *surface_role,
+ if (!window)
+ return;
+
+- if (!pending->has_new_geometry)
++ if (pending->has_new_geometry)
+ {
+- if (pending->dx != 0 || pending->dx != 0)
+- {
+- g_warning ("XXX: Attach-initiated move without a new geometry. This is unimplemented right now.");
+- }
+- return;
++ window_geometry = meta_wayland_xdg_surface_get_window_geometry (xdg_surface);
++ meta_window_wayland_move_resize (window,
++ &xdg_surface_priv->acked_configure_serial,
++ window_geometry,
++ pending->dx, pending->dy);
++ }
++ else if (pending->dx != 0 || pending->dx != 0)
++ {
++ g_warning ("XXX: Attach-initiated move without a new geometry. This is unimplemented right now.");
+ }
+-
+- window_geometry = meta_wayland_xdg_surface_get_window_geometry (xdg_surface);
+- meta_window_wayland_move_resize (window,
+- &xdg_surface_priv->acked_configure_serial,
+- window_geometry,
+- pending->dx, pending->dy);
+
+ /* When we get to this point, we ought to have valid size hints */
+ if (pending->has_new_min_size || pending->has_new_max_size)
+--
+2.10.1
+
diff --git a/x11-wm/mutter/files/3.24.4-gudev-232.patch b/x11-wm/mutter/files/3.24.4-gudev-232.patch
new file mode 100644
index 000000000000..5808e977c73c
--- /dev/null
+++ b/x11-wm/mutter/files/3.24.4-gudev-232.patch
@@ -0,0 +1,33 @@
+From 361bf847af82c7dca097302fe64c575079280c9c Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Fri, 1 Sep 2017 02:06:38 +0200
+Subject: build: Require libgudev >= 232
+
+And remove the g_autoptr implementations in mutter itself.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=760670
+
+Gentoo: stripped configure.ac part to avoid autoreconf
+---
+ configure.ac | 4 ++--
+ src/backends/native/meta-launcher.c | 4 ----
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/src/backends/native/meta-launcher.c b/src/backends/native/meta-launcher.c
+index 90b4b98..eb35f88 100644
+--- a/src/backends/native/meta-launcher.c
++++ b/src/backends/native/meta-launcher.c
+@@ -49,10 +49,6 @@
+
+ #define DRM_CARD_UDEV_DEVICE_TYPE "drm_minor"
+
+-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevDevice, g_object_unref)
+-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevClient, g_object_unref)
+-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUdevEnumerator, g_object_unref)
+-
+ struct _MetaLauncher
+ {
+ Login1Session *session_proxy;
+--
+cgit v0.12
+
diff --git a/x11-wm/mutter/metadata.xml b/x11-wm/mutter/metadata.xml
new file mode 100644
index 000000000000..73abedd9cf02
--- /dev/null
+++ b/x11-wm/mutter/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <use>
+ <flag name="gles2">Enable OpenGL ES 2.0 support</flag>
+ </use>
+</pkgmetadata>
diff --git a/x11-wm/mutter/mutter-3.22.4-r1.ebuild b/x11-wm/mutter/mutter-3.22.4-r1.ebuild
new file mode 100644
index 000000000000..997051bb842b
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.22.4-r1.ebuild
@@ -0,0 +1,144 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 virtualx
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://git.gnome.org/browse/mutter/"
+
+LICENSE="GPL-2+"
+SLOT="0"
+
+IUSE="debug gles2 input_devices_wacom +introspection test udev wayland"
+
+KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86"
+
+# libXi-1.7.4 or newer needed per:
+# https://bugzilla.gnome.org/show_bug.cgi?id=738944
+COMMON_DEPEND="
+ >=dev-libs/atk-2.5.3
+ >=x11-libs/gdk-pixbuf-2:2
+ >=dev-libs/json-glib-0.12.0
+ >=x11-libs/pango-1.30[introspection?]
+ >=x11-libs/cairo-1.14[X]
+ >=x11-libs/gtk+-3.19.8:3[X,introspection?]
+ >=dev-libs/glib-2.49.0:2[dbus]
+ >=media-libs/libcanberra-0.26[gtk3]
+ >=x11-libs/startup-notification-0.7
+ >=x11-libs/libXcomposite-0.2
+ >=gnome-base/gsettings-desktop-schemas-3.21.4[introspection?]
+ gnome-base/gnome-desktop:3=
+ >sys-power/upower-0.99:=
+
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libXcomposite-0.4
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ >=x11-libs/libXfixes-3
+ >=x11-libs/libXi-1.7.4
+ x11-libs/libXinerama
+ >=x11-libs/libXrandr-1.5
+ x11-libs/libXrender
+ x11-libs/libxcb
+ x11-libs/libxkbfile
+ >=x11-libs/libxkbcommon-0.4.3[X]
+ x11-misc/xkeyboard-config
+
+ gnome-extra/zenity
+ media-libs/mesa[egl]
+
+ gles2? ( media-libs/mesa[gles2] )
+ input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
+ introspection? ( >=dev-libs/gobject-introspection-1.42:= )
+ udev? ( virtual/libgudev:= )
+ wayland? (
+ >=dev-libs/libinput-1.4
+ >=dev-libs/wayland-1.6.90
+ >=dev-libs/wayland-protocols-1.7
+ >=media-libs/mesa-10.3[egl,gbm,wayland]
+ sys-apps/systemd
+ virtual/libgudev:=
+ >=virtual/libudev-136:=
+ x11-base/xorg-server[wayland]
+ x11-libs/libdrm:=
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ >=sys-devel/gettext-0.19.6
+ virtual/pkgconfig
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xproto
+ test? ( app-text/docbook-xml-dtd:4.5 )
+ wayland? ( >=sys-kernel/linux-headers-4.4 )
+"
+RDEPEND="${COMMON_DEPEND}
+ !x11-misc/expocity
+"
+
+PATCHES=(
+ # Important fixes from gnome-3-22 branch, mostly for wayland session
+ "${FILESDIR}"/${PV}-wayland-crash-fix.patch # firefox wrongly using subsurfaces for popups occasional crash fix
+ "${FILESDIR}"/${PV}-clutter-missing-null-terminator.patch # fixes potential crashes on armhf
+ "${FILESDIR}"/${PV}-wayland-ensure-pending-geometry.patch # initial positioning fix for wayland for certain apps
+ "${FILESDIR}"/${PV}-wayland-size-hints.patch # apply min/max size hints in more cases properly
+ "${FILESDIR}"/${PV}-wayland-clipboard-fix.patch # Fixes utf8 clipboard with gtk+-3.22.13+
+)
+
+src_prepare() {
+ # Disable building of noinst_PROGRAM for tests
+ if ! use test; then
+ sed -e '/^noinst_PROGRAMS/d' \
+ -i cogl/tests/conform/Makefile.{am,in} || die
+ sed -e '/noinst_PROGRAMS += testboxes/d' \
+ -i src/Makefile-tests.am || die
+ sed -e '/noinst_PROGRAMS/ s/testboxes$(EXEEXT)//' \
+ -i src/Makefile.in || die
+ fi
+
+ gnome2_src_prepare
+
+ # Leave the damn CFLAGS alone
+ sed -e 's/$CFLAGS -g/$CFLAGS /' \
+ -i clutter/configure || die
+ sed -e 's/$CFLAGS -g -O0/$CFLAGS /' \
+ -i cogl/configure || die
+ sed -e 's/$CFLAGS -g -O/$CFLAGS /' \
+ -i configure || die
+}
+
+src_configure() {
+ # Prefer gl driver by default
+ # GLX is forced by mutter but optional in clutter
+ # xlib-egl-platform required by mutter x11 backend
+ # native backend without wayland is useless
+ gnome2_src_configure \
+ --disable-static \
+ --enable-compile-warnings=minimum \
+ --enable-gl \
+ --enable-glx \
+ --enable-sm \
+ --enable-startup-notification \
+ --enable-verbose-mode \
+ --enable-xlib-egl-platform \
+ --with-default-driver=gl \
+ --with-libcanberra \
+ $(usex debug --enable-debug=yes "") \
+ $(use_enable gles2) \
+ $(use_enable gles2 cogl-gles2) \
+ $(use_enable introspection) \
+ $(use_enable wayland) \
+ $(use_enable wayland kms-egl-platform) \
+ $(use_enable wayland native-backend) \
+ $(use_enable wayland wayland-egl-server) \
+ $(use_with input_devices_wacom libwacom) \
+ $(use_with udev gudev)
+}
+
+src_test() {
+ virtx emake check
+}
diff --git a/x11-wm/mutter/mutter-3.24.4.ebuild b/x11-wm/mutter/mutter-3.24.4.ebuild
new file mode 100644
index 000000000000..c05bdb7e50c5
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.24.4.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit gnome2 virtualx
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://git.gnome.org/browse/mutter/"
+
+LICENSE="GPL-2+"
+SLOT="0/0"
+
+IUSE="debug gles2 input_devices_wacom +introspection test udev wayland"
+
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+# libXi-1.7.4 or newer needed per:
+# https://bugzilla.gnome.org/show_bug.cgi?id=738944
+COMMON_DEPEND="
+ >=dev-libs/atk-2.5.3
+ >=x11-libs/gdk-pixbuf-2:2
+ >=dev-libs/json-glib-0.12.0
+ >=x11-libs/pango-1.30[introspection?]
+ >=x11-libs/cairo-1.14[X]
+ >=x11-libs/gtk+-3.19.8:3[X,introspection?]
+ >=dev-libs/glib-2.49.0:2[dbus]
+ >=media-libs/libcanberra-0.26[gtk3]
+ >=x11-libs/startup-notification-0.7
+ >=x11-libs/libXcomposite-0.2
+ >=gnome-base/gsettings-desktop-schemas-3.21.4[introspection?]
+ gnome-base/gnome-desktop:3=
+ >sys-power/upower-0.99:=
+
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libXcomposite-0.4
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ >=x11-libs/libXfixes-3
+ >=x11-libs/libXi-1.7.4
+ x11-libs/libXinerama
+ >=x11-libs/libXrandr-1.5
+ x11-libs/libXrender
+ x11-libs/libxcb
+ x11-libs/libxkbfile
+ >=x11-libs/libxkbcommon-0.4.3[X]
+ x11-misc/xkeyboard-config
+
+ gnome-extra/zenity
+ media-libs/mesa[egl]
+
+ gles2? ( media-libs/mesa[gles2] )
+ input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
+ introspection? ( >=dev-libs/gobject-introspection-1.42:= )
+ udev? ( >=virtual/libgudev-232:= )
+ wayland? (
+ >=dev-libs/libinput-1.4
+ >=dev-libs/wayland-1.6.90
+ >=dev-libs/wayland-protocols-1.7
+ >=media-libs/mesa-10.3[egl,gbm,wayland]
+ sys-apps/systemd
+ >=virtual/libgudev-232:=
+ >=virtual/libudev-136:=
+ x11-base/xorg-server[wayland]
+ x11-libs/libdrm:=
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ >=sys-devel/gettext-0.19.6
+ virtual/pkgconfig
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xproto
+ test? ( app-text/docbook-xml-dtd:4.5 )
+ wayland? ( >=sys-kernel/linux-headers-4.4 )
+"
+RDEPEND="${COMMON_DEPEND}
+ !x11-misc/expocity
+"
+
+PATCHES=(
+ # Fix build with >=gudev-232, bug #630312
+ "${FILESDIR}"/3.24.4-gudev-232.patch
+)
+
+src_prepare() {
+ # Disable building of noinst_PROGRAM for tests
+ if ! use test; then
+ sed -e '/^noinst_PROGRAMS/d' \
+ -i cogl/tests/conform/Makefile.{am,in} || die
+ sed -e '/noinst_PROGRAMS += testboxes/d' \
+ -i src/Makefile-tests.am || die
+ sed -e '/noinst_PROGRAMS/ s/testboxes$(EXEEXT)//' \
+ -i src/Makefile.in || die
+ fi
+
+ gnome2_src_prepare
+
+ # Leave the damn CFLAGS alone
+ sed -e 's/$CFLAGS -g/$CFLAGS /' \
+ -i clutter/configure || die
+ sed -e 's/$CFLAGS -g -O0/$CFLAGS /' \
+ -i cogl/configure || die
+ sed -e 's/$CFLAGS -g -O/$CFLAGS /' \
+ -i configure || die
+}
+
+src_configure() {
+ # Prefer gl driver by default
+ # GLX is forced by mutter but optional in clutter
+ # xlib-egl-platform required by mutter x11 backend
+ # native backend without wayland is useless
+ gnome2_src_configure \
+ --disable-static \
+ --enable-compile-warnings=minimum \
+ --enable-gl \
+ --enable-glx \
+ --enable-sm \
+ --enable-startup-notification \
+ --enable-verbose-mode \
+ --enable-xlib-egl-platform \
+ --with-default-driver=gl \
+ --with-libcanberra \
+ $(usex debug --enable-debug=yes "") \
+ $(use_enable gles2) \
+ $(use_enable gles2 cogl-gles2) \
+ $(use_enable introspection) \
+ $(use_enable wayland) \
+ $(use_enable wayland kms-egl-platform) \
+ $(use_enable wayland native-backend) \
+ $(use_enable wayland wayland-egl-server) \
+ $(use_with input_devices_wacom libwacom) \
+ $(use_with udev gudev)
+}
+
+src_test() {
+ virtx emake check
+}