diff --git a/_service b/_service
deleted file mode 100644
index 2868212..0000000
--- a/_service
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- https://gitlab.gnome.org/GNOME/mutter.git
- git
- gnome-3-26
- 3.26.2+%cd.%h
- enable
-
-
- *.tar
- xz
-
-
-
-
diff --git a/_servicedata b/_servicedata
deleted file mode 100644
index 0eca86e..0000000
--- a/_servicedata
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- git://git.gnome.org/mutter
- 0bd1d7cf09be046d6a698fde88540bfb8cbc78e7
- https://gitlab.gnome.org/GNOME/mutter.git
- 4b2d21ff03ed389138fcb9bca778aec02bafcadb
\ No newline at end of file
diff --git a/mutter-3.26.2+20180207.4b2d21ff0.tar.xz b/mutter-3.26.2+20180207.4b2d21ff0.tar.xz
deleted file mode 100644
index f8ce7b8..0000000
--- a/mutter-3.26.2+20180207.4b2d21ff0.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e9a496cb99553ac396f228618d5f63533d14cace256589aa9c5ed314e32789a1
-size 2833676
diff --git a/mutter-3.28.0.tar.xz b/mutter-3.28.0.tar.xz
new file mode 100644
index 0000000..3bdbce0
--- /dev/null
+++ b/mutter-3.28.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:58fffc8025f21fb6da27bd2189b6db4d20c54f950b1a46aa7f7cbf0a82d386b0
+size 3690644
diff --git a/mutter-force-rgb8.patch b/mutter-force-rgb8.patch
deleted file mode 100644
index 7427d40..0000000
--- a/mutter-force-rgb8.patch
+++ /dev/null
@@ -1,328 +0,0 @@
-Index: mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl-private.h
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/cogl/cogl/winsys/cogl-winsys-egl-private.h 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl-private.h 2018-02-28 10:27:18.840086775 +0100
-@@ -90,6 +90,11 @@
- (* add_config_attributes) (CoglDisplay *display,
- CoglFramebufferConfig *config,
- EGLint *attributes);
-+ CoglBool
-+ (* choose_config) (CoglDisplay *display,
-+ EGLint *attributes,
-+ EGLConfig *out_config,
-+ CoglError **error);
- } CoglWinsysEGLVtable;
-
- typedef enum _CoglEGLWinsysFeature
-Index: mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl-x11.c
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/cogl/cogl/winsys/cogl-winsys-egl-x11.c 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl-x11.c 2018-02-28 10:27:18.840086775 +0100
-@@ -337,6 +337,32 @@
- }
-
- static CoglBool
-+_cogl_winsys_egl_choose_config (CoglDisplay *display,
-+ EGLint *attributes,
-+ EGLConfig *out_config,
-+ CoglError **error)
-+{
-+ CoglRenderer *renderer = display->renderer;
-+ CoglRendererEGL *egl_renderer = renderer->winsys;
-+ EGLint config_count = 0;
-+ EGLBoolean status;
-+
-+ status = eglChooseConfig (egl_renderer->edpy,
-+ attributes,
-+ out_config, 1,
-+ &config_count);
-+ if (status != EGL_TRUE || config_count == 0)
-+ {
-+ _cogl_set_error (error, COGL_WINSYS_ERROR,
-+ COGL_WINSYS_ERROR_CREATE_CONTEXT,
-+ "No compatible EGL configs found");
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+
-+static CoglBool
- _cogl_winsys_egl_display_setup (CoglDisplay *display,
- CoglError **error)
- {
-@@ -841,6 +867,7 @@
- _cogl_winsys_egl_vtable =
- {
- .add_config_attributes = _cogl_winsys_egl_add_config_attributes,
-+ .choose_config = _cogl_winsys_egl_choose_config,
- .display_setup = _cogl_winsys_egl_display_setup,
- .display_destroy = _cogl_winsys_egl_display_destroy,
- .context_created = _cogl_winsys_egl_context_created,
-Index: mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl.c
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/cogl/cogl/winsys/cogl-winsys-egl.c 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/cogl/cogl/winsys/cogl-winsys-egl.c 2018-02-28 10:27:18.840086775 +0100
-@@ -338,10 +338,9 @@
- CoglRendererEGL *egl_renderer = renderer->winsys;
- EGLDisplay edpy;
- EGLConfig config;
-- EGLint config_count = 0;
-- EGLBoolean status;
- EGLint attribs[9];
- EGLint cfg_attribs[MAX_EGL_CONFIG_ATTRIBS];
-+ GError *config_error = NULL;
- const char *error_message;
-
- _COGL_RETURN_VAL_IF_FAIL (egl_display->egl_context == NULL, TRUE);
-@@ -356,14 +355,16 @@
-
- edpy = egl_renderer->edpy;
-
-- status = eglChooseConfig (edpy,
-+ if (!egl_renderer->platform_vtable->choose_config (display,
- cfg_attribs,
-- &config, 1,
-- &config_count);
-- if (status != EGL_TRUE || config_count == 0)
-+ &config,
-+ &config_error))
- {
-- error_message = "Unable to find a usable EGL configuration";
-- goto fail;
-+ _cogl_set_error (error, COGL_WINSYS_ERROR,
-+ COGL_WINSYS_ERROR_CREATE_CONTEXT,
-+ "Couldn't choose config: %s", config_error->message);
-+ g_error_free (config_error);
-+ goto err;
- }
-
- egl_display->egl_config = config;
-@@ -419,6 +420,7 @@
- COGL_WINSYS_ERROR_CREATE_CONTEXT,
- "%s", error_message);
-
-+err:
- cleanup_context (display);
-
- return FALSE;
-Index: mutter-3.26.2+20180207.4b2d21ff0/src/backends/meta-egl.c
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/src/backends/meta-egl.c 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/src/backends/meta-egl.c 2018-02-28 10:27:18.840086775 +0100
-@@ -246,7 +246,73 @@
- }
-
- gboolean
--meta_egl_choose_config (MetaEgl *egl,
-+meta_egl_get_config_attrib (MetaEgl *egl,
-+ EGLDisplay display,
-+ EGLConfig config,
-+ EGLint attribute,
-+ EGLint *value,
-+ GError **error)
-+{
-+ if (!eglGetConfigAttrib (display,
-+ config,
-+ attribute,
-+ value))
-+ {
-+ set_egl_error (error);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+
-+EGLConfig *
-+meta_egl_choose_all_configs (MetaEgl *egl,
-+ EGLDisplay display,
-+ const EGLint *attrib_list,
-+ EGLint *out_num_configs,
-+ GError **error)
-+{
-+ EGLint num_configs;
-+ EGLConfig *configs;
-+ EGLint num_matches;
-+
-+ if (!eglGetConfigs (display, NULL, 0, &num_configs))
-+ {
-+ set_egl_error (error);
-+ return FALSE;
-+ }
-+
-+ if (num_configs < 1)
-+ {
-+ g_set_error (error, G_IO_ERROR,
-+ G_IO_ERROR_FAILED,
-+ "No EGL configurations available");
-+ return FALSE;
-+ }
-+
-+ configs = g_new0 (EGLConfig, num_configs);
-+
-+ if (!eglChooseConfig (display, attrib_list, configs, num_configs, &num_matches))
-+ {
-+ g_free (configs);
-+ set_egl_error (error);
-+ return FALSE;
-+ }
-+
-+ if (num_matches == 0)
-+ {
-+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ "No matching EGL configs");
-+ g_free (configs);
-+ return NULL;
-+ }
-+
-+ *out_num_configs = num_configs;
-+ return configs;
-+}
-+
-+gboolean
-+meta_egl_choose_first_config (MetaEgl *egl,
- EGLDisplay display,
- const EGLint *attrib_list,
- EGLConfig *chosen_config,
-@@ -279,6 +345,14 @@
- return FALSE;
- }
-
-+ if (num_matches == 0)
-+ {
-+ g_free (configs);
-+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ "No matching EGLConfig found");
-+ return FALSE;
-+ }
-+
- /*
- * We don't have any preference specified yet, so lets choose the first one.
- */
-Index: mutter-3.26.2+20180207.4b2d21ff0/src/backends/meta-egl.h
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/src/backends/meta-egl.h 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/src/backends/meta-egl.h 2018-02-28 10:27:18.840086775 +0100
-@@ -46,12 +46,25 @@
- EGLDisplay display,
- GError **error);
-
--gboolean meta_egl_choose_config (MetaEgl *egl,
-+gboolean meta_egl_choose_first_config (MetaEgl *egl,
- EGLDisplay display,
- const EGLint *attrib_list,
- EGLConfig *chosen_config,
- GError **error);
-
-+gboolean meta_egl_get_config_attrib (MetaEgl *egl,
-+ EGLDisplay display,
-+ EGLConfig config,
-+ EGLint attribute,
-+ EGLint *value,
-+ GError **error);
-+
-+EGLConfig * meta_egl_choose_all_configs (MetaEgl *egl,
-+ EGLDisplay display,
-+ const EGLint *attrib_list,
-+ EGLint *out_num_configs,
-+ GError **error);
-+
- EGLImageKHR meta_egl_create_image (MetaEgl *egl,
- EGLDisplay display,
- EGLContext context,
-Index: mutter-3.26.2+20180207.4b2d21ff0/src/backends/native/meta-renderer-native.c
-===================================================================
---- mutter-3.26.2+20180207.4b2d21ff0.orig/src/backends/native/meta-renderer-native.c 2018-02-07 04:07:59.000000000 +0100
-+++ mutter-3.26.2+20180207.4b2d21ff0/src/backends/native/meta-renderer-native.c 2018-02-28 10:27:18.840086775 +0100
-@@ -332,6 +332,73 @@
- }
-
- static gboolean
-+choose_egl_config_from_gbm_format (MetaEgl *egl,
-+ EGLDisplay egl_display,
-+ const EGLint *attributes,
-+ uint32_t gbm_format,
-+ EGLConfig *out_config,
-+ GError **error)
-+{
-+ EGLConfig *egl_configs;
-+ EGLint n_configs;
-+ EGLint i;
-+
-+ egl_configs = meta_egl_choose_all_configs (egl, egl_display,
-+ attributes,
-+ &n_configs,
-+ error);
-+ if (!egl_configs)
-+ return FALSE;
-+
-+ for (i = 0; i < n_configs; i++)
-+ {
-+ EGLint visual_id;
-+
-+ if (!meta_egl_get_config_attrib (egl, egl_display,
-+ egl_configs[i],
-+ EGL_NATIVE_VISUAL_ID,
-+ &visual_id,
-+ error))
-+ {
-+ g_free (egl_configs);
-+ return FALSE;
-+ }
-+
-+ if ((uint32_t) visual_id == gbm_format)
-+ {
-+ *out_config = egl_configs[i];
-+ g_free (egl_configs);
-+ return TRUE;
-+ }
-+ }
-+
-+ g_free (egl_configs);
-+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-+ "No EGL config matching supported GBM format found");
-+ return FALSE;
-+}
-+
-+static gboolean
-+meta_renderer_native_choose_egl_config (CoglDisplay *cogl_display,
-+ EGLint *attributes,
-+ EGLConfig *out_config,
-+ GError **error)
-+{
-+ CoglRenderer *cogl_renderer = cogl_display->renderer;
-+ CoglRendererEGL *cogl_renderer_egl = cogl_renderer->winsys;
-+ MetaBackend *backend = meta_get_backend ();
-+ MetaEgl *egl = meta_backend_get_egl (backend);
-+ EGLDisplay egl_display = cogl_renderer_egl->edpy;
-+
-+ return choose_egl_config_from_gbm_format (egl,
-+ egl_display,
-+ attributes,
-+ GBM_FORMAT_XRGB8888,
-+ out_config,
-+ error);
-+}
-+
-+static gboolean
- meta_renderer_native_setup_egl_display (CoglDisplay *cogl_display,
- GError **error)
- {
-@@ -376,7 +443,7 @@
- EGL_NONE
- };
-
-- if (!meta_egl_choose_config (egl, egl_display, pbuffer_config_attribs,
-+ if (!meta_egl_choose_first_config (egl, egl_display, pbuffer_config_attribs,
- &pbuffer_config, error))
- return EGL_NO_SURFACE;
-
-@@ -1355,6 +1422,7 @@
- static const CoglWinsysEGLVtable
- _cogl_winsys_egl_vtable = {
- .add_config_attributes = meta_renderer_native_add_egl_config_attributes,
-+ .choose_config = meta_renderer_native_choose_egl_config,
- .display_setup = meta_renderer_native_setup_egl_display,
- .display_destroy = meta_renderer_native_destroy_egl_display,
- .context_created = meta_renderer_native_egl_context_created,
diff --git a/mutter-xwayland-use-gdm-auth-file.patch b/mutter-xwayland-use-gdm-auth-file.patch
new file mode 100644
index 0000000..b795bb9
--- /dev/null
+++ b/mutter-xwayland-use-gdm-auth-file.patch
@@ -0,0 +1,123 @@
+Index: mutter-3.28.0/src/wayland/meta-xwayland.c
+===================================================================
+--- mutter-3.28.0.orig/src/wayland/meta-xwayland.c
++++ mutter-3.28.0/src/wayland/meta-xwayland.c
+@@ -32,6 +32,12 @@
+ #include
+ #include
+
++/* For g_open() */
++#include
++#include
++#include
++#include
++
+ #include "compositor/meta-surface-actor-wayland.h"
+ #include "wayland/meta-wayland-actor-surface.h"
+
+@@ -508,6 +514,37 @@ on_displayfd_ready (int fd,
+ return G_SOURCE_REMOVE;
+ }
+
++/* Look for an Xauthority file that may have been created by gdm */
++static char *
++find_auth_file (void)
++{
++ char *auth_dir = NULL;
++ char *auth_file = NULL;
++ int fd;
++
++ auth_dir = g_build_filename (g_get_user_runtime_dir (),
++ "gdm",
++ NULL);
++
++ auth_file = g_build_filename (auth_dir, "Xauthority", NULL);
++ g_clear_pointer (&auth_dir, g_free);
++
++ /* Check that we can open the file. In theory it could still go away before
++ * Xwayland gets a chance to run, but at least we can be fairly sure. */
++
++ fd = g_open (auth_file, O_RDWR, 0700);
++
++ if (fd < 0) {
++ g_clear_pointer (&auth_file, g_free);
++ goto out;
++ }
++
++ g_close (fd, NULL);
++
++out:
++ return auth_file;
++}
++
+ gboolean
+ meta_xwayland_start (MetaXWaylandManager *manager,
+ struct wl_display *wl_display)
+@@ -517,11 +554,14 @@ meta_xwayland_start (MetaXWaylandManager
+ gboolean started = FALSE;
+ g_autoptr(GSubprocessLauncher) launcher = NULL;
+ GSubprocessFlags flags;
++ gchar *auth_file = NULL;
+ GError *error = NULL;
+
+ if (!choose_xdisplay (manager))
+ goto out;
+
++ auth_file = find_auth_file ();
++
+ /* We want xwayland to be a wayland client so we make a socketpair to setup a
+ * wayland protocol connection. */
+ if (socketpair (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, xwayland_client_fd) < 0)
+@@ -560,16 +600,34 @@ meta_xwayland_start (MetaXWaylandManager
+ * won't try to reconnect and crash, leaving uninteresting core dumps. We do
+ * want core dumps from Xwayland but only if a real bug occurs...
+ */
+- manager->proc = g_subprocess_launcher_spawn (launcher, &error,
+- XWAYLAND_PATH, manager->display_name,
+- "-rootless",
+- "-terminate",
+- "-accessx",
+- "-core",
+- "-listen", "4",
+- "-listen", "5",
+- "-displayfd", "6",
+- NULL);
++ if (auth_file)
++ {
++ manager->proc = g_subprocess_launcher_spawn (launcher, &error,
++ XWAYLAND_PATH, manager->display_name,
++ "-rootless",
++ "-terminate",
++ "-accessx",
++ "-core",
++ "-auth", auth_file,
++ "-listen", "4",
++ "-listen", "5",
++ "-displayfd", "6",
++ NULL);
++ }
++ else
++ {
++ manager->proc = g_subprocess_launcher_spawn (launcher, &error,
++ XWAYLAND_PATH, manager->display_name,
++ "-rootless",
++ "-terminate",
++ "-accessx",
++ "-core",
++ "-listen", "4",
++ "-listen", "5",
++ "-displayfd", "6",
++ NULL);
++ }
++
+ if (!manager->proc)
+ {
+ g_error ("Failed to spawn Xwayland: %s", error->message);
+@@ -591,6 +649,7 @@ meta_xwayland_start (MetaXWaylandManager
+ started = TRUE;
+
+ out:
++ g_free (auth_file);
+ if (!started)
+ {
+ unlink (manager->lock_file);
diff --git a/mutter.changes b/mutter.changes
index 052f73a..a6d27f7 100644
--- a/mutter.changes
+++ b/mutter.changes
@@ -1,3 +1,114 @@
+-------------------------------------------------------------------
+Wed Mar 14 01:58:11 CET 2018 - hpj@suse.com
+
+- Add mutter-xwayland-use-gdm-auth-file.patch (bsc#1084737): If
+ an Xauthority file was created for us by the display manager,
+ pass it to Xwayland -auth.
+
+-------------------------------------------------------------------
+Mon Mar 12 22:55:24 UTC 2018 - bjorn.lie@gmail.com
+
+- Update to version 3.28.0:
+ + Fix xdg-foreign regression (glgo#mutter#63).
+ + Updated translations.
+
+-------------------------------------------------------------------
+Mon Mar 12 17:29:02 UTC 2018 - dimstar@opensuse.org
+
+- Obsolete libmutter-1-0 by libmutter-2-0: Needed in order to make
+ upgrades work reliably. As libmutter is so closely tied to mutter
+ itself, we should probably consider in the future to fold it back
+ into the main package.
+
+-------------------------------------------------------------------
+Fri Mar 9 19:26:49 UTC 2018 - bjorn.lie@gmail.com
+
+- Add mutter_major and mutter_minor define, and set them to 2 and
+ 0 respectively, make future sover bumps less painfull to
+ package.
+
+-------------------------------------------------------------------
+Tue Mar 6 08:37:38 UTC 2018 - dimstar@opensuse.org
+
+- Update to version 3.27.92:
+ + Fix use of modifiers with multi-GPU systems.
+ + Add xdg-shell stable support (bgo#791938).
+ + Fix scaling of icons in titlebar buttons
+ (glgo#GNOME/mutter#23).
+ + Implement missing wacom functionality on X11
+ (glgo#GNOME/mutter#48).
+ + Force 8-bit RGB config (glgo#GNOME/mutter#2).
+ + Misc. bug fixes: glgo#GNOME/mutter#6, glgo#GNOME/mutter#27,
+ bgo#792203.
+ + Updated translations.
+- Drop mutter-force-rgb8.patch: fixed upstream.
+- Rename libmutter-1-0 subpackage to libmutter-2-0, following
+ upstreams sover bump.
+
+-------------------------------------------------------------------
+Thu Mar 1 03:27:51 UTC 2018 - dimstar@opensuse.org
+
+- Update to version 3.27.91:
+ + Fix handling of trackball settings on wayland (bgo#787804).
+ + Apply font settings on wayland (bgo645433).
+ + Fix keybindings getting mixed up with some layouts
+ (bgo#789300).
+ + Fix bluetooth mouse cursor disappearing after idle
+ (bgo#761067).
+ + Support platforms that export EGL_KHR_platform_gbm
+ (bgo#780668).
+ + Add keyboard accessibility support on wayland (bgo#788564).
+ + Fix missing cursor when using screen magnifier (bgo#754806).
+ + Fix external monitor shutting off on wayland when lid closes
+ (bgo#788915).
+ + Add xdg-output support (bgo#787363).
+ + Add Xwayland grab keyboard support (bgo#783342).
+ + Allow shortcut inhibition of the super key (bgo#790627).
+ + Take "panel orientation" drm_connector property into account
+ (bgo#782294).
+ + Fix focus window ending up below other windows on wayland
+ (bgo#780820).
+ + Fix maximized windows restoring to a tiny size on wayland
+ (bgo#783901).
+ + Fix tap-and-drag setting on X11 (bgo#775755).
+ + Fix handling of single-touch devices on wayland
+ (bgo#792005).
+ + Support tiled/compressed buffers (bgo#785779).
+ + Port screencast support to pipewire 0.1.8 (bgo#792854).
+ + Add support for third stylus button on newer tablets
+ (bgo#790033).
+ + Fix background corruption regression on nvidia (bgo#739178).
+ + Misc. bug fixes: bgo#789153, bgo#788493, bgo#784314,
+ bgo#789227, bgo#789223, bgo#789277, bgo#782344, bgo#789552,
+ bgo#789553, bgo#788695, bgo#789984, bgo#788764, bgo#789386,
+ bgo#784545, bgo#790336, bgo#790358, bgo#791022, bgo#791006,
+ bgo#789070, bgo#772218, bgo#791383, bgo#791809, bgo#776220,
+ bgo#791916, bgo#792281, bgo#790309, bgo#791371, bgo#792527,
+ bgo#792599, bgo#788834, bgo#792765, bgo#792062, bgo#645460,
+ bgo#792853, bgo#792818, bgo#789501, bgo#789961,
+ glgo#GNOME/mutter#2, glgo#GNOME/mutter#8, glgo#GNOME/mutter#12,
+ glgo#GNOME/mutter#10, glgo#GNOME/mutter#13,
+ glgo#GNOME/mutter#1, glgo#GNOME/mutter#26,
+ glgo#GNOME/mutter#28, glgo#GNOME/mutter#35,
+ glgo#GNOME/mutter#36, glgo#GNOME/mutter#38.
+- Rebase mutter-force-rgb8.patch.
+
+-------------------------------------------------------------------
+Thu Mar 1 03:27:01 UTC 2018 - badshah400@gmail.com
+
+- Update to version 3.27.1:
+ + Support hybrid GPU systems (bgo#785381).
+ + Fix monitor-manager not chaining up to the parent after new
+ implementation addition (bgo#788921).
+- Add BuildRequires: Mesa-libGLESv3-devel, new upstream
+ dependency; this is actually not detected by the configure
+ script, so builds end up failing at the make stage when the
+ headers are not installed (bgo#789192).
+- Stop using git-checkout via source service, return to upstream
+ released tarballs.
+- Following the above, drop libtool BuildRequires and stop passing
+ autogen.sh, no longer needed.
+
-------------------------------------------------------------------
Wed Feb 28 09:36:10 UTC 2018 - fcrozat@suse.com
diff --git a/mutter.spec b/mutter.spec
index 19d3577..9f07d27 100644
--- a/mutter.spec
+++ b/mutter.spec
@@ -16,23 +16,22 @@
#
+%define mutter_major 2
+%define mutter_minor 0
Name: mutter
-Version: 3.26.2+20180207.4b2d21ff0
+Version: 3.28.0
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later
Group: System/GUI/GNOME
-Url: https://www.gnome.org
-#Source0: https://download.gnome.org/sources/mutter/3.26/%%{name}-%%{version}.tar.xz
-Source: %{name}-%{version}.tar.xz
-
+URL: https://www.gnome.org
+Source0: http://download.gnome.org/sources/mutter/3.28/%{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland
Patch0: mutter-fix-startup.patch
# PATCH-FEATURE-UPSTREAM mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch FATE#323412 bgo#781704 bsc#1024748 vliaskovitis@suse.com -- iconcache: Support RGB16_565 format for 16-bit sessions
Patch1: mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch
-# PATCH-FIX-UPSTREAM mutter-force-rgb8.patch bsc#1081931 glgo#GNOME/mutter#2 fcrozat@suse.Com -- Force RGB8 to prevent Wayland slowness
-Patch2: mutter-force-rgb8.patch
-
+# PATCH-FIX-OPENSUSE mutter-xwayland-use-gdm-auth-file.patch bsc#1084737 hpj@suse.com -- Pass an Xauthority file to Xwayland -auth if found
+Patch2: mutter-xwayland-use-gdm-auth-file.patch
# SLE-only patches start at 1000
# PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.
Patch1000: mutter-SLE-bell.patch
@@ -40,15 +39,16 @@ Patch1000: mutter-SLE-bell.patch
Patch1001: mutter-SLE-relax-some-constraints-on-CSD-windows.patch
# PATCH-FIX-UPSTREAM mutter-SLE-bsc984738-grab-display.patch bsc#984738 bgo#769387 hpj@suse.com -- Revert a upstream commit to avoid X11 race condition that results in wrong dialog sizes.
Patch1002: mutter-SLE-bsc984738-grab-display.patch
-
+# Not available in openSUSE yet
+# BuildRequires: pkgconfig(libpipewire-0.1)
+BuildRequires: Mesa-libGLESv3-devel
BuildRequires: fdupes
BuildRequires: intltool
-BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: zenity
BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(egl)
-BuildRequires: pkgconfig(gbm) >= 10.3
+BuildRequires: pkgconfig(gbm) >= 17.1
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.53.2
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(gnome-desktop-3.0)
@@ -58,10 +58,8 @@ BuildRequires: pkgconfig(gtk+-3.0) >= 3.19.7
BuildRequires: pkgconfig(gudev-1.0) >= 232
BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libcanberra-gtk3)
-BuildRequires: pkgconfig(libdrm)
+BuildRequires: pkgconfig(libdrm) >= 2.4.83
BuildRequires: pkgconfig(libinput)
-# Not available in openSUSE yet
-# BuildRequires: pkgconfig(libpipewire-0.1)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libudev) >= 136
@@ -69,7 +67,7 @@ BuildRequires: pkgconfig(libwacom)
BuildRequires: pkgconfig(pango) >= 1.2.0
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(upower-glib) >= 0.99.0
-BuildRequires: pkgconfig(wayland-protocols) >= 1.9
+BuildRequires: pkgconfig(wayland-protocols) >= 1.10
BuildRequires: pkgconfig(wayland-server) >= 1.13.0
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
@@ -101,15 +99,19 @@ BuildRequires: translation-update-upstream
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
-%package -n libmutter-1-0
+%package -n libmutter-%{mutter_major}-%{mutter_minor}
Summary: Window and compositing manager based on Clutter
# we need the gsettings schema; hopefully, they'll stay backwards compatible
# (since we can't require = version, to not break SLPP)
Group: System/Libraries
Requires: %{name}-data >= %{version}
+# We need to obsolete the old mutter libs, as otherwise upgrading is impossible
+# This makes me believe we should probably fold libmutter into the main package
+# with the next update (3.30)
Obsoletes: libmutter0
+Obsoletes: libmutter-1-0
-%description -n libmutter-1-0
+%description -n libmutter-%{mutter_major}-%{mutter_minor}
Mutter is a window and compositing manager based on Clutter, forked
from Metacity.
@@ -130,7 +132,7 @@ This package contains data files needed by mutter and its library.
Summary: Development files for mutter, a window and compositing manager
Group: Development/Libraries/GNOME
Requires: %{name} = %{version}
-Requires: libmutter-1-0 = %{version}
+Requires: libmutter-%{mutter_major}-%{mutter_minor} = %{version}
%description devel
This subpackage contains libraries and header files for developing
@@ -154,7 +156,6 @@ translation-update-upstream
%build
# FIXME add --enable-remote-desktop when libpipewire-0.1 is available
-NOCONFIGURE=1 ./autogen.sh
%configure \
--enable-wayland \
--enable-native-backend \
@@ -170,34 +171,34 @@ find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}%{_prefix}
-%post -n libmutter-1-0 -p /sbin/ldconfig
-%postun -n libmutter-1-0 -p /sbin/ldconfig
+%post -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
+%postun -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
%files
%license COPYING
%doc NEWS
%{_mandir}/man1/mutter.1%{?ext_man}
%{_bindir}/mutter
-# These so files are not split out since they are private to mutter
-%{_libdir}/mutter/libmutter-clutter-1.so
-%{_libdir}/mutter/libmutter-cogl-pango-1.so
-%{_libdir}/mutter/libmutter-cogl-path-1.so
-%{_libdir}/mutter/libmutter-cogl-1.so
-%{_libdir}/mutter/plugins/default.so
-#
%{_libexecdir}/mutter-restart-helper
%{_datadir}/applications/mutter.desktop
-# These typelibs are not split out since they are private to mutter
-%{_libdir}/mutter/Cally-1.typelib
-%{_libdir}/mutter/Clutter-1.typelib
-%{_libdir}/mutter/ClutterX11-1.typelib
-%{_libdir}/mutter/Cogl-1.typelib
-%{_libdir}/mutter/CoglPango-1.typelib
-%{_libdir}/mutter/Meta-1.typelib
-#
-%files -n libmutter-1-0
-%{_libdir}/libmutter-1.so.*
+# These so files are not split out since they are private to mutter
+%{_libdir}/mutter/libmutter-clutter-%{mutter_major}.so
+%{_libdir}/mutter/libmutter-cogl-pango-%{mutter_major}.so
+%{_libdir}/mutter/libmutter-cogl-path-%{mutter_major}.so
+%{_libdir}/mutter/libmutter-cogl-%{mutter_major}.so
+%{_libdir}/mutter/plugins/default.so
+
+# These typelibs are not split out since they are private to mutter
+%{_libdir}/mutter/Cally-%{mutter_major}.typelib
+%{_libdir}/mutter/Clutter-%{mutter_major}.typelib
+%{_libdir}/mutter/ClutterX11-%{mutter_major}.typelib
+%{_libdir}/mutter/Cogl-%{mutter_major}.typelib
+%{_libdir}/mutter/CoglPango-%{mutter_major}.typelib
+%{_libdir}/mutter/Meta-%{mutter_major}.typelib
+
+%files -n libmutter-%{mutter_major}-%{mutter_minor}
+%{_libdir}/libmutter-%{mutter_major}.so.*
%dir %{_libdir}/mutter/
# users of libmutter need this directory
%dir %{_libdir}/mutter/plugins/
@@ -218,18 +219,18 @@ find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%files devel
%{_includedir}/mutter/
-%{_libdir}/libmutter-1.so
-%{_libdir}/mutter/Meta-1.gir
-%{_libdir}/mutter/Cally-1.gir
-%{_libdir}/mutter/Clutter-1.gir
-%{_libdir}/mutter/ClutterX11-1.gir
-%{_libdir}/mutter/Cogl-1.gir
-%{_libdir}/mutter/CoglPango-1.gir
-%{_libdir}/pkgconfig/libmutter-1.pc
-%{_libdir}/pkgconfig/mutter-clutter-1.pc
-%{_libdir}/pkgconfig/mutter-clutter-x11-1.pc
-%{_libdir}/pkgconfig/mutter-cogl-1.pc
-%{_libdir}/pkgconfig/mutter-cogl-pango-1.pc
-%{_libdir}/pkgconfig/mutter-cogl-path-1.pc
+%{_libdir}/libmutter-%{mutter_major}.so
+%{_libdir}/mutter/Meta-%{mutter_major}.gir
+%{_libdir}/mutter/Cally-%{mutter_major}.gir
+%{_libdir}/mutter/Clutter-%{mutter_major}.gir
+%{_libdir}/mutter/ClutterX11-%{mutter_major}.gir
+%{_libdir}/mutter/Cogl-%{mutter_major}.gir
+%{_libdir}/mutter/CoglPango-%{mutter_major}.gir
+%{_libdir}/pkgconfig/libmutter-%{mutter_major}.pc
+%{_libdir}/pkgconfig/mutter-clutter-%{mutter_major}.pc
+%{_libdir}/pkgconfig/mutter-clutter-x11-%{mutter_major}.pc
+%{_libdir}/pkgconfig/mutter-cogl-%{mutter_major}.pc
+%{_libdir}/pkgconfig/mutter-cogl-pango-%{mutter_major}.pc
+%{_libdir}/pkgconfig/mutter-cogl-path-%{mutter_major}.pc
%changelog