Accepting request 586756 from GNOME:Factory

- 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. (forwarded request 586752 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/586756
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mutter?expand=0&rev=124
This commit is contained in:
Dominique Leuenberger 2018-03-14 18:33:29 +00:00 committed by Git OBS Bridge
commit 25e96a6e82
8 changed files with 289 additions and 403 deletions

View File

@ -1,15 +0,0 @@
<services>
<service mode="disabled" name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="scm">git</param>
<param name="revision">gnome-3-26</param>
<param name="versionformat">3.26.2+%cd.%h</param>
<param name="changesgenerate">enable</param>
</service>
<service mode="disabled" name="recompress">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service mode="disabled" name="set_version" />
</services>

View File

@ -1,6 +0,0 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://git.gnome.org/mutter</param>
<param name="changesrevision">0bd1d7cf09be046d6a698fde88540bfb8cbc78e7</param></service><service name="tar_scm">
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="changesrevision">4b2d21ff03ed389138fcb9bca778aec02bafcadb</param></service></servicedata>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9a496cb99553ac396f228618d5f63533d14cace256589aa9c5ed314e32789a1
size 2833676

3
mutter-3.28.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:58fffc8025f21fb6da27bd2189b6db4d20c54f950b1a46aa7f7cbf0a82d386b0
size 3690644

View File

@ -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,

View File

@ -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 <sys/socket.h>
#include <sys/un.h>
+/* For g_open() */
+#include <glib/gstdio.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
#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);

View File

@ -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 Wed Feb 28 09:36:10 UTC 2018 - fcrozat@suse.com

View File

@ -16,23 +16,22 @@
# #
%define mutter_major 2
%define mutter_minor 0
Name: mutter Name: mutter
Version: 3.26.2+20180207.4b2d21ff0 Version: 3.28.0
Release: 0 Release: 0
Summary: Window and compositing manager based on Clutter Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later License: GPL-2.0-or-later
Group: System/GUI/GNOME Group: System/GUI/GNOME
Url: https://www.gnome.org URL: https://www.gnome.org
#Source0: https://download.gnome.org/sources/mutter/3.26/%%{name}-%%{version}.tar.xz Source0: http://download.gnome.org/sources/mutter/3.28/%{name}-%{version}.tar.xz
Source: %{name}-%{version}.tar.xz
# PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland # PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland
Patch0: mutter-fix-startup.patch 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 # 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 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 # 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-force-rgb8.patch Patch2: mutter-xwayland-use-gdm-auth-file.patch
# SLE-only patches start at 1000 # 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. # 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 Patch1000: mutter-SLE-bell.patch
@ -40,15 +39,16 @@ Patch1000: mutter-SLE-bell.patch
Patch1001: mutter-SLE-relax-some-constraints-on-CSD-windows.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. # 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 Patch1002: mutter-SLE-bsc984738-grab-display.patch
# Not available in openSUSE yet
# BuildRequires: pkgconfig(libpipewire-0.1)
BuildRequires: Mesa-libGLESv3-devel
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: intltool BuildRequires: intltool
BuildRequires: libtool
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: zenity BuildRequires: zenity
BuildRequires: pkgconfig(cairo) >= 1.10.0 BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 10.3 BuildRequires: pkgconfig(gbm) >= 17.1
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.53.2 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.53.2
BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(gnome-desktop-3.0) 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(gudev-1.0) >= 232
BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(json-glib-1.0)
BuildRequires: pkgconfig(libcanberra-gtk3) BuildRequires: pkgconfig(libcanberra-gtk3)
BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libdrm) >= 2.4.83
BuildRequires: pkgconfig(libinput) BuildRequires: pkgconfig(libinput)
# Not available in openSUSE yet
# BuildRequires: pkgconfig(libpipewire-0.1)
BuildRequires: pkgconfig(libstartup-notification-1.0) BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libudev) >= 136 BuildRequires: pkgconfig(libudev) >= 136
@ -69,7 +67,7 @@ BuildRequires: pkgconfig(libwacom)
BuildRequires: pkgconfig(pango) >= 1.2.0 BuildRequires: pkgconfig(pango) >= 1.2.0
BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(upower-glib) >= 0.99.0 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(wayland-server) >= 1.13.0
BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb) BuildRequires: pkgconfig(x11-xcb)
@ -101,15 +99,19 @@ BuildRequires: translation-update-upstream
Mutter is a window and compositing manager based on Clutter, forked Mutter is a window and compositing manager based on Clutter, forked
from Metacity. from Metacity.
%package -n libmutter-1-0 %package -n libmutter-%{mutter_major}-%{mutter_minor}
Summary: Window and compositing manager based on Clutter Summary: Window and compositing manager based on Clutter
# we need the gsettings schema; hopefully, they'll stay backwards compatible # we need the gsettings schema; hopefully, they'll stay backwards compatible
# (since we can't require = version, to not break SLPP) # (since we can't require = version, to not break SLPP)
Group: System/Libraries Group: System/Libraries
Requires: %{name}-data >= %{version} 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: 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 Mutter is a window and compositing manager based on Clutter, forked
from Metacity. 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 Summary: Development files for mutter, a window and compositing manager
Group: Development/Libraries/GNOME Group: Development/Libraries/GNOME
Requires: %{name} = %{version} Requires: %{name} = %{version}
Requires: libmutter-1-0 = %{version} Requires: libmutter-%{mutter_major}-%{mutter_minor} = %{version}
%description devel %description devel
This subpackage contains libraries and header files for developing This subpackage contains libraries and header files for developing
@ -154,7 +156,6 @@ translation-update-upstream
%build %build
# FIXME add --enable-remote-desktop when libpipewire-0.1 is available # FIXME add --enable-remote-desktop when libpipewire-0.1 is available
NOCONFIGURE=1 ./autogen.sh
%configure \ %configure \
--enable-wayland \ --enable-wayland \
--enable-native-backend \ --enable-native-backend \
@ -170,34 +171,34 @@ find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%find_lang %{name} %{?no_lang_C} %find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}%{_prefix} %fdupes %{buildroot}%{_prefix}
%post -n libmutter-1-0 -p /sbin/ldconfig %post -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
%postun -n libmutter-1-0 -p /sbin/ldconfig %postun -n libmutter-%{mutter_major}-%{mutter_minor} -p /sbin/ldconfig
%files %files
%license COPYING %license COPYING
%doc NEWS %doc NEWS
%{_mandir}/man1/mutter.1%{?ext_man} %{_mandir}/man1/mutter.1%{?ext_man}
%{_bindir}/mutter %{_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 %{_libexecdir}/mutter-restart-helper
%{_datadir}/applications/mutter.desktop %{_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 # These so files are not split out since they are private to mutter
%{_libdir}/libmutter-1.so.* %{_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/ %dir %{_libdir}/mutter/
# users of libmutter need this directory # users of libmutter need this directory
%dir %{_libdir}/mutter/plugins/ %dir %{_libdir}/mutter/plugins/
@ -218,18 +219,18 @@ find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%files devel %files devel
%{_includedir}/mutter/ %{_includedir}/mutter/
%{_libdir}/libmutter-1.so %{_libdir}/libmutter-%{mutter_major}.so
%{_libdir}/mutter/Meta-1.gir %{_libdir}/mutter/Meta-%{mutter_major}.gir
%{_libdir}/mutter/Cally-1.gir %{_libdir}/mutter/Cally-%{mutter_major}.gir
%{_libdir}/mutter/Clutter-1.gir %{_libdir}/mutter/Clutter-%{mutter_major}.gir
%{_libdir}/mutter/ClutterX11-1.gir %{_libdir}/mutter/ClutterX11-%{mutter_major}.gir
%{_libdir}/mutter/Cogl-1.gir %{_libdir}/mutter/Cogl-%{mutter_major}.gir
%{_libdir}/mutter/CoglPango-1.gir %{_libdir}/mutter/CoglPango-%{mutter_major}.gir
%{_libdir}/pkgconfig/libmutter-1.pc %{_libdir}/pkgconfig/libmutter-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-clutter-1.pc %{_libdir}/pkgconfig/mutter-clutter-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-clutter-x11-1.pc %{_libdir}/pkgconfig/mutter-clutter-x11-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-1.pc %{_libdir}/pkgconfig/mutter-cogl-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-pango-1.pc %{_libdir}/pkgconfig/mutter-cogl-pango-%{mutter_major}.pc
%{_libdir}/pkgconfig/mutter-cogl-path-1.pc %{_libdir}/pkgconfig/mutter-cogl-path-%{mutter_major}.pc
%changelog %changelog