Update to 44.beta
This commit is contained in:
parent
d7890d23ac
commit
f10fab7774
1
.gitignore
vendored
1
.gitignore
vendored
@ -203,3 +203,4 @@ mutter-2.31.5.tar.bz2
|
||||
/mutter-43.0.tar.xz
|
||||
/mutter-43.1.tar.xz
|
||||
/mutter-43.2.tar.xz
|
||||
/mutter-44.beta.tar.xz
|
||||
|
@ -1,122 +0,0 @@
|
||||
From 865edafa80f474942e04c18ece9dfafd48b777d1 Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Mon, 9 Jan 2023 15:35:52 +0100
|
||||
Subject: [PATCH 1/2] settings: Add Xwayland byte-swapped clients
|
||||
|
||||
Recent versions of Xwayland can allow or disallow X11 clients from
|
||||
different endianess to connect.
|
||||
|
||||
Add a setting to configure this feature from mutter, who spawns
|
||||
Xwayland.
|
||||
---
|
||||
data/org.gnome.mutter.wayland.gschema.xml.in | 24 ++++++++++++++++++++
|
||||
src/backends/meta-settings-private.h | 2 ++
|
||||
src/backends/meta-settings.c | 23 +++++++++++++++++++
|
||||
3 files changed, 49 insertions(+)
|
||||
|
||||
diff --git a/data/org.gnome.mutter.wayland.gschema.xml.in b/data/org.gnome.mutter.wayland.gschema.xml.in
|
||||
index 8a1878e10..3c3e54498 100644
|
||||
--- a/data/org.gnome.mutter.wayland.gschema.xml.in
|
||||
+++ b/data/org.gnome.mutter.wayland.gschema.xml.in
|
||||
@@ -125,6 +125,30 @@
|
||||
</description>
|
||||
</key>
|
||||
|
||||
+ <key name="xwayland-allow-byte-swapped-clients" type="b">
|
||||
+ <default>false</default>
|
||||
+ <summary>Allow X11 clients with a different endianess to connect to Xwayland</summary>
|
||||
+ <description>
|
||||
+ Allow connections from clients with an endianess different to that
|
||||
+ of Xwayland.
|
||||
+
|
||||
+ The X server byte-swapping code is a huge attack surface, much of
|
||||
+ that code in Xwayland is prone to security issues.
|
||||
+
|
||||
+ The use-case of byte-swapped clients is very niche, and disabled by
|
||||
+ default in Xwayland.
|
||||
+
|
||||
+ Enable this option to instruct Xwayland to accept connections from
|
||||
+ X11 clients with a different endianess.
|
||||
+
|
||||
+ This option has no effect if Xwayland does not support the command
|
||||
+ line option +byteswappedclients/-byteswappedclients to control that
|
||||
+ setting.
|
||||
+
|
||||
+ Xwayland needs to be restarted for this setting to take effect.
|
||||
+ </description>
|
||||
+ </key>
|
||||
+
|
||||
</schema>
|
||||
|
||||
</schemalist>
|
||||
diff --git a/src/backends/meta-settings-private.h b/src/backends/meta-settings-private.h
|
||||
index 47d2d6074..87af21515 100644
|
||||
--- a/src/backends/meta-settings-private.h
|
||||
+++ b/src/backends/meta-settings-private.h
|
||||
@@ -77,6 +77,8 @@ gboolean meta_settings_are_xwayland_grabs_allowed (MetaSettings *settings);
|
||||
|
||||
int meta_settings_get_xwayland_disable_extensions (MetaSettings *settings);
|
||||
|
||||
+gboolean meta_settings_are_xwayland_byte_swapped_clients_allowed (MetaSettings *settings);
|
||||
+
|
||||
gboolean meta_settings_is_privacy_screen_enabled (MetaSettings *settings);
|
||||
|
||||
void meta_settings_set_privacy_screen_enabled (MetaSettings *settings,
|
||||
diff --git a/src/backends/meta-settings.c b/src/backends/meta-settings.c
|
||||
index 2826ff98f..8d3d624cc 100644
|
||||
--- a/src/backends/meta-settings.c
|
||||
+++ b/src/backends/meta-settings.c
|
||||
@@ -75,6 +75,9 @@ struct _MetaSettings
|
||||
|
||||
/* A bitmask of MetaXwaylandExtension enum */
|
||||
int xwayland_disable_extensions;
|
||||
+
|
||||
+ /* Whether Xwayland should allow X11 clients from different endianess */
|
||||
+ gboolean xwayland_allow_byte_swapped_clients;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MetaSettings, meta_settings, G_TYPE_OBJECT)
|
||||
@@ -429,6 +432,15 @@ update_privacy_settings (MetaSettings *settings)
|
||||
settings);
|
||||
}
|
||||
|
||||
+static void
|
||||
+update_xwayland_allow_byte_swapped_clients (MetaSettings *settings)
|
||||
+{
|
||||
+
|
||||
+ settings->xwayland_allow_byte_swapped_clients =
|
||||
+ g_settings_get_flags (settings->wayland_settings,
|
||||
+ "xwayland-allow-byte-swapped-clients");
|
||||
+}
|
||||
+
|
||||
static void
|
||||
wayland_settings_changed (GSettings *wayland_settings,
|
||||
gchar *key,
|
||||
@@ -447,6 +459,10 @@ wayland_settings_changed (GSettings *wayland_settings,
|
||||
{
|
||||
update_xwayland_disable_extensions (settings);
|
||||
}
|
||||
+ else if (g_str_equal (key, "xwayland-allow-byte-swapped-clients"))
|
||||
+ {
|
||||
+ update_xwayland_allow_byte_swapped_clients (settings);
|
||||
+ }
|
||||
}
|
||||
|
||||
void
|
||||
@@ -470,6 +486,13 @@ meta_settings_get_xwayland_disable_extensions (MetaSettings *settings)
|
||||
return (settings->xwayland_disable_extensions);
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+meta_settings_are_xwayland_byte_swapped_clients_allowed (MetaSettings *settings)
|
||||
+{
|
||||
+
|
||||
+ return settings->xwayland_allow_byte_swapped_clients;
|
||||
+}
|
||||
+
|
||||
gboolean
|
||||
meta_settings_is_privacy_screen_enabled (MetaSettings *settings)
|
||||
{
|
||||
--
|
||||
2.39.0
|
||||
|
@ -1,88 +0,0 @@
|
||||
From 30ab9247f57b270d46b1c2c5c194f834bf8aafff Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Mon, 9 Jan 2023 15:40:03 +0100
|
||||
Subject: [PATCH 2/2] xwayland: Add support for byte-swapped clients
|
||||
|
||||
Instructs Xwayland to allow/disallow connections from X11 clients with a
|
||||
different endianess based on the "xwayland-allow-byte-swapped-clients"
|
||||
setting.
|
||||
|
||||
This option has no effect if Xwayland does not support the command
|
||||
option +byteswappedclients/-byteswappedclients.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2576
|
||||
---
|
||||
config.h.meson | 3 +++
|
||||
meson.build | 12 ++++++++++++
|
||||
src/wayland/meta-xwayland.c | 7 +++++++
|
||||
3 files changed, 22 insertions(+)
|
||||
|
||||
diff --git a/config.h.meson b/config.h.meson
|
||||
index c7724b24f..5f9ea696e 100644
|
||||
--- a/config.h.meson
|
||||
+++ b/config.h.meson
|
||||
@@ -109,3 +109,6 @@
|
||||
|
||||
/* Whether the Xwayland -terminate supports a delay */
|
||||
#mesondefine HAVE_XWAYLAND_TERMINATE_DELAY
|
||||
+
|
||||
+/* Whether the Xwayland supports +/-byteswappedclients */
|
||||
+#mesondefine HAVE_XWAYLAND_BYTE_SWAPPED_CLIENTS
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 07460c0f1..a9608a9fd 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -526,6 +526,7 @@ endif
|
||||
have_xwayland_initfd = false
|
||||
have_xwayland_listenfd = false
|
||||
have_xwayland_terminate_delay = false
|
||||
+have_xwayland_byte_swapped_clients = false
|
||||
if have_xwayland
|
||||
xwayland_dep = dependency('xwayland', required: false)
|
||||
|
||||
@@ -587,6 +588,16 @@ if have_xwayland
|
||||
if (have_xwayland_terminate_delay)
|
||||
cdata.set('HAVE_XWAYLAND_TERMINATE_DELAY', 1)
|
||||
endif
|
||||
+
|
||||
+ # For Xwayland +/-byteswappedclients usage
|
||||
+ if xwayland_dep.found()
|
||||
+ have_xwayland_byte_swapped_clients = xwayland_dep.get_variable('have_byteswappedclients',
|
||||
+ default_value: 'false') == 'true'
|
||||
+ endif
|
||||
+
|
||||
+ if (have_xwayland_byte_swapped_clients)
|
||||
+ cdata.set('HAVE_XWAYLAND_BYTE_SWAPPED_CLIENTS', 1)
|
||||
+ endif
|
||||
endif
|
||||
|
||||
have_xsetioerrorexithandler = false
|
||||
@@ -675,6 +686,7 @@ summary('Xwayland initfd', have_xwayland_initfd, section: 'Options')
|
||||
summary('Xwayland listenfd', have_xwayland_listenfd, section: 'Options')
|
||||
summary('Safe X11 I/O errors', have_xsetioerrorexithandler, section: 'Options')
|
||||
summary('Xwayland terminate delay', have_xwayland_terminate_delay, section: 'Options')
|
||||
+summary('Xwayland byte-swapped clients', have_xwayland_byte_swapped_clients, section: 'Options')
|
||||
|
||||
summary('Enabled', have_tests, section: 'Tests')
|
||||
summary('Core tests', have_core_tests, section: 'Tests')
|
||||
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
|
||||
index c9d94b2e3..8e8de1441 100644
|
||||
--- a/src/wayland/meta-xwayland.c
|
||||
+++ b/src/wayland/meta-xwayland.c
|
||||
@@ -880,6 +880,13 @@ meta_xwayland_start_xserver (MetaXWaylandManager *manager,
|
||||
args[i++] = "7";
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_XWAYLAND_BYTE_SWAPPED_CLIENTS
|
||||
+ if (meta_settings_are_xwayland_byte_swapped_clients_allowed (settings))
|
||||
+ args[i++] = "+byteswappedclients";
|
||||
+ else
|
||||
+ args[i++] = "-byteswappedclients";
|
||||
+#endif
|
||||
+
|
||||
if (meta_settings_is_experimental_feature_enabled (settings,
|
||||
META_EXPERIMENTAL_FEATURE_AUTOCLOSE_XWAYLAND))
|
||||
#ifdef HAVE_XWAYLAND_TERMINATE_DELAY
|
||||
--
|
||||
2.39.0
|
||||
|
27
mutter.spec
27
mutter.spec
@ -6,18 +6,18 @@
|
||||
%global pipewire_version 0.3.33
|
||||
%global lcms2_version 2.6
|
||||
%global colord_version 1.4.5
|
||||
%global mutter_api_version 11
|
||||
%global mutter_api_version 12
|
||||
|
||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||
|
||||
Name: mutter
|
||||
Version: 43.2
|
||||
Release: 2%{?dist}
|
||||
Version: 44~beta
|
||||
Release: 1%{?dist}
|
||||
Summary: Window and compositing manager based on Clutter
|
||||
|
||||
License: GPLv2+
|
||||
URL: http://www.gnome.org
|
||||
Source0: http://download.gnome.org/sources/%{name}/43/%{name}-%{tarball_version}.tar.xz
|
||||
Source0: http://download.gnome.org/sources/%{name}/44/%{name}-%{tarball_version}.tar.xz
|
||||
|
||||
# Work-around for OpenJDK's compliance test
|
||||
Patch0: 0001-window-actor-Special-case-shaped-Java-windows.patch
|
||||
@ -28,17 +28,6 @@ Patch1: 0001-Revert-build-Do-not-provide-built-sources-as-libmutt.patch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1936991
|
||||
Patch2: mutter-42.alpha-disable-tegra.patch
|
||||
|
||||
# Backports that will be part of 43.3
|
||||
Patch3: post-43.2-backports.patch
|
||||
|
||||
# Only on F38 and later
|
||||
%if 0%{?fedora} >= 38
|
||||
# Add Xwayland byte-swapped clients support
|
||||
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2785
|
||||
Patch4: 0001-settings-Add-Xwayland-byte-swapped-clients.patch
|
||||
Patch5: 0002-xwayland-Add-support-for-byte-swapped-clients.patch
|
||||
%endif
|
||||
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
|
||||
BuildRequires: pkgconfig(sm)
|
||||
BuildRequires: pkgconfig(libwacom)
|
||||
@ -155,17 +144,14 @@ the functionality of the installed %{name} package.
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
# Mutter contains a .desktop file so we just need to validate it
|
||||
desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
|
||||
|
||||
%files -f %{name}.lang
|
||||
%license COPYING
|
||||
%doc NEWS
|
||||
%{_bindir}/mutter
|
||||
%{_datadir}/applications/*.desktop
|
||||
%{_libdir}/lib*.so.*
|
||||
%{_libdir}/mutter-%{mutter_api_version}/
|
||||
%{_libexecdir}/mutter-restart-helper
|
||||
%{_libexecdir}/mutter-x11-frames
|
||||
%{_datadir}/GConf/gsettings/mutter-schemas.convert
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.mutter.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.mutter.wayland.gschema.xml
|
||||
@ -184,6 +170,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/mutter-%{mutter_api_version}/tests
|
||||
|
||||
%changelog
|
||||
* Tue Feb 14 2023 Florian Müllner <fmuellner@redhat.com> - 44~beta-1
|
||||
- Update to 44.beta
|
||||
|
||||
* Fri Feb 10 2023 Jonas Ådahl <jadahl@redhat.com> - 43.2-2
|
||||
- Backport patches on the gnome-43 branch
|
||||
|
||||
|
@ -1,111 +0,0 @@
|
||||
From 926567d5533a56ec4b609d814c0bbaf234901ba3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Thu, 17 Nov 2022 10:13:45 +0100
|
||||
Subject: [PATCH 1/2] Revert "clutter/actor: Avoid some stage view updates"
|
||||
|
||||
This reverts commit 7e7a639cc5132cf3355e861235f325540fe56548.
|
||||
---
|
||||
clutter/clutter/clutter-actor.c | 30 +++++++++++++++++++++++++++++-
|
||||
1 file changed, 29 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
|
||||
index 009488a069..4d1856ef77 100644
|
||||
--- a/clutter/clutter/clutter-actor.c
|
||||
+++ b/clutter/clutter/clutter-actor.c
|
||||
@@ -1484,6 +1484,22 @@ clutter_actor_update_map_state (ClutterActor *self,
|
||||
#endif
|
||||
}
|
||||
|
||||
+static void
|
||||
+queue_update_stage_views (ClutterActor *actor)
|
||||
+{
|
||||
+ while (actor && !actor->priv->needs_update_stage_views)
|
||||
+ {
|
||||
+ actor->priv->needs_update_stage_views = TRUE;
|
||||
+
|
||||
+ /* We don't really need to update the stage-views of the actors up the
|
||||
+ * hierarchy, we set the flag anyway though so we can avoid traversing
|
||||
+ * the whole scenegraph when looking for actors which need an update
|
||||
+ * in clutter_actor_finish_layout().
|
||||
+ */
|
||||
+ actor = actor->priv->parent;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void queue_update_paint_volume (ClutterActor *actor);
|
||||
|
||||
static void
|
||||
@@ -1528,6 +1544,18 @@ clutter_actor_real_map (ClutterActor *self)
|
||||
|
||||
if (priv->unmapped_paint_branch_counter == 0)
|
||||
{
|
||||
+ /* We skip unmapped actors when updating the stage-views list, so if
|
||||
+ * an actors list got invalidated while it was unmapped make sure to
|
||||
+ * set priv->needs_update_stage_views to TRUE for all actors up the
|
||||
+ * hierarchy now.
|
||||
+ */
|
||||
+ if (priv->needs_update_stage_views)
|
||||
+ {
|
||||
+ /* Avoid the early return in queue_update_stage_views() */
|
||||
+ priv->needs_update_stage_views = FALSE;
|
||||
+ queue_update_stage_views (self);
|
||||
+ }
|
||||
+
|
||||
/* Avoid the early return in clutter_actor_queue_relayout() */
|
||||
priv->needs_width_request = FALSE;
|
||||
priv->needs_height_request = FALSE;
|
||||
@@ -2479,7 +2507,7 @@ clutter_actor_notify_if_geometry_changed (ClutterActor *self,
|
||||
static void
|
||||
absolute_geometry_changed (ClutterActor *actor)
|
||||
{
|
||||
- actor->priv->needs_update_stage_views = TRUE;
|
||||
+ queue_update_stage_views (actor);
|
||||
}
|
||||
|
||||
static ClutterActorTraverseVisitFlags
|
||||
--
|
||||
2.38.1
|
||||
|
||||
|
||||
From c0f8a20fbd25d4efa1aae85505eb46ab987f9975 Mon Sep 17 00:00:00 2001
|
||||
From: John Wudrick <prochronism@gmail.com>
|
||||
Date: Fri, 4 Nov 2022 02:35:12 +0000
|
||||
Subject: [PATCH 2/2] window: Update ongoing edge resistance flags with input
|
||||
|
||||
Fix a recent regression where edge resistance flags where no
|
||||
longer updated during the move/resize operation.
|
||||
|
||||
Fixes: bd6b14a843 (window: Throttle window move grab updates)
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2492
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2687>
|
||||
|
||||
|
||||
(cherry picked from commit d889aad7cf76f786208c446ce195d4e26f9c0a8d)
|
||||
---
|
||||
src/core/window.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/core/window.c b/src/core/window.c
|
||||
index d376017166..3b35ee021e 100644
|
||||
--- a/src/core/window.c
|
||||
+++ b/src/core/window.c
|
||||
@@ -6021,6 +6021,7 @@ queue_update_move (MetaWindow *window,
|
||||
MetaCompositor *compositor;
|
||||
MetaLaters *laters;
|
||||
|
||||
+ window->display->grab_last_edge_resistance_flags = flags;
|
||||
window->display->grab_latest_motion_x = x;
|
||||
window->display->grab_latest_motion_y = y;
|
||||
|
||||
@@ -6166,6 +6167,7 @@ queue_update_resize (MetaWindow *window,
|
||||
MetaCompositor *compositor;
|
||||
MetaLaters *laters;
|
||||
|
||||
+ window->display->grab_last_edge_resistance_flags = flags;
|
||||
window->display->grab_latest_motion_x = x;
|
||||
window->display->grab_latest_motion_y = y;
|
||||
|
||||
--
|
||||
2.38.1
|
||||
|
File diff suppressed because it is too large
Load Diff
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (mutter-43.2.tar.xz) = ae6afccdf6af99197072afabf0900e1a72f38acfa6c4d039e8db03d21e89513f8828f29eb292ca9dfdec64388dcc4a93db64139e3af66706aaac81461b5da96d
|
||||
SHA512 (mutter-44.beta.tar.xz) = 26520492d563401961abd42cde3ce140b22994615f458e03b9b5093678914cbe9da9cffc6d715d09c3da8e64297bfd5db21ee5bb466c306a941c95a19af1bac2
|
||||
|
Loading…
Reference in New Issue
Block a user