* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2015-10-03 9:04 Pacho Ramos
0 siblings, 0 replies; 16+ messages in thread
From: Pacho Ramos @ 2015-10-03 9:04 UTC (permalink / raw
To: gentoo-commits
commit: 2c00b2f8422f0ea593daa6792c3ec6caf83210ef
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 3 09:02:56 2015 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Oct 3 09:02:56 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c00b2f8
x11-wm/mutter: Apply some upstream fixes from 3.16 branch and also stop crashing when keymap cannot be get on a first try (from master)
Package-Manager: portage-2.2.22
.../mutter-3.16.3-GL_EXT_x11_sync_object.patch | 840 +++++++++++++++++++++
.../mutter/files/mutter-3.16.3-crash-border.patch | 32 +
.../files/mutter-3.16.3-fallback-keymap.patch | 28 +
x11-wm/mutter/files/mutter-3.16.3-fix-race.patch | 114 +++
x11-wm/mutter/files/mutter-3.16.3-fix-return.patch | 32 +
x11-wm/mutter/files/mutter-3.16.3-flickering.patch | 114 +++
x11-wm/mutter/mutter-3.16.3-r1.ebuild | 114 +++
7 files changed, 1274 insertions(+)
diff --git a/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch b/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
new file mode 100644
index 0000000..401c175
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
@@ -0,0 +1,840 @@
+From 9cc80497a262edafc58062fd860ef7a9dcab688c Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Fri, 18 Apr 2014 20:21:20 +0200
+Subject: compositor: Add support for GL_EXT_x11_sync_object
+
+If GL advertises this extension we'll use it to synchronize X with GL
+rendering instead of relying on the XSync() behavior with open source
+drivers.
+
+Some driver bugs were uncovered while working on this so if we have
+had to reboot the ring a few times, something is probably wrong and
+we're likely to just make things worse by continuing to try. Let's
+err on the side of caution, disable ourselves and fallback to the
+XSync() path in the compositor.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/configure.ac b/configure.ac
+index 01d75cb..6eea6b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -332,6 +332,11 @@ fi
+
+ GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
+
++AC_CHECK_DECL([GL_EXT_x11_sync_object],
++ [],
++ [AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])],
++ [#include <GL/glx.h>])
++
+ #### Warnings (last since -Werror can disturb other tests)
+
+ # Stay command-line compatible with the gnome-common configure option. Here
+diff --git a/src/Makefile.am b/src/Makefile.am
+index baadb41..a4e07a9 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -139,6 +139,8 @@ libmutter_la_SOURCES = \
+ compositor/meta-surface-actor.h \
+ compositor/meta-surface-actor-x11.c \
+ compositor/meta-surface-actor-x11.h \
++ compositor/meta-sync-ring.c \
++ compositor/meta-sync-ring.h \
+ compositor/meta-texture-rectangle.c \
+ compositor/meta-texture-rectangle.h \
+ compositor/meta-texture-tower.c \
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index 3ff8431..ac38ffc 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -45,6 +45,7 @@
+ #include <meta/util.h>
+ #include "display-private.h"
+ #include "compositor/compositor-private.h"
++#include "compositor/meta-sync-ring.h"
+
+ struct _MetaBackendX11Private
+ {
+@@ -255,6 +256,8 @@ handle_host_xevent (MetaBackend *backend,
+ MetaCompositor *compositor = display->compositor;
+ if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
+ bypass_clutter = TRUE;
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_handle_event (event);
+ }
+ }
+
+diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
+index 80fb4e2..9e3e73d 100644
+--- a/src/compositor/compositor-private.h
++++ b/src/compositor/compositor-private.h
+@@ -15,7 +15,8 @@ struct _MetaCompositor
+ {
+ MetaDisplay *display;
+
+- guint repaint_func_id;
++ guint pre_paint_func_id;
++ guint post_paint_func_id;
+
+ gint64 server_time_query_time;
+ gint64 server_time_offset;
+@@ -40,6 +41,7 @@ struct _MetaCompositor
+ MetaPluginManager *plugin_mgr;
+
+ gboolean frame_has_updated_xsurfaces;
++ gboolean have_x11_sync_object;
+ };
+
+ /* Wait 2ms after vblank before starting to draw next frame */
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 250d489..554faa1 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -79,6 +79,7 @@
+ #include "frame.h"
+ #include <X11/extensions/shape.h>
+ #include <X11/extensions/Xcomposite.h>
++#include "meta-sync-ring.h"
+
+ #include "backends/x11/meta-backend-x11.h"
+
+@@ -125,7 +126,11 @@ meta_switch_workspace_completed (MetaCompositor *compositor)
+ void
+ meta_compositor_destroy (MetaCompositor *compositor)
+ {
+- clutter_threads_remove_repaint_func (compositor->repaint_func_id);
++ clutter_threads_remove_repaint_func (compositor->pre_paint_func_id);
++ clutter_threads_remove_repaint_func (compositor->post_paint_func_id);
++
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_destroy ();
+ }
+
+ static void
+@@ -468,13 +473,11 @@ meta_compositor_manage (MetaCompositor *compositor)
+ MetaDisplay *display = compositor->display;
+ Display *xdisplay = display->xdisplay;
+ MetaScreen *screen = display->screen;
++ MetaBackend *backend = meta_get_backend ();
+
+ meta_screen_set_cm_selection (display->screen);
+
+- {
+- MetaBackend *backend = meta_get_backend ();
+- compositor->stage = meta_backend_get_stage (backend);
+- }
++ compositor->stage = meta_backend_get_stage (backend);
+
+ /* We use connect_after() here to accomodate code in GNOME Shell that,
+ * when benchmarking drawing performance, connects to ::after-paint
+@@ -510,7 +513,7 @@ meta_compositor_manage (MetaCompositor *compositor)
+
+ compositor->output = screen->composite_overlay_window;
+
+- xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (meta_get_backend ()));
++ xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (backend));
+
+ XReparentWindow (xdisplay, xwin, compositor->output, 0, 0);
+
+@@ -530,6 +533,9 @@ meta_compositor_manage (MetaCompositor *compositor)
+ * contents until we show the stage.
+ */
+ XMapWindow (xdisplay, compositor->output);
++
++ compositor->have_x11_sync_object =
++ meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
+ }
+
+ redirect_windows (display->screen);
+@@ -1044,11 +1050,12 @@ frame_callback (CoglOnscreen *onscreen,
+ }
+ }
+
+-static void
+-pre_paint_windows (MetaCompositor *compositor)
++static gboolean
++meta_pre_paint_func (gpointer data)
+ {
+ GList *l;
+ MetaWindowActor *top_window;
++ MetaCompositor *compositor = data;
+
+ if (compositor->onscreen == NULL)
+ {
+@@ -1060,7 +1067,7 @@ pre_paint_windows (MetaCompositor *compositor)
+ }
+
+ if (compositor->windows == NULL)
+- return;
++ return TRUE;
+
+ top_window = g_list_last (compositor->windows)->data;
+
+@@ -1077,10 +1084,12 @@ pre_paint_windows (MetaCompositor *compositor)
+ {
+ /* We need to make sure that any X drawing that happens before
+ * the XDamageSubtract() for each window above is visible to
+- * subsequent GL rendering; the only standardized way to do this
+- * is EXT_x11_sync_object, which isn't yet widely available. For
+- * now, we count on details of Xorg and the open source drivers,
+- * and hope for the best otherwise.
++ * subsequent GL rendering; the standardized way to do this is
++ * GL_EXT_X11_sync_object. Since this isn't implemented yet in
++ * mesa, we also have a path that relies on the implementation
++ * of the open source drivers.
++ *
++ * Anything else, we just hope for the best.
+ *
+ * Xorg and open source driver specifics:
+ *
+@@ -1095,17 +1104,28 @@ pre_paint_windows (MetaCompositor *compositor)
+ * round trip request at this point is sufficient to flush the
+ * GLX buffers.
+ */
+- XSync (compositor->display->xdisplay, False);
+-
+- compositor->frame_has_updated_xsurfaces = FALSE;
++ if (compositor->have_x11_sync_object)
++ compositor->have_x11_sync_object = meta_sync_ring_insert_wait ();
++ else
++ XSync (compositor->display->xdisplay, False);
+ }
++
++ return TRUE;
+ }
+
+ static gboolean
+-meta_repaint_func (gpointer data)
++meta_post_paint_func (gpointer data)
+ {
+ MetaCompositor *compositor = data;
+- pre_paint_windows (compositor);
++
++ if (compositor->frame_has_updated_xsurfaces)
++ {
++ if (compositor->have_x11_sync_object)
++ compositor->have_x11_sync_object = meta_sync_ring_after_frame ();
++
++ compositor->frame_has_updated_xsurfaces = FALSE;
++ }
++
+ return TRUE;
+ }
+
+@@ -1140,10 +1160,16 @@ meta_compositor_new (MetaDisplay *display)
+ G_CALLBACK (on_shadow_factory_changed),
+ compositor);
+
+- compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
+- compositor,
+- NULL);
+-
++ compositor->pre_paint_func_id =
++ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_PRE_PAINT,
++ meta_pre_paint_func,
++ compositor,
++ NULL);
++ compositor->post_paint_func_id =
++ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT,
++ meta_post_paint_func,
++ compositor,
++ NULL);
+ return compositor;
+ }
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+new file mode 100644
+index 0000000..4ee61f8
+--- /dev/null
++++ b/src/compositor/meta-sync-ring.c
+@@ -0,0 +1,566 @@
++/*
++ * This is based on an original C++ implementation for compiz that
++ * carries the following copyright notice:
++ *
++ *
++ * Copyright © 2011 NVIDIA Corporation
++ *
++ * Permission to use, copy, modify, distribute, and sell this software
++ * and its documentation for any purpose is hereby granted without
++ * fee, provided that the above copyright notice appear in all copies
++ * and that both that copyright notice and this permission notice
++ * appear in supporting documentation, and that the name of NVIDIA
++ * Corporation not be used in advertising or publicity pertaining to
++ * distribution of the software without specific, written prior
++ * permission. NVIDIA Corporation makes no representations about the
++ * suitability of this software for any purpose. It is provided "as
++ * is" without express or implied warranty.
++ *
++ * NVIDIA CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
++ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
++ * FITNESS, IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
++ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
++ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ *
++ * Authors: James Jones <jajones@nvidia.com>
++ */
++
++#include <string.h>
++
++#include <GL/gl.h>
++#include <GL/glx.h>
++#include <X11/extensions/sync.h>
++
++#include <cogl/cogl.h>
++#include <clutter/clutter.h>
++
++#include <meta/util.h>
++
++#include "meta-sync-ring.h"
++
++/* Theory of operation:
++ *
++ * We use a ring of NUM_SYNCS fence objects. On each frame we advance
++ * to the next fence in the ring. For each fence we do:
++ *
++ * 1. fence is XSyncTriggerFence()'d and glWaitSync()'d
++ * 2. NUM_SYNCS / 2 frames later, fence should be triggered
++ * 3. fence is XSyncResetFence()'d
++ * 4. NUM_SYNCS / 2 frames later, fence should be reset
++ * 5. go back to 1 and re-use fence
++ *
++ * glClientWaitSync() and XAlarms are used in steps 2 and 4,
++ * respectively, to double-check the expectections.
++ */
++
++#define NUM_SYNCS 10
++#define MAX_SYNC_WAIT_TIME (1 * 1000 * 1000 * 1000) /* one sec */
++#define MAX_REBOOT_ATTEMPTS 2
++
++typedef enum
++{
++ META_SYNC_STATE_READY,
++ META_SYNC_STATE_WAITING,
++ META_SYNC_STATE_DONE,
++ META_SYNC_STATE_RESET_PENDING,
++} MetaSyncState;
++
++typedef struct
++{
++ Display *xdisplay;
++
++ XSyncFence xfence;
++ GLsync glsync;
++
++ XSyncCounter xcounter;
++ XSyncAlarm xalarm;
++ XSyncValue next_counter_value;
++
++ MetaSyncState state;
++} MetaSync;
++
++typedef struct
++{
++ Display *xdisplay;
++ int xsync_event_base;
++ int xsync_error_base;
++
++ GHashTable *alarm_to_sync;
++
++ MetaSync *syncs_array[NUM_SYNCS];
++ guint current_sync_idx;
++ MetaSync *current_sync;
++ guint warmup_syncs;
++
++ guint reboots;
++} MetaSyncRing;
++
++static MetaSyncRing meta_sync_ring = { 0 };
++
++static XSyncValue SYNC_VALUE_ZERO;
++static XSyncValue SYNC_VALUE_ONE;
++
++static const char* (*meta_gl_get_string) (GLenum name);
++static void (*meta_gl_get_integerv) (GLenum pname,
++ GLint *params);
++static const char* (*meta_gl_get_stringi) (GLenum name,
++ GLuint index);
++static void (*meta_gl_delete_sync) (GLsync sync);
++static GLenum (*meta_gl_client_wait_sync) (GLsync sync,
++ GLbitfield flags,
++ GLuint64 timeout);
++static void (*meta_gl_wait_sync) (GLsync sync,
++ GLbitfield flags,
++ GLuint64 timeout);
++static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
++ GLintptr external_sync,
++ GLbitfield flags);
++
++static MetaSyncRing *
++meta_sync_ring_get (void)
++{
++ if (meta_sync_ring.reboots > MAX_REBOOT_ATTEMPTS)
++ return NULL;
++
++ return &meta_sync_ring;
++}
++
++static gboolean
++load_gl_symbol (const char *name,
++ void **func)
++{
++ *func = cogl_get_proc_address (name);
++ if (!*func)
++ {
++ meta_verbose ("MetaSyncRing: failed to resolve required GL symbol \"%s\"\n", name);
++ return FALSE;
++ }
++ return TRUE;
++}
++
++static gboolean
++check_gl_extensions (void)
++{
++ ClutterBackend *backend;
++ CoglContext *cogl_context;
++ CoglDisplay *cogl_display;
++ CoglRenderer *cogl_renderer;
++
++ backend = clutter_get_default_backend ();
++ cogl_context = clutter_backend_get_cogl_context (backend);
++ cogl_display = cogl_context_get_display (cogl_context);
++ cogl_renderer = cogl_display_get_renderer (cogl_display);
++
++ switch (cogl_renderer_get_driver (cogl_renderer))
++ {
++ case COGL_DRIVER_GL3:
++ {
++ int num_extensions, i;
++ gboolean arb_sync = FALSE;
++ gboolean x11_sync_object = FALSE;
++
++ meta_gl_get_integerv (GL_NUM_EXTENSIONS, &num_extensions);
++
++ for (i = 0; i < num_extensions; ++i)
++ {
++ const char *ext = meta_gl_get_stringi (GL_EXTENSIONS, i);
++
++ if (g_strcmp0 ("GL_ARB_sync", ext) == 0)
++ arb_sync = TRUE;
++ else if (g_strcmp0 ("GL_EXT_x11_sync_object", ext) == 0)
++ x11_sync_object = TRUE;
++ }
++
++ return arb_sync && x11_sync_object;
++ }
++ case COGL_DRIVER_GL:
++ {
++ const char *extensions = meta_gl_get_string (GL_EXTENSIONS);
++ return (extensions != NULL &&
++ strstr (extensions, "GL_ARB_sync") != NULL &&
++ strstr (extensions, "GL_EXT_x11_sync_object") != NULL);
++ }
++ default:
++ break;
++ }
++
++ return FALSE;
++}
++
++static gboolean
++load_required_symbols (void)
++{
++ static gboolean success = FALSE;
++
++ if (success)
++ return TRUE;
++
++ /* We don't link against libGL directly because cogl may want to
++ * use something else. This assumes that cogl has been initialized
++ * and dynamically loaded libGL at this point.
++ */
++
++ if (!load_gl_symbol ("glGetString", (void **) &meta_gl_get_string))
++ goto out;
++ if (!load_gl_symbol ("glGetIntegerv", (void **) &meta_gl_get_integerv))
++ goto out;
++ if (!load_gl_symbol ("glGetStringi", (void **) &meta_gl_get_stringi))
++ goto out;
++
++ if (!check_gl_extensions ())
++ {
++ meta_verbose ("MetaSyncRing: couldn't find required GL extensions\n");
++ goto out;
++ }
++
++ if (!load_gl_symbol ("glDeleteSync", (void **) &meta_gl_delete_sync))
++ goto out;
++ if (!load_gl_symbol ("glClientWaitSync", (void **) &meta_gl_client_wait_sync))
++ goto out;
++ if (!load_gl_symbol ("glWaitSync", (void **) &meta_gl_wait_sync))
++ goto out;
++ if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
++ goto out;
++
++ success = TRUE;
++ out:
++ return success;
++}
++
++static void
++meta_sync_insert (MetaSync *self)
++{
++ g_return_if_fail (self->state == META_SYNC_STATE_READY);
++
++ XSyncTriggerFence (self->xdisplay, self->xfence);
++ XFlush (self->xdisplay);
++
++ meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
++
++ self->state = META_SYNC_STATE_WAITING;
++}
++
++static GLenum
++meta_sync_check_update_finished (MetaSync *self,
++ GLuint64 timeout)
++{
++ GLenum status = GL_WAIT_FAILED;
++
++ switch (self->state)
++ {
++ case META_SYNC_STATE_DONE:
++ status = GL_ALREADY_SIGNALED;
++ break;
++ case META_SYNC_STATE_WAITING:
++ status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
++ if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
++ self->state = META_SYNC_STATE_DONE;
++ break;
++ default:
++ break;
++ }
++
++ g_warn_if_fail (status != GL_WAIT_FAILED);
++
++ return status;
++}
++
++static void
++meta_sync_reset (MetaSync *self)
++{
++ XSyncAlarmAttributes attrs;
++ int overflow;
++
++ g_return_if_fail (self->state == META_SYNC_STATE_DONE);
++
++ XSyncResetFence (self->xdisplay, self->xfence);
++
++ attrs.trigger.wait_value = self->next_counter_value;
++
++ XSyncChangeAlarm (self->xdisplay, self->xalarm, XSyncCAValue, &attrs);
++ XSyncSetCounter (self->xdisplay, self->xcounter, self->next_counter_value);
++
++ XSyncValueAdd (&self->next_counter_value,
++ self->next_counter_value,
++ SYNC_VALUE_ONE,
++ &overflow);
++
++ self->state = META_SYNC_STATE_RESET_PENDING;
++}
++
++static void
++meta_sync_handle_event (MetaSync *self,
++ XSyncAlarmNotifyEvent *event)
++{
++ g_return_if_fail (event->alarm == self->xalarm);
++ g_return_if_fail (self->state == META_SYNC_STATE_RESET_PENDING);
++
++ self->state = META_SYNC_STATE_READY;
++}
++
++static MetaSync *
++meta_sync_new (Display *xdisplay)
++{
++ MetaSync *self;
++ XSyncAlarmAttributes attrs;
++
++ self = g_malloc0 (sizeof (MetaSync));
++
++ self->xdisplay = xdisplay;
++
++ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
++ self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++
++ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
++
++ attrs.trigger.counter = self->xcounter;
++ attrs.trigger.value_type = XSyncAbsolute;
++ attrs.trigger.wait_value = SYNC_VALUE_ONE;
++ attrs.trigger.test_type = XSyncPositiveTransition;
++ attrs.events = TRUE;
++ self->xalarm = XSyncCreateAlarm (xdisplay,
++ XSyncCACounter |
++ XSyncCAValueType |
++ XSyncCAValue |
++ XSyncCATestType |
++ XSyncCAEvents,
++ &attrs);
++
++ XSyncIntToValue (&self->next_counter_value, 1);
++
++ self->state = META_SYNC_STATE_READY;
++
++ return self;
++}
++
++static Bool
++alarm_event_predicate (Display *dpy,
++ XEvent *event,
++ XPointer data)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return False;
++
++ if (event->type == ring->xsync_event_base + XSyncAlarmNotify)
++ {
++ if (((MetaSync *) data)->xalarm == ((XSyncAlarmNotifyEvent *) event)->alarm)
++ return True;
++ }
++ return False;
++}
++
++static void
++meta_sync_free (MetaSync *self)
++{
++ /* When our assumptions don't hold, something has gone wrong but we
++ * don't know what, so we reboot the ring. While doing that, we
++ * trigger fences before deleting them to try to get ourselves out
++ * of a potentially stuck GPU state.
++ */
++ switch (self->state)
++ {
++ case META_SYNC_STATE_WAITING:
++ case META_SYNC_STATE_DONE:
++ /* nothing to do */
++ break;
++ case META_SYNC_STATE_RESET_PENDING:
++ {
++ XEvent event;
++ XIfEvent (self->xdisplay, &event, alarm_event_predicate, (XPointer) self);
++ meta_sync_handle_event (self, (XSyncAlarmNotifyEvent *) &event);
++ }
++ /* fall through */
++ case META_SYNC_STATE_READY:
++ XSyncTriggerFence (self->xdisplay, self->xfence);
++ XFlush (self->xdisplay);
++ break;
++ default:
++ break;
++ }
++
++ meta_gl_delete_sync (self->glsync);
++ XSyncDestroyFence (self->xdisplay, self->xfence);
++ XSyncDestroyCounter (self->xdisplay, self->xcounter);
++ XSyncDestroyAlarm (self->xdisplay, self->xalarm);
++
++ g_free (self);
++}
++
++gboolean
++meta_sync_ring_init (Display *xdisplay)
++{
++ gint major, minor;
++ guint i;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_val_if_fail (xdisplay != NULL, FALSE);
++ g_return_val_if_fail (ring->xdisplay == NULL, FALSE);
++
++ if (!load_required_symbols ())
++ return FALSE;
++
++ if (!XSyncQueryExtension (xdisplay, &ring->xsync_event_base, &ring->xsync_error_base) ||
++ !XSyncInitialize (xdisplay, &major, &minor))
++ return FALSE;
++
++ XSyncIntToValue (&SYNC_VALUE_ZERO, 0);
++ XSyncIntToValue (&SYNC_VALUE_ONE, 1);
++
++ ring->xdisplay = xdisplay;
++
++ ring->alarm_to_sync = g_hash_table_new (NULL, NULL);
++
++ for (i = 0; i < NUM_SYNCS; ++i)
++ {
++ MetaSync *sync = meta_sync_new (ring->xdisplay);
++ ring->syncs_array[i] = sync;
++ g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
++ }
++
++ ring->current_sync_idx = 0;
++ ring->current_sync = ring->syncs_array[0];
++ ring->warmup_syncs = 0;
++
++ return TRUE;
++}
++
++void
++meta_sync_ring_destroy (void)
++{
++ guint i;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ ring->current_sync_idx = 0;
++ ring->current_sync = NULL;
++ ring->warmup_syncs = 0;
++
++ for (i = 0; i < NUM_SYNCS; ++i)
++ meta_sync_free (ring->syncs_array[i]);
++
++ g_hash_table_destroy (ring->alarm_to_sync);
++
++ ring->xsync_event_base = 0;
++ ring->xsync_error_base = 0;
++ ring->xdisplay = NULL;
++}
++
++static gboolean
++meta_sync_ring_reboot (Display *xdisplay)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ meta_sync_ring_destroy ();
++
++ ring->reboots += 1;
++
++ if (!meta_sync_ring_get ())
++ {
++ meta_warning ("MetaSyncRing: Too many reboots -- disabling\n");
++ return FALSE;
++ }
++
++ return meta_sync_ring_init (xdisplay);
++}
++
++gboolean
++meta_sync_ring_after_frame (void)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (ring->warmup_syncs >= NUM_SYNCS / 2)
++ {
++ guint reset_sync_idx = (ring->current_sync_idx + NUM_SYNCS - (NUM_SYNCS / 2)) % NUM_SYNCS;
++ MetaSync *sync_to_reset = ring->syncs_array[reset_sync_idx];
++
++ GLenum status = meta_sync_check_update_finished (sync_to_reset, 0);
++ if (status == GL_TIMEOUT_EXPIRED)
++ {
++ meta_warning ("MetaSyncRing: We should never wait for a sync -- add more syncs?\n");
++ status = meta_sync_check_update_finished (sync_to_reset, MAX_SYNC_WAIT_TIME);
++ }
++
++ if (status != GL_ALREADY_SIGNALED && status != GL_CONDITION_SATISFIED)
++ {
++ meta_warning ("MetaSyncRing: Timed out waiting for sync object.\n");
++ return meta_sync_ring_reboot (ring->xdisplay);
++ }
++
++ meta_sync_reset (sync_to_reset);
++ }
++ else
++ {
++ ring->warmup_syncs += 1;
++ }
++
++ ring->current_sync_idx += 1;
++ ring->current_sync_idx %= NUM_SYNCS;
++
++ ring->current_sync = ring->syncs_array[ring->current_sync_idx];
++
++ return TRUE;
++}
++
++gboolean
++meta_sync_ring_insert_wait (void)
++{
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return FALSE;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (ring->current_sync->state != META_SYNC_STATE_READY)
++ {
++ meta_warning ("MetaSyncRing: Sync object is not ready -- were events handled properly?\n");
++ if (!meta_sync_ring_reboot (ring->xdisplay))
++ return FALSE;
++ }
++
++ meta_sync_insert (ring->current_sync);
++
++ return TRUE;
++}
++
++void
++meta_sync_ring_handle_event (XEvent *xevent)
++{
++ XSyncAlarmNotifyEvent *event;
++ MetaSync *sync;
++ MetaSyncRing *ring = meta_sync_ring_get ();
++
++ if (!ring)
++ return;
++
++ g_return_if_fail (ring->xdisplay != NULL);
++
++ if (xevent->type != (ring->xsync_event_base + XSyncAlarmNotify))
++ return;
++
++ event = (XSyncAlarmNotifyEvent *) xevent;
++
++ sync = g_hash_table_lookup (ring->alarm_to_sync, (gpointer) event->alarm);
++ if (sync)
++ meta_sync_handle_event (sync, event);
++}
+diff --git a/src/compositor/meta-sync-ring.h b/src/compositor/meta-sync-ring.h
+new file mode 100644
+index 0000000..6dca8ef
+--- /dev/null
++++ b/src/compositor/meta-sync-ring.h
+@@ -0,0 +1,14 @@
++#ifndef _META_SYNC_RING_H_
++#define _META_SYNC_RING_H_
++
++#include <glib.h>
++
++#include <X11/Xlib.h>
++
++gboolean meta_sync_ring_init (Display *dpy);
++void meta_sync_ring_destroy (void);
++gboolean meta_sync_ring_after_frame (void);
++gboolean meta_sync_ring_insert_wait (void);
++void meta_sync_ring_handle_event (XEvent *event);
++
++#endif /* _META_SYNC_RING_H_ */
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch b/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
new file mode 100644
index 0000000..9cbd0d0
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
@@ -0,0 +1,32 @@
+From f60c33b5afc4b1dff0b31f17d7ae222db8aa789f Mon Sep 17 00:00:00 2001
+From: Marek Chalupa <mchqwerty@gmail.com>
+Date: Fri, 3 Jul 2015 11:28:00 +0200
+Subject: frames: handle META_FRAME_CONTROL_NONE on left click
+
+We can get this operation in some cases, for example when
+we're trying to resize window that cannot be resized.
+This can occur with maximized windows that have a border
+(without border we couldn't resize them by mouse in maximized state).
+In this case we reached abort() beacuse we did not handle this op.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=751884
+
+diff --git a/src/ui/frames.c b/src/ui/frames.c
+index 362d7b6..a2f7f45 100644
+--- a/src/ui/frames.c
++++ b/src/ui/frames.c
+@@ -1053,6 +1053,11 @@ meta_frame_left_click_event (MetaUIFrame *frame,
+ }
+
+ return TRUE;
++ case META_FRAME_CONTROL_NONE:
++ /* We can get this for example when trying to resize window
++ * that cannot be resized (e. g. it is maximized and the theme
++ * currently used has borders for maximized windows), see #751884 */
++ return FALSE;
+ default:
+ g_assert_not_reached ();
+ }
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch b/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch
new file mode 100644
index 0000000..f77234b
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fallback-keymap.patch
@@ -0,0 +1,28 @@
+From 9abc0712836c9e56ed08796645874cc0d10b1826 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Mon, 21 Sep 2015 17:25:40 +0200
+Subject: backend-x11: Fallback to a default keymap if getting it from X fails
+
+This shouldn't fail but apparently sometimes it does and in that case
+having a possibly wrong idea of the keymap is still better than
+crashing.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=754979
+
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index 7ad28fd..dbcd13f 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -760,6 +760,9 @@ meta_backend_x11_get_keymap (MetaBackend *backend)
+ priv->xcb,
+ xkb_x11_get_core_keyboard_device_id (priv->xcb),
+ XKB_KEYMAP_COMPILE_NO_FLAGS);
++ if (priv->keymap == NULL)
++ priv->keymap = xkb_keymap_new_from_names (context, NULL, XKB_KEYMAP_COMPILE_NO_FLAGS);
++
+ xkb_context_unref (context);
+ }
+
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
new file mode 100644
index 0000000..a0b493b
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
@@ -0,0 +1,114 @@
+From c77e482b60bea40a422691b16af02a429d9c2edc Mon Sep 17 00:00:00 2001
+From: Aaron Plattner <aplattner@nvidia.com>
+Date: Mon, 3 Aug 2015 21:15:15 -0700
+Subject: compositor: Fix GL_EXT_x11_sync_object race condition
+
+The compositor maintains a ring of shared fences with the X server in order to
+properly synchronize rendering between the X server and the compositor's GPU
+channel. When all of the fences have been used, the compositor needs to reset
+one so that it can be reused. It does this by first waiting on the CPU for the
+fence to become triggered, and then sending a request to the X server to reset
+the fence.
+
+If the compositor's GPU channel is busy processing other work (e.g. the desktop
+switcher animation), then the X server may process the reset request before the
+GPU has consumed the fence. This causes the GPU channel to hang.
+
+Fix the problem by having the compositor's GPU channel trigger its own fence
+after waiting for the X server's fence. Wait for that fence on the CPU before
+sending the reset request to the X server. This ensures that the GPU has
+consumed the X11 fence before the server resets it.
+
+Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 4ee61f8..44b1c41 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -73,7 +73,8 @@ typedef struct
+ Display *xdisplay;
+
+ XSyncFence xfence;
+- GLsync glsync;
++ GLsync gl_x11_sync;
++ GLsync gpu_fence;
+
+ XSyncCounter xcounter;
+ XSyncAlarm xalarm;
+@@ -118,6 +119,8 @@ static void (*meta_gl_wait_sync) (GLsync sync,
+ static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
+ GLintptr external_sync,
+ GLbitfield flags);
++static GLsync (*meta_gl_fence_sync) (GLenum condition,
++ GLbitfield flags);
+
+ static MetaSyncRing *
+ meta_sync_ring_get (void)
+@@ -224,6 +227,8 @@ load_required_symbols (void)
+ goto out;
+ if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
+ goto out;
++ if (!load_gl_symbol ("glFenceSync", (void **) &meta_gl_fence_sync))
++ goto out;
+
+ success = TRUE;
+ out:
+@@ -238,7 +243,8 @@ meta_sync_insert (MetaSync *self)
+ XSyncTriggerFence (self->xdisplay, self->xfence);
+ XFlush (self->xdisplay);
+
+- meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
++ meta_gl_wait_sync (self->gl_x11_sync, 0, GL_TIMEOUT_IGNORED);
++ self->gpu_fence = meta_gl_fence_sync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
+
+ self->state = META_SYNC_STATE_WAITING;
+ }
+@@ -255,9 +261,13 @@ meta_sync_check_update_finished (MetaSync *self,
+ status = GL_ALREADY_SIGNALED;
+ break;
+ case META_SYNC_STATE_WAITING:
+- status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
++ status = meta_gl_client_wait_sync (self->gpu_fence, 0, timeout);
+ if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
+- self->state = META_SYNC_STATE_DONE;
++ {
++ self->state = META_SYNC_STATE_DONE;
++ meta_gl_delete_sync (self->gpu_fence);
++ self->gpu_fence = 0;
++ }
+ break;
+ default:
+ break;
+@@ -312,7 +322,8 @@ meta_sync_new (Display *xdisplay)
+ self->xdisplay = xdisplay;
+
+ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
+- self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gpu_fence = 0;
+
+ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
+
+@@ -365,6 +376,8 @@ meta_sync_free (MetaSync *self)
+ switch (self->state)
+ {
+ case META_SYNC_STATE_WAITING:
++ meta_gl_delete_sync (self->gpu_fence);
++ break;
+ case META_SYNC_STATE_DONE:
+ /* nothing to do */
+ break;
+@@ -383,7 +396,7 @@ meta_sync_free (MetaSync *self)
+ break;
+ }
+
+- meta_gl_delete_sync (self->glsync);
++ meta_gl_delete_sync (self->gl_x11_sync);
+ XSyncDestroyFence (self->xdisplay, self->xfence);
+ XSyncDestroyCounter (self->xdisplay, self->xcounter);
+ XSyncDestroyAlarm (self->xdisplay, self->xalarm);
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
new file mode 100644
index 0000000..2898d52
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
@@ -0,0 +1,32 @@
+From a54b1261d3ec5ccf7a8262c88557b6b952bc8a2e Mon Sep 17 00:00:00 2001
+From: Ting-Wei Lan <lantw@src.gnome.org>
+Date: Sat, 8 Aug 2015 20:12:09 +0800
+Subject: build: Fix return value in meta-sync-ring.c
+
+https://bugzilla.gnome.org/show_bug.cgi?id=753380
+
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 44b1c41..217ebe5 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -499,7 +499,7 @@ meta_sync_ring_after_frame (void)
+ if (!ring)
+ return FALSE;
+
+- g_return_if_fail (ring->xdisplay != NULL);
++ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
+
+ if (ring->warmup_syncs >= NUM_SYNCS / 2)
+ {
+@@ -542,7 +542,7 @@ meta_sync_ring_insert_wait (void)
+ if (!ring)
+ return FALSE;
+
+- g_return_if_fail (ring->xdisplay != NULL);
++ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
+
+ if (ring->current_sync->state != META_SYNC_STATE_READY)
+ {
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/files/mutter-3.16.3-flickering.patch b/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
new file mode 100644
index 0000000..6267a4e
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
@@ -0,0 +1,114 @@
+From 916070cc7218cc80f4565ea265b0dd6e5e93cb98 Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos@gmail.com>
+Date: Wed, 12 Aug 2015 15:26:34 +0200
+Subject: compositor: Handle fences in the frontend X connection
+
+Since mutter has two X connections and does damage handling on the
+frontend while fence triggering is done on the backend, we have a race
+between XDamageSubtract() and XSyncFenceTrigger() causing missed
+redraws in the GL_EXT_X11_sync_object path.
+
+If the fence trigger gets processed first by the server, any client
+drawing that happens between that and the damage subtract being
+processed and is completely contained in the last damage event box
+that mutter got, won't be included in the current frame nor will it
+cause a new damage event.
+
+A simple fix for this would be XSync()ing on the frontend connection
+after doing all the damage subtracts but that would add a round trip
+on every frame again which defeats the asynchronous design of X
+fences.
+
+Instead, if we move fence handling to the frontend we automatically
+get the right ordering between damage subtracts and fence triggers.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=728464
+
+diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
+index ac38ffc..3ff8431 100644
+--- a/src/backends/x11/meta-backend-x11.c
++++ b/src/backends/x11/meta-backend-x11.c
+@@ -45,7 +45,6 @@
+ #include <meta/util.h>
+ #include "display-private.h"
+ #include "compositor/compositor-private.h"
+-#include "compositor/meta-sync-ring.h"
+
+ struct _MetaBackendX11Private
+ {
+@@ -256,8 +255,6 @@ handle_host_xevent (MetaBackend *backend,
+ MetaCompositor *compositor = display->compositor;
+ if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
+ bypass_clutter = TRUE;
+- if (compositor->have_x11_sync_object)
+- meta_sync_ring_handle_event (event);
+ }
+ }
+
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 554faa1..2e182c2 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -534,8 +534,7 @@ meta_compositor_manage (MetaCompositor *compositor)
+ */
+ XMapWindow (xdisplay, compositor->output);
+
+- compositor->have_x11_sync_object =
+- meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
++ compositor->have_x11_sync_object = meta_sync_ring_init (xdisplay);
+ }
+
+ redirect_windows (display->screen);
+@@ -737,6 +736,9 @@ meta_compositor_process_event (MetaCompositor *compositor,
+ process_damage (compositor, (XDamageNotifyEvent *) event, window);
+ }
+
++ if (compositor->have_x11_sync_object)
++ meta_sync_ring_handle_event (event);
++
+ /* Clutter needs to know about MapNotify events otherwise it will
+ think the stage is invisible */
+ if (!meta_is_wayland_compositor () && event->type == MapNotify)
+diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
+index 217ebe5..336ccd4 100644
+--- a/src/compositor/meta-sync-ring.c
++++ b/src/compositor/meta-sync-ring.c
+@@ -322,7 +322,7 @@ meta_sync_new (Display *xdisplay)
+ self->xdisplay = xdisplay;
+
+ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
+- self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++ self->gl_x11_sync = 0;
+ self->gpu_fence = 0;
+
+ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
+@@ -347,6 +347,13 @@ meta_sync_new (Display *xdisplay)
+ return self;
+ }
+
++static void
++meta_sync_import (MetaSync *self)
++{
++ g_return_if_fail (self->gl_x11_sync == 0);
++ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
++}
++
+ static Bool
+ alarm_event_predicate (Display *dpy,
+ XEvent *event,
+@@ -437,6 +444,12 @@ meta_sync_ring_init (Display *xdisplay)
+ ring->syncs_array[i] = sync;
+ g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
+ }
++ /* Since the connection we create the X fences on isn't the same as
++ * the one used for the GLX context, we need to XSync() here to
++ * ensure glImportSync() succeeds. */
++ XSync (xdisplay, False);
++ for (i = 0; i < NUM_SYNCS; ++i)
++ meta_sync_import (ring->syncs_array[i]);
+
+ ring->current_sync_idx = 0;
+ ring->current_sync = ring->syncs_array[0];
+--
+cgit v0.10.2
+
diff --git a/x11-wm/mutter/mutter-3.16.3-r1.ebuild b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
new file mode 100644
index 0000000..98cc39c
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GCONF_DEBUG="yes"
+
+inherit autotools eutils gnome2
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://git.gnome.org/browse/mutter/"
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="+introspection +kms test 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="
+ >=x11-libs/pango-1.2[X,introspection?]
+ >=x11-libs/cairo-1.10[X]
+ >=x11-libs/gtk+-3.9.11:3[X,introspection?]
+ >=dev-libs/glib-2.36.0:2[dbus]
+ >=media-libs/clutter-1.21.3:1.0[introspection?]
+ >=media-libs/cogl-1.17.1:1.0=[introspection?]
+ >=media-libs/libcanberra-0.26[gtk3]
+ >=x11-libs/startup-notification-0.7
+ >=x11-libs/libXcomposite-0.2
+ >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
+ gnome-base/gnome-desktop:3=
+ >sys-power/upower-0.99:=
+
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libX11
+ >=x11-libs/libXcomposite-0.2
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ >=x11-libs/libXi-1.7.4
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libxcb
+ x11-libs/libxkbfile
+ >=x11-libs/libxkbcommon-0.4.3[X]
+ x11-misc/xkeyboard-config
+
+ gnome-extra/zenity
+
+ introspection? ( >=dev-libs/gobject-introspection-1.42:= )
+ kms? (
+ dev-libs/libinput
+ >=media-libs/clutter-1.20[egl]
+ media-libs/cogl:1.0=[kms]
+ >=media-libs/mesa-10.3[gbm]
+ sys-apps/systemd
+ virtual/libgudev
+ x11-libs/libdrm:= )
+ wayland? (
+ >=dev-libs/wayland-1.6.90
+ >=media-libs/clutter-1.20[wayland]
+ x11-base/xorg-server[wayland] )
+"
+DEPEND="${COMMON_DEPEND}
+ >=dev-util/gtk-doc-am-1.15
+ >=dev-util/intltool-0.41
+ sys-devel/gettext
+ virtual/pkgconfig
+ x11-proto/xextproto
+ x11-proto/xineramaproto
+ x11-proto/xproto
+ test? ( app-text/docbook-xml-dtd:4.5 )
+"
+RDEPEND="${COMMON_DEPEND}
+ !x11-misc/expocity
+"
+
+src_prepare() {
+ # Fallback to a default keymap if getting it from X fails (from 'master')
+ epatch "${FILESDIR}"/${PN}-3.16.3-fallback-keymap.patch
+
+ # frames: handle META_FRAME_CONTROL_NONE on left click (from '3.16')
+ epatch "${FILESDIR}"/${P}-crash-border.patch
+
+ # compositor: Add support for GL_EXT_x11_sync_object (from '3.16')
+ epatch "${FILESDIR}"/${P}-GL_EXT_x11_sync_object.patch
+
+ # compositor: Fix GL_EXT_x11_sync_object race condition (from '3.16')
+ epatch "${FILESDIR}"/${P}-fix-race.patch
+
+ # build: Fix return value in meta-sync-ring.c (from '3.16')
+ epatch "${FILESDIR}"/${P}-fix-return.patch
+
+ # compositor: Handle fences in the frontend X connection (from '3.16')
+ epatch "${FILESDIR}"/${P}-flickering.patch
+
+ eautoreconf
+ gnome2_src_prepare
+}
+
+src_configure() {
+ gnome2_src_configure \
+ --disable-static \
+ --enable-sm \
+ --enable-startup-notification \
+ --enable-verbose-mode \
+ --with-libcanberra \
+ $(use_enable introspection) \
+ $(use_enable kms native-backend) \
+ $(use_enable wayland)
+}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2015-10-03 9:05 Pacho Ramos
0 siblings, 0 replies; 16+ messages in thread
From: Pacho Ramos @ 2015-10-03 9:05 UTC (permalink / raw
To: gentoo-commits
commit: da3aadab245927722168f6d9adaa0513d39c1afb
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 3 09:05:23 2015 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Oct 3 09:05:23 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=da3aadab
x11-wm/mutter: Drop old
Package-Manager: portage-2.2.22
x11-wm/mutter/Manifest | 1 -
.../files/mutter-3.16.2-size-unredirected.patch | 151 ---------------------
x11-wm/mutter/mutter-3.16.2-r1.ebuild | 97 -------------
x11-wm/mutter/mutter-3.16.2.ebuild | 91 -------------
x11-wm/mutter/mutter-3.16.3-r1.ebuild | 10 +-
5 files changed, 5 insertions(+), 345 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 3633659..43311d2 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,3 +1,2 @@
DIST mutter-3.14.4.tar.xz 1608836 SHA256 b4fbcc0664484d6215fc1f2101e9b636303de63544b786f2f87ebf2f6a616a8b SHA512 5b6e2d969e9a328e23bedb9fd0409da1af0d2ae8ded6a940992d4cff18a8cbfe2aa6582a56a2c8bd549a560a84d8cbffe953f151bcadf235315b8ec8bc7d1267 WHIRLPOOL 45c0329832999f14a5eaa77df3a6c7bbc72556b779fc55b3db9505594efec40252996bf8d96083da47fdb67b6bf5a9402f526d8bbb1e5436e5de16a8520e4acf
-DIST mutter-3.16.2.tar.xz 1549760 SHA256 4a2b752f0b3aa59f50563190222623324f5154acbb6bf174213f5849e77d0763 SHA512 f2cd350f8dbd03bc8e58f6c3f1b48cd51b38ae56e020d4e02100ef02f003d797a20095acf6a8874563fde42cfde49c4a28c418af151ee49f24ed391d5ae3caba WHIRLPOOL a88badf1f59c8c6ba8dcde4af207a2e66e66abbd6fd6c436289591bbb6eb3b017f50a7122282b69fd7d55127029e7623b7cbca3467d2d25d95c8ff6077dc371b
DIST mutter-3.16.3.tar.xz 1550004 SHA256 ee0098487d1bfb8f28e3927fbb9df227d846555142d352f8693f56a08441c755 SHA512 31b6319c605d2576bf179e01534fe886a997677c63f19fa5d4a2d71e616a02de89d3edb069a444fb84c6fdf5a471afa2bda1d835c07e5d6dce712b2485e5937d WHIRLPOOL 23cc5161edb108137c9c983551b57659fc02c179bc7e08abebd5b26b98dcc1a17e00579a6b1e9f6fc544a92a877282fa1202a6390a14ef92ca6374dae1750112
diff --git a/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch b/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
deleted file mode 100644
index 0999ebd..0000000
--- a/x11-wm/mutter/files/mutter-3.16.2-size-unredirected.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 351f444f9d16a90636feb217b15f0f376bf96d85 Mon Sep 17 00:00:00 2001
-From: "Jasper St. Pierre" <jstpierre@mecheye.net>
-Date: Tue, 23 Jun 2015 16:23:45 -0700
-Subject: surface-actor-x11: Make sure to set a size when unredirected
-
-When we're unredirected, we don't have a pixmap, and thus our allocation
-becomes 0x0. So when events come in, they pass right through our actor,
-going to the one underneath in the stack.
-
-Fix this by having a fallback size on the shaped texture actor when
-we're unredirected, causing it to always have a valid allocation.
-
-This fixes clicking on stuff in sloppy / mouse mode focus.
-
-diff --git a/src/compositor/meta-shaped-texture-private.h b/src/compositor/meta-shaped-texture-private.h
-index 4ee8027..21c6335 100644
---- a/src/compositor/meta-shaped-texture-private.h
-+++ b/src/compositor/meta-shaped-texture-private.h
-@@ -32,6 +32,9 @@
- ClutterActor *meta_shaped_texture_new (void);
- void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
- CoglTexture *texture);
-+void meta_shaped_texture_set_fallback_size (MetaShapedTexture *stex,
-+ guint fallback_width,
-+ guint fallback_height);
- gboolean meta_shaped_texture_is_obscured (MetaShapedTexture *self);
-
- #endif
-diff --git a/src/compositor/meta-shaped-texture.c b/src/compositor/meta-shaped-texture.c
-index 163c5e6..8701d1b 100644
---- a/src/compositor/meta-shaped-texture.c
-+++ b/src/compositor/meta-shaped-texture.c
-@@ -86,6 +86,7 @@ struct _MetaShapedTexturePrivate
- cairo_region_t *unobscured_region;
-
- guint tex_width, tex_height;
-+ guint fallback_width, fallback_height;
-
- guint create_mipmaps : 1;
- };
-@@ -136,7 +137,20 @@ set_unobscured_region (MetaShapedTexture *self,
- g_clear_pointer (&priv->unobscured_region, (GDestroyNotify) cairo_region_destroy);
- if (unobscured_region)
- {
-- cairo_rectangle_int_t bounds = { 0, 0, priv->tex_width, priv->tex_height };
-+ guint width, height;
-+
-+ if (priv->texture)
-+ {
-+ width = priv->tex_width;
-+ height = priv->tex_height;
-+ }
-+ else
-+ {
-+ width = priv->fallback_width;
-+ height = priv->fallback_height;
-+ }
-+
-+ cairo_rectangle_int_t bounds = { 0, 0, width, height };
- priv->unobscured_region = cairo_region_copy (unobscured_region);
- cairo_region_intersect_rectangle (priv->unobscured_region, &bounds);
- }
-@@ -499,16 +513,21 @@ meta_shaped_texture_get_preferred_width (ClutterActor *self,
- gfloat *natural_width_p)
- {
- MetaShapedTexturePrivate *priv;
-+ guint width;
-
- g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
-
- priv = META_SHAPED_TEXTURE (self)->priv;
-
-- if (min_width_p)
-- *min_width_p = priv->tex_width;
-+ if (priv->texture)
-+ width = priv->tex_width;
-+ else
-+ width = priv->fallback_width;
-
-+ if (min_width_p)
-+ *min_width_p = width;
- if (natural_width_p)
-- *natural_width_p = priv->tex_width;
-+ *natural_width_p = width;
- }
-
- static void
-@@ -518,16 +537,21 @@ meta_shaped_texture_get_preferred_height (ClutterActor *self,
- gfloat *natural_height_p)
- {
- MetaShapedTexturePrivate *priv;
-+ guint height;
-
- g_return_if_fail (META_IS_SHAPED_TEXTURE (self));
-
- priv = META_SHAPED_TEXTURE (self)->priv;
-
-- if (min_height_p)
-- *min_height_p = priv->tex_height;
-+ if (priv->texture)
-+ height = priv->tex_height;
-+ else
-+ height = priv->fallback_height;
-
-+ if (min_height_p)
-+ *min_height_p = height;
- if (natural_height_p)
-- *natural_height_p = priv->tex_height;
-+ *natural_height_p = height;
- }
-
- static cairo_region_t *
-@@ -860,6 +884,17 @@ meta_shaped_texture_get_image (MetaShapedTexture *stex,
- return surface;
- }
-
-+void
-+meta_shaped_texture_set_fallback_size (MetaShapedTexture *self,
-+ guint fallback_width,
-+ guint fallback_height)
-+{
-+ MetaShapedTexturePrivate *priv = self->priv;
-+
-+ priv->fallback_width = fallback_width;
-+ priv->fallback_height = fallback_height;
-+}
-+
- static void
- meta_shaped_texture_cull_out (MetaCullable *cullable,
- cairo_region_t *unobscured_region,
-diff --git a/src/compositor/meta-surface-actor-x11.c b/src/compositor/meta-surface-actor-x11.c
-index 4aa7ecd..b50b8f2 100644
---- a/src/compositor/meta-surface-actor-x11.c
-+++ b/src/compositor/meta-surface-actor-x11.c
-@@ -416,6 +416,7 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
- int width, int height)
- {
- MetaSurfaceActorX11Private *priv = meta_surface_actor_x11_get_instance_private (self);
-+ MetaShapedTexture *stex = meta_surface_actor_get_texture (META_SURFACE_ACTOR (self));
-
- if (priv->last_width == width &&
- priv->last_height == height)
-@@ -424,4 +425,5 @@ meta_surface_actor_x11_set_size (MetaSurfaceActorX11 *self,
- priv->size_changed = TRUE;
- priv->last_width = width;
- priv->last_height = height;
-+ meta_shaped_texture_set_fallback_size (stex, width, height);
- }
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/mutter-3.16.2-r1.ebuild b/x11-wm/mutter/mutter-3.16.2-r1.ebuild
deleted file mode 100644
index 19d40dc..0000000
--- a/x11-wm/mutter/mutter-3.16.2-r1.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test 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="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_prepare() {
- # surface-actor-x11: Make sure to set a size when unredirected (from 3.16 branch)
- epatch "${FILESDIR}"/${P}-size-unredirected.patch
- gnome2_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
diff --git a/x11-wm/mutter/mutter-3.16.2.ebuild b/x11-wm/mutter/mutter-3.16.2.ebuild
deleted file mode 100644
index c464ffd..0000000
--- a/x11-wm/mutter/mutter-3.16.2.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test 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="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
diff --git a/x11-wm/mutter/mutter-3.16.3-r1.ebuild b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
index 98cc39c..76f8ab6 100644
--- a/x11-wm/mutter/mutter-3.16.3-r1.ebuild
+++ b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
@@ -81,19 +81,19 @@ RDEPEND="${COMMON_DEPEND}
src_prepare() {
# Fallback to a default keymap if getting it from X fails (from 'master')
epatch "${FILESDIR}"/${PN}-3.16.3-fallback-keymap.patch
-
+
# frames: handle META_FRAME_CONTROL_NONE on left click (from '3.16')
epatch "${FILESDIR}"/${P}-crash-border.patch
-
+
# compositor: Add support for GL_EXT_x11_sync_object (from '3.16')
epatch "${FILESDIR}"/${P}-GL_EXT_x11_sync_object.patch
-
+
# compositor: Fix GL_EXT_x11_sync_object race condition (from '3.16')
epatch "${FILESDIR}"/${P}-fix-race.patch
-
+
# build: Fix return value in meta-sync-ring.c (from '3.16')
epatch "${FILESDIR}"/${P}-fix-return.patch
-
+
# compositor: Handle fences in the frontend X connection (from '3.16')
epatch "${FILESDIR}"/${P}-flickering.patch
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2015-11-26 10:51 Gilles Dartiguelongue
0 siblings, 0 replies; 16+ messages in thread
From: Gilles Dartiguelongue @ 2015-11-26 10:51 UTC (permalink / raw
To: gentoo-commits
commit: a898d3f2ba18dcc1461f5ba58ac3c1697467d817
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 26 10:47:45 2015 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Thu Nov 26 10:50:45 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a898d3f2
x11-wm/mutter: drop old revisions
Package-Manager: portage-2.2.25
x11-wm/mutter/Manifest | 1 -
x11-wm/mutter/files/mutter-3.14.2-automagic.patch | 90 ---
.../mutter-3.16.3-GL_EXT_x11_sync_object.patch | 840 ---------------------
.../mutter/files/mutter-3.16.3-crash-border.patch | 32 -
x11-wm/mutter/files/mutter-3.16.3-fix-race.patch | 114 ---
x11-wm/mutter/files/mutter-3.16.3-fix-return.patch | 32 -
x11-wm/mutter/files/mutter-3.16.3-flickering.patch | 114 ---
.../mutter-3.2.1-ignore-shadow-and-padding.patch | 91 ---
x11-wm/mutter/mutter-3.16.3-r1.ebuild | 114 ---
x11-wm/mutter/mutter-3.16.3.ebuild | 91 ---
10 files changed, 1519 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index a75354a..f16ae86 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,3 +1,2 @@
-DIST mutter-3.16.3.tar.xz 1550004 SHA256 ee0098487d1bfb8f28e3927fbb9df227d846555142d352f8693f56a08441c755 SHA512 31b6319c605d2576bf179e01534fe886a997677c63f19fa5d4a2d71e616a02de89d3edb069a444fb84c6fdf5a471afa2bda1d835c07e5d6dce712b2485e5937d WHIRLPOOL 23cc5161edb108137c9c983551b57659fc02c179bc7e08abebd5b26b98dcc1a17e00579a6b1e9f6fc544a92a877282fa1202a6390a14ef92ca6374dae1750112
DIST mutter-3.16.4.tar.xz 1535572 SHA256 23e8601a594a207fcfdf570e10710539176d41dd43304ef7b274a59d09e305da SHA512 b2d199ad883bb90adfbc96317f4ccc655ed6ff700307503551cb8a4d0a42b7dc9024d1b914935b57c6f50bed90e9ce592179b07a4061a3664443aa012e6b4fd9 WHIRLPOOL 8084e9e43643ce65947856fe81ce29619a2dae22866fb5c42d83563b10dfe55104f18cf8c7f06bce650681df94f658a5438be8fbcc8a0da8a2c2ceaa880f7ab2
DIST mutter-3.18.2.tar.xz 1468660 SHA256 8a69326f216c7575ed6cd53938b9cfc49b3b359cde95d3b6a7ed46c837261181 SHA512 99c138187e28a152d44421e240a9e644c56c74142ab125a0bf208ffaa3e711df9c319b37bbb9827ee3c79abce908aaf4ae6b6cb271b92d90add2642a39b74726 WHIRLPOOL 3c4f1e45a7306dedf8c9350ef130139f69a8d6a56c24ad4c1b52fd9120e72901b2898df0684fabb33a17ceec5261adfc340e09a65cbb1f90045aa34b9ec13342
diff --git a/x11-wm/mutter/files/mutter-3.14.2-automagic.patch b/x11-wm/mutter/files/mutter-3.14.2-automagic.patch
deleted file mode 100644
index 3956004..0000000
--- a/x11-wm/mutter/files/mutter-3.14.2-automagic.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From d723a752982e12b7a7fb7998c3e28efd9082abd9 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Mon, 8 Dec 2014 22:00:32 +0100
-Subject: [PATCH] Make wayland support optional
-
----
- configure.ac | 58 +++++++++++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 43 insertions(+), 15 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0870afa..251f909 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -200,23 +200,49 @@ AC_SUBST(XWAYLAND_PATH)
-
- PKG_CHECK_MODULES(MUTTER, $MUTTER_PC_MODULES)
-
--PKG_CHECK_MODULES(MUTTER_NATIVE_BACKEND, [clutter-egl-1.0 libdrm libsystemd libinput gbm >= 10.3], [have_native_backend=yes], [have_native_backend=no])
--if test $have_native_backend = yes; then
-- AC_DEFINE([HAVE_NATIVE_BACKEND],[1],[Define if you want to enable the native (KMS) backend based on systemd])
--fi
--AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
--
--PKG_CHECK_MODULES(MUTTER_WAYLAND, [clutter-wayland-1.0 clutter-wayland-compositor-1.0 wayland-server >= 1.5.90], [have_wayland=yes], [have_wayland=no])
--if test $have_wayland = yes; then
-- AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
-- AS_IF([test $WAYLAND_SCANNER = "no"],
-- AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols]))
-- AC_SUBST([WAYLAND_SCANNER])
--
-- AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
--fi
-+have_wayland=no
-+AC_ARG_ENABLE(
-+ [wayland],
-+ AS_HELP_STRING([--disable-wayland], [disable mutter on wayland support]),
-+ [],
-+ enable_wayland=yes
-+)
-+AS_IF([test "$enable_wayland" != "no"],
-+ [
-+ PKG_CHECK_MODULES([MUTTER_WAYLAND],
-+ [clutter-wayland-1.0 clutter-wayland-compositor-1.0 wayland-server >= 1.5.90],
-+ [
-+ have_wayland=yes
-+ AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
-+ AS_IF([test $WAYLAND_SCANNER = "no"],
-+ [AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])
-+ AC_SUBST([WAYLAND_SCANNER])
-+ AC_DEFINE([HAVE_WAYLAND],[1],[Define if you want to enable Wayland support])
-+ ],
-+ [have_wayland=no])
-+])
- AM_CONDITIONAL([HAVE_WAYLAND],[test $have_wayland = yes])
-
-+have_native_backend=no
-+AC_ARG_ENABLE(
-+ [native-backend],
-+ AS_HELP_STRING([--disable-native-backend], [disable mutter native (KMS) backend]),
-+ [],
-+ enable_native_backend=yes
-+)
-+AS_IF([test "$enable_native_backend" != "no"],
-+ [
-+ PKG_CHECK_MODULES([MUTTER_NATIVE_BACKEND],
-+ [clutter-egl-1.0 libdrm libsystemd libinput gudev-1.0 gbm >= 10.3],
-+ [
-+ have_native_backend=yes
-+ AC_DEFINE([HAVE_NATIVE_BACKEND],[1],
-+ [Define if you want to enable the native (KMS) backend based on systemd])
-+ ],
-+ [have_native_backend=no])
-+])
-+AM_CONDITIONAL([HAVE_NATIVE_BACKEND],[test $have_native_backend = yes])
-+
- PKG_CHECK_EXISTS([xi >= 1.6.99.1],
- AC_DEFINE([HAVE_XI23],[1],[Define if you have support for XInput 2.3 or greater]))
-
-@@ -416,6 +442,8 @@ mutter-$VERSION
- libcanberra: ${have_libcanberra}
- Introspection: ${found_introspection}
- Session management: ${found_sm}
-+ Wayland: ${have_wayland}
-+ Native (KMS) backend: ${have_native_backend}
- "
-
-
---
-2.2.0
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch b/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
deleted file mode 100644
index 401c175..0000000
--- a/x11-wm/mutter/files/mutter-3.16.3-GL_EXT_x11_sync_object.patch
+++ /dev/null
@@ -1,840 +0,0 @@
-From 9cc80497a262edafc58062fd860ef7a9dcab688c Mon Sep 17 00:00:00 2001
-From: Rui Matos <tiagomatos@gmail.com>
-Date: Fri, 18 Apr 2014 20:21:20 +0200
-Subject: compositor: Add support for GL_EXT_x11_sync_object
-
-If GL advertises this extension we'll use it to synchronize X with GL
-rendering instead of relying on the XSync() behavior with open source
-drivers.
-
-Some driver bugs were uncovered while working on this so if we have
-had to reboot the ring a few times, something is probably wrong and
-we're likely to just make things worse by continuing to try. Let's
-err on the side of caution, disable ourselves and fallback to the
-XSync() path in the compositor.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=728464
-
-diff --git a/configure.ac b/configure.ac
-index 01d75cb..6eea6b2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -332,6 +332,11 @@ fi
-
- GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
-
-+AC_CHECK_DECL([GL_EXT_x11_sync_object],
-+ [],
-+ [AC_MSG_ERROR([GL_EXT_x11_sync_object definition not found, please update your GL headers])],
-+ [#include <GL/glx.h>])
-+
- #### Warnings (last since -Werror can disturb other tests)
-
- # Stay command-line compatible with the gnome-common configure option. Here
-diff --git a/src/Makefile.am b/src/Makefile.am
-index baadb41..a4e07a9 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -139,6 +139,8 @@ libmutter_la_SOURCES = \
- compositor/meta-surface-actor.h \
- compositor/meta-surface-actor-x11.c \
- compositor/meta-surface-actor-x11.h \
-+ compositor/meta-sync-ring.c \
-+ compositor/meta-sync-ring.h \
- compositor/meta-texture-rectangle.c \
- compositor/meta-texture-rectangle.h \
- compositor/meta-texture-tower.c \
-diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
-index 3ff8431..ac38ffc 100644
---- a/src/backends/x11/meta-backend-x11.c
-+++ b/src/backends/x11/meta-backend-x11.c
-@@ -45,6 +45,7 @@
- #include <meta/util.h>
- #include "display-private.h"
- #include "compositor/compositor-private.h"
-+#include "compositor/meta-sync-ring.h"
-
- struct _MetaBackendX11Private
- {
-@@ -255,6 +256,8 @@ handle_host_xevent (MetaBackend *backend,
- MetaCompositor *compositor = display->compositor;
- if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
- bypass_clutter = TRUE;
-+ if (compositor->have_x11_sync_object)
-+ meta_sync_ring_handle_event (event);
- }
- }
-
-diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
-index 80fb4e2..9e3e73d 100644
---- a/src/compositor/compositor-private.h
-+++ b/src/compositor/compositor-private.h
-@@ -15,7 +15,8 @@ struct _MetaCompositor
- {
- MetaDisplay *display;
-
-- guint repaint_func_id;
-+ guint pre_paint_func_id;
-+ guint post_paint_func_id;
-
- gint64 server_time_query_time;
- gint64 server_time_offset;
-@@ -40,6 +41,7 @@ struct _MetaCompositor
- MetaPluginManager *plugin_mgr;
-
- gboolean frame_has_updated_xsurfaces;
-+ gboolean have_x11_sync_object;
- };
-
- /* Wait 2ms after vblank before starting to draw next frame */
-diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
-index 250d489..554faa1 100644
---- a/src/compositor/compositor.c
-+++ b/src/compositor/compositor.c
-@@ -79,6 +79,7 @@
- #include "frame.h"
- #include <X11/extensions/shape.h>
- #include <X11/extensions/Xcomposite.h>
-+#include "meta-sync-ring.h"
-
- #include "backends/x11/meta-backend-x11.h"
-
-@@ -125,7 +126,11 @@ meta_switch_workspace_completed (MetaCompositor *compositor)
- void
- meta_compositor_destroy (MetaCompositor *compositor)
- {
-- clutter_threads_remove_repaint_func (compositor->repaint_func_id);
-+ clutter_threads_remove_repaint_func (compositor->pre_paint_func_id);
-+ clutter_threads_remove_repaint_func (compositor->post_paint_func_id);
-+
-+ if (compositor->have_x11_sync_object)
-+ meta_sync_ring_destroy ();
- }
-
- static void
-@@ -468,13 +473,11 @@ meta_compositor_manage (MetaCompositor *compositor)
- MetaDisplay *display = compositor->display;
- Display *xdisplay = display->xdisplay;
- MetaScreen *screen = display->screen;
-+ MetaBackend *backend = meta_get_backend ();
-
- meta_screen_set_cm_selection (display->screen);
-
-- {
-- MetaBackend *backend = meta_get_backend ();
-- compositor->stage = meta_backend_get_stage (backend);
-- }
-+ compositor->stage = meta_backend_get_stage (backend);
-
- /* We use connect_after() here to accomodate code in GNOME Shell that,
- * when benchmarking drawing performance, connects to ::after-paint
-@@ -510,7 +513,7 @@ meta_compositor_manage (MetaCompositor *compositor)
-
- compositor->output = screen->composite_overlay_window;
-
-- xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (meta_get_backend ()));
-+ xwin = meta_backend_x11_get_xwindow (META_BACKEND_X11 (backend));
-
- XReparentWindow (xdisplay, xwin, compositor->output, 0, 0);
-
-@@ -530,6 +533,9 @@ meta_compositor_manage (MetaCompositor *compositor)
- * contents until we show the stage.
- */
- XMapWindow (xdisplay, compositor->output);
-+
-+ compositor->have_x11_sync_object =
-+ meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
- }
-
- redirect_windows (display->screen);
-@@ -1044,11 +1050,12 @@ frame_callback (CoglOnscreen *onscreen,
- }
- }
-
--static void
--pre_paint_windows (MetaCompositor *compositor)
-+static gboolean
-+meta_pre_paint_func (gpointer data)
- {
- GList *l;
- MetaWindowActor *top_window;
-+ MetaCompositor *compositor = data;
-
- if (compositor->onscreen == NULL)
- {
-@@ -1060,7 +1067,7 @@ pre_paint_windows (MetaCompositor *compositor)
- }
-
- if (compositor->windows == NULL)
-- return;
-+ return TRUE;
-
- top_window = g_list_last (compositor->windows)->data;
-
-@@ -1077,10 +1084,12 @@ pre_paint_windows (MetaCompositor *compositor)
- {
- /* We need to make sure that any X drawing that happens before
- * the XDamageSubtract() for each window above is visible to
-- * subsequent GL rendering; the only standardized way to do this
-- * is EXT_x11_sync_object, which isn't yet widely available. For
-- * now, we count on details of Xorg and the open source drivers,
-- * and hope for the best otherwise.
-+ * subsequent GL rendering; the standardized way to do this is
-+ * GL_EXT_X11_sync_object. Since this isn't implemented yet in
-+ * mesa, we also have a path that relies on the implementation
-+ * of the open source drivers.
-+ *
-+ * Anything else, we just hope for the best.
- *
- * Xorg and open source driver specifics:
- *
-@@ -1095,17 +1104,28 @@ pre_paint_windows (MetaCompositor *compositor)
- * round trip request at this point is sufficient to flush the
- * GLX buffers.
- */
-- XSync (compositor->display->xdisplay, False);
--
-- compositor->frame_has_updated_xsurfaces = FALSE;
-+ if (compositor->have_x11_sync_object)
-+ compositor->have_x11_sync_object = meta_sync_ring_insert_wait ();
-+ else
-+ XSync (compositor->display->xdisplay, False);
- }
-+
-+ return TRUE;
- }
-
- static gboolean
--meta_repaint_func (gpointer data)
-+meta_post_paint_func (gpointer data)
- {
- MetaCompositor *compositor = data;
-- pre_paint_windows (compositor);
-+
-+ if (compositor->frame_has_updated_xsurfaces)
-+ {
-+ if (compositor->have_x11_sync_object)
-+ compositor->have_x11_sync_object = meta_sync_ring_after_frame ();
-+
-+ compositor->frame_has_updated_xsurfaces = FALSE;
-+ }
-+
- return TRUE;
- }
-
-@@ -1140,10 +1160,16 @@ meta_compositor_new (MetaDisplay *display)
- G_CALLBACK (on_shadow_factory_changed),
- compositor);
-
-- compositor->repaint_func_id = clutter_threads_add_repaint_func (meta_repaint_func,
-- compositor,
-- NULL);
--
-+ compositor->pre_paint_func_id =
-+ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_PRE_PAINT,
-+ meta_pre_paint_func,
-+ compositor,
-+ NULL);
-+ compositor->post_paint_func_id =
-+ clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT,
-+ meta_post_paint_func,
-+ compositor,
-+ NULL);
- return compositor;
- }
-
-diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
-new file mode 100644
-index 0000000..4ee61f8
---- /dev/null
-+++ b/src/compositor/meta-sync-ring.c
-@@ -0,0 +1,566 @@
-+/*
-+ * This is based on an original C++ implementation for compiz that
-+ * carries the following copyright notice:
-+ *
-+ *
-+ * Copyright © 2011 NVIDIA Corporation
-+ *
-+ * Permission to use, copy, modify, distribute, and sell this software
-+ * and its documentation for any purpose is hereby granted without
-+ * fee, provided that the above copyright notice appear in all copies
-+ * and that both that copyright notice and this permission notice
-+ * appear in supporting documentation, and that the name of NVIDIA
-+ * Corporation not be used in advertising or publicity pertaining to
-+ * distribution of the software without specific, written prior
-+ * permission. NVIDIA Corporation makes no representations about the
-+ * suitability of this software for any purpose. It is provided "as
-+ * is" without express or implied warranty.
-+ *
-+ * NVIDIA CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
-+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ *
-+ * Authors: James Jones <jajones@nvidia.com>
-+ */
-+
-+#include <string.h>
-+
-+#include <GL/gl.h>
-+#include <GL/glx.h>
-+#include <X11/extensions/sync.h>
-+
-+#include <cogl/cogl.h>
-+#include <clutter/clutter.h>
-+
-+#include <meta/util.h>
-+
-+#include "meta-sync-ring.h"
-+
-+/* Theory of operation:
-+ *
-+ * We use a ring of NUM_SYNCS fence objects. On each frame we advance
-+ * to the next fence in the ring. For each fence we do:
-+ *
-+ * 1. fence is XSyncTriggerFence()'d and glWaitSync()'d
-+ * 2. NUM_SYNCS / 2 frames later, fence should be triggered
-+ * 3. fence is XSyncResetFence()'d
-+ * 4. NUM_SYNCS / 2 frames later, fence should be reset
-+ * 5. go back to 1 and re-use fence
-+ *
-+ * glClientWaitSync() and XAlarms are used in steps 2 and 4,
-+ * respectively, to double-check the expectections.
-+ */
-+
-+#define NUM_SYNCS 10
-+#define MAX_SYNC_WAIT_TIME (1 * 1000 * 1000 * 1000) /* one sec */
-+#define MAX_REBOOT_ATTEMPTS 2
-+
-+typedef enum
-+{
-+ META_SYNC_STATE_READY,
-+ META_SYNC_STATE_WAITING,
-+ META_SYNC_STATE_DONE,
-+ META_SYNC_STATE_RESET_PENDING,
-+} MetaSyncState;
-+
-+typedef struct
-+{
-+ Display *xdisplay;
-+
-+ XSyncFence xfence;
-+ GLsync glsync;
-+
-+ XSyncCounter xcounter;
-+ XSyncAlarm xalarm;
-+ XSyncValue next_counter_value;
-+
-+ MetaSyncState state;
-+} MetaSync;
-+
-+typedef struct
-+{
-+ Display *xdisplay;
-+ int xsync_event_base;
-+ int xsync_error_base;
-+
-+ GHashTable *alarm_to_sync;
-+
-+ MetaSync *syncs_array[NUM_SYNCS];
-+ guint current_sync_idx;
-+ MetaSync *current_sync;
-+ guint warmup_syncs;
-+
-+ guint reboots;
-+} MetaSyncRing;
-+
-+static MetaSyncRing meta_sync_ring = { 0 };
-+
-+static XSyncValue SYNC_VALUE_ZERO;
-+static XSyncValue SYNC_VALUE_ONE;
-+
-+static const char* (*meta_gl_get_string) (GLenum name);
-+static void (*meta_gl_get_integerv) (GLenum pname,
-+ GLint *params);
-+static const char* (*meta_gl_get_stringi) (GLenum name,
-+ GLuint index);
-+static void (*meta_gl_delete_sync) (GLsync sync);
-+static GLenum (*meta_gl_client_wait_sync) (GLsync sync,
-+ GLbitfield flags,
-+ GLuint64 timeout);
-+static void (*meta_gl_wait_sync) (GLsync sync,
-+ GLbitfield flags,
-+ GLuint64 timeout);
-+static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
-+ GLintptr external_sync,
-+ GLbitfield flags);
-+
-+static MetaSyncRing *
-+meta_sync_ring_get (void)
-+{
-+ if (meta_sync_ring.reboots > MAX_REBOOT_ATTEMPTS)
-+ return NULL;
-+
-+ return &meta_sync_ring;
-+}
-+
-+static gboolean
-+load_gl_symbol (const char *name,
-+ void **func)
-+{
-+ *func = cogl_get_proc_address (name);
-+ if (!*func)
-+ {
-+ meta_verbose ("MetaSyncRing: failed to resolve required GL symbol \"%s\"\n", name);
-+ return FALSE;
-+ }
-+ return TRUE;
-+}
-+
-+static gboolean
-+check_gl_extensions (void)
-+{
-+ ClutterBackend *backend;
-+ CoglContext *cogl_context;
-+ CoglDisplay *cogl_display;
-+ CoglRenderer *cogl_renderer;
-+
-+ backend = clutter_get_default_backend ();
-+ cogl_context = clutter_backend_get_cogl_context (backend);
-+ cogl_display = cogl_context_get_display (cogl_context);
-+ cogl_renderer = cogl_display_get_renderer (cogl_display);
-+
-+ switch (cogl_renderer_get_driver (cogl_renderer))
-+ {
-+ case COGL_DRIVER_GL3:
-+ {
-+ int num_extensions, i;
-+ gboolean arb_sync = FALSE;
-+ gboolean x11_sync_object = FALSE;
-+
-+ meta_gl_get_integerv (GL_NUM_EXTENSIONS, &num_extensions);
-+
-+ for (i = 0; i < num_extensions; ++i)
-+ {
-+ const char *ext = meta_gl_get_stringi (GL_EXTENSIONS, i);
-+
-+ if (g_strcmp0 ("GL_ARB_sync", ext) == 0)
-+ arb_sync = TRUE;
-+ else if (g_strcmp0 ("GL_EXT_x11_sync_object", ext) == 0)
-+ x11_sync_object = TRUE;
-+ }
-+
-+ return arb_sync && x11_sync_object;
-+ }
-+ case COGL_DRIVER_GL:
-+ {
-+ const char *extensions = meta_gl_get_string (GL_EXTENSIONS);
-+ return (extensions != NULL &&
-+ strstr (extensions, "GL_ARB_sync") != NULL &&
-+ strstr (extensions, "GL_EXT_x11_sync_object") != NULL);
-+ }
-+ default:
-+ break;
-+ }
-+
-+ return FALSE;
-+}
-+
-+static gboolean
-+load_required_symbols (void)
-+{
-+ static gboolean success = FALSE;
-+
-+ if (success)
-+ return TRUE;
-+
-+ /* We don't link against libGL directly because cogl may want to
-+ * use something else. This assumes that cogl has been initialized
-+ * and dynamically loaded libGL at this point.
-+ */
-+
-+ if (!load_gl_symbol ("glGetString", (void **) &meta_gl_get_string))
-+ goto out;
-+ if (!load_gl_symbol ("glGetIntegerv", (void **) &meta_gl_get_integerv))
-+ goto out;
-+ if (!load_gl_symbol ("glGetStringi", (void **) &meta_gl_get_stringi))
-+ goto out;
-+
-+ if (!check_gl_extensions ())
-+ {
-+ meta_verbose ("MetaSyncRing: couldn't find required GL extensions\n");
-+ goto out;
-+ }
-+
-+ if (!load_gl_symbol ("glDeleteSync", (void **) &meta_gl_delete_sync))
-+ goto out;
-+ if (!load_gl_symbol ("glClientWaitSync", (void **) &meta_gl_client_wait_sync))
-+ goto out;
-+ if (!load_gl_symbol ("glWaitSync", (void **) &meta_gl_wait_sync))
-+ goto out;
-+ if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
-+ goto out;
-+
-+ success = TRUE;
-+ out:
-+ return success;
-+}
-+
-+static void
-+meta_sync_insert (MetaSync *self)
-+{
-+ g_return_if_fail (self->state == META_SYNC_STATE_READY);
-+
-+ XSyncTriggerFence (self->xdisplay, self->xfence);
-+ XFlush (self->xdisplay);
-+
-+ meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
-+
-+ self->state = META_SYNC_STATE_WAITING;
-+}
-+
-+static GLenum
-+meta_sync_check_update_finished (MetaSync *self,
-+ GLuint64 timeout)
-+{
-+ GLenum status = GL_WAIT_FAILED;
-+
-+ switch (self->state)
-+ {
-+ case META_SYNC_STATE_DONE:
-+ status = GL_ALREADY_SIGNALED;
-+ break;
-+ case META_SYNC_STATE_WAITING:
-+ status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
-+ if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
-+ self->state = META_SYNC_STATE_DONE;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ g_warn_if_fail (status != GL_WAIT_FAILED);
-+
-+ return status;
-+}
-+
-+static void
-+meta_sync_reset (MetaSync *self)
-+{
-+ XSyncAlarmAttributes attrs;
-+ int overflow;
-+
-+ g_return_if_fail (self->state == META_SYNC_STATE_DONE);
-+
-+ XSyncResetFence (self->xdisplay, self->xfence);
-+
-+ attrs.trigger.wait_value = self->next_counter_value;
-+
-+ XSyncChangeAlarm (self->xdisplay, self->xalarm, XSyncCAValue, &attrs);
-+ XSyncSetCounter (self->xdisplay, self->xcounter, self->next_counter_value);
-+
-+ XSyncValueAdd (&self->next_counter_value,
-+ self->next_counter_value,
-+ SYNC_VALUE_ONE,
-+ &overflow);
-+
-+ self->state = META_SYNC_STATE_RESET_PENDING;
-+}
-+
-+static void
-+meta_sync_handle_event (MetaSync *self,
-+ XSyncAlarmNotifyEvent *event)
-+{
-+ g_return_if_fail (event->alarm == self->xalarm);
-+ g_return_if_fail (self->state == META_SYNC_STATE_RESET_PENDING);
-+
-+ self->state = META_SYNC_STATE_READY;
-+}
-+
-+static MetaSync *
-+meta_sync_new (Display *xdisplay)
-+{
-+ MetaSync *self;
-+ XSyncAlarmAttributes attrs;
-+
-+ self = g_malloc0 (sizeof (MetaSync));
-+
-+ self->xdisplay = xdisplay;
-+
-+ self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
-+ self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
-+
-+ self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
-+
-+ attrs.trigger.counter = self->xcounter;
-+ attrs.trigger.value_type = XSyncAbsolute;
-+ attrs.trigger.wait_value = SYNC_VALUE_ONE;
-+ attrs.trigger.test_type = XSyncPositiveTransition;
-+ attrs.events = TRUE;
-+ self->xalarm = XSyncCreateAlarm (xdisplay,
-+ XSyncCACounter |
-+ XSyncCAValueType |
-+ XSyncCAValue |
-+ XSyncCATestType |
-+ XSyncCAEvents,
-+ &attrs);
-+
-+ XSyncIntToValue (&self->next_counter_value, 1);
-+
-+ self->state = META_SYNC_STATE_READY;
-+
-+ return self;
-+}
-+
-+static Bool
-+alarm_event_predicate (Display *dpy,
-+ XEvent *event,
-+ XPointer data)
-+{
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return False;
-+
-+ if (event->type == ring->xsync_event_base + XSyncAlarmNotify)
-+ {
-+ if (((MetaSync *) data)->xalarm == ((XSyncAlarmNotifyEvent *) event)->alarm)
-+ return True;
-+ }
-+ return False;
-+}
-+
-+static void
-+meta_sync_free (MetaSync *self)
-+{
-+ /* When our assumptions don't hold, something has gone wrong but we
-+ * don't know what, so we reboot the ring. While doing that, we
-+ * trigger fences before deleting them to try to get ourselves out
-+ * of a potentially stuck GPU state.
-+ */
-+ switch (self->state)
-+ {
-+ case META_SYNC_STATE_WAITING:
-+ case META_SYNC_STATE_DONE:
-+ /* nothing to do */
-+ break;
-+ case META_SYNC_STATE_RESET_PENDING:
-+ {
-+ XEvent event;
-+ XIfEvent (self->xdisplay, &event, alarm_event_predicate, (XPointer) self);
-+ meta_sync_handle_event (self, (XSyncAlarmNotifyEvent *) &event);
-+ }
-+ /* fall through */
-+ case META_SYNC_STATE_READY:
-+ XSyncTriggerFence (self->xdisplay, self->xfence);
-+ XFlush (self->xdisplay);
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ meta_gl_delete_sync (self->glsync);
-+ XSyncDestroyFence (self->xdisplay, self->xfence);
-+ XSyncDestroyCounter (self->xdisplay, self->xcounter);
-+ XSyncDestroyAlarm (self->xdisplay, self->xalarm);
-+
-+ g_free (self);
-+}
-+
-+gboolean
-+meta_sync_ring_init (Display *xdisplay)
-+{
-+ gint major, minor;
-+ guint i;
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return FALSE;
-+
-+ g_return_val_if_fail (xdisplay != NULL, FALSE);
-+ g_return_val_if_fail (ring->xdisplay == NULL, FALSE);
-+
-+ if (!load_required_symbols ())
-+ return FALSE;
-+
-+ if (!XSyncQueryExtension (xdisplay, &ring->xsync_event_base, &ring->xsync_error_base) ||
-+ !XSyncInitialize (xdisplay, &major, &minor))
-+ return FALSE;
-+
-+ XSyncIntToValue (&SYNC_VALUE_ZERO, 0);
-+ XSyncIntToValue (&SYNC_VALUE_ONE, 1);
-+
-+ ring->xdisplay = xdisplay;
-+
-+ ring->alarm_to_sync = g_hash_table_new (NULL, NULL);
-+
-+ for (i = 0; i < NUM_SYNCS; ++i)
-+ {
-+ MetaSync *sync = meta_sync_new (ring->xdisplay);
-+ ring->syncs_array[i] = sync;
-+ g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
-+ }
-+
-+ ring->current_sync_idx = 0;
-+ ring->current_sync = ring->syncs_array[0];
-+ ring->warmup_syncs = 0;
-+
-+ return TRUE;
-+}
-+
-+void
-+meta_sync_ring_destroy (void)
-+{
-+ guint i;
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return;
-+
-+ g_return_if_fail (ring->xdisplay != NULL);
-+
-+ ring->current_sync_idx = 0;
-+ ring->current_sync = NULL;
-+ ring->warmup_syncs = 0;
-+
-+ for (i = 0; i < NUM_SYNCS; ++i)
-+ meta_sync_free (ring->syncs_array[i]);
-+
-+ g_hash_table_destroy (ring->alarm_to_sync);
-+
-+ ring->xsync_event_base = 0;
-+ ring->xsync_error_base = 0;
-+ ring->xdisplay = NULL;
-+}
-+
-+static gboolean
-+meta_sync_ring_reboot (Display *xdisplay)
-+{
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return FALSE;
-+
-+ meta_sync_ring_destroy ();
-+
-+ ring->reboots += 1;
-+
-+ if (!meta_sync_ring_get ())
-+ {
-+ meta_warning ("MetaSyncRing: Too many reboots -- disabling\n");
-+ return FALSE;
-+ }
-+
-+ return meta_sync_ring_init (xdisplay);
-+}
-+
-+gboolean
-+meta_sync_ring_after_frame (void)
-+{
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return FALSE;
-+
-+ g_return_if_fail (ring->xdisplay != NULL);
-+
-+ if (ring->warmup_syncs >= NUM_SYNCS / 2)
-+ {
-+ guint reset_sync_idx = (ring->current_sync_idx + NUM_SYNCS - (NUM_SYNCS / 2)) % NUM_SYNCS;
-+ MetaSync *sync_to_reset = ring->syncs_array[reset_sync_idx];
-+
-+ GLenum status = meta_sync_check_update_finished (sync_to_reset, 0);
-+ if (status == GL_TIMEOUT_EXPIRED)
-+ {
-+ meta_warning ("MetaSyncRing: We should never wait for a sync -- add more syncs?\n");
-+ status = meta_sync_check_update_finished (sync_to_reset, MAX_SYNC_WAIT_TIME);
-+ }
-+
-+ if (status != GL_ALREADY_SIGNALED && status != GL_CONDITION_SATISFIED)
-+ {
-+ meta_warning ("MetaSyncRing: Timed out waiting for sync object.\n");
-+ return meta_sync_ring_reboot (ring->xdisplay);
-+ }
-+
-+ meta_sync_reset (sync_to_reset);
-+ }
-+ else
-+ {
-+ ring->warmup_syncs += 1;
-+ }
-+
-+ ring->current_sync_idx += 1;
-+ ring->current_sync_idx %= NUM_SYNCS;
-+
-+ ring->current_sync = ring->syncs_array[ring->current_sync_idx];
-+
-+ return TRUE;
-+}
-+
-+gboolean
-+meta_sync_ring_insert_wait (void)
-+{
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return FALSE;
-+
-+ g_return_if_fail (ring->xdisplay != NULL);
-+
-+ if (ring->current_sync->state != META_SYNC_STATE_READY)
-+ {
-+ meta_warning ("MetaSyncRing: Sync object is not ready -- were events handled properly?\n");
-+ if (!meta_sync_ring_reboot (ring->xdisplay))
-+ return FALSE;
-+ }
-+
-+ meta_sync_insert (ring->current_sync);
-+
-+ return TRUE;
-+}
-+
-+void
-+meta_sync_ring_handle_event (XEvent *xevent)
-+{
-+ XSyncAlarmNotifyEvent *event;
-+ MetaSync *sync;
-+ MetaSyncRing *ring = meta_sync_ring_get ();
-+
-+ if (!ring)
-+ return;
-+
-+ g_return_if_fail (ring->xdisplay != NULL);
-+
-+ if (xevent->type != (ring->xsync_event_base + XSyncAlarmNotify))
-+ return;
-+
-+ event = (XSyncAlarmNotifyEvent *) xevent;
-+
-+ sync = g_hash_table_lookup (ring->alarm_to_sync, (gpointer) event->alarm);
-+ if (sync)
-+ meta_sync_handle_event (sync, event);
-+}
-diff --git a/src/compositor/meta-sync-ring.h b/src/compositor/meta-sync-ring.h
-new file mode 100644
-index 0000000..6dca8ef
---- /dev/null
-+++ b/src/compositor/meta-sync-ring.h
-@@ -0,0 +1,14 @@
-+#ifndef _META_SYNC_RING_H_
-+#define _META_SYNC_RING_H_
-+
-+#include <glib.h>
-+
-+#include <X11/Xlib.h>
-+
-+gboolean meta_sync_ring_init (Display *dpy);
-+void meta_sync_ring_destroy (void);
-+gboolean meta_sync_ring_after_frame (void);
-+gboolean meta_sync_ring_insert_wait (void);
-+void meta_sync_ring_handle_event (XEvent *event);
-+
-+#endif /* _META_SYNC_RING_H_ */
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch b/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
deleted file mode 100644
index 9cbd0d0..0000000
--- a/x11-wm/mutter/files/mutter-3.16.3-crash-border.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f60c33b5afc4b1dff0b31f17d7ae222db8aa789f Mon Sep 17 00:00:00 2001
-From: Marek Chalupa <mchqwerty@gmail.com>
-Date: Fri, 3 Jul 2015 11:28:00 +0200
-Subject: frames: handle META_FRAME_CONTROL_NONE on left click
-
-We can get this operation in some cases, for example when
-we're trying to resize window that cannot be resized.
-This can occur with maximized windows that have a border
-(without border we couldn't resize them by mouse in maximized state).
-In this case we reached abort() beacuse we did not handle this op.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=751884
-
-diff --git a/src/ui/frames.c b/src/ui/frames.c
-index 362d7b6..a2f7f45 100644
---- a/src/ui/frames.c
-+++ b/src/ui/frames.c
-@@ -1053,6 +1053,11 @@ meta_frame_left_click_event (MetaUIFrame *frame,
- }
-
- return TRUE;
-+ case META_FRAME_CONTROL_NONE:
-+ /* We can get this for example when trying to resize window
-+ * that cannot be resized (e. g. it is maximized and the theme
-+ * currently used has borders for maximized windows), see #751884 */
-+ return FALSE;
- default:
- g_assert_not_reached ();
- }
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
deleted file mode 100644
index a0b493b..0000000
--- a/x11-wm/mutter/files/mutter-3.16.3-fix-race.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From c77e482b60bea40a422691b16af02a429d9c2edc Mon Sep 17 00:00:00 2001
-From: Aaron Plattner <aplattner@nvidia.com>
-Date: Mon, 3 Aug 2015 21:15:15 -0700
-Subject: compositor: Fix GL_EXT_x11_sync_object race condition
-
-The compositor maintains a ring of shared fences with the X server in order to
-properly synchronize rendering between the X server and the compositor's GPU
-channel. When all of the fences have been used, the compositor needs to reset
-one so that it can be reused. It does this by first waiting on the CPU for the
-fence to become triggered, and then sending a request to the X server to reset
-the fence.
-
-If the compositor's GPU channel is busy processing other work (e.g. the desktop
-switcher animation), then the X server may process the reset request before the
-GPU has consumed the fence. This causes the GPU channel to hang.
-
-Fix the problem by having the compositor's GPU channel trigger its own fence
-after waiting for the X server's fence. Wait for that fence on the CPU before
-sending the reset request to the X server. This ensures that the GPU has
-consumed the X11 fence before the server resets it.
-
-Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
-
-https://bugzilla.gnome.org/show_bug.cgi?id=728464
-
-diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
-index 4ee61f8..44b1c41 100644
---- a/src/compositor/meta-sync-ring.c
-+++ b/src/compositor/meta-sync-ring.c
-@@ -73,7 +73,8 @@ typedef struct
- Display *xdisplay;
-
- XSyncFence xfence;
-- GLsync glsync;
-+ GLsync gl_x11_sync;
-+ GLsync gpu_fence;
-
- XSyncCounter xcounter;
- XSyncAlarm xalarm;
-@@ -118,6 +119,8 @@ static void (*meta_gl_wait_sync) (GLsync sync,
- static GLsync (*meta_gl_import_sync) (GLenum external_sync_type,
- GLintptr external_sync,
- GLbitfield flags);
-+static GLsync (*meta_gl_fence_sync) (GLenum condition,
-+ GLbitfield flags);
-
- static MetaSyncRing *
- meta_sync_ring_get (void)
-@@ -224,6 +227,8 @@ load_required_symbols (void)
- goto out;
- if (!load_gl_symbol ("glImportSyncEXT", (void **) &meta_gl_import_sync))
- goto out;
-+ if (!load_gl_symbol ("glFenceSync", (void **) &meta_gl_fence_sync))
-+ goto out;
-
- success = TRUE;
- out:
-@@ -238,7 +243,8 @@ meta_sync_insert (MetaSync *self)
- XSyncTriggerFence (self->xdisplay, self->xfence);
- XFlush (self->xdisplay);
-
-- meta_gl_wait_sync (self->glsync, 0, GL_TIMEOUT_IGNORED);
-+ meta_gl_wait_sync (self->gl_x11_sync, 0, GL_TIMEOUT_IGNORED);
-+ self->gpu_fence = meta_gl_fence_sync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
-
- self->state = META_SYNC_STATE_WAITING;
- }
-@@ -255,9 +261,13 @@ meta_sync_check_update_finished (MetaSync *self,
- status = GL_ALREADY_SIGNALED;
- break;
- case META_SYNC_STATE_WAITING:
-- status = meta_gl_client_wait_sync (self->glsync, 0, timeout);
-+ status = meta_gl_client_wait_sync (self->gpu_fence, 0, timeout);
- if (status == GL_ALREADY_SIGNALED || status == GL_CONDITION_SATISFIED)
-- self->state = META_SYNC_STATE_DONE;
-+ {
-+ self->state = META_SYNC_STATE_DONE;
-+ meta_gl_delete_sync (self->gpu_fence);
-+ self->gpu_fence = 0;
-+ }
- break;
- default:
- break;
-@@ -312,7 +322,8 @@ meta_sync_new (Display *xdisplay)
- self->xdisplay = xdisplay;
-
- self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
-- self->glsync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
-+ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
-+ self->gpu_fence = 0;
-
- self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
-
-@@ -365,6 +376,8 @@ meta_sync_free (MetaSync *self)
- switch (self->state)
- {
- case META_SYNC_STATE_WAITING:
-+ meta_gl_delete_sync (self->gpu_fence);
-+ break;
- case META_SYNC_STATE_DONE:
- /* nothing to do */
- break;
-@@ -383,7 +396,7 @@ meta_sync_free (MetaSync *self)
- break;
- }
-
-- meta_gl_delete_sync (self->glsync);
-+ meta_gl_delete_sync (self->gl_x11_sync);
- XSyncDestroyFence (self->xdisplay, self->xfence);
- XSyncDestroyCounter (self->xdisplay, self->xcounter);
- XSyncDestroyAlarm (self->xdisplay, self->xalarm);
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch b/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
deleted file mode 100644
index 2898d52..0000000
--- a/x11-wm/mutter/files/mutter-3.16.3-fix-return.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a54b1261d3ec5ccf7a8262c88557b6b952bc8a2e Mon Sep 17 00:00:00 2001
-From: Ting-Wei Lan <lantw@src.gnome.org>
-Date: Sat, 8 Aug 2015 20:12:09 +0800
-Subject: build: Fix return value in meta-sync-ring.c
-
-https://bugzilla.gnome.org/show_bug.cgi?id=753380
-
-diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
-index 44b1c41..217ebe5 100644
---- a/src/compositor/meta-sync-ring.c
-+++ b/src/compositor/meta-sync-ring.c
-@@ -499,7 +499,7 @@ meta_sync_ring_after_frame (void)
- if (!ring)
- return FALSE;
-
-- g_return_if_fail (ring->xdisplay != NULL);
-+ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
-
- if (ring->warmup_syncs >= NUM_SYNCS / 2)
- {
-@@ -542,7 +542,7 @@ meta_sync_ring_insert_wait (void)
- if (!ring)
- return FALSE;
-
-- g_return_if_fail (ring->xdisplay != NULL);
-+ g_return_val_if_fail (ring->xdisplay != NULL, FALSE);
-
- if (ring->current_sync->state != META_SYNC_STATE_READY)
- {
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.16.3-flickering.patch b/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
deleted file mode 100644
index 6267a4e..0000000
--- a/x11-wm/mutter/files/mutter-3.16.3-flickering.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 916070cc7218cc80f4565ea265b0dd6e5e93cb98 Mon Sep 17 00:00:00 2001
-From: Rui Matos <tiagomatos@gmail.com>
-Date: Wed, 12 Aug 2015 15:26:34 +0200
-Subject: compositor: Handle fences in the frontend X connection
-
-Since mutter has two X connections and does damage handling on the
-frontend while fence triggering is done on the backend, we have a race
-between XDamageSubtract() and XSyncFenceTrigger() causing missed
-redraws in the GL_EXT_X11_sync_object path.
-
-If the fence trigger gets processed first by the server, any client
-drawing that happens between that and the damage subtract being
-processed and is completely contained in the last damage event box
-that mutter got, won't be included in the current frame nor will it
-cause a new damage event.
-
-A simple fix for this would be XSync()ing on the frontend connection
-after doing all the damage subtracts but that would add a round trip
-on every frame again which defeats the asynchronous design of X
-fences.
-
-Instead, if we move fence handling to the frontend we automatically
-get the right ordering between damage subtracts and fence triggers.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=728464
-
-diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
-index ac38ffc..3ff8431 100644
---- a/src/backends/x11/meta-backend-x11.c
-+++ b/src/backends/x11/meta-backend-x11.c
-@@ -45,7 +45,6 @@
- #include <meta/util.h>
- #include "display-private.h"
- #include "compositor/compositor-private.h"
--#include "compositor/meta-sync-ring.h"
-
- struct _MetaBackendX11Private
- {
-@@ -256,8 +255,6 @@ handle_host_xevent (MetaBackend *backend,
- MetaCompositor *compositor = display->compositor;
- if (meta_plugin_manager_xevent_filter (compositor->plugin_mgr, event))
- bypass_clutter = TRUE;
-- if (compositor->have_x11_sync_object)
-- meta_sync_ring_handle_event (event);
- }
- }
-
-diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
-index 554faa1..2e182c2 100644
---- a/src/compositor/compositor.c
-+++ b/src/compositor/compositor.c
-@@ -534,8 +534,7 @@ meta_compositor_manage (MetaCompositor *compositor)
- */
- XMapWindow (xdisplay, compositor->output);
-
-- compositor->have_x11_sync_object =
-- meta_sync_ring_init (meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend)));
-+ compositor->have_x11_sync_object = meta_sync_ring_init (xdisplay);
- }
-
- redirect_windows (display->screen);
-@@ -737,6 +736,9 @@ meta_compositor_process_event (MetaCompositor *compositor,
- process_damage (compositor, (XDamageNotifyEvent *) event, window);
- }
-
-+ if (compositor->have_x11_sync_object)
-+ meta_sync_ring_handle_event (event);
-+
- /* Clutter needs to know about MapNotify events otherwise it will
- think the stage is invisible */
- if (!meta_is_wayland_compositor () && event->type == MapNotify)
-diff --git a/src/compositor/meta-sync-ring.c b/src/compositor/meta-sync-ring.c
-index 217ebe5..336ccd4 100644
---- a/src/compositor/meta-sync-ring.c
-+++ b/src/compositor/meta-sync-ring.c
-@@ -322,7 +322,7 @@ meta_sync_new (Display *xdisplay)
- self->xdisplay = xdisplay;
-
- self->xfence = XSyncCreateFence (xdisplay, DefaultRootWindow (xdisplay), FALSE);
-- self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
-+ self->gl_x11_sync = 0;
- self->gpu_fence = 0;
-
- self->xcounter = XSyncCreateCounter (xdisplay, SYNC_VALUE_ZERO);
-@@ -347,6 +347,13 @@ meta_sync_new (Display *xdisplay)
- return self;
- }
-
-+static void
-+meta_sync_import (MetaSync *self)
-+{
-+ g_return_if_fail (self->gl_x11_sync == 0);
-+ self->gl_x11_sync = meta_gl_import_sync (GL_SYNC_X11_FENCE_EXT, self->xfence, 0);
-+}
-+
- static Bool
- alarm_event_predicate (Display *dpy,
- XEvent *event,
-@@ -437,6 +444,12 @@ meta_sync_ring_init (Display *xdisplay)
- ring->syncs_array[i] = sync;
- g_hash_table_replace (ring->alarm_to_sync, (gpointer) sync->xalarm, sync);
- }
-+ /* Since the connection we create the X fences on isn't the same as
-+ * the one used for the GLX context, we need to XSync() here to
-+ * ensure glImportSync() succeeds. */
-+ XSync (xdisplay, False);
-+ for (i = 0; i < NUM_SYNCS; ++i)
-+ meta_sync_import (ring->syncs_array[i]);
-
- ring->current_sync_idx = 0;
- ring->current_sync = ring->syncs_array[0];
---
-cgit v0.10.2
-
diff --git a/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch b/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch
deleted file mode 100644
index bf4649e..0000000
--- a/x11-wm/mutter/files/mutter-3.2.1-ignore-shadow-and-padding.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-Patch author: Timo Kluck <tkluck@infty.nl> Wed, 21 Sep 2011 17:51:28 +0200
-
-Patch to silently ignore padding and shadow tags in Ubuntu metacity themes.
-
-https://bugs.launchpad.net/bugs/800315
-https://bugs.gentoo.org/show_bug.cgi?id=396673
-
-diff --git a/src/ui/theme-parser.c b/src/ui/theme-parser.c
-index 9063541..63a881f 100644
---- a/src/ui/theme-parser.c
-+++ b/src/ui/theme-parser.c
-@@ -90,7 +90,9 @@ typedef enum
- STATE_WINDOW,
- /* things we don't use any more but we can still parse: */
- STATE_MENU_ICON,
-- STATE_FALLBACK
-+ STATE_FALLBACK,
-+ /* an ubuntu specific ignore-this-element state */
-+ UBUNTU_STATE_IGNORE
- } ParseState;
-
- typedef struct
-@@ -1306,7 +1308,19 @@ parse_toplevel_element (GMarkupParseContext *context,
- */
- push_state (info, STATE_FALLBACK);
- }
-- else
-+ else if (ELEMENT_IS ("shadow"))
-+ {
-+ /* ubuntu specific, workaround for light-themes: silently ignore shadow tag.
-+ */
-+ push_state (info, UBUNTU_STATE_IGNORE);
-+ }
-+ else if (ELEMENT_IS ("padding"))
-+ {
-+ /* ubuntu specific, workaround for light-themes: silently ignore padding tag.
-+ */
-+ push_state (info, UBUNTU_STATE_IGNORE);
-+ }
-+ else
- {
- set_error (error, context,
- G_MARKUP_ERROR, G_MARKUP_ERROR_PARSE,
-@@ -3027,6 +3041,18 @@ parse_style_element (GMarkupParseContext *context,
-
- push_state (info, STATE_BUTTON);
- }
-+ else if (ELEMENT_IS ("shadow"))
-+ {
-+ /* ubuntu specific, workaround for light-themes: silently ignore shadow tag.
-+ */
-+ push_state (info, UBUNTU_STATE_IGNORE);
-+ }
-+ else if (ELEMENT_IS ("padding"))
-+ {
-+ /* ubuntu specific, workaround for light-themes: silently ignore padding tag.
-+ */
-+ push_state (info, UBUNTU_STATE_IGNORE);
-+ }
- else
- {
- set_error (error, context,
-@@ -3671,6 +3697,8 @@ start_element_handler (GMarkupParseContext *context,
- _("Element <%s> is not allowed inside a <%s> element"),
- element_name, "fallback");
- break;
-+ case UBUNTU_STATE_IGNORE:
-+ break;
- }
- }
-
-@@ -3960,6 +3988,9 @@ end_element_handler (GMarkupParseContext *context,
- pop_state (info);
- g_assert (peek_state (info) == STATE_THEME);
- break;
-+ case UBUNTU_STATE_IGNORE:
-+ pop_state (info);
-+ break;
- }
-
- pop_required_version (info);
-@@ -4165,6 +4196,9 @@ text_handler (GMarkupParseContext *context,
- case STATE_FALLBACK:
- NO_TEXT ("fallback");
- break;
-+ case UBUNTU_STATE_IGNORE:
-+ NO_TEXT ("ignored_element");
-+ break;
- }
- }
-
diff --git a/x11-wm/mutter/mutter-3.16.3-r1.ebuild b/x11-wm/mutter/mutter-3.16.3-r1.ebuild
deleted file mode 100644
index 76f8ab6..0000000
--- a/x11-wm/mutter/mutter-3.16.3-r1.ebuild
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit autotools eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test 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="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_prepare() {
- # Fallback to a default keymap if getting it from X fails (from 'master')
- epatch "${FILESDIR}"/${PN}-3.16.3-fallback-keymap.patch
-
- # frames: handle META_FRAME_CONTROL_NONE on left click (from '3.16')
- epatch "${FILESDIR}"/${P}-crash-border.patch
-
- # compositor: Add support for GL_EXT_x11_sync_object (from '3.16')
- epatch "${FILESDIR}"/${P}-GL_EXT_x11_sync_object.patch
-
- # compositor: Fix GL_EXT_x11_sync_object race condition (from '3.16')
- epatch "${FILESDIR}"/${P}-fix-race.patch
-
- # build: Fix return value in meta-sync-ring.c (from '3.16')
- epatch "${FILESDIR}"/${P}-fix-return.patch
-
- # compositor: Handle fences in the frontend X connection (from '3.16')
- epatch "${FILESDIR}"/${P}-flickering.patch
-
- eautoreconf
- gnome2_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
diff --git a/x11-wm/mutter/mutter-3.16.3.ebuild b/x11-wm/mutter/mutter-3.16.3.ebuild
deleted file mode 100644
index c27f933..0000000
--- a/x11-wm/mutter/mutter-3.16.3.ebuild
+++ /dev/null
@@ -1,91 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-GCONF_DEBUG="yes"
-
-inherit eutils gnome2
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://git.gnome.org/browse/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="+introspection +kms test 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="
- >=x11-libs/pango-1.2[X,introspection?]
- >=x11-libs/cairo-1.10[X]
- >=x11-libs/gtk+-3.9.11:3[X,introspection?]
- >=dev-libs/glib-2.36.0:2[dbus]
- >=media-libs/clutter-1.21.3:1.0[introspection?]
- >=media-libs/cogl-1.17.1:1.0=[introspection?]
- >=media-libs/libcanberra-0.26[gtk3]
- >=x11-libs/startup-notification-0.7
- >=x11-libs/libXcomposite-0.2
- >=gnome-base/gsettings-desktop-schemas-3.15.92[introspection?]
- gnome-base/gnome-desktop:3=
- >sys-power/upower-0.99:=
-
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- >=x11-libs/libXcomposite-0.2
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- >=x11-libs/libXi-1.7.4
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxcb
- x11-libs/libxkbfile
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-misc/xkeyboard-config
-
- gnome-extra/zenity
-
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- kms? (
- dev-libs/libinput
- >=media-libs/clutter-1.20[egl]
- media-libs/cogl:1.0=[kms]
- >=media-libs/mesa-10.3[gbm]
- sys-apps/systemd
- virtual/libgudev
- x11-libs/libdrm:= )
- wayland? (
- >=dev-libs/wayland-1.6.90
- >=media-libs/clutter-1.20[wayland]
- x11-base/xorg-server[wayland] )
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-util/gtk-doc-am-1.15
- >=dev-util/intltool-0.41
- sys-devel/gettext
- virtual/pkgconfig
- x11-proto/xextproto
- x11-proto/xineramaproto
- x11-proto/xproto
- test? ( app-text/docbook-xml-dtd:4.5 )
-"
-RDEPEND="${COMMON_DEPEND}
- !x11-misc/expocity
-"
-
-src_configure() {
- gnome2_src_configure \
- --disable-static \
- --enable-sm \
- --enable-startup-notification \
- --enable-verbose-mode \
- --with-libcanberra \
- $(use_enable introspection) \
- $(use_enable kms native-backend) \
- $(use_enable wayland)
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2017-09-12 22:04 Gilles Dartiguelongue
0 siblings, 0 replies; 16+ messages in thread
From: Gilles Dartiguelongue @ 2017-09-12 22:04 UTC (permalink / raw
To: gentoo-commits
commit: 9d6462925b8c9b3f5513f6c8150961b7e1bc3b58
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 12 22:01:58 2017 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Tue Sep 12 22:03:04 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9d646292
x11-wm/mutter: fix build with libgudev-232, bug #630312
Closes: https://bugs.gentoo.org/630312
Package-Manager: Portage-2.3.8, Repoman-2.3.3
x11-wm/mutter/files/3.24.4-gudev-232.patch | 33 ++++++++++++++++++++++++++++++
x11-wm/mutter/mutter-3.24.4.ebuild | 9 ++++++--
2 files changed, 40 insertions(+), 2 deletions(-)
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 00000000000..5808e977c73
--- /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/mutter-3.24.4.ebuild b/x11-wm/mutter/mutter-3.24.4.ebuild
index cf11022b83b..c05bdb7e50c 100644
--- a/x11-wm/mutter/mutter-3.24.4.ebuild
+++ b/x11-wm/mutter/mutter-3.24.4.ebuild
@@ -54,14 +54,14 @@ COMMON_DEPEND="
gles2? ( media-libs/mesa[gles2] )
input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- udev? ( virtual/libgudev:= )
+ 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:=
+ >=virtual/libgudev-232:=
>=virtual/libudev-136:=
x11-base/xorg-server[wayland]
x11-libs/libdrm:=
@@ -80,6 +80,11 @@ 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
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2018-01-25 8:36 Gilles Dartiguelongue
0 siblings, 0 replies; 16+ messages in thread
From: Gilles Dartiguelongue @ 2018-01-25 8:36 UTC (permalink / raw
To: gentoo-commits
commit: 2a06072d9ebea366e0057e14b14aa0f06e2ea2cb
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 25 08:25:02 2018 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Thu Jan 25 08:35:52 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a06072d
x11-wm/mutter: fix build with USE=debug
Closes: https://bugs.gentoo.org/645412
Package-Manager: Portage-2.3.20, Repoman-2.3.6
x11-wm/mutter/files/3.24.4-build-debug.patch | 28 ++++++++++++++++++++++++++++
x11-wm/mutter/mutter-3.24.4.ebuild | 2 ++
2 files changed, 30 insertions(+)
diff --git a/x11-wm/mutter/files/3.24.4-build-debug.patch b/x11-wm/mutter/files/3.24.4-build-debug.patch
new file mode 100644
index 00000000000..6cb7b48856f
--- /dev/null
+++ b/x11-wm/mutter/files/3.24.4-build-debug.patch
@@ -0,0 +1,28 @@
+From c9937faf1e2c81005289e18974ed5d10b2dc37ab Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Sat, 12 Aug 2017 11:52:28 +0200
+Subject: [PATCH] clutter: Fix build with --enable-debug
+
+Message was poking stage_x11, which doesn't exist in this context.
+Just print the Window that is receiving the event, the event will be
+emitted into the only existing stage anyway.
+---
+ clutter/clutter/x11/clutter-device-manager-xi2.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clutter/clutter/x11/clutter-device-manager-xi2.c b/clutter/clutter/x11/clutter-device-manager-xi2.c
+index 1ecec02..da3457a 100644
+--- a/clutter/clutter/x11/clutter-device-manager-xi2.c
++++ b/clutter/clutter/x11/clutter-device-manager-xi2.c
+@@ -1160,7 +1160,7 @@ translate_pad_event (ClutterEvent *event,
+ event->any.type == CLUTTER_PAD_RING
+ ? "pad ring "
+ : "pad strip",
+- (unsigned int) stage_x11->xwin,
++ (unsigned int) xev->event,
+ device->id,
+ device->device_name,
+ event->any.time, value);
+--
+libgit2 0.26.0
+
diff --git a/x11-wm/mutter/mutter-3.24.4.ebuild b/x11-wm/mutter/mutter-3.24.4.ebuild
index 4f727d079a1..f52fd7fb8eb 100644
--- a/x11-wm/mutter/mutter-3.24.4.ebuild
+++ b/x11-wm/mutter/mutter-3.24.4.ebuild
@@ -83,6 +83,8 @@ RDEPEND="${COMMON_DEPEND}
PATCHES=(
# Fix build with >=gudev-232, bug #630312
"${FILESDIR}"/3.24.4-gudev-232.patch
+ # Fix build with USE=debug, bug #645412
+ "${FILESDIR}"/3.24.4-build-debug.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2019-02-28 22:39 Mart Raudsepp
0 siblings, 0 replies; 16+ messages in thread
From: Mart Raudsepp @ 2019-02-28 22:39 UTC (permalink / raw
To: gentoo-commits
commit: f7cbaff73571787a03c54ceb8a7d1a2449ec341c
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 28 22:33:24 2019 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Thu Feb 28 22:37:50 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7cbaff7
x11-wm/mutter: require gles2 for wayland, try to fix non-gles2 builds
Native backend makes use of gles3 for some features, and I'm not sure if
these gracefully degrade or not without gles3. So require gles2 with
wayland (which is when we enable build of native backend), which also
allows for a simpler hacky patch for fixing non-gles2 builds when system
doesn't have USE=gles2 on mesa.
I consider this quite ugly, but
1) this is ~arch
2) this will be better in the meson port in mutter-3.32
3) it hopefully works well enough anyways, sans potentially unnecessary
mesa[gles2] dep and full gles2 cogl builds.
People who mind the gles2 requirement are welcome to come up with
something better. It should somehow express the feature dependency of
this, even if just metadata.xml descriptions.
Closes: https://bugs.gentoo.org/679074
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
x11-wm/mutter/files/3.28.3-no-gles2-fix.patch | 43 ++++++++
x11-wm/mutter/mutter-3.28.3-r1.ebuild | 152 ++++++++++++++++++++++++++
2 files changed, 195 insertions(+)
diff --git a/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch b/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch
new file mode 100644
index 00000000000..43bb05f5245
--- /dev/null
+++ b/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch
@@ -0,0 +1,43 @@
+From 259544c4f4b47418885075c9531ce593c600401c Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Fri, 1 Mar 2019 00:02:47 +0200
+Subject: [PATCH] build: Fix build without gles headers
+
+This is an ugly quick fix to hopefully fix non-wayland builds against
+mesa[-gles2].
+It assumes gnome-shell package USE=wayland requires USE=gles2, which it
+sort of does already at runtime already for hybrid graphics support, but
+we ensure with REQUIRED_USE.
+In meson upstream port for 3.32 this will be more properly conditional
+on the gles2 option instead.
+---
+ src/Makefile.am | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index bcb3505c7..a68661b21 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -118,9 +118,6 @@ libmutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
+ backends/meta-egl.c \
+ backends/meta-egl.h \
+ backends/meta-egl-ext.h \
+- backends/meta-gles3.c \
+- backends/meta-gles3.h \
+- backends/meta-gles3-table.h \
+ backends/meta-gpu.c \
+ backends/meta-gpu.h \
+ backends/meta-display-config-shared.h \
+@@ -472,6 +469,9 @@ endif
+
+ if HAVE_NATIVE_BACKEND
+ libmutter_@LIBMUTTER_API_VERSION@_la_SOURCES += \
++ backends/meta-gles3.c \
++ backends/meta-gles3.h \
++ backends/meta-gles3-table.h \
+ backends/native/meta-backend-native.c \
+ backends/native/meta-backend-native.h \
+ backends/native/meta-backend-native-private.h \
+--
+2.17.0
+
diff --git a/x11-wm/mutter/mutter-3.28.3-r1.ebuild b/x11-wm/mutter/mutter-3.28.3-r1.ebuild
new file mode 100644
index 00000000000..3a7b5381459
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.28.3-r1.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+GNOME2_EAUTORECONF="yes"
+inherit gnome2 virtualx
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
+SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0/2" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
+
+IUSE="debug elogind gles2 input_devices_wacom +introspection systemd test udev wayland"
+# native backend requires gles3 for hybrid graphics blitting support and a logind provider
+# gles2 may be avoidable, but probably not worth the effort before switching to meson; without it, it seems it'll have subtle lost features as well that isn't explained to user atm.
+REQUIRED_USE="
+ wayland? (
+ ?? ( elogind systemd )
+ gles2
+ )"
+
+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
+# gl.pc package is required, which is only installed by mesa if glx is enabled; pre-emptively requiring USE=X on mesa, as hopefully eventually it'll support disabling glx for wayland-only systems
+RDEPEND="
+ >=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.53.2:2
+ >=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[X(+),egl,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.13.0
+ >=dev-libs/wayland-protocols-1.12
+ >=media-libs/mesa-10.3[egl,gbm,wayland]
+ systemd? ( sys-apps/systemd )
+ elogind? ( sys-auth/elogind )
+ >=virtual/libgudev-232:=
+ >=virtual/libudev-136:=
+ x11-base/xorg-server[wayland]
+ x11-libs/libdrm:=
+ )
+"
+DEPEND="${RDEPEND}
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.19.6
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ test? ( app-text/docbook-xml-dtd:4.5 )
+ wayland? ( >=sys-kernel/linux-headers-4.4 )
+"
+
+PATCHES=(
+ # Lots of patches from gnome-3-28 branch on top of 3.28.3
+ "${WORKDIR}"/patches/
+ # Hack to not fail USE="-wayland,-gles2" builds with no mesa[gles2]
+ "${FILESDIR}"/${PV}-no-gles2-fix.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() {
+ # TODO: pipewire remote desktop support; --disable-remote-desktop actually enables it due to upstream autotools bug in 3.26.2 (omitted means disabled)
+ # TODO: nvidia EGLDevice support
+ # TODO: elogind vs systemd is automagic in 3.28.3 - if elogind is found, it's used instead of systemd; but not a huge problem as elogind package blocks systemd package
+ # TODO: lack of --with-xwayland-grab-default-access-rules relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
+ # 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
+}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2019-09-06 21:47 Mart Raudsepp
0 siblings, 0 replies; 16+ messages in thread
From: Mart Raudsepp @ 2019-09-06 21:47 UTC (permalink / raw
To: gentoo-commits
commit: 0c4e5ce467e59b8903b8e53047b751346040aaa4
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 6 21:01:22 2019 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Fri Sep 6 21:44:35 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0c4e5ce4
x11-wm/mutter: bump to 3.32.2
Closes: https://bugs.gentoo.org/685724
Package-Manager: Portage-2.3.69, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
x11-wm/mutter/Manifest | 2 +
x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch | 81 ++++++++++++++
x11-wm/mutter/mutter-3.32.2.ebuild | 146 +++++++++++++++++++++++++
3 files changed, 229 insertions(+)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index cf1fc2fed32..1c6c961ffdf 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -4,3 +4,5 @@ DIST mutter-3.30.2-r1-patchset.tar.xz 14096 BLAKE2B 83f2e975a4404b878e832a70fe7a
DIST mutter-3.30.2-r3-patchset.tar.xz 30208 BLAKE2B 502e9c1d005cf268548e2732d4574b0eb7491940531c77c357e73e2da23b60acfbb183f9e818edd86cf0d6abca4e43c2e687db27544bb4fe7e9a33a162df01da SHA512 22b66395ffae07b208efa3a1305c71ea2282470a08300a5c3de23a2a45f03afef7804d5943934028286406adedbb9851dc562f4e57fdff77df22591893f0908b
DIST mutter-3.30.2-r4-patchset.tar.xz 44820 BLAKE2B 2448dcd6bca338dbe2b87a93ca4374fd5b4cc5d8834dd40739e74a65280b7f00b99d61361082673f5f41e44fb40e36f0889d5ee00fbc034efe87294540fba48e SHA512 a7024b95bc56ab25cfdb27003b4b1fc39925117795c05f78b2d473fdbcf3bb6ce870ee5bc030ec4ce5e10b42d94fa0007bf5870bd2a4e94de3885c9434a39835
DIST mutter-3.30.2.tar.xz 3725692 BLAKE2B 280b7a6319e5d4705baee965936df6f31ba8ca96ce3812cf640578c6817aaa82b6ff8fde7b2740ecd8edb6c4746f4608f997772a24d67f12fcb0c5c77fc9b29a SHA512 3890270b7eb4b8753274d30ad26693b829a69b31f36501845c59b000deb174be58b5167f6754767dba02ebc44688697fbe7344a327879a073955047b69333a2e
+DIST mutter-3.32.2-patchset.tar.xz 26872 BLAKE2B 026c87cc3859624bcfd273694a8a34661d97cc77776e3df5f6f5de16b8758fc435773b1c96172b867fe0d9bea421c56986db2e7263c6ec3482171cc2adf06295 SHA512 e318fcfa4ee7850814cdfb5fbcc118a92fa3df524a78b24a440346be6a6c7cb975f90218a2d4feeacd222f2daf56c4cff4195c83e3ed74726dc1da63d38a93c5
+DIST mutter-3.32.2.tar.xz 2797664 BLAKE2B 8b69436778d9c3e10b0373c83e1f306cb2718e49ad1f351f2e3a1ef92caeb1eb7a391be07c60578cfb2601eea5dc3949b1d8305e9f079b2b00d43ff305409f00 SHA512 e4494d028ae71441fbdc584bd8acd9c2559d52ac72402bad9a7cb43f4f519487d11df6453172fd27a9df7f2cade020d6317931613bd0be343c66170e6cda0269
diff --git a/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch b/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch
new file mode 100644
index 00000000000..41c3e94d860
--- /dev/null
+++ b/x11-wm/mutter/files/3.32.2-no-cogl-gles2.patch
@@ -0,0 +1,81 @@
+From a00bd286724b3186c17d70f1b2fe98da2d90bf60 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Sun, 1 Sep 2019 14:42:04 +0300
+Subject: [PATCH] build: Allow building native backend without cogl-gles2
+
+Native backend already requires gles2, but was controlled by gles2
+meson option, even though it's hard required with native_backend
+already, and errored out if gles2 wasn't enabled too.
+Instead allow native_backend to be built without cogl-gles2 by simply
+checking for the gles2 hard requirement in case of have_native_backend
+too and not erroring out without -Dgles2=true, which is now used only
+for controlling cogl-gles2 build.
+---
+ meson.build | 10 +++-------
+ src/meson.build | 4 ++--
+ 2 files changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 6160a4bb3..c85284ba2 100644
+--- a/meson.build
++++ b/meson.build
+@@ -150,12 +150,13 @@ endif
+ have_egl_xlib = have_egl and have_x11
+
+ have_gles2 = get_option('gles2')
+-if have_gles2
++have_native_backend = get_option('native_backend')
++if have_gles2 or have_native_backend
+ gles2_dep = dependency('glesv2')
+ gles2_libname = get_option('gles2_libname')
+
+ if not have_egl
+- error('GLESv2 support requires EGL to be enabled')
++ error('GLESv2 and native backend support requires EGL to be enabled')
+ endif
+ endif
+
+@@ -177,7 +178,6 @@ if have_libgudev
+ gudev_dep = dependency('gudev-1.0', version: gudev_req)
+ endif
+
+-have_native_backend = get_option('native_backend')
+ if have_native_backend
+ libdrm_dep = dependency('libdrm')
+ libgbm_dep = dependency('gbm', version: gbm_req)
+@@ -194,10 +194,6 @@ if have_native_backend
+ error('The native backend requires EGL to be enabled')
+ endif
+
+- if not have_gles2
+- error('The native backend requires GLESv2 to be enabled')
+- endif
+-
+ if not have_libgudev
+ error('The native backend requires udev to be enabled')
+ endif
+diff --git a/src/meson.build b/src/meson.build
+index 182f7f5f5..af9776480 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -36,7 +36,7 @@ if have_gl
+ ]
+ endif
+
+-if have_gles2
++if have_native_backend
+ mutter_pkg_private_deps += [
+ gles2_dep,
+ ]
+@@ -436,7 +436,7 @@ if have_egl
+ ]
+ endif
+
+-if have_gles2
++if have_native_backend
+ mutter_sources += [
+ 'backends/meta-gles3.c',
+ 'backends/meta-gles3.h',
+--
+2.20.1
+
diff --git a/x11-wm/mutter/mutter-3.32.2.ebuild b/x11-wm/mutter/mutter-3.32.2.ebuild
new file mode 100644
index 00000000000..ef0a01e2b37
--- /dev/null
+++ b/x11-wm/mutter/mutter-3.32.2.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit gnome.org gnome2-utils meson virtualx xdg
+
+DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
+SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${PF}-patchset.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0/4" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
+
+IUSE="elogind gles2 input_devices_wacom +introspection screencast systemd test udev wayland"
+# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
+REQUIRED_USE="
+ wayland? ( ^^ ( elogind systemd ) udev )
+ test? ( wayland )"
+RESTRICT="!test? ( test )"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+
+# libXi-1.7.4 or newer needed per:
+# https://bugzilla.gnome.org/show_bug.cgi?id=738944 - https://gitlab.gnome.org/GNOME/mutter/merge_requests/766
+
+# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
+# xorg-server is needed at build and runtime with USE=wayland for Xwayland
+# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
+DEPEND="
+ x11-libs/libX11
+ >=x11-libs/gtk+-3.19.8:3[X,introspection?]
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/pango-1.30[introspection?]
+ >=x11-libs/cairo-1.14[X]
+ >=gnome-base/gsettings-desktop-schemas-3.31.0[introspection?]
+ >=dev-libs/glib-2.53.2:2
+ gnome-base/gnome-settings-daemon
+ >=dev-libs/json-glib-0.12.0[introspection?]
+ gnome-base/gnome-desktop:3=
+ >=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/libXtst
+ x11-libs/libxkbfile
+ x11-misc/xkeyboard-config
+ >=x11-libs/libxkbcommon-0.4.3[X]
+ x11-libs/libXrender
+ >=x11-libs/libXrandr-1.5.0
+ x11-libs/libxcb
+ x11-libs/libXinerama
+ x11-libs/libICE
+ >=dev-libs/atk-2.5.3[introspection?]
+ >=media-libs/libcanberra-0.26
+ media-libs/mesa[X(+),egl,gles2?]
+ wayland? (
+ >=dev-libs/wayland-protocols-1.16
+ >=dev-libs/wayland-1.13.0
+ x11-libs/libdrm:=
+ >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
+ >=dev-libs/libinput-1.4
+ systemd? ( sys-apps/systemd )
+ elogind? ( sys-auth/elogind )
+ x11-base/xorg-server[wayland]
+ )
+ udev? ( >=virtual/libudev-228:=
+ >=virtual/libgudev-232:= )
+ x11-libs/libSM
+ input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
+ >=x11-libs/startup-notification-0.7
+ screencast? ( >=media-video/pipewire-0.2.2:0/0.2 )
+ introspection? ( >=dev-libs/gobject-introspection-1.54:= )
+"
+RDEPEND="${DEPEND}
+ gnome-extra/zenity
+"
+DEPEND="${DEPEND}
+ x11-base/xorg-proto
+"
+# wayland bdepend for wayland-scanner, xorg-server for cvt utility
+BDEPEND="
+ dev-libs/wayland
+ >=dev-util/meson-0.50.0
+ dev-util/gdbus-codegen
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ test? ( app-text/docbook-xml-dtd:4.5 )
+ wayland? ( >=sys-kernel/linux-headers-4.4
+ x11-base/xorg-server )
+"
+
+PATCHES=(
+ # Some patches from gnome-3-32 branch on top of 3.32.2
+ "${WORKDIR}"/patches/
+ # Allow building USE=wayland without cogl-gles2 from USE=gles2
+ "${FILESDIR}"/${PV}-no-cogl-gles2.patch
+)
+
+src_configure() {
+ # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
+ local emesonargs=(
+ -Dopengl=true
+ #opengl_libname
+ #gles2_libname
+ $(meson_use gles2)
+ -Degl=true
+ -Dglx=true
+ $(meson_use wayland)
+ $(meson_use wayland native_backend)
+ $(meson_use screencast remote_desktop)
+ -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
+ -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
+ $(meson_use udev)
+ $(meson_use input_devices_wacom libwacom)
+ -Dpango_ft2=true
+ -Dstartup_notification=true
+ -Dsm=true
+ $(meson_use introspection)
+ $(meson_use test cogl_tests)
+ $(meson_use test clutter_tests)
+ $(meson_use test tests)
+ -Dinstalled_tests=false
+ #verbose # Let upstream choose default for verbose mode
+ #xwayland_path
+ # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
+ #xwayland_grab_default_access_rules
+ )
+ meson_src_configure
+}
+
+src_test() {
+ virtx meson_src_test
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2019-11-23 21:41 Matt Turner
0 siblings, 0 replies; 16+ messages in thread
From: Matt Turner @ 2019-11-23 21:41 UTC (permalink / raw
To: gentoo-commits
commit: 44dc733c0dc81aeb5f3476f0de495278eb8a449f
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 23 19:49:33 2019 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Sat Nov 23 21:41:20 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44dc733c
x11-wm/mutter: Add patch to build with mesa-19.3
Closes: https://bugs.gentoo.org/698736
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
x11-wm/mutter/files/3.30-eglmesaext-include.patch | 69 +++++++++++++++++++++++
x11-wm/mutter/files/3.32-eglmesaext-include.patch | 68 ++++++++++++++++++++++
x11-wm/mutter/mutter-3.30.2-r4.ebuild | 2 +
x11-wm/mutter/mutter-3.32.2.ebuild | 2 +
4 files changed, 141 insertions(+)
diff --git a/x11-wm/mutter/files/3.30-eglmesaext-include.patch b/x11-wm/mutter/files/3.30-eglmesaext-include.patch
new file mode 100644
index 00000000000..884d57cc6f0
--- /dev/null
+++ b/x11-wm/mutter/files/3.30-eglmesaext-include.patch
@@ -0,0 +1,69 @@
+From 813ea4e5743920ecf325aac8efe420bd5fe3baf2 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Sun, 20 Oct 2019 12:04:31 +0200
+Subject: [PATCH] EGL: Include EGL/eglmesaext.h
+
+The eglext.h shipped by libglvnd does not include the Mesa extensions,
+unlike the header shipped in Mesa.
+
+Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
+---
+ cogl/configure.ac | 3 ++-
+ src/backends/meta-egl-ext.h | 1 +
+ src/backends/meta-egl.c | 1 +
+ src/backends/meta-egl.h | 1 +
+ 4 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/cogl/configure.ac b/cogl/configure.ac
+index 3be282fc2..f333b0512 100644
+--- a/cogl/configure.ac
++++ b/cogl/configure.ac
+@@ -759,7 +759,8 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
+ )
+
+ COGL_EGL_INCLUDES="#include <EGL/egl.h>
+-#include <EGL/eglext.h>"
++#include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>"
+ AC_SUBST([COGL_EGL_INCLUDES])
+ ])
+
+diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
+index 8705e7d5b..db0b74f76 100644
+--- a/src/backends/meta-egl-ext.h
++++ b/src/backends/meta-egl-ext.h
+@@ -29,6 +29,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+
+ /*
+ * This is a little different to the tests shipped with EGL implementations,
+diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
+index 755ec4908..bd253c956 100644
+--- a/src/backends/meta-egl.c
++++ b/src/backends/meta-egl.c
+@@ -31,6 +31,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+ #include <gio/gio.h>
+ #include <glib.h>
+ #include <glib-object.h>
+diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
+index 060c7cd2d..2fef2642e 100644
+--- a/src/backends/meta-egl.h
++++ b/src/backends/meta-egl.h
+@@ -27,6 +27,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+ #include <glib-object.h>
+
+ #define META_EGL_ERROR meta_egl_error_quark ()
+--
+2.23.0
+
diff --git a/x11-wm/mutter/files/3.32-eglmesaext-include.patch b/x11-wm/mutter/files/3.32-eglmesaext-include.patch
new file mode 100644
index 00000000000..c91c56235f3
--- /dev/null
+++ b/x11-wm/mutter/files/3.32-eglmesaext-include.patch
@@ -0,0 +1,68 @@
+From a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Sun, 20 Oct 2019 12:04:31 +0200
+Subject: [PATCH] EGL: Include EGL/eglmesaext.h
+
+The eglext.h shipped by libglvnd does not include the Mesa extensions,
+unlike the header shipped in Mesa.
+
+Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
+---
+ cogl/cogl/meson.build | 2 +-
+ src/backends/meta-egl-ext.h | 1 +
+ src/backends/meta-egl.c | 1 +
+ src/backends/meta-egl.h | 1 +
+ 4 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build
+index 261955796..b0e66bff3 100644
+--- a/cogl/cogl/meson.build
++++ b/cogl/cogl/meson.build
+@@ -48,7 +48,7 @@ cogl_gl_header_h = configure_file(
+ built_headers += [cogl_gl_header_h]
+
+ if have_egl
+- cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>'
++ cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>\n#include <EGL/eglmesaext.h>'
+ else
+ cogl_egl_includes_string = ''
+ endif
+diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
+index 8705e7d5b..db0b74f76 100644
+--- a/src/backends/meta-egl-ext.h
++++ b/src/backends/meta-egl-ext.h
+@@ -29,6 +29,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+
+ /*
+ * This is a little different to the tests shipped with EGL implementations,
+diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
+index 6554be935..fdeff4f77 100644
+--- a/src/backends/meta-egl.c
++++ b/src/backends/meta-egl.c
+@@ -27,6 +27,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+ #include <gio/gio.h>
+ #include <glib.h>
+ #include <glib-object.h>
+diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
+index f2a816445..4591e7d85 100644
+--- a/src/backends/meta-egl.h
++++ b/src/backends/meta-egl.h
+@@ -28,6 +28,7 @@
+
+ #include <EGL/egl.h>
+ #include <EGL/eglext.h>
++#include <EGL/eglmesaext.h>
+ #include <glib-object.h>
+
+ #define META_EGL_ERROR meta_egl_error_quark ()
+--
+2.22.0
+
diff --git a/x11-wm/mutter/mutter-3.30.2-r4.ebuild b/x11-wm/mutter/mutter-3.30.2-r4.ebuild
index 8f07d9a2c97..79b230df1ed 100644
--- a/x11-wm/mutter/mutter-3.30.2-r4.ebuild
+++ b/x11-wm/mutter/mutter-3.30.2-r4.ebuild
@@ -88,6 +88,8 @@ PATCHES=(
"${WORKDIR}"/patches/
# Hack to not fail USE="-wayland,-gles2" builds with no mesa[gles2]
"${FILESDIR}"/3.28.3-no-gles2-fix.patch # requires eautoreconf
+
+ "${FILESDIR}"/3.30-eglmesaext-include.patch
)
src_prepare() {
diff --git a/x11-wm/mutter/mutter-3.32.2.ebuild b/x11-wm/mutter/mutter-3.32.2.ebuild
index 4685bb23716..099d7ded03d 100644
--- a/x11-wm/mutter/mutter-3.32.2.ebuild
+++ b/x11-wm/mutter/mutter-3.32.2.ebuild
@@ -97,6 +97,8 @@ PATCHES=(
"${WORKDIR}"/patches/
# Allow building USE=wayland without cogl-gles2 from USE=gles2
"${FILESDIR}"/${PV}-no-cogl-gles2.patch
+
+ "${FILESDIR}"/3.32-eglmesaext-include.patch
)
src_configure() {
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2019-12-23 21:26 Mart Raudsepp
0 siblings, 0 replies; 16+ messages in thread
From: Mart Raudsepp @ 2019-12-23 21:26 UTC (permalink / raw
To: gentoo-commits
commit: 4d6e0c8fe87969bb3683e7f0e79891c54e4197a8
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 23 21:23:56 2019 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Mon Dec 23 21:25:49 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d6e0c8f
x11-wm/mutter: remove old
Package-Manager: Portage-2.3.79, Repoman-2.3.12
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
x11-wm/mutter/Manifest | 2 -
x11-wm/mutter/files/3.28.3-no-gles2-fix.patch | 43 ------
x11-wm/mutter/files/3.30-eglmesaext-include.patch | 69 ----------
x11-wm/mutter/mutter-3.30.2-r4.ebuild | 153 ----------------------
4 files changed, 267 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 2cb1435f77b..acdf8cbe590 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,6 +1,4 @@
DIST mutter-3.26.2-patchset.tar.xz 48156 BLAKE2B 7b33495a8bb7ac69f5610e1dfcb1fef49a983403fd176b229a75bcc7691e83e76a3dd87b7663ece0fcdc4077becd3ffa5e33217584f156456813769646730bf9 SHA512 2eeb9dfe137d6ea65f957ed19aa5ef83106aa16a049531c0c41d3ab6afac6c1b345cc68f2a9a9c41658172cc0dde61b946e6bf2507979ff4155e79770adf5e90
DIST mutter-3.26.2.tar.xz 3622904 BLAKE2B b32af24c6ffcd0e6af38ab1ff7cd0ba16ea3ceb84c62ed21d9e38fff5357eda2648050beada3fc8727474407a419a2c218331c8a87f7eb68eddf824d26ca9c51 SHA512 95885b4c053d4bc467a7c11615ee3d1a3086a674ae10e7cb9bb241f692e66dd8190508db1cdf1760bc2f19100e532e68d5e147d344e94d1430d80dd26ca0156b
-DIST mutter-3.30.2-r4-patchset.tar.xz 44820 BLAKE2B 2448dcd6bca338dbe2b87a93ca4374fd5b4cc5d8834dd40739e74a65280b7f00b99d61361082673f5f41e44fb40e36f0889d5ee00fbc034efe87294540fba48e SHA512 a7024b95bc56ab25cfdb27003b4b1fc39925117795c05f78b2d473fdbcf3bb6ce870ee5bc030ec4ce5e10b42d94fa0007bf5870bd2a4e94de3885c9434a39835
-DIST mutter-3.30.2.tar.xz 3725692 BLAKE2B 280b7a6319e5d4705baee965936df6f31ba8ca96ce3812cf640578c6817aaa82b6ff8fde7b2740ecd8edb6c4746f4608f997772a24d67f12fcb0c5c77fc9b29a SHA512 3890270b7eb4b8753274d30ad26693b829a69b31f36501845c59b000deb174be58b5167f6754767dba02ebc44688697fbe7344a327879a073955047b69333a2e
DIST mutter-3.32.2-patchset.tar.xz 26872 BLAKE2B 026c87cc3859624bcfd273694a8a34661d97cc77776e3df5f6f5de16b8758fc435773b1c96172b867fe0d9bea421c56986db2e7263c6ec3482171cc2adf06295 SHA512 e318fcfa4ee7850814cdfb5fbcc118a92fa3df524a78b24a440346be6a6c7cb975f90218a2d4feeacd222f2daf56c4cff4195c83e3ed74726dc1da63d38a93c5
DIST mutter-3.32.2.tar.xz 2797664 BLAKE2B 8b69436778d9c3e10b0373c83e1f306cb2718e49ad1f351f2e3a1ef92caeb1eb7a391be07c60578cfb2601eea5dc3949b1d8305e9f079b2b00d43ff305409f00 SHA512 e4494d028ae71441fbdc584bd8acd9c2559d52ac72402bad9a7cb43f4f519487d11df6453172fd27a9df7f2cade020d6317931613bd0be343c66170e6cda0269
diff --git a/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch b/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch
deleted file mode 100644
index 43bb05f5245..00000000000
--- a/x11-wm/mutter/files/3.28.3-no-gles2-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 259544c4f4b47418885075c9531ce593c600401c Mon Sep 17 00:00:00 2001
-From: Mart Raudsepp <leio@gentoo.org>
-Date: Fri, 1 Mar 2019 00:02:47 +0200
-Subject: [PATCH] build: Fix build without gles headers
-
-This is an ugly quick fix to hopefully fix non-wayland builds against
-mesa[-gles2].
-It assumes gnome-shell package USE=wayland requires USE=gles2, which it
-sort of does already at runtime already for hybrid graphics support, but
-we ensure with REQUIRED_USE.
-In meson upstream port for 3.32 this will be more properly conditional
-on the gles2 option instead.
----
- src/Makefile.am | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index bcb3505c7..a68661b21 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -118,9 +118,6 @@ libmutter_@LIBMUTTER_API_VERSION@_la_SOURCES = \
- backends/meta-egl.c \
- backends/meta-egl.h \
- backends/meta-egl-ext.h \
-- backends/meta-gles3.c \
-- backends/meta-gles3.h \
-- backends/meta-gles3-table.h \
- backends/meta-gpu.c \
- backends/meta-gpu.h \
- backends/meta-display-config-shared.h \
-@@ -472,6 +469,9 @@ endif
-
- if HAVE_NATIVE_BACKEND
- libmutter_@LIBMUTTER_API_VERSION@_la_SOURCES += \
-+ backends/meta-gles3.c \
-+ backends/meta-gles3.h \
-+ backends/meta-gles3-table.h \
- backends/native/meta-backend-native.c \
- backends/native/meta-backend-native.h \
- backends/native/meta-backend-native-private.h \
---
-2.17.0
-
diff --git a/x11-wm/mutter/files/3.30-eglmesaext-include.patch b/x11-wm/mutter/files/3.30-eglmesaext-include.patch
deleted file mode 100644
index 884d57cc6f0..00000000000
--- a/x11-wm/mutter/files/3.30-eglmesaext-include.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 813ea4e5743920ecf325aac8efe420bd5fe3baf2 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Sun, 20 Oct 2019 12:04:31 +0200
-Subject: [PATCH] EGL: Include EGL/eglmesaext.h
-
-The eglext.h shipped by libglvnd does not include the Mesa extensions,
-unlike the header shipped in Mesa.
-
-Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
----
- cogl/configure.ac | 3 ++-
- src/backends/meta-egl-ext.h | 1 +
- src/backends/meta-egl.c | 1 +
- src/backends/meta-egl.h | 1 +
- 4 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/cogl/configure.ac b/cogl/configure.ac
-index 3be282fc2..f333b0512 100644
---- a/cogl/configure.ac
-+++ b/cogl/configure.ac
-@@ -759,7 +759,8 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
- )
-
- COGL_EGL_INCLUDES="#include <EGL/egl.h>
--#include <EGL/eglext.h>"
-+#include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>"
- AC_SUBST([COGL_EGL_INCLUDES])
- ])
-
-diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
-index 8705e7d5b..db0b74f76 100644
---- a/src/backends/meta-egl-ext.h
-+++ b/src/backends/meta-egl-ext.h
-@@ -29,6 +29,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
-
- /*
- * This is a little different to the tests shipped with EGL implementations,
-diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
-index 755ec4908..bd253c956 100644
---- a/src/backends/meta-egl.c
-+++ b/src/backends/meta-egl.c
-@@ -31,6 +31,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <gio/gio.h>
- #include <glib.h>
- #include <glib-object.h>
-diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
-index 060c7cd2d..2fef2642e 100644
---- a/src/backends/meta-egl.h
-+++ b/src/backends/meta-egl.h
-@@ -27,6 +27,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <glib-object.h>
-
- #define META_EGL_ERROR meta_egl_error_quark ()
---
-2.23.0
-
diff --git a/x11-wm/mutter/mutter-3.30.2-r4.ebuild b/x11-wm/mutter/mutter-3.30.2-r4.ebuild
deleted file mode 100644
index 12b4bdab7b3..00000000000
--- a/x11-wm/mutter/mutter-3.30.2-r4.ebuild
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_EAUTORECONF="yes"
-inherit gnome2 virtualx
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${PF}-patchset.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0/3" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="debug elogind gles2 input_devices_wacom +introspection screencast systemd test udev wayland"
-RESTRICT="!test? ( test )"
-# native backend requires gles3 for hybrid graphics blitting support and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) )"
-
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86"
-
-# libXi-1.7.4 or newer needed per:
-# https://bugzilla.gnome.org/show_bug.cgi?id=738944
-# gl.pc package is required, which is only installed by mesa if glx is enabled; pre-emptively requiring USE=X on mesa, as hopefully eventually it'll support disabling glx for wayland-only systems
-RDEPEND="
- >=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.53.2:2
- >=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/gsettings-desktop-schemas-3.31
- gnome-base/gnome-desktop:3=
-
- 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[X(+),egl,gles2?]
-
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- introspection? ( >=dev-libs/gobject-introspection-1.42:= )
- udev? ( >=dev-libs/libgudev-232:= )
- screencast? ( >=media-video/pipewire-0.2.2:0/0.2 )
- wayland? (
- >=dev-libs/libgudev-232:=
- >=dev-libs/libinput-1.4
- >=dev-libs/wayland-1.13.0
- >=dev-libs/wayland-protocols-1.16
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- >=virtual/libudev-136:=
- x11-base/xorg-server[wayland]
- x11-libs/libdrm:=
- )
-"
-DEPEND="${RDEPEND}
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.6
- virtual/pkgconfig
- x11-base/xorg-proto
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4 )
-"
-
-PATCHES=(
- # Some patches from gnome-3-30 branch on top of 3.30.2
- "${WORKDIR}"/patches/
- # Hack to not fail USE="-wayland,-gles2" builds with no mesa[gles2]
- "${FILESDIR}"/3.28.3-no-gles2-fix.patch # requires eautoreconf
-
- "${FILESDIR}"/3.30-eglmesaext-include.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() {
- # TODO: pipewire remote desktop support
- # TODO: nvidia EGLDevice support
- # TODO: elogind vs systemd is automagic in 3.28.3 - if elogind is found, it's used instead of systemd; but not a huge problem as elogind package blocks systemd package
- # TODO: lack of --with-xwayland-grab-default-access-rules relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- # 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 screencast remote-desktop) \
- $(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
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2020-11-07 15:23 Mart Raudsepp
0 siblings, 0 replies; 16+ messages in thread
From: Mart Raudsepp @ 2020-11-07 15:23 UTC (permalink / raw
To: gentoo-commits
commit: 86bff0c4558a3fe486aab5dea35152a43ef43097
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 7 14:48:27 2020 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sat Nov 7 15:21:34 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=86bff0c4
x11-wm/mutter: remove old
Package-Manager: Portage-2.3.103, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
x11-wm/mutter/Manifest | 4 -
x11-wm/mutter/files/3.32-eglmesaext-include.patch | 68 ----------
x11-wm/mutter/files/3.34.6-XInitThreads.patch | 50 --------
x11-wm/mutter/mutter-3.34.6-r1.ebuild | 148 ---------------------
x11-wm/mutter/mutter-3.34.6-r2.ebuild | 148 ---------------------
x11-wm/mutter/mutter-3.36.4-r1.ebuild | 149 ----------------------
x11-wm/mutter/mutter-3.36.4.ebuild | 146 ---------------------
7 files changed, 713 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index f0b626b6022..e9286aaa16b 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,5 +1 @@
-DIST mutter-3.34.6-patchset.tar.xz 4748 BLAKE2B 103f17256c7a9f347aadd58119e0e92c844bf372723e1462ea343fe9a80d7ed9dd55ad04215216dd51f97143e23b201e056f2e17a1808a22fe2d4e0f8e8da659 SHA512 79e1d72d14643ef3b6d9da0532ca636e41a110bcc7e8fe1553940ca6c1e2cf6414923a707bdde7823449ef7b0535d8c97ae0ae57a02f55e90950e8c127340ade
-DIST mutter-3.34.6.tar.xz 2805328 BLAKE2B bba0e062ab81f8e88e7e59b6dbf51226b6e2d43932c7d61aca5a3e709119f909e30acea67a5444c95205ddf929a1f5bf7785eec7aed4f2da743c19543aa79962 SHA512 dd240fdcfc8ba0c62c0ff423a40ec6e0007d154f0be39e18cea543da7ff548e10a9b712f9b2cc09c58ad342b1e7eb50fb2a8790c55d284846bb6f1a76f8c6d6b
-DIST mutter-3.36.4-patchset.tar.xz 9064 BLAKE2B 62a66010a2daf8584ae6bc79d81425e4283ebf3a97d9bbf4e52d486dc3460c9f501f1d18adcf95fc5016678b235931ed095c1edfa3f86374d826c8808927956a SHA512 fb84a44e7676f14b906c54c36696f7c4c0b154ff8e08786d87ae2320ddec2aa8f275b7d5481e434d4ea6c4a06d3221cfe53f8642bc7e98037937f3ff921b33c8
-DIST mutter-3.36.4.tar.xz 2687224 BLAKE2B edf86573bcecaff67b666205460ce8748e0e58f03a14f3f04ae01e0afed6e2909d16d4c2bc53d2e95e9ad2d5b3a8223d06245e01c7dbcc51dc6e04b463767935 SHA512 e7130e59d5539a53ac8a349a38ce1ce757c6eee2ba672fc9eab9330bde32217674a9a206bd977db03195dc42b6c327147467407dd0159c4e8585332d9c1daabb
DIST mutter-3.36.5.tar.xz 2687916 BLAKE2B 15eedc6b1a7c5fdb3a355b8aa4b5586491d0fc50ef293b200b747e9d2a8540df9dcb5d492edb30d1a51b779bf4faceba9448535475c65864d08219eb94e71599 SHA512 cf02003578ebe4d025006b7dc8c277e5a2240373d41fd21e9e7a0ea3d7f323454925a09a5f77117e63a95d4f7663fc4ad7b6e21b042044a8a1a5238713f8d5ec
diff --git a/x11-wm/mutter/files/3.32-eglmesaext-include.patch b/x11-wm/mutter/files/3.32-eglmesaext-include.patch
deleted file mode 100644
index c91c56235f3..00000000000
--- a/x11-wm/mutter/files/3.32-eglmesaext-include.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From a444a4c5f58ea516ad3cd9d6ddc0056c3ca9bc90 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
-Date: Sun, 20 Oct 2019 12:04:31 +0200
-Subject: [PATCH] EGL: Include EGL/eglmesaext.h
-
-The eglext.h shipped by libglvnd does not include the Mesa extensions,
-unlike the header shipped in Mesa.
-
-Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
----
- cogl/cogl/meson.build | 2 +-
- src/backends/meta-egl-ext.h | 1 +
- src/backends/meta-egl.c | 1 +
- src/backends/meta-egl.h | 1 +
- 4 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/cogl/cogl/meson.build b/cogl/cogl/meson.build
-index 261955796..b0e66bff3 100644
---- a/cogl/cogl/meson.build
-+++ b/cogl/cogl/meson.build
-@@ -48,7 +48,7 @@ cogl_gl_header_h = configure_file(
- built_headers += [cogl_gl_header_h]
-
- if have_egl
-- cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>'
-+ cogl_egl_includes_string = '#include <EGL/egl.h>\n#include <EGL/eglext.h>\n#include <EGL/eglmesaext.h>'
- else
- cogl_egl_includes_string = ''
- endif
-diff --git a/src/backends/meta-egl-ext.h b/src/backends/meta-egl-ext.h
-index 8705e7d5b..db0b74f76 100644
---- a/src/backends/meta-egl-ext.h
-+++ b/src/backends/meta-egl-ext.h
-@@ -29,6 +29,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
-
- /*
- * This is a little different to the tests shipped with EGL implementations,
-diff --git a/src/backends/meta-egl.c b/src/backends/meta-egl.c
-index 6554be935..fdeff4f77 100644
---- a/src/backends/meta-egl.c
-+++ b/src/backends/meta-egl.c
-@@ -27,6 +27,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <gio/gio.h>
- #include <glib.h>
- #include <glib-object.h>
-diff --git a/src/backends/meta-egl.h b/src/backends/meta-egl.h
-index f2a816445..4591e7d85 100644
---- a/src/backends/meta-egl.h
-+++ b/src/backends/meta-egl.h
-@@ -28,6 +28,7 @@
-
- #include <EGL/egl.h>
- #include <EGL/eglext.h>
-+#include <EGL/eglmesaext.h>
- #include <glib-object.h>
-
- #define META_EGL_ERROR meta_egl_error_quark ()
---
-2.22.0
-
diff --git a/x11-wm/mutter/files/3.34.6-XInitThreads.patch b/x11-wm/mutter/files/3.34.6-XInitThreads.patch
deleted file mode 100644
index f53f6ba9397..00000000000
--- a/x11-wm/mutter/files/3.34.6-XInitThreads.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8b3f1117be1e90866747fa9c9e7ae1c5812ba918 Mon Sep 17 00:00:00 2001
-From: Daniel van Vugt <daniel.van.vugt@canonical.com>
-Date: Thu, 14 May 2020 18:13:56 +0800
-Subject: [PATCH] backend-x11: Reintroduce XInitThreads
-
-It was removed in 3.34 as part of 6ed5d2e2. And we thought that was the
-only thread that might exist and use X11. But the top gnome-shell crasher
-in 3.36 seems to suggest otherwise.
-
-We don't know what or where the offending thread is, but since:
-
- 1. We used XInitThreads for years already prior to 3.34; and
-
- 2. Extensions or any change to mutter/gnome-shell could conceivably use
- threads to make X calls, directly or indirectly,
-
-it's probably a good idea to reintroduce XInitThreads. The failing assertion
-in libx11 is also accompanied by a strong hint:
-
-```
-fprintf(stderr, "[xcb] Most likely this is a multi-threaded client " \
- "and XInitThreads has not been called\n");
-```
-
-https://bugs.launchpad.net/bugs/1877075
-
-Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1252
-
-https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1256
-
-(cherry picked from commit 1d5f9b6917517d6e777a652cfa5e648794dc632a)
----
- src/backends/x11/meta-backend-x11.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
-index 225d14d33..539ca5348 100644
---- a/src/backends/x11/meta-backend-x11.c
-+++ b/src/backends/x11/meta-backend-x11.c
-@@ -859,6 +859,7 @@ meta_backend_x11_class_init (MetaBackendX11Class *klass)
- static void
- meta_backend_x11_init (MetaBackendX11 *x11)
- {
-+ XInitThreads ();
- }
-
- Display *
---
-2.20.1
-
diff --git a/x11-wm/mutter/mutter-3.34.6-r1.ebuild b/x11-wm/mutter/mutter-3.34.6-r1.ebuild
deleted file mode 100644
index 38632d43af6..00000000000
--- a/x11-wm/mutter/mutter-3.34.6-r1.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/5" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast +sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- x11-libs/libX11
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.30[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-3.33.0[introspection?]
- >=dev-libs/glib-2.61.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- media-libs/mesa[X(+),egl]
- wayland? (
- >=dev-libs/wayland-protocols-1.18
- >=dev-libs/wayland-1.13.0
- x11-libs/libdrm:=
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.4
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.2.2:0/0.2 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-capture-3.34.1-r1:3
- <dev-util/sysprof-capture-3.35:3 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- >=dev-util/meson-0.50.0
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${FILESDIR}"/3.32-eglmesaext-include.patch
- "${FILESDIR}"/${PV}-XInitThreads.patch
- "${FILESDIR}"/${PV}-tests-dontreq-gdkwayland.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-3.34.6-r2.ebuild b/x11-wm/mutter/mutter-3.34.6-r2.ebuild
deleted file mode 100644
index b1e49aa4318..00000000000
--- a/x11-wm/mutter/mutter-3.34.6-r2.ebuild
+++ /dev/null
@@ -1,148 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0/5" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection +sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- x11-libs/libX11
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.30[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-3.33.0[introspection?]
- >=dev-libs/glib-2.61.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- media-libs/mesa[X(+),egl]
- wayland? (
- >=dev-libs/wayland-protocols-1.18
- >=dev-libs/wayland-1.13.0
- x11-libs/libdrm:=
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.4
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-capture-3.34.1-r1:3
- <dev-util/sysprof-capture-3.35:3 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- >=dev-util/meson-0.50.0
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${WORKDIR}"/patches/
- "${FILESDIR}"/3.32-eglmesaext-include.patch
- "${FILESDIR}"/${PV}-tests-dontreq-gdkwayland.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- -Dremote_desktop=false # not bothering with pipewire-0.2; to be reintroduced in newer mutter via pipewire-0.3
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-3.36.4-r1.ebuild b/x11-wm/mutter/mutter-3.36.4-r1.ebuild
deleted file mode 100644
index 1378bd57cf5..00000000000
--- a/x11-wm/mutter/mutter-3.36.4-r1.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0/6" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast +sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- x11-libs/libX11
- >=media-libs/graphene-1.9.3[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.30[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-3.33.0[introspection?]
- >=dev-libs/glib-2.61.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.13.0
- x11-libs/libdrm:=
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.7
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.0:0/0.3 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-capture-3.35.2:3 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- >=dev-util/meson-0.50.0
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${WORKDIR}"/patches/ # various gnome-3-36 patches for screencast
- "${FILESDIR}"/3.34.6-tests-dontreq-gdkwayland.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-3.36.4.ebuild b/x11-wm/mutter/mutter-3.36.4.ebuild
deleted file mode 100644
index e85b8ba3651..00000000000
--- a/x11-wm/mutter/mutter-3.36.4.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/6" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection +sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~sparc ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- x11-libs/libX11
- >=media-libs/graphene-1.9.3[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.30[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-3.33.0[introspection?]
- >=dev-libs/glib-2.61.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.13.0
- x11-libs/libdrm:=
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.7
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-capture-3.35.2:3 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- >=dev-util/meson-0.50.0
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${FILESDIR}"/3.34.6-tests-dontreq-gdkwayland.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- -Dremote_desktop=false # TODO: Re-enable with pipewire:0.3, but first get patches from gnome-3-36 for screencast on top of 3.36.4
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2021-07-26 7:15 Matt Turner
0 siblings, 0 replies; 16+ messages in thread
From: Matt Turner @ 2021-07-26 7:15 UTC (permalink / raw
To: gentoo-commits
commit: d1c6362243d0314c808d4ae60778fa040a38431f
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 26 06:21:04 2021 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Mon Jul 26 07:15:25 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d1c63622
x11-wm/mutter: Drop old versions
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
x11-wm/mutter/Manifest | 5 -
.../files/3.34.6-tests-dontreq-gdkwayland.patch | 51 -------
x11-wm/mutter/mutter-3.36.7-r1.ebuild | 149 --------------------
x11-wm/mutter/mutter-40.1-r2.ebuild | 149 --------------------
x11-wm/mutter/mutter-40.1-r4.ebuild | 151 ---------------------
x11-wm/mutter/mutter-40.2-r1.ebuild | 149 --------------------
6 files changed, 654 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 01eac01f58e..eccfa0e3641 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,7 +1,2 @@
-DIST mutter-3.36.7-patchset.tar.xz 14232 BLAKE2B 90a289f7012e28607d487fd635b73683e657bfd8792dbf662f8822ac7f096d21add6fcd3b7092e4e82f2130226f5b1ff9afd1e026fec8333680c9b4e4712dea2 SHA512 74e3951358a02c552a45b590360b9a038283e983ff78daf433fea1589ca3e7824f21af3b786a06ba84fb400581dfc4f97f29d259afdaca2ae3e1456a49a96243
-DIST mutter-3.36.7.tar.xz 2689176 BLAKE2B a3849b254dbe2029736ef760fe4225e63bf1d87bf2856a87682574904bd047822916485a3e00d2760118132466414b68764731ea4af9add5d734fd7ce3eac730 SHA512 6061cc8a3bdefe57049f9da757b9a33321b28ff7bc9543bc1db3abd75c7261bf233180fb1e8a2f76145dd67ebda91c48981f6e844a866ef6cbb66203af4b7ef7
-DIST mutter-40.1-r1-patchset.tar.xz 25312 BLAKE2B bcb58a50d63076ec012a2866dcbabaf417c094c3d7811f59e58273f7966f132fd51587b9374cee49b10e02207edc89bc0a4176de236330f4d9d9467f23a1d997 SHA512 511c9a315e29175109a8341ff608c94535579bc7e3145990405286fb47ee050a9ad90977ac18cd69f9baeeac283d3b94b1a0d4324ba3cc73fbb405443d82eb4d
-DIST mutter-40.1.tar.xz 2680816 BLAKE2B 924fd977e1c6669abd5adea1855c3a0a4027ae7e96ab3c6ccbe3d54da5f431e386f9c2f8f060dc9cd066c7414a2bb90a05760fa3413c6805cd8b73cb5d3aed90 SHA512 c2b6603e1d55492916f742f9cb8e15588cb30e78c37de987404ac40d3befa65e417184305ad87fdffc41052a094790f9e324a1ea7482e5de4f0439dceefed118
DIST mutter-40.2.1.tar.xz 2681780 BLAKE2B b273bc9979e285bd6c48afb367f0973114dbc9af086b5aadf41e6dc1cca54f7ca25975a4e2fe5b4acb020fa8f5fc136f0661be2b06deaacf25c363a187567b73 SHA512 f9b50b10f6a4ee8ba3d8d721734d25184675c2af1f14cb8da8cac6a6a60397c36bf39e87db06ac0ed8a0f3cbf78859e57fa965ac0d2593ed9c6aa9692d90d5b2
-DIST mutter-40.2.tar.xz 2681840 BLAKE2B 7785086a9aff9f273735e0a0716a8535a7e69b35c5b4312d8a363b4058e84e499a15c1d9b085c40d1303e69e661fd74c286da89a83a27d86e1a56c537f7e2e18 SHA512 9582004efde7a4b2ad21c390f4a4558c99709e21bdcac3f161f185612de9aaeb60cbfcf5dd1684726ae18244540aa4b6bcd2b9f362b92eb8c74304c43c9e1113
DIST mutter-40.3.tar.xz 2682460 BLAKE2B 41e505adc9aa6ca53d1f43d71051bc09c0f4f528803f10c8f4ad8fe2cf28f5a02a3d3dca1a4a02b702a40177501663e20b68415295805b6c0503690dbb5e53fc SHA512 beb9cb1b8dee153fe204aa5d799e4ba44380c8483362ab4f7b149c715be6fa929345386b78af73ca6ae7e864dd2923e5c0de88404f8ffe5d22f2ae9238bcc074
diff --git a/x11-wm/mutter/files/3.34.6-tests-dontreq-gdkwayland.patch b/x11-wm/mutter/files/3.34.6-tests-dontreq-gdkwayland.patch
deleted file mode 100644
index 810801977af..00000000000
--- a/x11-wm/mutter/files/3.34.6-tests-dontreq-gdkwayland.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From fd10425c598f7b3db16521c2709032fd2ea5a396 Mon Sep 17 00:00:00 2001
-From: Mart Raudsepp <leio@gentoo.org>
-Date: Sun, 28 Jun 2020 09:26:33 +0300
-Subject: [PATCH] test-client: Fix compilation without GDK_WINDOWING_WAYLAND
-
----
- src/tests/test-client.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/tests/test-client.c b/src/tests/test-client.c
-index 83a5ce485..80c239310 100644
---- a/src/tests/test-client.c
-+++ b/src/tests/test-client.c
-@@ -22,7 +22,9 @@
- #include <gio/gunixinputstream.h>
- #include <gtk/gtk.h>
- #include <gdk/gdkx.h>
-+#ifdef GDK_WINDOWING_WAYLAND
- #include <gdk/gdkwayland.h>
-+#endif
- #include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -46,8 +48,10 @@ window_export_handle_cb (GdkWindow *window,
- {
- GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (user_data));
-
-+#ifdef GDK_WINDOWING_WAYLAND
- if (!gdk_wayland_window_set_transient_for_exported (gdk_window,
- (gchar *) handle_str))
-+#endif
- g_print ("Fail to set transient_for exported window handle %s", handle_str);
- gdk_window_set_modal_hint (gdk_window, TRUE);
- }
-@@ -377,11 +381,13 @@ process_line (const char *line)
- goto out;
- }
-
-+#ifdef GDK_WINDOWING_WAYLAND
- GdkWindow *parent_gdk_window = gtk_widget_get_window (parent_window);
- if (!gdk_wayland_window_export_handle (parent_gdk_window,
- window_export_handle_cb,
- window,
- NULL))
-+#endif
- g_print ("Fail to export handle for window id %s", argv[2]);
- }
- else if (strcmp (argv[0], "accept_focus") == 0)
---
-2.20.1
-
diff --git a/x11-wm/mutter/mutter-3.36.7-r1.ebuild b/x11-wm/mutter/mutter-3.36.7-r1.ebuild
deleted file mode 100644
index 8a921682cea..00000000000
--- a/x11-wm/mutter/mutter-3.36.7-r1.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="GNOME 3 compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-patchset.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0/6" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast +sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- x11-libs/libX11
- >=media-libs/graphene-1.9.3[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.30[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-3.33.0[introspection?]
- >=dev-libs/glib-2.61.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- sysprof? ( >=dev-util/sysprof-capture-3.35.2:3 )
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.13.0
- x11-libs/libdrm:=
- >=media-libs/mesa-10.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.7
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.0:0/0.3 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.35.2 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- >=dev-util/meson-0.50.0
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${FILESDIR}"/3.34.6-tests-dontreq-gdkwayland.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-40.1-r2.ebuild b/x11-wm/mutter/mutter-40.1-r2.ebuild
deleted file mode 100644
index 3373ba421a3..00000000000
--- a/x11-wm/mutter/mutter-40.1-r2.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson udev virtualx xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/8" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-40.0[introspection?]
- >=dev-libs/glib-2.67.3:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm:=
- >=media-libs/mesa-17.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.15.0
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:0/0.3 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-40.0-Disable-anonymous-file-test.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-40.1-r4.ebuild b/x11-wm/mutter/mutter-40.1-r4.ebuild
deleted file mode 100644
index 8b6349daebf..00000000000
--- a/x11-wm/mutter/mutter-40.1-r4.ebuild
+++ /dev/null
@@ -1,151 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson udev virtualx xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-SRC_URI+=" https://dev.gentoo.org/~leio/distfiles/${P}-r1-patchset.tar.xz"
-
-LICENSE="GPL-2+"
-SLOT="0/8" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="amd64 ~arm arm64 ~ppc64 x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-40.0[introspection?]
- >=dev-libs/glib-2.67.3:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm:=
- >=media-libs/mesa-17.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.15.0
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:0/0.3 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${WORKDIR}"/patches
- "${FILESDIR}"/${PN}-40.0-Disable-anonymous-file-test.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-40.2-r1.ebuild b/x11-wm/mutter/mutter-40.2-r1.ebuild
deleted file mode 100644
index 42eb8d08817..00000000000
--- a/x11-wm/mutter/mutter-40.2-r1.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson udev virtualx xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/8" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast sysprof systemd test udev wayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-40.0[introspection?]
- >=dev-libs/glib-2.67.3:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- wayland? (
- >=dev-libs/wayland-protocols-1.19
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm:=
- >=media-libs/mesa-17.3[egl,gbm,wayland,gles2]
- >=dev-libs/libinput-1.15.0
- systemd? ( sys-apps/systemd )
- elogind? ( sys-auth/elogind )
- x11-base/xorg-server[wayland]
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:0/0.3 )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-# wayland bdepend for wayland-scanner, xorg-server for cvt utility
-BDEPEND="
- dev-libs/wayland
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? ( app-text/docbook-xml-dtd:4.5 )
- wayland? ( >=sys-kernel/linux-headers-4.4
- x11-base/xorg-server )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-40.0-Disable-anonymous-file-test.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Degl_device=false # This should be dependent on wayland,video_drivers_nvidia, once eglstream support is there
- -Dwayland_eglstream=false # requires packages egl-wayland for wayland-eglstream-protocols.pc
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
- meson_src_configure
-}
-
-src_test() {
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2022-05-31 18:24 Matt Turner
0 siblings, 0 replies; 16+ messages in thread
From: Matt Turner @ 2022-05-31 18:24 UTC (permalink / raw
To: gentoo-commits
commit: c0b78299ddff6fc4ca43107507da77a2d85640de
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Tue May 31 17:49:10 2022 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue May 31 18:23:44 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c0b78299
x11-wm/mutter: Drop old versions
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
x11-wm/mutter/Manifest | 2 -
.../mutter-40.0-Disable-anonymous-file-test.patch | 32 ----
x11-wm/mutter/mutter-41.4.ebuild | 168 -------------------
x11-wm/mutter/mutter-42.0-r1.ebuild | 184 ---------------------
4 files changed, 386 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index aa867df08985..e67a6fa1c769 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,4 +1,2 @@
-DIST mutter-41.4.tar.xz 2717012 BLAKE2B 2f9d144380072427c0ee65c1e3bb26e5caca76e0656f316459a77df09f9e8bda3ea9c17c6400d04abee9c7f82b36dbd035794cf31feef7ee4574ce308d627e55 SHA512 ee3881f9047f0b9ef8598609e9ac90294cb36a7549fcc6a647a80553045ed315998d0dbac247887ae06b32126bab1525f13f7f92655b9103cac77750e347e405
-DIST mutter-42.0.tar.xz 2742212 BLAKE2B 4867d184fbf63f7624c907f941f1aa1ac8d66108554385c1500b6259958a3c2bf5dcd30cebed95cbafd4a1bbd5368b6078edec695884a0ee9eb48dbf0ad4cecf SHA512 ffcfbb1b6d3add84adf2d67d459905d164dc272289b645994288c376bc656481526d445cdfe6df027b88ab590258ee9d9d4ba251e03c6ef93d17f0758f75520d
DIST mutter-42.1.tar.xz 2747056 BLAKE2B 7973e6178e3a61078c37c593a8ffabbd002b791b8251fdf9aa7c90b40efa76591f9946cdd31dd6f274c2a4455157c8661d63714619f3966250eeca5ddae34689 SHA512 b7c7011f1c3c4361ddfdcffc61057f8821c37cfb602d7f7ec97fdd1f0ab19dd331f396ca4f61c83253d003d1d866b0d2ff1e7f34bbc9e98b48aacb973aabd6d5
DIST mutter-42.2.tar.xz 2747612 BLAKE2B 39d83283dc04473e47263d463849030c1076bb5b8d6fbc37f03e1936cb999ab554784f02ad9a04cdbfa2f35ad95c74c0899ee44e9710e435e66de613628cc683 SHA512 e43bdc7c9183b2578ae1f777fdf84bfde550a26bfc28fd4a1a183c7f310d852110f3dcabd50a2fabdafba4cfb8aa6577aec4c65775075f0afff7bd1bb4dde957
diff --git a/x11-wm/mutter/files/mutter-40.0-Disable-anonymous-file-test.patch b/x11-wm/mutter/files/mutter-40.0-Disable-anonymous-file-test.patch
deleted file mode 100644
index 484c62c5a0c4..000000000000
--- a/x11-wm/mutter/files/mutter-40.0-Disable-anonymous-file-test.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7353efd2f326b3f855db52ba8643ac4e793d5ffc Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Sun, 21 Mar 2021 18:31:22 -0400
-Subject: [PATCH] Disable anonymous-file test
-
-It attempts to open /proc/self/fd/* (an fd created by memfd_create),
-which sandbox disallows.
----
- src/tests/meson.build | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/src/tests/meson.build b/src/tests/meson.build
-index 8ee409e20..50c930c2a 100644
---- a/src/tests/meson.build
-+++ b/src/tests/meson.build
-@@ -285,13 +285,6 @@ test('stage-view', stage_view_tests,
- timeout: 60,
- )
-
--test('anonymous-file', anonymous_file_test,
-- suite: ['core', 'mutter/unit'],
-- env: test_env,
-- is_parallel: false,
-- timeout: 60,
--)
--
- if have_native_tests
- test('native-headless', native_headless_tests,
- suite: ['core', 'mutter/native/headless'],
---
-2.26.2
-
diff --git a/x11-wm/mutter/mutter-41.4.ebuild b/x11-wm/mutter/mutter-41.4.ebuild
deleted file mode 100644
index e32a368da43b..000000000000
--- a/x11-wm/mutter/mutter-41.4.ebuild
+++ /dev/null
@@ -1,168 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit gnome.org gnome2-utils meson udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="elogind input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-40.0[introspection?]
- >=dev-libs/glib-2.69.0:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- gnome-base/gnome-desktop:3=
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- media-libs/mesa[X(+),egl(+)]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- systemd? ( sys-apps/systemd )
- wayland? (
- >=dev-libs/wayland-protocols-1.21
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm:=
- >=media-libs/mesa-17.3[egl(+),gbm(+),wayland,gles2]
- >=dev-libs/libinput-1.18.0
- elogind? ( sys-auth/elogind )
- x11-base/xwayland
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:= )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-# wayland bdepend for wayland-scanner, and either libxcvt or xorg-server[xorg,-minimal] for the cvt binary
-BDEPEND="
- dev-libs/wayland
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? (
- app-text/docbook-xml-dtd:4.5
- x11-misc/xvfb-run
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-40.0-Disable-anonymous-file-test.patch
-)
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use systemd)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-42.0-r1.ebuild b/x11-wm/mutter/mutter-42.0-r1.ebuild
deleted file mode 100644
index 64c4d9748678..000000000000
--- a/x11-wm/mutter/mutter-42.0-r1.ebuild
+++ /dev/null
@@ -1,184 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8..10} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="doc elogind gnome input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
- >=dev-libs/glib-2.69.0:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- gnome? ( gnome-base/gnome-desktop:3= )
- media-libs/mesa[X(+),egl(+)]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- systemd? ( sys-apps/systemd )
- wayland? (
- >=dev-libs/wayland-protocols-1.21
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm:=
- >=media-libs/mesa-17.3[egl(+),gbm(+),wayland,gles2]
- >=dev-libs/libinput-1.18.0
- elogind? ( sys-auth/elogind )
- x11-base/xwayland
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? ( >=dev-libs/libgudev-232:=
- >=virtual/libudev-232-r1:= )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13 )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:= )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
- doc? ( >=dev-util/gi-docgen-2021.1 )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-# wayland bdepend for wayland-scanner, and either libxcvt or xorg-server[xorg,-minimal] for the cvt binary
-BDEPEND="
- dev-libs/wayland
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/python-dbusmock[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- x11-misc/xvfb-run
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-42.0-Disable-anonymous-file-test.patch
-)
-
-python_check_deps() {
- if use test; then
- has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]"
- fi
-}
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use systemd)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Dlibgnome_desktop=true
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use doc docs)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2023-01-03 14:08 Matt Turner
0 siblings, 0 replies; 16+ messages in thread
From: Matt Turner @ 2023-01-03 14:08 UTC (permalink / raw
To: gentoo-commits
commit: ae47f3cbcab490acce0b539a250d76ac6d9c7588
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 3 04:00:30 2023 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Jan 3 14:07:56 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ae47f3cb
x11-wm/mutter: Drop old versions
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
x11-wm/mutter/Manifest | 2 -
.../mutter-42.0-Disable-anonymous-file-test.patch | 30 ---
...d-native-Don-t-warn-on-EACCES-if-headless.patch | 79 --------
x11-wm/mutter/mutter-42.5.ebuild | 190 -------------------
x11-wm/mutter/mutter-43.1.ebuild | 206 ---------------------
5 files changed, 507 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 3453a13f8a7c..1cb303dcd3ae 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,3 +1 @@
-DIST mutter-42.5.tar.xz 2743636 BLAKE2B 87ee26ccee6c21404ac069e7b35d2b93ef38d0eda0963107c08a72599915fba56a653968fe456afa42f4eeb28aed5526d23d344f7e1f9f4fdf9cf35b5a66fca5 SHA512 cd7ef29211a1568f5f8d43182da6569db22005c0b67204a300edb4952d9c18f73def1558843a009a7475a82d7ce9754bd8741b214a931764798dbeaaecbbec49
-DIST mutter-43.1.tar.xz 2779416 BLAKE2B 1b7bf1ec44f6e47a859e84adb93a869be261ef3699ab773014e1497ea6c944e91d7a1766a2f126c79c1b21ba78e1ba25314c32113bc194f580d847e8617ae0d3 SHA512 6553ee855ebb3bb88bc12f823a5813c6b1b6ff983f1af716521b5e04903bc30112954e3e5d781516b087e247088cced1f560fce54eac28207a6cbc61d78b05b7
DIST mutter-43.2.tar.xz 2781032 BLAKE2B cb4fc05ae9b53029649e9c80c8ce450d383a41f142ff1000bca6f9c1ddc707897511b5b54e8e28b4d263d19cffdfa699cef034d667cd8f166f8274c0f237d41a SHA512 ae6afccdf6af99197072afabf0900e1a72f38acfa6c4d039e8db03d21e89513f8828f29eb292ca9dfdec64388dcc4a93db64139e3af66706aaac81461b5da96d
diff --git a/x11-wm/mutter/files/mutter-42.0-Disable-anonymous-file-test.patch b/x11-wm/mutter/files/mutter-42.0-Disable-anonymous-file-test.patch
deleted file mode 100644
index d0e07840d46e..000000000000
--- a/x11-wm/mutter/files/mutter-42.0-Disable-anonymous-file-test.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8cb699dc59c64dc9f58873b3bbe2d17c3a08d2f9 Mon Sep 17 00:00:00 2001
-From: Matt Turner <mattst88@gmail.com>
-Date: Fri, 18 Mar 2022 17:40:52 -0700
-Subject: [PATCH] Disable anonymous-file test
-
-It attempts to open /proc/self/fd/* (an fd created by memfd_create),
-which sandbox disallows.
----
- src/tests/meson.build | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/tests/meson.build b/src/tests/meson.build
-index a19703288..50027d1f8 100644
---- a/src/tests/meson.build
-+++ b/src/tests/meson.build
-@@ -180,11 +180,6 @@ test_cases += [
- 'suite': 'compositor',
- 'sources': [ 'stage-view-tests.c', ],
- },
-- {
-- 'name': 'anonymous-file',
-- 'suite': 'unit',
-- 'sources': [ 'anonymous-file.c', ],
-- },
- ]
-
- if have_native_tests
---
-2.34.1
-
diff --git a/x11-wm/mutter/files/mutter-42.4-backend-native-Don-t-warn-on-EACCES-if-headless.patch b/x11-wm/mutter/files/mutter-42.4-backend-native-Don-t-warn-on-EACCES-if-headless.patch
deleted file mode 100644
index 98b58d3dfeff..000000000000
--- a/x11-wm/mutter/files/mutter-42.4-backend-native-Don-t-warn-on-EACCES-if-headless.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From db854a8588c1164df2f54c5718930aadf353b948 Mon Sep 17 00:00:00 2001
-From: Simon McVittie <smcv@debian.org>
-Date: Thu, 18 Aug 2022 10:41:01 +0100
-Subject: [PATCH] backend/native: Don't warn on EACCES if headless
-
-Since commit 1bf70334 "tests/runner: Make test runner use the headless
-backend", tests are run with the native backend in headless mode, which
-will attempt to open each GPU and show a warning (fatal during tests)
-if it cannot.
-
-However, in headless mode we might not be logged in on any seat (for
-example we might be logged in via ssh instead), which means we might
-legitimately not have permission to use any GPUs, even if they exist.
-Downgrade the warning to a debug message in this case.
-
-Resolves: https://gitlab.gnome.org/GNOME/mutter/-/issues/2381
-Signed-off-by: Simon McVittie <smcv@debian.org>
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2584>
-(cherry picked from commit 64a67aa00bfe54fe7219d7f581950897fcbf9a75)
----
- src/backends/native/meta-backend-native.c | 35 +++++++++++++++++++----
- 1 file changed, 30 insertions(+), 5 deletions(-)
-
-diff --git a/src/backends/native/meta-backend-native.c b/src/backends/native/meta-backend-native.c
-index 224538787..a2babb4b0 100644
---- a/src/backends/native/meta-backend-native.c
-+++ b/src/backends/native/meta-backend-native.c
-@@ -514,8 +514,20 @@ on_udev_device_added (MetaUdev *udev,
- new_gpu_kms = create_gpu_from_udev_device (native, device, &error);
- if (!new_gpu_kms)
- {
-- g_warning ("Failed to hotplug secondary gpu '%s': %s",
-- device_path, error->message);
-+ if (meta_backend_is_headless (backend) &&
-+ g_error_matches (error, G_IO_ERROR,
-+ G_IO_ERROR_PERMISSION_DENIED))
-+ {
-+ meta_topic (META_DEBUG_BACKEND,
-+ "Ignoring unavailable secondary gpu '%s': %s",
-+ device_path, error->message);
-+ }
-+ else
-+ {
-+ g_warning ("Failed to hotplug secondary gpu '%s': %s",
-+ device_path, error->message);
-+ }
-+
- return;
- }
-
-@@ -552,9 +564,22 @@ init_gpus (MetaBackendNative *native,
-
- if (!gpu_kms)
- {
-- g_warning ("Failed to open gpu '%s': %s",
-- g_udev_device_get_device_file (device),
-- local_error->message);
-+ if (meta_backend_is_headless (backend) &&
-+ g_error_matches (local_error, G_IO_ERROR,
-+ G_IO_ERROR_PERMISSION_DENIED))
-+ {
-+ meta_topic (META_DEBUG_BACKEND,
-+ "Ignoring unavailable gpu '%s': %s'",
-+ g_udev_device_get_device_file (device),
-+ local_error->message);
-+ }
-+ else
-+ {
-+ g_warning ("Failed to open gpu '%s': %s",
-+ g_udev_device_get_device_file (device),
-+ local_error->message);
-+ }
-+
- g_clear_error (&local_error);
- continue;
- }
---
-2.35.1
-
diff --git a/x11-wm/mutter/mutter-42.5.ebuild b/x11-wm/mutter/mutter-42.5.ebuild
deleted file mode 100644
index 4ded64a18383..000000000000
--- a/x11-wm/mutter/mutter-42.5.ebuild
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{8..11} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="doc elogind gnome input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
- >=dev-libs/glib-2.69.0:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb:=
- x11-libs/libXinerama
- x11-libs/libXau
- x11-libs/libICE
- >=dev-libs/atk-2.5.3[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- gnome? ( gnome-base/gnome-desktop:3= )
- media-libs/mesa[X(+),egl(+)]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- systemd? ( sys-apps/systemd )
- wayland? (
- >=dev-libs/wayland-protocols-1.21
- >=dev-libs/wayland-1.18.0
- x11-libs/libdrm
- >=media-libs/mesa-17.3[egl(+),gbm(+),wayland,gles2]
- >=dev-libs/libinput-1.18.0:=
- elogind? ( sys-auth/elogind )
- x11-base/xwayland
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? ( >=dev-libs/libgudev-232
- >=virtual/libudev-232-r1:=
- )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:= )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
- doc? ( >=dev-util/gi-docgen-2021.1 )
-"
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-
- !<gui-libs/gtk-4.6.4:4
- !<x11-libs/gtk+-3.24.34:3
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-BDEPEND="
- dev-util/wayland-scanner
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/python-dbusmock[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- x11-misc/xvfb-run
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-42.0-Disable-anonymous-file-test.patch
- "${FILESDIR}"/${PN}-42.4-backend-native-Don-t-warn-on-EACCES-if-headless.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]"
- fi
-}
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use systemd)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Dlibgnome_desktop=true
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use doc docs)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
-}
-
-pkg_postinst() {
- use udev && udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- use udev && udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-43.1.ebuild b/x11-wm/mutter/mutter-43.1.ebuild
deleted file mode 100644
index 7da49c14e5e5..000000000000
--- a/x11-wm/mutter/mutter-43.1.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{8..11} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-LICENSE="GPL-2+"
-SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="doc elogind gnome input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=media-libs/lcms-2.6:2
- >=x11-misc/colord-1.4.5:=
- >=x11-libs/libX11-1.7.0
- >=media-libs/graphene-1.10.2[introspection?]
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=dev-libs/fribidi-1.0.0
- >=x11-libs/cairo-1.14[X]
- >=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
- >=dev-libs/glib-2.69.0:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- >=x11-libs/libxkbcommon-0.4.3
- x11-libs/libICE
- >=app-accessibility/at-spi2-core-2.46:2[introspection?]
- >=media-libs/libcanberra-0.26
- sys-apps/dbus
- gnome? ( gnome-base/gnome-desktop:3= )
- media-libs/libglvnd[X]
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 )
- systemd? ( sys-apps/systemd )
- wayland? (
- >=dev-libs/wayland-protocols-1.26
- >=dev-libs/wayland-1.21.0
- x11-libs/libdrm
- >=media-libs/mesa-21.3[egl(+),gbm(+),wayland,gles2]
- >=dev-libs/libinput-1.18.0:=
- elogind? ( sys-auth/elogind )
- x11-base/xwayland
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? ( >=dev-libs/libgudev-232
- >=virtual/libudev-232-r1:=
- )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:= )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
- doc? ( >=dev-util/gi-docgen-2021.1 )
-"
-# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
-# X? (
-DEPEND+="
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb:=
- x11-libs/libXinerama
- x11-libs/libXau
-"
-# )"
-
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-
- !<gui-libs/gtk-4.6.4:4
- !<x11-libs/gtk+-3.24.34:3
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-BDEPEND="
- dev-util/wayland-scanner
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- >=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- x11-misc/xvfb-run
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]"
- fi
-}
-
-src_prepare() {
- default
-
- sed -i -e "s:#!/usr/bin/bash:#!$(command -v bash):" src/tests/x11-test.sh || die
-}
-
-src_configure() {
- # TODO: Replicate debug vs release meson build type behaviour under our buildtype=plain
- local emesonargs=(
- -Dopengl=true
- #opengl_libname
- #gles2_libname
- $(meson_use wayland gles2)
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use systemd)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- -Dlibgnome_desktop=true
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dsound_player=true
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use doc docs)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
-
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
-}
-
-pkg_postinst() {
- use udev && udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- use udev && udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2023-05-07 12:39 Pacho Ramos
0 siblings, 0 replies; 16+ messages in thread
From: Pacho Ramos @ 2023-05-07 12:39 UTC (permalink / raw
To: gentoo-commits
commit: f436be32835d022495ef58fc4a2d7e3b0906ecb6
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun May 7 12:37:03 2023 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun May 7 12:38:34 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f436be32
x11-wm/mutter: Apply important fixes from upstream
One fixes drag&drop with QT apps and the other makes RDP desktop sharing
usable again.
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
.../mutter/files/mutter-44.1-frame-updates.patch | 158 ++++++++++++++
.../files/mutter-44.1-xdnd-frame-window.patch | 50 +++++
x11-wm/mutter/mutter-44.1-r1.ebuild | 240 +++++++++++++++++++++
3 files changed, 448 insertions(+)
diff --git a/x11-wm/mutter/files/mutter-44.1-frame-updates.patch b/x11-wm/mutter/files/mutter-44.1-frame-updates.patch
new file mode 100644
index 000000000000..bc6f5411204b
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-44.1-frame-updates.patch
@@ -0,0 +1,158 @@
+From 82bd40dcbcc3601da755678778f033bd9a30286d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
+Date: Thu, 4 May 2023 12:31:41 +0200
+Subject: [PATCH] screen-cast/src: Never dequeue pw_buffer's we refuse to
+ record to
+
+The DMA buffer paths vs MemFd paths differ slightly in when content is
+recorded. This was in some places done by trying to record but bail if
+the dequeued buffer had the wrong type. This is problematic for two
+reasons: we'd update the timestamp even if we refused to record, making
+the follow-up attempt fail, and we'd dequeue and queue buffers that
+didn't get any content, meaning the receiving end would see empty
+buffers potentially with only cursor updates.
+
+Fix this by keeping track if a stream is DMA buffer able or not, and
+don't attempt to record at all in the places we would previously require
+DMA buffers. This avoids both issues: we don't dequeue/queue pw_buffers
+that we refuse to record to, and we won't update the recorded timestamp
+when we didn't intend to record to begin with.
+
+Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2783
+Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2987>
+---
+ .../meta-screen-cast-monitor-stream-src.c | 25 ++++++++++++-------
+ src/backends/meta-screen-cast-stream-src.c | 22 ++++++++++------
+ src/backends/meta-screen-cast-stream-src.h | 3 ++-
+ 3 files changed, 32 insertions(+), 18 deletions(-)
+
+diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c b/src/backends/meta-screen-cast-monitor-stream-src.c
+index efb458067e..073a4d101f 100644
+--- a/src/backends/meta-screen-cast-monitor-stream-src.c
++++ b/src/backends/meta-screen-cast-monitor-stream-src.c
+@@ -158,8 +158,8 @@ stage_painted (MetaStage *stage,
+ MetaScreenCastMonitorStreamSrc *monitor_src =
+ META_SCREEN_CAST_MONITOR_STREAM_SRC (user_data);
+ MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
+- MetaScreenCastRecordResult record_result;
+- MetaScreenCastRecordFlag flags;
++ MetaScreenCastRecordResult record_result =
++ META_SCREEN_CAST_RECORD_RESULT_RECORDED_NOTHING;
+ int64_t presentation_time_us;
+
+ if (monitor_src->maybe_record_idle_id)
+@@ -168,12 +168,16 @@ stage_painted (MetaStage *stage,
+ if (!clutter_frame_get_target_presentation_time (frame, &presentation_time_us))
+ presentation_time_us = g_get_monotonic_time ();
+
+- flags = META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
+- record_result =
+- meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
+- flags,
+- NULL,
+- presentation_time_us);
++ if (meta_screen_cast_stream_src_uses_dma_bufs (src))
++ {
++ MetaScreenCastRecordFlag flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
++
++ record_result =
++ meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
++ flags,
++ NULL,
++ presentation_time_us);
++ }
+
+ if (!(record_result & META_SCREEN_CAST_RECORD_RESULT_RECORDED_FRAME))
+ {
+@@ -200,13 +204,16 @@ before_stage_painted (MetaStage *stage,
+ if (monitor_src->maybe_record_idle_id)
+ return;
+
++ if (!meta_screen_cast_stream_src_uses_dma_bufs (src))
++ return;
++
+ if (!clutter_stage_view_peek_scanout (view))
+ return;
+
+ if (!clutter_frame_get_target_presentation_time (frame, &presentation_time_us))
+ presentation_time_us = g_get_monotonic_time ();
+
+- flags = META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
++ flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
+ meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
+ flags,
+ NULL,
+diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
+index 91a8afab47..94fc222e43 100644
+--- a/src/backends/meta-screen-cast-stream-src.c
++++ b/src/backends/meta-screen-cast-stream-src.c
+@@ -107,6 +107,7 @@ typedef struct _MetaScreenCastStreamSrcPrivate
+ int64_t last_frame_timestamp_us;
+ guint follow_up_frame_source_id;
+
++ gboolean uses_dma_bufs;
+ GHashTable *dmabuf_handles;
+
+ cairo_region_t *redraw_clip;
+@@ -513,15 +514,9 @@ do_record_frame (MetaScreenCastStreamSrc *src,
+ {
+ MetaScreenCastStreamSrcPrivate *priv =
+ meta_screen_cast_stream_src_get_instance_private (src);
+- gboolean dmabuf_only;
+
+- dmabuf_only = flags & META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
+- if (dmabuf_only && spa_buffer->datas[0].type != SPA_DATA_DmaBuf)
+- return FALSE;
+-
+- if (!dmabuf_only &&
+- (spa_buffer->datas[0].data ||
+- spa_buffer->datas[0].type == SPA_DATA_MemFd))
++ if (spa_buffer->datas[0].data ||
++ spa_buffer->datas[0].type == SPA_DATA_MemFd)
+ {
+ int width = priv->video_format.size.width;
+ int height = priv->video_format.size.height;
+@@ -1058,6 +1053,8 @@ on_stream_add_buffer (void *data,
+ dmabuf_handle = NULL;
+ }
+
++ priv->uses_dma_bufs = !!dmabuf_handle;
++
+ if (dmabuf_handle)
+ {
+ meta_topic (META_DEBUG_SCREEN_CAST,
+@@ -1595,3 +1592,12 @@ meta_screen_cast_stream_src_class_init (MetaScreenCastStreamSrcClass *klass)
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 0);
+ }
++
++gboolean
++meta_screen_cast_stream_src_uses_dma_bufs (MetaScreenCastStreamSrc *src)
++{
++ MetaScreenCastStreamSrcPrivate *priv =
++ meta_screen_cast_stream_src_get_instance_private (src);
++
++ return priv->uses_dma_bufs;
++}
+diff --git a/src/backends/meta-screen-cast-stream-src.h b/src/backends/meta-screen-cast-stream-src.h
+index 63058f2c35..a15ca54f15 100644
+--- a/src/backends/meta-screen-cast-stream-src.h
++++ b/src/backends/meta-screen-cast-stream-src.h
+@@ -41,7 +41,6 @@ typedef enum _MetaScreenCastRecordFlag
+ {
+ META_SCREEN_CAST_RECORD_FLAG_NONE = 0,
+ META_SCREEN_CAST_RECORD_FLAG_CURSOR_ONLY = 1 << 0,
+- META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY = 1 << 1,
+ } MetaScreenCastRecordFlag;
+
+ typedef enum _MetaScreenCastRecordResult
+@@ -132,4 +131,6 @@ void meta_screen_cast_stream_src_set_cursor_sprite_metadata (MetaScreenCastStrea
+ float scale,
+ MetaMonitorTransform transform);
+
++gboolean meta_screen_cast_stream_src_uses_dma_bufs (MetaScreenCastStreamSrc *src);
++
+ #endif /* META_SCREEN_CAST_STREAM_SRC_H */
+--
+GitLab
+
diff --git a/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch b/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch
new file mode 100644
index 000000000000..4067e31ef277
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch
@@ -0,0 +1,50 @@
+From f21cc690527010918d10638cfc7747df3eede496 Mon Sep 17 00:00:00 2001
+From: Sebastian Keller <skeller@gnome.org>
+Date: Fri, 28 Apr 2023 12:20:11 +0200
+Subject: [PATCH] frames: Disable XDND support on the frame window
+
+All X11 surfaces created by gtk4 claim to support XDND via the XdndAware
+property. This was leading some clients, e.g. Qt, to consider the frame
+window as drop target instead of the client window.
+
+Avoid this issue by removing the XdndAware property again after gtk has
+created the surface.
+
+Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2715
+Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2978>
+
+
+(cherry picked from commit d643eb5c6fe50e7f1afffda0e8747a87f668a799)
+---
+ src/frames/meta-frame.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/frames/meta-frame.c b/src/frames/meta-frame.c
+index be685c51fc..345751ad14 100644
+--- a/src/frames/meta-frame.c
++++ b/src/frames/meta-frame.c
+@@ -504,6 +504,7 @@ frame_sync_wm_state (MetaFrame *frame,
+ GtkWidget *
+ meta_frame_new (Window window)
+ {
++ GdkDisplay *display;
+ GtkWidget *frame, *header, *content;
+ GdkSurface *surface;
+ int frame_height = 0;
+@@ -549,6 +550,13 @@ meta_frame_new (Window window)
+ frame_sync_motif_wm_hints (GTK_WINDOW (frame), window);
+ frame_sync_wm_normal_hints (GTK_WINDOW (frame), window);
+
++ /* Disable XDND support on the frame window, because it can cause some clients
++ * to try use it instead of the client window as drop target */
++ display = gtk_widget_get_display (GTK_WIDGET (frame));
++ XDeleteProperty (gdk_x11_display_get_xdisplay (display),
++ gdk_x11_surface_get_xid (surface),
++ gdk_x11_get_xatom_by_name_for_display (display, "XdndAware"));
++
+ return frame;
+ }
+
+--
+GitLab
+
diff --git a/x11-wm/mutter/mutter-44.1-r1.ebuild b/x11-wm/mutter/mutter-44.1-r1.ebuild
new file mode 100644
index 000000000000..8f0ee64bf0e6
--- /dev/null
+++ b/x11-wm/mutter/mutter-44.1-r1.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..11} )
+inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
+
+DESCRIPTION="GNOME compositing window manager based on Clutter"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
+ SRC_URI=""
+else
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+LICENSE="GPL-2+"
+SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
+
+IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
+# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
+REQUIRED_USE="
+ gtk-doc? ( introspection )
+ wayland? ( ^^ ( elogind systemd ) udev )
+ test? ( wayland )"
+RESTRICT="!test? ( test )"
+
+# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
+# xorg-server is needed at build and runtime with USE=wayland for Xwayland
+# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
+DEPEND="
+ >=media-libs/graphene-1.10.2[introspection?]
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/pango-1.46[introspection?]
+ >=x11-libs/cairo-1.14[X]
+ >=dev-libs/fribidi-1.0.0
+ >=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
+ >=dev-libs/glib-2.75.1:2
+ gnome-base/gnome-settings-daemon
+ >=dev-libs/json-glib-0.12.0[introspection?]
+ >=x11-libs/libxkbcommon-0.4.3
+ x11-libs/libICE
+ >=app-accessibility/at-spi2-core-2.46:2[introspection?]
+ sys-apps/dbus
+ >=x11-misc/colord-1.4.5:=
+ >=media-libs/lcms-2.6:2
+ >=media-libs/harfbuzz-2.6.0:=
+
+ gnome? ( gnome-base/gnome-desktop:4= )
+
+ >=media-libs/libcanberra-0.26
+
+ media-libs/libglvnd[X]
+
+ wayland? (
+ >=dev-libs/wayland-protocols-1.31
+ >=dev-libs/wayland-1.21.0
+
+ x11-libs/libdrm
+ media-libs/mesa[gbm(+)]
+ >=dev-libs/libinput-1.18.0:=
+
+ elogind? ( sys-auth/elogind )
+ x11-base/xwayland
+ video_cards_nvidia? ( gui-libs/egl-wayland )
+ )
+ udev? (
+ >=virtual/libudev-232-r1:=
+ >=dev-libs/libgudev-232
+ )
+ systemd? ( sys-apps/systemd )
+ x11-libs/libSM
+ input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
+ >=x11-libs/startup-notification-0.7
+ screencast? ( >=media-video/pipewire-0.3.21:= )
+ introspection? ( >=dev-libs/gobject-introspection-1.54:= )
+ test? ( >=x11-libs/gtk+-3.19.8:3[X,introspection?] )
+ sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
+"
+# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
+# X? (
+DEPEND+="
+ >=gui-libs/gtk-4.0.0:4[X,introspection?]
+ >=x11-libs/libX11-1.7.0
+ >=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/libXtst
+ x11-libs/libxkbfile
+ x11-misc/xkeyboard-config
+ >=x11-libs/libxkbcommon-0.4.3[X]
+ x11-libs/libXrender
+ >=x11-libs/libXrandr-1.5.0
+ x11-libs/libxcb:=
+ x11-libs/libXinerama
+ x11-libs/libXau
+"
+# )"
+
+RDEPEND="${DEPEND}
+ gnome-extra/zenity
+
+ !<gui-libs/gtk-4.6.4:4
+"
+DEPEND="${DEPEND}
+ x11-base/xorg-proto
+ sysprof? ( >=dev-util/sysprof-common-3.38.0 )
+"
+BDEPEND="
+ dev-util/wayland-scanner
+ dev-util/gdbus-codegen
+ dev-util/glib-utils
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep '
+ >=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
+ ')
+ app-text/docbook-xml-dtd:4.5
+ x11-misc/xvfb-run
+ )
+ wayland? (
+ >=sys-kernel/linux-headers-4.4
+ x11-libs/libxcvt
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
+
+ # Fixes from 'master'
+ # Fix drag&drop in QT apps
+ "${FILESDIR}"/${P}-xdnd-frame-window.patch
+ # Fix frames dropping on screencast
+ "${FILESDIR}"/${P}-frame-updates.patch
+)
+
+python_check_deps() {
+ if use test; then
+ python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]"
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i -e "s:#!/usr/bin/bash:#!$(command -v bash):" src/tests/x11-test.sh || die
+}
+
+src_configure() {
+ local emesonargs=(
+ # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
+ #
+ # -Dopengl_libname=libOpenGL.so.0
+ #
+ # while we build the x11 renderer, as we currently enable gles2 only
+ # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
+ # in a configuration where wayland is disabled, as libOpenGL doesn't
+ # include them.
+ #
+ # See
+ # - https://bugs.gentoo.org/835786
+ # - https://forums.gentoo.org/viewtopic-p-8695669.html
+
+ --buildtype $(usex debug debug plain)
+ -Dopengl=true
+ $(meson_use wayland gles2)
+ #gles2_libname
+ -Degl=true
+ -Dglx=true
+ $(meson_use wayland)
+ $(meson_use wayland xwayland)
+ $(meson_use systemd)
+ $(meson_use wayland native_backend)
+ $(meson_use screencast remote_desktop)
+ $(meson_use gnome libgnome_desktop)
+ $(meson_use udev)
+ -Dudev_dir=$(get_udevdir)
+ $(meson_use input_devices_wacom libwacom)
+ -Dsound_player=true
+ -Dpango_ft2=true
+ -Dstartup_notification=true
+ -Dsm=true
+ $(meson_use introspection)
+ $(meson_use gtk-doc docs)
+ $(meson_use test cogl_tests)
+ $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
+ -Dnative_tests=false
+ $(meson_use test clutter_tests)
+ $(meson_use test tests)
+ -Dkvm_tests=false
+ -Dtty_tests=false
+ $(meson_use sysprof profiler)
+ -Dinstalled_tests=false
+
+ #verbose # Let upstream choose default for verbose mode
+ #xwayland_path
+ # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
+ #xwayland_grab_default_access_rules
+ )
+
+ if use wayland && use video_cards_nvidia; then
+ emesonargs+=(
+ -Degl_device=true
+ -Dwayland_eglstream=true
+ )
+ else
+ emesonargs+=(
+ -Degl_device=false
+ -Dwayland_eglstream=false
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_test() {
+ gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
+ glib-compile-schemas "${BUILD_DIR}"/data
+ GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
+}
+
+pkg_postinst() {
+ use udev && udev_reload
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ use udev && udev_reload
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2023-08-16 22:32 Matt Turner
0 siblings, 0 replies; 16+ messages in thread
From: Matt Turner @ 2023-08-16 22:32 UTC (permalink / raw
To: gentoo-commits
commit: db6f330bd75323ca5ea796d67d1a5c8dd97ab8fd
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 16 22:28:27 2023 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Aug 16 22:32:02 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db6f330b
x11-wm/mutter: Drop old versions
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
x11-wm/mutter/Manifest | 1 -
.../mutter/files/mutter-44.1-frame-updates.patch | 158 --------------
.../files/mutter-44.1-xdnd-frame-window.patch | 50 -----
x11-wm/mutter/mutter-44.1-r1.ebuild | 240 ---------------------
4 files changed, 449 deletions(-)
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index 3fced0e8bf66..bda942d26d0b 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,4 +1,3 @@
-DIST mutter-44.1.tar.xz 2843780 BLAKE2B f148b96ebeeb5db9cb620ca0870862cde579fc6d5ca9ddf87d6b6ad982baf67326b931b4a43cc9c4c9aa3b7752faa6fbbac2254c75924f0fa33fb34ae16db8fe SHA512 42cf748d83736e4a3ba595329d784829c278ea74c2db816bad770976000ee1f5070e0caf756ba123178819fdec6ae9380017f3c44f08bbff19c8bcaa46b6f33c
DIST mutter-44.2.tar.xz 2848696 BLAKE2B 2adbda457c215dfb1889c9b42eb1c58b0d012f79287414da6f4a18ff92b082d872df344abdb72b5f193f1830c6f1002495ff9152c51ad3824c779ccd81e11310 SHA512 5c58cac46a571bd9fabca8326cf973c79d9d47bd223b39476e143f30e435900859e5cef1858bc343261ad9c026166647b940c5becc6d788d99d947bd003e12da
DIST mutter-44.3.tar.xz 2848256 BLAKE2B 42c00d4673cab5d119361c6eb2b78c33894c637b36a34f9b74eb5a19ca621d3458208be020216f9a8949e8b0a9c9de697662c5aebb11f70bc83173ce33c7a1eb SHA512 d29bc6c7407ba81be0b5bfa2333bc77c09f7a084e09d6902cad8ca8e64ba75a22652b68a4e84b79b80481d9a7b6cb490128113dcd125ed5bcd5423d4ec88fb35
DIST mutter-45.alpha.tar.xz 2850600 BLAKE2B 92e03c1ba440eae9369cb344e003d3bbc619de6ee45debf51145a6729220879855faa75f2c4c7b21cf79f691981aaed39daf771c959f44d9c63572ff2aa43195 SHA512 c819fa6d1ee1e41f4dee702c6b8ee7b5ede3f689a6a55e245f40d3bc8013c8414eb7077224bd8e33c9536fdf089fbc4cd7fe7a7d071cafe392c6281169c28c4b
diff --git a/x11-wm/mutter/files/mutter-44.1-frame-updates.patch b/x11-wm/mutter/files/mutter-44.1-frame-updates.patch
deleted file mode 100644
index bc6f5411204b..000000000000
--- a/x11-wm/mutter/files/mutter-44.1-frame-updates.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 82bd40dcbcc3601da755678778f033bd9a30286d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
-Date: Thu, 4 May 2023 12:31:41 +0200
-Subject: [PATCH] screen-cast/src: Never dequeue pw_buffer's we refuse to
- record to
-
-The DMA buffer paths vs MemFd paths differ slightly in when content is
-recorded. This was in some places done by trying to record but bail if
-the dequeued buffer had the wrong type. This is problematic for two
-reasons: we'd update the timestamp even if we refused to record, making
-the follow-up attempt fail, and we'd dequeue and queue buffers that
-didn't get any content, meaning the receiving end would see empty
-buffers potentially with only cursor updates.
-
-Fix this by keeping track if a stream is DMA buffer able or not, and
-don't attempt to record at all in the places we would previously require
-DMA buffers. This avoids both issues: we don't dequeue/queue pw_buffers
-that we refuse to record to, and we won't update the recorded timestamp
-when we didn't intend to record to begin with.
-
-Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2783
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2987>
----
- .../meta-screen-cast-monitor-stream-src.c | 25 ++++++++++++-------
- src/backends/meta-screen-cast-stream-src.c | 22 ++++++++++------
- src/backends/meta-screen-cast-stream-src.h | 3 ++-
- 3 files changed, 32 insertions(+), 18 deletions(-)
-
-diff --git a/src/backends/meta-screen-cast-monitor-stream-src.c b/src/backends/meta-screen-cast-monitor-stream-src.c
-index efb458067e..073a4d101f 100644
---- a/src/backends/meta-screen-cast-monitor-stream-src.c
-+++ b/src/backends/meta-screen-cast-monitor-stream-src.c
-@@ -158,8 +158,8 @@ stage_painted (MetaStage *stage,
- MetaScreenCastMonitorStreamSrc *monitor_src =
- META_SCREEN_CAST_MONITOR_STREAM_SRC (user_data);
- MetaScreenCastStreamSrc *src = META_SCREEN_CAST_STREAM_SRC (monitor_src);
-- MetaScreenCastRecordResult record_result;
-- MetaScreenCastRecordFlag flags;
-+ MetaScreenCastRecordResult record_result =
-+ META_SCREEN_CAST_RECORD_RESULT_RECORDED_NOTHING;
- int64_t presentation_time_us;
-
- if (monitor_src->maybe_record_idle_id)
-@@ -168,12 +168,16 @@ stage_painted (MetaStage *stage,
- if (!clutter_frame_get_target_presentation_time (frame, &presentation_time_us))
- presentation_time_us = g_get_monotonic_time ();
-
-- flags = META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
-- record_result =
-- meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
-- flags,
-- NULL,
-- presentation_time_us);
-+ if (meta_screen_cast_stream_src_uses_dma_bufs (src))
-+ {
-+ MetaScreenCastRecordFlag flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
-+
-+ record_result =
-+ meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
-+ flags,
-+ NULL,
-+ presentation_time_us);
-+ }
-
- if (!(record_result & META_SCREEN_CAST_RECORD_RESULT_RECORDED_FRAME))
- {
-@@ -200,13 +204,16 @@ before_stage_painted (MetaStage *stage,
- if (monitor_src->maybe_record_idle_id)
- return;
-
-+ if (!meta_screen_cast_stream_src_uses_dma_bufs (src))
-+ return;
-+
- if (!clutter_stage_view_peek_scanout (view))
- return;
-
- if (!clutter_frame_get_target_presentation_time (frame, &presentation_time_us))
- presentation_time_us = g_get_monotonic_time ();
-
-- flags = META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
-+ flags = META_SCREEN_CAST_RECORD_FLAG_NONE;
- meta_screen_cast_stream_src_maybe_record_frame_with_timestamp (src,
- flags,
- NULL,
-diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
-index 91a8afab47..94fc222e43 100644
---- a/src/backends/meta-screen-cast-stream-src.c
-+++ b/src/backends/meta-screen-cast-stream-src.c
-@@ -107,6 +107,7 @@ typedef struct _MetaScreenCastStreamSrcPrivate
- int64_t last_frame_timestamp_us;
- guint follow_up_frame_source_id;
-
-+ gboolean uses_dma_bufs;
- GHashTable *dmabuf_handles;
-
- cairo_region_t *redraw_clip;
-@@ -513,15 +514,9 @@ do_record_frame (MetaScreenCastStreamSrc *src,
- {
- MetaScreenCastStreamSrcPrivate *priv =
- meta_screen_cast_stream_src_get_instance_private (src);
-- gboolean dmabuf_only;
-
-- dmabuf_only = flags & META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY;
-- if (dmabuf_only && spa_buffer->datas[0].type != SPA_DATA_DmaBuf)
-- return FALSE;
--
-- if (!dmabuf_only &&
-- (spa_buffer->datas[0].data ||
-- spa_buffer->datas[0].type == SPA_DATA_MemFd))
-+ if (spa_buffer->datas[0].data ||
-+ spa_buffer->datas[0].type == SPA_DATA_MemFd)
- {
- int width = priv->video_format.size.width;
- int height = priv->video_format.size.height;
-@@ -1058,6 +1053,8 @@ on_stream_add_buffer (void *data,
- dmabuf_handle = NULL;
- }
-
-+ priv->uses_dma_bufs = !!dmabuf_handle;
-+
- if (dmabuf_handle)
- {
- meta_topic (META_DEBUG_SCREEN_CAST,
-@@ -1595,3 +1592,12 @@ meta_screen_cast_stream_src_class_init (MetaScreenCastStreamSrcClass *klass)
- NULL, NULL, NULL,
- G_TYPE_NONE, 0);
- }
-+
-+gboolean
-+meta_screen_cast_stream_src_uses_dma_bufs (MetaScreenCastStreamSrc *src)
-+{
-+ MetaScreenCastStreamSrcPrivate *priv =
-+ meta_screen_cast_stream_src_get_instance_private (src);
-+
-+ return priv->uses_dma_bufs;
-+}
-diff --git a/src/backends/meta-screen-cast-stream-src.h b/src/backends/meta-screen-cast-stream-src.h
-index 63058f2c35..a15ca54f15 100644
---- a/src/backends/meta-screen-cast-stream-src.h
-+++ b/src/backends/meta-screen-cast-stream-src.h
-@@ -41,7 +41,6 @@ typedef enum _MetaScreenCastRecordFlag
- {
- META_SCREEN_CAST_RECORD_FLAG_NONE = 0,
- META_SCREEN_CAST_RECORD_FLAG_CURSOR_ONLY = 1 << 0,
-- META_SCREEN_CAST_RECORD_FLAG_DMABUF_ONLY = 1 << 1,
- } MetaScreenCastRecordFlag;
-
- typedef enum _MetaScreenCastRecordResult
-@@ -132,4 +131,6 @@ void meta_screen_cast_stream_src_set_cursor_sprite_metadata (MetaScreenCastStrea
- float scale,
- MetaMonitorTransform transform);
-
-+gboolean meta_screen_cast_stream_src_uses_dma_bufs (MetaScreenCastStreamSrc *src);
-+
- #endif /* META_SCREEN_CAST_STREAM_SRC_H */
---
-GitLab
-
diff --git a/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch b/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch
deleted file mode 100644
index 4067e31ef277..000000000000
--- a/x11-wm/mutter/files/mutter-44.1-xdnd-frame-window.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f21cc690527010918d10638cfc7747df3eede496 Mon Sep 17 00:00:00 2001
-From: Sebastian Keller <skeller@gnome.org>
-Date: Fri, 28 Apr 2023 12:20:11 +0200
-Subject: [PATCH] frames: Disable XDND support on the frame window
-
-All X11 surfaces created by gtk4 claim to support XDND via the XdndAware
-property. This was leading some clients, e.g. Qt, to consider the frame
-window as drop target instead of the client window.
-
-Avoid this issue by removing the XdndAware property again after gtk has
-created the surface.
-
-Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2715
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2978>
-
-
-(cherry picked from commit d643eb5c6fe50e7f1afffda0e8747a87f668a799)
----
- src/frames/meta-frame.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/frames/meta-frame.c b/src/frames/meta-frame.c
-index be685c51fc..345751ad14 100644
---- a/src/frames/meta-frame.c
-+++ b/src/frames/meta-frame.c
-@@ -504,6 +504,7 @@ frame_sync_wm_state (MetaFrame *frame,
- GtkWidget *
- meta_frame_new (Window window)
- {
-+ GdkDisplay *display;
- GtkWidget *frame, *header, *content;
- GdkSurface *surface;
- int frame_height = 0;
-@@ -549,6 +550,13 @@ meta_frame_new (Window window)
- frame_sync_motif_wm_hints (GTK_WINDOW (frame), window);
- frame_sync_wm_normal_hints (GTK_WINDOW (frame), window);
-
-+ /* Disable XDND support on the frame window, because it can cause some clients
-+ * to try use it instead of the client window as drop target */
-+ display = gtk_widget_get_display (GTK_WIDGET (frame));
-+ XDeleteProperty (gdk_x11_display_get_xdisplay (display),
-+ gdk_x11_surface_get_xid (surface),
-+ gdk_x11_get_xatom_by_name_for_display (display, "XdndAware"));
-+
- return frame;
- }
-
---
-GitLab
-
diff --git a/x11-wm/mutter/mutter-44.1-r1.ebuild b/x11-wm/mutter/mutter-44.1-r1.ebuild
deleted file mode 100644
index 09bf07597bb8..000000000000
--- a/x11-wm/mutter/mutter-44.1-r1.ebuild
+++ /dev/null
@@ -1,240 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..11} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/mutter/"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
- SRC_URI=""
-else
- KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
-fi
-
-LICENSE="GPL-2+"
-SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-
-IUSE="debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- gtk-doc? ( introspection )
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( wayland )"
-RESTRICT="!test? ( test )"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# xorg-server is needed at build and runtime with USE=wayland for Xwayland
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-DEPEND="
- >=media-libs/graphene-1.10.2[introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=x11-libs/cairo-1.14[X]
- >=dev-libs/fribidi-1.0.0
- >=gnome-base/gsettings-desktop-schemas-42.0[introspection?]
- >=dev-libs/glib-2.75.1:2
- gnome-base/gnome-settings-daemon
- >=dev-libs/json-glib-0.12.0[introspection?]
- >=x11-libs/libxkbcommon-0.4.3
- x11-libs/libICE
- >=app-accessibility/at-spi2-core-2.46:2[introspection?]
- sys-apps/dbus
- >=x11-misc/colord-1.4.5:=
- >=media-libs/lcms-2.6:2
- >=media-libs/harfbuzz-2.6.0:=
-
- gnome? ( gnome-base/gnome-desktop:4= )
-
- >=media-libs/libcanberra-0.26
-
- media-libs/libglvnd[X]
-
- wayland? (
- >=dev-libs/wayland-protocols-1.31
- >=dev-libs/wayland-1.21.0
-
- x11-libs/libdrm
- media-libs/mesa[gbm(+)]
- >=dev-libs/libinput-1.18.0:=
-
- elogind? ( sys-auth/elogind )
- x11-base/xwayland
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? (
- >=virtual/libudev-232-r1:=
- >=dev-libs/libgudev-232
- )
- systemd? ( sys-apps/systemd )
- x11-libs/libSM
- input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- >=x11-libs/startup-notification-0.7
- screencast? ( >=media-video/pipewire-0.3.21:= )
- introspection? ( >=dev-libs/gobject-introspection-1.54:= )
- test? ( >=x11-libs/gtk+-3.19.8:3[X,introspection?] )
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
-"
-# for now upstream has "have_x11 = true" in the meson.build, but sooner or later upstream is going to make X optional.
-# X? (
-DEPEND+="
- >=gui-libs/gtk-4.0.0:4[X,introspection?]
- >=x11-libs/libX11-1.7.0
- >=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/libXtst
- x11-libs/libxkbfile
- x11-misc/xkeyboard-config
- >=x11-libs/libxkbcommon-0.4.3[X]
- x11-libs/libXrender
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb:=
- x11-libs/libXinerama
- x11-libs/libXau
-"
-# )"
-
-RDEPEND="${DEPEND}
- gnome-extra/zenity
-
- !<gui-libs/gtk-4.6.4:4
-"
-DEPEND="${DEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-BDEPEND="
- dev-util/wayland-scanner
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- >=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- x11-misc/xvfb-run
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
-
- # Fixes from 'master'
- # Fix drag&drop in QT apps
- "${FILESDIR}"/${P}-xdnd-frame-window.patch
- # Fix frames dropping on screencast
- "${FILESDIR}"/${P}-frame-updates.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]"
- fi
-}
-
-src_prepare() {
- default
-
- sed -i -e "s:#!/usr/bin/bash:#!$(command -v bash):" src/tests/x11-test.sh || die
-}
-
-src_configure() {
- local emesonargs=(
- # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
- #
- # -Dopengl_libname=libOpenGL.so.0
- #
- # while we build the x11 renderer, as we currently enable gles2 only
- # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
- # in a configuration where wayland is disabled, as libOpenGL doesn't
- # include them.
- #
- # See
- # - https://bugs.gentoo.org/835786
- # - https://forums.gentoo.org/viewtopic-p-8695669.html
-
- --buildtype $(usex debug debug plain)
- -Dopengl=true
- $(meson_use wayland gles2)
- #gles2_libname
- -Degl=true
- -Dglx=true
- $(meson_use wayland)
- $(meson_use wayland xwayland)
- $(meson_use systemd)
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- $(meson_use gnome libgnome_desktop)
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dsound_player=true
- -Dpango_ft2=true
- -Dstartup_notification=true
- -Dsm=true
- $(meson_use introspection)
- $(meson_use gtk-doc docs)
- $(meson_use test cogl_tests)
- $(meson_use wayland core_tests) # core tests require wayland; overall -Dtests option is honored on top, so no extra conditional needed
- -Dnative_tests=false
- $(meson_use test clutter_tests)
- $(meson_use test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
-
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- gnome2_environment_reset # Avoid dconf that looks at XDG_DATA_DIRS, which can sandbox fail if flatpak is installed
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test --setup=CI
-}
-
-pkg_postinst() {
- use udev && udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- use udev && udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/
@ 2023-12-18 10:19 Pacho Ramos
0 siblings, 0 replies; 16+ messages in thread
From: Pacho Ramos @ 2023-12-18 10:19 UTC (permalink / raw
To: gentoo-commits
commit: 002602af135042ef47020a2b22478f82c9e1031a
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 18 10:04:08 2023 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Mon Dec 18 10:19:11 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=002602af
x11-wm/mutter: Fix memory leak in fullscreen mode
Apply upstream patch to fix a leak when running apps in fullscreen.
It will be included in the next point release.
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
.../mutter/files/mutter-45.2-fullscreen-leak.patch | 37 ++++++++++++++++++++++
x11-wm/mutter/mutter-45.2.ebuild | 1 +
2 files changed, 38 insertions(+)
diff --git a/x11-wm/mutter/files/mutter-45.2-fullscreen-leak.patch b/x11-wm/mutter/files/mutter-45.2-fullscreen-leak.patch
new file mode 100644
index 000000000000..adbd309c1b7c
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-45.2-fullscreen-leak.patch
@@ -0,0 +1,37 @@
+From bedf8df88f41c34c9824dccba507c8e333dd9ba6 Mon Sep 17 00:00:00 2001
+From: Robert Balas <bluew@r14s.ch>
+Date: Mon, 4 Dec 2023 00:27:49 +0100
+Subject: [PATCH] clutter: Fix memory leak when running in fullscreen
+
+`clutter_stage_do_paint_view()` only gets called when leaving fullscreen
+and by that time enough calls to
+`clutter_actor_get_transformed_paint_volume()` can make the underlying
+GArray grow to a large size.
+
+To fix this, we call call the cleanup function in
+`clutter_stage_finish_layout()` to make it happen every frame.
+
+Co-authored-by: Sebastian Keller <skeller@gnome.org>
+
+Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3191
+Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3439>
+---
+ clutter/clutter/clutter-stage.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
+index 55bb81c2b46..deb383fe216 100644
+--- a/clutter/clutter/clutter-stage.c
++++ b/clutter/clutter/clutter-stage.c
+@@ -970,6 +970,8 @@ clutter_stage_finish_layout (ClutterStage *stage)
+ }
+
+ g_warn_if_fail (!priv->actor_needs_immediate_relayout);
++
++ _clutter_stage_paint_volume_stack_free_all (stage);
+ }
+
+ void
+--
+GitLab
+
diff --git a/x11-wm/mutter/mutter-45.2.ebuild b/x11-wm/mutter/mutter-45.2.ebuild
index f6f42162b174..40a5b53d810c 100644
--- a/x11-wm/mutter/mutter-45.2.ebuild
+++ b/x11-wm/mutter/mutter-45.2.ebuild
@@ -141,6 +141,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
+ "${FILESDIR}"/${P}-fullscreen-leak.patch
)
python_check_deps() {
^ permalink raw reply related [flat|nested] 16+ messages in thread
end of thread, other threads:[~2023-12-18 10:19 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-25 8:36 [gentoo-commits] repo/gentoo:master commit in: x11-wm/mutter/, x11-wm/mutter/files/ Gilles Dartiguelongue
-- strict thread matches above, loose matches on Subject: below --
2023-12-18 10:19 Pacho Ramos
2023-08-16 22:32 Matt Turner
2023-05-07 12:39 Pacho Ramos
2023-01-03 14:08 Matt Turner
2022-05-31 18:24 Matt Turner
2021-07-26 7:15 Matt Turner
2020-11-07 15:23 Mart Raudsepp
2019-12-23 21:26 Mart Raudsepp
2019-11-23 21:41 Matt Turner
2019-09-06 21:47 Mart Raudsepp
2019-02-28 22:39 Mart Raudsepp
2017-09-12 22:04 Gilles Dartiguelongue
2015-11-26 10:51 Gilles Dartiguelongue
2015-10-03 9:05 Pacho Ramos
2015-10-03 9:04 Pacho Ramos
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox