Update to 47.rc

Resolves: https://issues.redhat.com/browse/RHEL-52812
This commit is contained in:
Florian Müllner 2024-08-05 14:35:22 +02:00
parent 39ca527502
commit f66da4803a
No known key found for this signature in database
8 changed files with 73 additions and 262 deletions

2
.gitignore vendored
View File

@ -222,3 +222,5 @@ mutter-2.31.5.tar.bz2
/mutter-46.1.tar.xz
/mutter-46.3.tar.xz
/mutter-47.alpha.tar.xz
/mutter-47.beta.tar.xz
/mutter-47.rc.tar.xz

View File

@ -0,0 +1,63 @@
From 9ae5ee2ce58f6dcbadeac05ba05be0c329184c16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 9 Sep 2024 19:59:56 +0200
Subject: [PATCH] Revert "Replace deprecated g_qsort_with_data with
g_sort_array"
This reverts commit 7610973a948bce0b2aea8e1a8e2fb01e00d3526f.
---
clutter/clutter/clutter-box-layout.c | 6 +++---
clutter/clutter/clutter-grid-layout.c | 6 +++---
meson.build | 2 +-
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/clutter/clutter/clutter-box-layout.c b/clutter/clutter/clutter-box-layout.c
index af814f17dd..12aaa2091b 100644
--- a/clutter/clutter/clutter-box-layout.c
+++ b/clutter/clutter/clutter-box-layout.c
@@ -588,9 +588,9 @@ distribute_natural_allocation (float extra_space,
*/
/* Sort descending by gap and position. */
- g_sort_array (spreading,
- n_requested_sizes, sizeof (unsigned int),
- compare_gap, sizes);
+ g_qsort_with_data (spreading,
+ n_requested_sizes, sizeof (unsigned int),
+ compare_gap, sizes);
/* Distribute available space.
* This master piece of a loop was conceived by Behdad Esfahbod.
diff --git a/clutter/clutter/clutter-grid-layout.c b/clutter/clutter/clutter-grid-layout.c
index 22f9cf7ec7..8a2c485c23 100644
--- a/clutter/clutter/clutter-grid-layout.c
+++ b/clutter/clutter/clutter-grid-layout.c
@@ -971,9 +971,9 @@ distribute_natural_allocation (gint extra_space,
*/
/* Sort descending by gap and position. */
- g_sort_array (spreading,
- n_requested_sizes, sizeof (guint),
- compare_gap, sizes);
+ g_qsort_with_data (spreading,
+ n_requested_sizes, sizeof (guint),
+ compare_gap, sizes);
/* Distribute available space.
* This master piece of a loop was conceived by Behdad Esfahbod.
diff --git a/meson.build b/meson.build
index 565e3729fa..68c909b408 100644
--- a/meson.build
+++ b/meson.build
@@ -16,7 +16,7 @@ mutter_builddir = meson.current_build_dir()
lcms2_req = '>= 2.6'
colord_req = '>= 1.4.5'
fribidi_req = '>= 1.0.0'
-glib_req = '>= 2.81.1'
+glib_req = '>= 2.75.1'
gi_req = '>= 0.9.5'
graphene_req = '>= 1.10.2'
gtk3_req = '>= 3.19.8'
--
2.46.0

View File

@ -1,62 +0,0 @@
From d1be108c729331aa169a2a0397925c7b17507857 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 20 Oct 2023 15:44:29 +0800
Subject: [PATCH 1/4] x11-display: Make subwindow redirection call mode
specific
This means that for X11 sessions we'll do it before any windows are
mapped, and before any plugin implementation is started. Doing it before
a plugin is started is important, because things that the plugin does
during startup can have consequences on how compositing on Xorg works.
For the Xwayland case, we'll do it relatively in the setup phase. It
appears to have been harmless to do it later in the post-opened signal,
but there is no harm in doing it as one of the earlier steps.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3089
---
src/compositor/meta-compositor-x11.c | 2 ++
src/wayland/meta-xwayland.c | 1 +
src/x11/meta-x11-display.c | 1 -
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c
index cbc48bcefc..760d6fdddc 100644
--- a/src/compositor/meta-compositor-x11.c
+++ b/src/compositor/meta-compositor-x11.c
@@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor,
compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay);
+ meta_x11_display_redirect_windows (x11_display, display);
+
return TRUE;
}
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 3366f11adc..db0a4a271a 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -1179,6 +1179,7 @@ on_x11_display_setup (MetaDisplay *display,
{
MetaX11Display *x11_display = meta_display_get_x11_display (display);
+ meta_x11_display_redirect_windows (x11_display, display);
meta_xwayland_init_dnd (x11_display);
meta_xwayland_init_xrandr (manager, x11_display);
}
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index 6b8d7faf55..6de0511dc6 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -308,7 +308,6 @@ on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *display)
{
meta_display_manage_all_xwindows (display);
- meta_x11_display_redirect_windows (x11_display, display);
}
static void
--
2.44.0.501.g19981daefd.dirty

View File

@ -1,112 +0,0 @@
From c6a74d8f4161440a530bea5ca3b5cf199beb046b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Fri, 20 Oct 2023 17:03:31 +0800
Subject: [PATCH 2/4] display: Move X11 initial focus handling to
MetaX11Display
It's X11 specific, so put it in the X11 display manager object.
---
src/core/display.c | 34 ----------------------------------
src/x11/meta-x11-display.c | 25 +++++++++++++++++++++++++
2 files changed, 25 insertions(+), 34 deletions(-)
diff --git a/src/core/display.c b/src/core/display.c
index bd09082ed2..ddd475f457 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -945,9 +945,6 @@ meta_display_new (MetaContext *context,
MetaDisplay *display;
MetaDisplayPrivate *priv;
guint32 timestamp;
-#ifdef HAVE_X11_CLIENT
- Window old_active_xwindow = None;
-#endif
MetaMonitorManager *monitor_manager;
MetaSettings *settings;
MetaInputCapture *input_capture;
@@ -1065,14 +1062,6 @@ meta_display_new (MetaContext *context,
display->last_focus_time = timestamp;
display->last_user_time = timestamp;
-#ifdef HAVE_X11
- if (!meta_is_wayland_compositor ())
- meta_prop_get_window (display->x11_display,
- display->x11_display->xroot,
- display->x11_display->atom__NET_ACTIVE_WINDOW,
- &old_active_xwindow);
-#endif
-
if (!meta_compositor_manage (display->compositor, error))
{
g_object_unref (display);
@@ -1093,30 +1082,7 @@ meta_display_new (MetaContext *context,
g_signal_connect (display->gesture_tracker, "state-changed",
G_CALLBACK (gesture_tracker_state_changed), display);
- /* We know that if mutter is running as a Wayland compositor,
- * we start out with no windows.
- */
-#ifdef HAVE_X11_CLIENT
- if (!meta_is_wayland_compositor ())
- meta_display_manage_all_xwindows (display);
-
- if (old_active_xwindow != None)
- {
- MetaWindow *old_active_window;
- old_active_window = meta_x11_display_lookup_x_window (display->x11_display,
- old_active_xwindow);
- if (old_active_window)
- meta_window_focus (old_active_window, timestamp);
- else
- meta_display_unset_input_focus (display, timestamp);
- }
- else
- {
- meta_display_unset_input_focus (display, timestamp);
- }
-#else
meta_display_unset_input_focus (display, timestamp);
-#endif
g_signal_connect (stage, "notify::is-grabbed",
G_CALLBACK (on_is_grabbed_changed), display);
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index 6de0511dc6..267fa1b835 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -307,7 +307,32 @@ static void
on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *display)
{
+ Window old_active_xwindow = None;
+
+ if (!meta_is_wayland_compositor ())
+ {
+ meta_prop_get_window (display->x11_display,
+ display->x11_display->xroot,
+ display->x11_display->atom__NET_ACTIVE_WINDOW,
+ &old_active_xwindow);
+ }
+
meta_display_manage_all_xwindows (display);
+
+ if (old_active_xwindow != None)
+ {
+ MetaWindow *old_active_window;
+
+ old_active_window = meta_x11_display_lookup_x_window (x11_display,
+ old_active_xwindow);
+ if (old_active_window)
+ {
+ uint32_t timestamp;
+
+ timestamp = display->x11_display->timestamp;
+ meta_window_focus (old_active_window, timestamp);
+ }
+ }
}
static void
--
2.44.0.501.g19981daefd.dirty

View File

@ -1,33 +0,0 @@
From cc450c372358bc32960102ffdb2769a9f70cb6d5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 17 Oct 2023 15:46:00 +0800
Subject: [PATCH 3/4] tests/x11: Fix replace test to catch the second instance
failing
The test never noticed that the second instance never actually managed
to load; it was looping a multi second retry session trying to redirect
windows, meaning it failed to catch https://gitlab.gnome.org/GNOME/mutter/-/issues/3089.
Fix the test so that it always waits for mutter to finish loading
successfully, just like it waits fro the first.
---
src/tests/x11-test.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/tests/x11-test.sh b/src/tests/x11-test.sh
index 59e460fc33..d95b2460f6 100755
--- a/src/tests/x11-test.sh
+++ b/src/tests/x11-test.sh
@@ -34,6 +34,9 @@ echo \# Launched with pid $MUTTER2_PID
MUTTER2_PID=$!
wait $MUTTER1_PID
+echo \# Waiting for the second mutter to finish loading
+gdbus wait --session org.gnome.Mutter.IdleMonitor
+
sleep 2
echo \# Terminating clients > /dev/stderr
--
2.44.0.501.g19981daefd.dirty

View File

@ -1,41 +0,0 @@
From 5b589b298680bd394dd6a1ee7bef3d7def1a96c8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Mon, 23 Oct 2023 14:47:33 +0800
Subject: [PATCH 4/4] display: Rename mandatory X11 initialization function
Simply to make it clear that the renamed function is specific to a
particular X11 initialization mode (mandatory Xwayland), put that in the
name, so that it's easier to understand when this function is relevant.
---
src/core/display.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/core/display.c b/src/core/display.c
index ddd475f457..e4f623ff9d 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -910,9 +910,9 @@ meta_display_init_x11 (MetaDisplay *display,
}
static void
-on_x11_initialized (MetaDisplay *display,
- GAsyncResult *result,
- gpointer user_data)
+on_mandatory_x11_initialized (MetaDisplay *display,
+ GAsyncResult *result,
+ gpointer user_data)
{
g_autoptr (GError) error = NULL;
@@ -1035,7 +1035,7 @@ meta_display_new (MetaContext *context,
if (x11_display_policy == META_X11_DISPLAY_POLICY_MANDATORY)
{
meta_display_init_x11 (display, NULL,
- (GAsyncReadyCallback) on_x11_initialized,
+ (GAsyncReadyCallback) on_mandatory_x11_initialized,
NULL);
}
#endif /* HAVE_XWAYLAND */
--
2.44.0.501.g19981daefd.dirty

View File

@ -1,25 +1,24 @@
%global glib_version 2.75.1
%global gtk3_version 3.19.8
%global gtk4_version 4.0.0
%global gsettings_desktop_schemas_version 40~alpha
%global json_glib_version 0.12.0
%global gsettings_desktop_schemas_version 47~beta
%global libinput_version 1.19.0
%global pipewire_version 0.3.33
%global lcms2_version 2.6
%global colord_version 1.4.5
%global libei_version 1.0.0
%global libei_version 1.0.901
%global mutter_api_version 15
%global tarball_version %%(echo %{version} | tr '~' '.')
Name: mutter
Version: 47.alpha
Version: 47~rc
Release: %autorelease
Summary: Window and compositing manager based on Clutter
License: GPLv2+
URL: http://www.gnome.org
Source0: http://download.gnome.org/sources/%{name}/45/%{name}-%{tarball_version}.tar.xz
Source0: http://download.gnome.org/sources/%{name}/47/%{name}-%{tarball_version}.tar.xz
# Work-around for OpenJDK's compliance test
Patch: 0001-window-actor-Special-case-shaped-Java-windows.patch
@ -38,11 +37,8 @@ Patch: 0001-Revert-x11-window-Compare-input-shape-to-client-rect.patch
Patch: 0002-Revert-x11-window-Update-comment-and-variable-name-t.patch
Patch: 0003-Revert-x11-window-Use-correct-bounding-rect-to-deter.patch
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3329
Patch: 0001-x11-display-Make-subwindow-redirection-call-mode-spe.patch
Patch: 0002-display-Move-X11-initial-focus-handling-to-MetaX11Di.patch
Patch: 0003-tests-x11-Fix-replace-test-to-catch-the-second-insta.patch
Patch: 0004-display-Rename-mandatory-X11-initialization-function.patch
# Revert deprecation fix to avoid newer glib requirement
Patch: 0001-Revert-Replace-deprecated-g_qsort_with_data-with-g_s.patch
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
BuildRequires: pkgconfig(sm)
@ -79,7 +75,7 @@ BuildRequires: cvt
# Bootstrap requirements
BuildRequires: gettext-devel git-core
BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= %{gsettings_desktop_schemas_version}
BuildRequires: gsettings-desktop-schemas-devel >= %{gsettings_desktop_schemas_version}
BuildRequires: pkgconfig(gnome-settings-daemon)
BuildRequires: meson
BuildRequires: pkgconfig(gbm)
@ -95,7 +91,6 @@ BuildRequires: pkgconfig(colord) >= %{colord_version}
BuildRequires: pkgconfig(libei-1.0) >= %{libei_version}
BuildRequires: pkgconfig(libeis-1.0) >= %{libei_version}
BuildRequires: pkgconfig(json-glib-1.0) >= %{json_glib_version}
BuildRequires: pkgconfig(libinput) >= %{libinput_version}
BuildRequires: pkgconfig(xwayland)
@ -105,7 +100,6 @@ Requires: control-center-filesystem
Requires: gsettings-desktop-schemas%{?_isa} >= %{gsettings_desktop_schemas_version}
Requires: gnome-settings-daemon
Requires: gtk4%{?_isa} >= %{gtk4_version}
Requires: json-glib%{?_isa} >= %{json_glib_version}
Requires: libinput%{?_isa} >= %{libinput_version}
Requires: pipewire%{_isa} >= %{pipewire_version}
Requires: startup-notification

View File

@ -1 +1 @@
SHA512 (mutter-47.alpha.tar.xz) = 5f296aa3fa7739e9ff855e58e3bb8edf2fb869f4ce299982dca948b30ff1cb21adbcf34a18bb78d6e15e59a4451bc1130d985012daecebe0e4bbb0f8e3aa7191
SHA512 (mutter-47.rc.tar.xz) = 5da95bab925ca8b07860647e9a89152435cde13f4ea66f71bc3c320cc3de0d1d3f79763bc1fa17f124f543cf536232088118944857cc450e6e69959fb868f67c