Accepting request 538949 from home:luc14n0:branches:GNOME:Factory

Update to version 3.26.2

OBS-URL: https://build.opensuse.org/request/show/538949
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=267
This commit is contained in:
Dominique Leuenberger 2017-11-06 10:52:48 +00:00 committed by Git OBS Bridge
parent e73a08b406
commit 2fbeb0bb9f
8 changed files with 45 additions and 254 deletions

View File

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

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

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

View File

@ -1,31 +0,0 @@
From 8886e1bbdcb712d1e70873b2cccb7ab62e6a3eec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Sat, 7 Oct 2017 00:33:39 -0400
Subject: [PATCH] window: Handle updating from no to no monitor
When we received two hot plug events that both resulted in headless
configuration, we tried to find a new window monitor given the old.
That resulted in a null pointer dereference; avoid that by only trying
to find the same monitor if there was an old one.
https://bugzilla.gnome.org/show_bug.cgi?id=788607
---
src/core/window.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/window.c b/src/core/window.c
index dc60a667c..c2d9869d2 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -3793,7 +3793,7 @@ meta_window_update_for_monitors_changed (MetaWindow *window)
new = find_monitor_by_winsys_id (window, window->preferred_output_winsys_id);
/* Otherwise, try to find the old output on a new monitor */
- if (!new)
+ if (old && !new)
new = find_monitor_by_winsys_id (window, old->winsys_id);
/* Fall back to primary if everything else failed */
--
2.14.2

View File

@ -1,119 +0,0 @@
From c0dc66e8c0dfc6ab02506343dc8418891159657c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Wed, 18 Oct 2017 23:22:01 +0800
Subject: [PATCH] monitor/normal: Prefer modes with same flags as preferred
mode
When generating MetaMonitorMode's, prefer CRTC modes that has the same
set of flags as the preferred mode. This not only is probably a better
set of configurable modes, but it'll guarantee that the preferred mode
is added.
This fixes a crash when the preferred mode was not the first mode with
the same resolution, refresh rate and set of handled modes.
https://bugzilla.gnome.org/show_bug.cgi?id=789153
---
src/backends/meta-monitor.c | 41 ++++++++++++++++++++++++++++++++---------
1 file changed, 32 insertions(+), 9 deletions(-)
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index 8ca6ea859..2d06a1e36 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -394,16 +394,22 @@ generate_mode_id (MetaMonitorModeSpec *monitor_mode_spec)
static gboolean
meta_monitor_add_mode (MetaMonitor *monitor,
- MetaMonitorMode *monitor_mode)
+ MetaMonitorMode *monitor_mode,
+ gboolean replace)
{
MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
+ MetaMonitorMode *existing_mode;
- if (g_hash_table_lookup (priv->mode_ids,
- meta_monitor_mode_get_id (monitor_mode)))
+ existing_mode = g_hash_table_lookup (priv->mode_ids,
+ meta_monitor_mode_get_id (monitor_mode));
+ if (existing_mode && !replace)
return FALSE;
+ if (existing_mode)
+ priv->modes = g_list_remove (priv->modes, existing_mode);
+
priv->modes = g_list_append (priv->modes, monitor_mode);
- g_hash_table_insert (priv->mode_ids, monitor_mode->id, monitor_mode);
+ g_hash_table_replace (priv->mode_ids, monitor_mode->id, monitor_mode);
return TRUE;
}
@@ -415,13 +421,17 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
MetaMonitorPrivate *monitor_priv =
meta_monitor_get_instance_private (monitor);
MetaOutput *output;
+ MetaCrtcModeFlag preferred_mode_flags;
unsigned int i;
output = meta_monitor_get_main_output (monitor);
+ preferred_mode_flags = output->preferred_mode->flags;
+
for (i = 0; i < output->n_modes; i++)
{
MetaCrtcMode *crtc_mode = output->modes[i];
MetaMonitorMode *mode;
+ gboolean replace;
mode = g_new0 (MetaMonitorMode, 1);
mode->spec = (MetaMonitorModeSpec) {
@@ -437,13 +447,26 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
.crtc_mode = crtc_mode
};
+ /*
+ * We don't distinguish between all available mode flags, just the ones
+ * that are configurable. We still need to pick some mode though, so
+ * prefer ones that has the same set of flags as the preferred mode;
+ * otherwise take the first one in the list. This guarantees that the
+ * preferred mode is always added.
+ */
+ replace = crtc_mode->flags == preferred_mode_flags;
+
+ if (!meta_monitor_add_mode (monitor, mode, replace))
+ {
+ g_assert (crtc_mode != output->preferred_mode);
+ meta_monitor_mode_free (mode);
+ continue;
+ }
+
if (crtc_mode == output->preferred_mode)
monitor_priv->preferred_mode = mode;
if (output->crtc && crtc_mode == output->crtc->current_mode)
monitor_priv->current_mode = mode;
-
- if (!meta_monitor_add_mode (monitor, mode))
- meta_monitor_mode_free (mode);
}
}
@@ -825,7 +848,7 @@ generate_tiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
tiled_modes = g_list_remove_link (tiled_modes, l);
- if (!meta_monitor_add_mode (monitor, mode))
+ if (!meta_monitor_add_mode (monitor, mode, FALSE))
{
meta_monitor_mode_free (mode);
continue;
@@ -967,7 +990,7 @@ generate_untiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
if (!mode)
continue;
- if (!meta_monitor_add_mode (monitor, mode))
+ if (!meta_monitor_add_mode (monitor, mode, FALSE))
{
meta_monitor_mode_free (mode);
continue;
--
2.14.2

View File

@ -1,45 +0,0 @@
From edfd15b32daca9fef707a25bf312441349506b05 Mon Sep 17 00:00:00 2001
From: Daniel Stone <daniels@collabora.com>
Date: Mon, 2 Oct 2017 16:46:17 +0100
Subject: wayland-dma-buf: Don't send modifiers to old clients
The modifier event was only added in v3 of the client; sending it to
older clients (e.g. GStreamer waylandsink) causes them to disconnect
immediately.
Send the older 'format' event to all clients, and only send the newer
'modifier' event to resource versions 3 or above.
https://bugzilla.gnome.org/show_bug.cgi?id=788558
---
src/wayland/meta-wayland-dma-buf.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/wayland/meta-wayland-dma-buf.c b/src/wayland/meta-wayland-dma-buf.c
index e5d2f7c..76b8aa2 100644
--- a/src/wayland/meta-wayland-dma-buf.c
+++ b/src/wayland/meta-wayland-dma-buf.c
@@ -473,12 +473,19 @@ send_modifiers (struct wl_resource *resource,
gboolean ret;
int i;
+ zwp_linux_dmabuf_v1_send_format (resource, format);
+
+ /* The modifier event was only added in v3; v1 and v2 only have the format
+ * event. */
+ if (wl_resource_get_version (resource) < ZWP_LINUX_DMABUF_V1_MODIFIER_SINCE_VERSION)
+ return;
+
/* First query the number of available modifiers, then allocate an array,
* then fill the array. */
ret = meta_egl_query_dma_buf_modifiers (egl, egl_display, format, 0, NULL,
NULL, &num_modifiers, NULL);
if (!ret || num_modifiers == 0)
- return;
+ return;
modifiers = g_new0 (uint64_t, num_modifiers);
ret = meta_egl_query_dma_buf_modifiers (egl, egl_display, format,
--
cgit v0.12

View File

@ -1,34 +0,0 @@
From 41f7a5fdf3bd95bd13e43e2151d29157d1dc5168 Mon Sep 17 00:00:00 2001
From: polygamma <jonny.westphalen@googlemail.com>
Date: Mon, 9 Oct 2017 16:14:13 +0200
Subject: x11: Protect XChangeProperty call with error traps
They may happen around the time a window is destroyed, thus could result
on BadWindow X errors.
https://bugzilla.gnome.org/show_bug.cgi?id=788666
---
src/x11/window-x11.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 36a5e70..4885f5f 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -920,11 +920,13 @@ update_gtk_edge_constraints (MetaWindow *window)
meta_verbose ("Setting _GTK_EDGE_CONSTRAINTS to %lu\n", data[0]);
+ meta_error_trap_push (window->display);
XChangeProperty (window->display->xdisplay,
window->xwindow,
window->display->atom__GTK_EDGE_CONSTRAINTS,
XA_CARDINAL, 32, PropModeReplace,
(guchar*) data, 1);
+ meta_error_trap_pop (window->display);
}
static gboolean
--
cgit v0.12

View File

@ -1,3 +1,33 @@
-------------------------------------------------------------------
Sat Nov 4 02:03:57 UTC 2017 - luc14n0@linuxmail.org
- Update to version 3.26.2:
+ Work with clients that require older linux_dmabuf protocol
(bgo#788558).
+ Prevent crash when closing maximized windows (bgo#788666).
+ Use the correct monitor for HiDPI scaling of shell chrome
(bgo#788820).
+ Enable XWayland core dumps (bgo#789086).
+ Fixes:
- Unredirection of fullscreen windows (bgo#788493).
- List of supported monitor scales on X11 (bgo#788901).
- Handling of trackball settings on wayland (bgo#787804).
- Miscellaneous:
. Multi-monitor regressions and crashes (bgo#788607,
bgo#788860, bgo#789153, bgo#786929, bgo#789501).
. Bug fixes: bgo#788572, bgo#788569, bgo#784314, bgo#789227,
bgo#789223, bgo#782344, bgo#789552, bgo#789553, bgo#789300.
+ Updated translations.
- Drop fixed upstream patches:
mutter-wayland-dma-buf-modifiers-fix.patch,
mutter-x11-Protect-XChangeProperty-call.patch,
mutter-handle-no-to-no-monitor.patch and
mutter-preferred-mode.patch.
- Drop %glib2_gsettings_schema_requires macro: the functionality is
covered by file triggers now.
- Point fdupes to the /usr directory instead of the build root,
which is a practice that must be avoided.
-------------------------------------------------------------------
Thu Oct 19 21:47:53 UTC 2017 - mgorse@suse.com
@ -23,12 +53,15 @@ Wed Oct 4 19:55:42 UTC 2017 - zaitor@opensuse.org
+ Fix crash during monitor configuration migration (bgo#787668).
+ Fix multihead regressions in X11 session (bgo#787477).
+ Fix screen rotation regressions (bgo#787836).
+ Fix keybindings not being resolved with non-latin layouts (bgo#787016).
+ Fix keybindings not being resolved with non-latin layouts
(bgo#787016).
+ Support snap packages for sandboxed app IDs (bgo#788217).
+ Fix crash when reconnecting tablet device (bgo#787649).
+ Support running headless (bgo#730551, bgo#787637).
+ Support _NET_RESTACK_WINDOW and ConfigureRequest siblings (bgo#786365).
+ Fix monitor layout not being remembered across sessions (bgo#787629).
+ Support _NET_RESTACK_WINDOW and ConfigureRequest siblings
(bgo#786365).
+ Fix monitor layout not being remembered across sessions
(bgo#787629).
+ Make sure to export _NET_NUMBER_OF_DESKTOPS (bgo#760651).
+ Allow resizing of tiled windows (bgo#645153).
+ Export tiling information to clients (bgo#751857).

View File

@ -17,27 +17,19 @@
Name: mutter
Version: 3.26.1
Version: 3.26.2
Release: 0
Summary: Window and compositing manager based on Clutter
License: GPL-2.0+
Group: System/GUI/GNOME
Url: http://www.gnome.org
Source: http://download.gnome.org/sources/mutter/3.26/%{name}-%{version}.tar.xz
Url: https://www.gnome.org
Source: https://download.gnome.org/sources/mutter/3.26/%{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-wayland-dma-buf-modifiers-fix.patch bgo#788558 zaitor@opensuse.org -- Don't send modifiers to old clients
Patch2: mutter-wayland-dma-buf-modifiers-fix.patch
# PATCH-FIX-UPSTREAM mutter-x11-Protect-XChangeProperty-call.patch bgo#788666 zaitor@opensuse.org -- Protect XChangeProperty call with error traps
Patch3: mutter-x11-Protect-XChangeProperty-call.patch
# PATCH-FIX-UPSTREAM mutter-handle-no-to-no-monitor.patch bgo#788607 mgorse@suse.com -- handle updating from no to no monitor.
Patch4: mutter-handle-no-to-no-monitor.patch
# PATCH-FIX-UPSTREAM mutter-preferred-mode.patch bgo#789153 mgorse@suse.com -- monitor/normal: prefer modes with same flags as preferred mode.
Patch5: mutter-preferred-mode.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.
Patch1000: mutter-SLE-bell.patch
# PATCH-FIX-SLE mutter-SLE-relax-some-constraints-on-CSD-windows.patch bnc#883491 cxiong@suse.com -- Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor.
@ -122,7 +114,6 @@ This package contains a library for shared features.
Summary: Data files for mutter, a window and compositing manager based on Clutter
Group: System/GUI/GNOME
Requires: %{name} = %{version}
%glib2_gsettings_schema_requires
%description data
Mutter is a window and compositing manager based on Clutter, forked
@ -146,12 +137,8 @@ applications that want to make use of the mutter library.
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# SLE only patches and translations.
# SLE-only patches and translations.
%if !0%{?is_opensuse}
translation-update-upstream
%patch1000 -p1
@ -174,7 +161,7 @@ make %{?_smp_mflags}
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
%suse_update_desktop_file %{name}
%find_lang %{name} %{?no_lang_C}
%fdupes %{buildroot}
%fdupes %{buildroot}%{_prefix}
%post -n libmutter-1-0 -p /sbin/ldconfig