import CS mutter-40.9-28.el9

This commit is contained in:
eabdullin 2025-09-15 12:25:40 +00:00
parent 6208210bb9
commit 9566b3d221
7 changed files with 620 additions and 1 deletions

View File

@ -0,0 +1,38 @@
From 5471f40995b71cf838951a9e2fb2672e64aec66d Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Thu, 24 Apr 2025 16:41:32 +0200
Subject: [PATCH] backends: Avoid disabling touchscreen outside of touch mode
The reasons to disable touchscreen on dpms off apply mostly to
devices where the touch mode is useful, and not so much outside of
those.
---
src/backends/meta-input-mapper.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/backends/meta-input-mapper.c b/src/backends/meta-input-mapper.c
index a0a4b8a..a8d7a10 100644
--- a/src/backends/meta-input-mapper.c
+++ b/src/backends/meta-input-mapper.c
@@ -695,6 +695,7 @@ input_mapper_power_save_mode_changed_cb (MetaMonitorManager *monitor_manager,
{
ClutterInputDevice *device;
MetaLogicalMonitor *logical_monitor;
+ ClutterSeat *seat;
MetaMonitor *builtin;
MetaPowerSave power_save_mode;
gboolean on;
@@ -718,6 +719,10 @@ input_mapper_power_save_mode_changed_cb (MetaMonitorManager *monitor_manager,
if (!device)
return;
+ seat = clutter_input_device_get_seat (device);
+ if (!clutter_seat_get_touch_mode (seat))
+ return;
+
g_signal_emit (mapper, signals[DEVICE_ENABLED], 0, device, on);
}
--
2.49.0

View File

@ -0,0 +1,85 @@
From f606a4424a5afc71672566b15f56971bfb7fa4db Mon Sep 17 00:00:00 2001
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Fri, 16 Feb 2024 16:57:55 +0800
Subject: [PATCH] compositor/x11: Sync again at the end of before_paint
The existing comment tells us this is necessary:
> there may be drawing between the last damage event and the
> XDamageSubtract() that needs to be flushed as well.
But the commit message for 551101c65cda also tells us that
synchronization is necessary before-update. Assuming both are correct
then it needs to be done in both places.
I did try optimizing out the second sync to only do it if damage
arrived during the update, but that doesn't seem to be the issue.
The damage event is arriving before the update starts and it's some
secondary changes within the damage region running late that need
flushing. So this means the client is reporting damage more frequently
than the frame rate and we're ignoring the secondary damage reports
for efficiency (XDamageReportBoundingBox), which is still a good thing.
Fixes: 551101c65cda ("compositor-x11: Move synchronization to before-update")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2880
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3590>
---
src/compositor/meta-compositor-x11.c | 30 ++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c
index 1d0ba4c..8bfd4c1 100644
--- a/src/compositor/meta-compositor-x11.c
+++ b/src/compositor/meta-compositor-x11.c
@@ -326,9 +326,7 @@ out:
}
static void
-on_before_update (ClutterStage *stage,
- ClutterStageView *stage_view,
- MetaCompositor *compositor)
+maybe_do_sync (MetaCompositor *compositor)
{
MetaCompositorX11 *compositor_x11 = META_COMPOSITOR_X11 (compositor);
@@ -363,6 +361,14 @@ on_before_update (ClutterStage *stage,
}
}
+static void
+on_before_update (ClutterStage *stage,
+ ClutterStageView *stage_view,
+ MetaCompositor *compositor)
+{
+ maybe_do_sync (compositor);
+}
+
static void
on_after_update (ClutterStage *stage,
ClutterStageView *stage_view,
@@ -390,6 +396,22 @@ meta_compositor_x11_before_paint (MetaCompositor *compositor,
parent_class = META_COMPOSITOR_CLASS (meta_compositor_x11_parent_class);
parent_class->before_paint (compositor, stage_view);
+
+ /* We must sync after MetaCompositor's before_paint because that's the final
+ * time XDamageSubtract may happen before painting (when it calls
+ * meta_window_actor_x11_before_paint -> handle_updates ->
+ * meta_surface_actor_x11_handle_updates). If a client was to redraw between
+ * the last damage event and XDamageSubtract, and the bounding box of the
+ * region didn't grow, then we will not receive a new damage report for it
+ * (because XDamageReportBoundingBox). Then if we haven't synchronized again
+ * and the same region doesn't change on subsequent frames, we have lost some
+ * part of the update from the client. So to ensure the correct pixels get
+ * composited we must sync at least once between XDamageSubtract and
+ * compositing, which is here. More related documentation can be found in
+ * maybe_do_sync.
+ */
+
+ maybe_do_sync (compositor);
}
static void
--
GitLab

View File

@ -0,0 +1,104 @@
From 9a9d5744143846f2fbc5da983070592217a344eb Mon Sep 17 00:00:00 2001
From: Sebastian Wick <sebastian.wick@redhat.com>
Date: Fri, 28 Jan 2022 15:49:11 +0100
Subject: [PATCH 1/3] xwayland: Relax the ownership requirements of
/tmp/.X11-unix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The `ensure_x11_unix_perms` function tries to detect systems on which
/tmp/.X11-unix is owned by neither root nor ourselves because in that
case the owner can take over the socket we create (symlink races are
fixed in linux 800179c9b8a1e796e441674776d11cd4c05d61d7). This should
not be possible in the first place and systems should come with some way
to ensure that's the case (systemd-tmpfiles, polyinstantiationm …). That
check however only works if we see the root user namespace which might
not be the case when running in e.g. toolbx.
This change relaxes the requirements such that in the root user
namespace we detect and abort if a vulnerable system is detected but
unconditionally run in toolbx.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2261>
(cherry picked from commit abadb291325e003c4afa054437303ee5b66af8a0)
---
src/wayland/meta-xwayland.c | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index c5a9303df9..2ca555ad65 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -59,6 +59,7 @@
#define XWAYLAND_LISTENFD "-listen"
#endif
+#define TMP_UNIX_DIR "/tmp"
#define X11_TMP_UNIX_DIR "/tmp/.X11-unix"
#define X11_TMP_UNIX_PATH "/tmp/.X11-unix/X"
@@ -651,9 +652,18 @@ meta_xwayland_override_display_number (int number)
static gboolean
ensure_x11_unix_perms (GError **error)
{
- struct stat buf;
-
- if (lstat (X11_TMP_UNIX_DIR, &buf) != 0)
+ /* Try to detect systems on which /tmp/.X11-unix is owned by neither root nor
+ * ourselves because in that case the owner can take over the socket we create
+ * (symlink races are fixed in linux 800179c9b8a1). This should not be
+ * possible in the first place and systems should come with some way to ensure
+ * that's the case (systemd-tmpfiles, polyinstantiation …).
+ *
+ * That check however only works if we see the root user namespace which might
+ * not be the case when running in e.g. toolbx (root and other user are all
+ * mapped to overflowuid). */
+ struct stat x11_tmp, tmp;
+
+ if (lstat (X11_TMP_UNIX_DIR, &x11_tmp) != 0)
{
g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno),
"Failed to check permissions on directory \"%s\": %s",
@@ -661,8 +671,18 @@ ensure_x11_unix_perms (GError **error)
return FALSE;
}
- /* If the directory already exists, it should belong to root or ourselves ... */
- if (buf.st_uid != 0 && buf.st_uid != getuid ())
+ if (lstat (TMP_UNIX_DIR, &tmp) != 0)
+ {
+ g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno),
+ "Failed to check permissions on directory \"%s\": %s",
+ TMP_UNIX_DIR, g_strerror (errno));
+ return FALSE;
+ }
+
+ /* If the directory already exists, it should belong to the same
+ * user as /tmp or belong to ourselves ...
+ * (if /tmp is not owned by root or ourselves we're in deep trouble) */
+ if (x11_tmp.st_uid != tmp.st_uid && x11_tmp.st_uid != getuid ())
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
"Wrong ownership for directory \"%s\"",
@@ -671,7 +691,7 @@ ensure_x11_unix_perms (GError **error)
}
/* ... be writable ... */
- if ((buf.st_mode & 0022) != 0022)
+ if ((x11_tmp.st_mode & 0022) != 0022)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
"Directory \"%s\" is not writable",
@@ -680,7 +700,7 @@ ensure_x11_unix_perms (GError **error)
}
/* ... and have the sticky bit set */
- if ((buf.st_mode & 01000) != 01000)
+ if ((x11_tmp.st_mode & 01000) != 01000)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
"Directory \"%s\" is missing the sticky bit",
--
2.50.0

View File

@ -0,0 +1,31 @@
From 1a5015dff70c2465e0a8a3df77ace8f0fbb3b20a Mon Sep 17 00:00:00 2001
From: Nathan Pratta Teodosio <nathan.teodosio@canonical.com>
Date: Thu, 29 Aug 2024 09:25:13 +0200
Subject: [PATCH 2/3] Be more verbose about permissions of /tmp/{,.X11-unix}.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3984>
(cherry picked from commit 4dbaa8178116649076bf542a5eaf42d4ce804e5b)
---
src/wayland/meta-xwayland.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 2ca555ad65..7db122e8da 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -685,8 +685,10 @@ ensure_x11_unix_perms (GError **error)
if (x11_tmp.st_uid != tmp.st_uid && x11_tmp.st_uid != getuid ())
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
- "Wrong ownership for directory \"%s\"",
- X11_TMP_UNIX_DIR);
+ "Wrong ownership for directory \"%s\", owned by %d but "
+ "should be same as %s (owned by (%d)) or %d",
+ X11_TMP_UNIX_DIR, x11_tmp.st_uid, TMP_UNIX_DIR, tmp.st_uid,
+ getuid ());
return FALSE;
}
--
2.50.0

View File

@ -0,0 +1,34 @@
From 58652bcf5fc379fd07d2cf9cc2b23d469df33f20 Mon Sep 17 00:00:00 2001
From: Nathan Pratta Teodosio <nathan.teodosio@canonical.com>
Date: Fri, 13 Jun 2025 11:24:24 +0200
Subject: [PATCH 3/3] Use 'access' instead of checking permission modes for
/tmp/.X11-unix/.
The previous version was missing the 200 case with the directory owned by the
current user.
C.f. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7857,
https://launchpad.net/bugs/2069564.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3984>
(cherry picked from commit 36ca36b48e7efd6846fac7533a4f2e97959a8ad6)
---
src/wayland/meta-xwayland.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c
index 7db122e8da..c2e094e43c 100644
--- a/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c
@@ -693,7 +693,7 @@ ensure_x11_unix_perms (GError **error)
}
/* ... be writable ... */
- if ((x11_tmp.st_mode & 0022) != 0022)
+ if (access (X11_TMP_UNIX_DIR, W_OK) != 0)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
"Directory \"%s\" is not writable",
--
2.50.0

View File

@ -0,0 +1,295 @@
From 03c65a2bce1f021c8c387cc5ed7e8c14c18a29f5 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Fri, 2 Jun 2023 14:42:51 +0200
Subject: [PATCH 1/5] cogl/gl-framebuffer: Fix spurious trailing spaces
Purely cosmetic fix, no functional change.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
(cherry picked from commit 5a83e8ef8250526a40e8e69c6398f990ab482b2f)
---
cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 12 ++++++------
cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 12 ++++++------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
index d6609bb207..8d76f1578b 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
@@ -72,32 +72,32 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
GLenum attachment, pname;
size_t offset;
} params[] = {
- {
+ {
.attachment = GL_BACK_LEFT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
.offset = offsetof (CoglFramebufferBits, red),
},
- {
+ {
.attachment = GL_BACK_LEFT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
.offset = offsetof (CoglFramebufferBits, green),
},
- {
+ {
.attachment = GL_BACK_LEFT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
.offset = offsetof (CoglFramebufferBits, blue),
},
- {
+ {
.attachment = GL_BACK_LEFT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
.offset = offsetof (CoglFramebufferBits, alpha),
},
- {
+ {
.attachment = GL_DEPTH,
.pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
.offset = offsetof (CoglFramebufferBits, depth),
},
- {
+ {
.attachment = GL_STENCIL,
.pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
.offset = offsetof (CoglFramebufferBits, stencil),
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
index c8db6a23a2..1ffc1d5350 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
@@ -82,32 +82,32 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
GLenum attachment, pname;
size_t offset;
} params[] = {
- {
+ {
.attachment = GL_COLOR_ATTACHMENT0,
.pname = GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE,
.offset = offsetof (CoglFramebufferBits, red),
},
- {
+ {
.attachment = GL_COLOR_ATTACHMENT0,
.pname = GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE,
.offset = offsetof (CoglFramebufferBits, green),
},
- {
+ {
.attachment = GL_COLOR_ATTACHMENT0,
.pname = GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE,
.offset = offsetof (CoglFramebufferBits, blue),
},
- {
+ {
.attachment = GL_COLOR_ATTACHMENT0,
.pname = GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE,
.offset = offsetof (CoglFramebufferBits, alpha),
},
- {
+ {
.attachment = GL_DEPTH_ATTACHMENT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE,
.offset = offsetof (CoglFramebufferBits, depth),
},
- {
+ {
.attachment = GL_STENCIL_ATTACHMENT,
.pname = GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE,
.offset = offsetof (CoglFramebufferBits, stencil),
--
2.49.0
From deee9d15b7f8e9595e10e43e815c585b42396f07 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Fri, 2 Jun 2023 11:54:58 +0200
Subject: [PATCH 2/5] cogl/gl-framebuffer: Fix inverted test in
ensure_bits_initialized()
Cogl's feature COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS is required
to use the GL_FRAMEBUFFER_ATTACHMENT_* queries.
Unfortunately, the test for the availability of the private feature is
actually inverted in ensure_bits_initialized() which causes that whole
portion of code to be ignored, falling back to the glGetIntegerv()
method which isn't supported in core profiles.
As Mesa has recently started to be more strict about these, this causes
the CI tests to fail in mutter.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
(cherry picked from commit a2203df9f43b9e501a972d23b3d5584005c03ce6)
---
cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
index 1ffc1d5350..75a8b0c1fe 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
@@ -76,7 +76,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
COGL_FRAMEBUFFER_STATE_BIND);
#ifdef HAVE_COGL_GL
- if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
+ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
{
const struct {
GLenum attachment, pname;
--
2.49.0
From a40d29a51382591d8e319af0b448d57510dacc86 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Mon, 5 Jun 2023 10:31:38 +0200
Subject: [PATCH 3/5] cogl/gl-framebuffer: Match testing features
The function ensure_bits_initialized() in cogl-gl-framebuffer-fbo.c
checks for COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS whereas the same
in cogl-gl-framebuffer-back.c simply checks for the driver being
COGL_DRIVER_GL3.
Change the later to use the COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS
flag as well.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
(cherry picked from commit fad240f437d6b11f664c9c09aecabe5f5e703eca)
---
cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
index 8d76f1578b..f6a17e8f07 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
@@ -66,7 +66,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
COGL_FRAMEBUFFER_STATE_BIND);
#ifdef HAVE_COGL_GL
- if (ctx->driver == COGL_DRIVER_GL3)
+ if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
{
const struct {
GLenum attachment, pname;
--
2.49.0
From 2d183a8254fb3de388db78d53c282416add20905 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Fri, 2 Jun 2023 14:27:29 +0200
Subject: [PATCH 4/5] cogl/gl-framebuffer: Fail without QUERY_FRAMEBUFFER_BITS
glGetIntegerv() with GL_RED_BITS/GL_GREEN_BITS/GL_BLUE_BITS/etc. is not
supported with the GL core context, so there is no point in falling back
to that without supporting COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS,
as this will cause an GL error.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
(cherry picked from commit c3af4c1b1571b05f67d48b90d9ea7313f3ca6003)
---
cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 7 +------
cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 7 +------
2 files changed, 2 insertions(+), 12 deletions(-)
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
index f6a17e8f07..0ccd232407 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
@@ -119,12 +119,7 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
else
#endif /* HAVE_COGL_GL */
{
- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red));
- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green));
- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue));
- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha));
- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth));
- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil));
+ return FALSE;
}
COGL_NOTE (FRAMEBUFFER,
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
index 75a8b0c1fe..524196207f 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
@@ -129,12 +129,7 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
else
#endif /* HAVE_COGL_GL */
{
- GE (ctx, glGetIntegerv (GL_RED_BITS, &bits->red));
- GE (ctx, glGetIntegerv (GL_GREEN_BITS, &bits->green));
- GE (ctx, glGetIntegerv (GL_BLUE_BITS, &bits->blue));
- GE (ctx, glGetIntegerv (GL_ALPHA_BITS, &bits->alpha));
- GE (ctx, glGetIntegerv (GL_DEPTH_BITS, &bits->depth));
- GE (ctx, glGetIntegerv (GL_STENCIL_BITS, &bits->stencil));
+ return FALSE;
}
if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_ALPHA_TEXTURES) &&
--
2.49.0
From 9b91892b5a14cc975e8f219fbad0548e017535b7 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Mon, 5 Jun 2023 10:38:41 +0200
Subject: [PATCH 5/5] cogl/gl-framebuffer: Remove conditional on HAVE_COGL_GL
By testing the features flag, we can get rid of the conditional build
on HAVE_COGL_GL entirely.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3047>
(cherry picked from commit d65883e0d7d70987e3888b86222b109c35f5a7a2)
---
cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c | 2 --
cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c | 2 --
2 files changed, 4 deletions(-)
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
index 0ccd232407..94154d48ef 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-back.c
@@ -65,7 +65,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
framebuffer,
COGL_FRAMEBUFFER_STATE_BIND);
-#ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
{
const struct {
@@ -117,7 +116,6 @@ ensure_bits_initialized (CoglGlFramebufferBack *gl_framebuffer_back)
}
}
else
-#endif /* HAVE_COGL_GL */
{
return FALSE;
}
diff --git a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
index 524196207f..3ea133d314 100644
--- a/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
+++ b/cogl/cogl/driver/gl/cogl-gl-framebuffer-fbo.c
@@ -75,7 +75,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
framebuffer,
COGL_FRAMEBUFFER_STATE_BIND);
-#ifdef HAVE_COGL_GL
if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS))
{
const struct {
@@ -127,7 +126,6 @@ ensure_bits_initialized (CoglGlFramebufferFbo *gl_framebuffer_fbo)
}
}
else
-#endif /* HAVE_COGL_GL */
{
return FALSE;
}
--
2.49.0

View File

@ -10,7 +10,7 @@
Name: mutter
Version: 40.9
Release: 24%{?dist}
Release: 28%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -152,6 +152,22 @@ Patch66: 0001-backend-native-Use-drmModeCloseFB-for-flicker-free-l.patch
# RHEL-21286
Patch67: double-key-event-handling.patch
# RHEL-31742
Patch68: 0001-backends-Avoid-disabling-touchscreen-outside-of-touc.patch
# RHEL-90588
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2261
Patch69: 0001-xwayland-Relax-the-ownership-requirements-of-tmp-.X1.patch
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3984
Patch70: 0002-Be-more-verbose-about-permissions-of-tmp-.X11-unix.patch
Patch71: 0003-Use-access-instead-of-checking-permission-modes-for-.patch
# RHEL-4521
Patch72: fix-cogl-framebuffer-get-bits-test.patch
# RHEL-89352
Patch73: 0001-compositor-x11-sync-again-at-the-end-of-before_paint.patch
BuildRequires: chrpath
BuildRequires: pango-devel
BuildRequires: startup-notification-devel
@ -299,6 +315,22 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests
%changelog
* Tue Jul 01 2025 Jan Grulich <jgrulich@redhat.com> - 40.9-28
- Backport fix for screen not refreshing properly
Resolves: RHEL-89352
* Fri Jun 27 2025 Jonas Ådahl <jadahl@redhat.com> - 40.9-27
- Backport fixes for cogl OpenGL conformance
Resolves: RHEL-4521
* Mon May 12 2025 Olivier Fourdan <ofourdan@redhat.com> - 40.9-26
- Fix polyinstantiation preventing Xwayland to start
Resolves: RHEL-90588
* Thu Apr 24 2025 Carlos Garnacho <cgarnach@redhat.com> - 40.9-25
- Do not disable touchscreen on DPMS off if touch-mode is disabled
Resolves: RHEL-31742
* Tue Jan 28 2025 Carlos Garnacho <cgarnach@redhat.com> - 40.9-24
- Fix stuck modifier keys
Resolves: RHEL-21286