mutter 48.3-1 (x86_64;aarch64;znver1) 2025-17954
9999

Status rejected
Submitter angrypenguinpoland [@T] gmail.com
Platform rolling
Repository main
URL https://abf.openmandriva.org/build_lists/525443
Packages
lib64mutter-48.3-1.x86_64.binary
lib64mutter-debuginfo-48.3-1.x86_64.debuginfo
lib64mutter-devel-48.3-1.x86_64.binary
lib64mutter-devel-debuginfo-48.3-1.x86_64.debuginfo
lib64mutter-gir-48.3-1.x86_64.binary
mutter-48.3-1.x86_64.source
mutter-48.3-1.x86_64.binary
mutter-debuginfo-48.3-1.x86_64.debuginfo
mutter-debugsource-48.3-1.x86_64.binary
mutter-tests-48.3-1.x86_64.binary
lib64mutter-48.3-1.aarch64.binary
lib64mutter-debuginfo-48.3-1.aarch64.debuginfo
lib64mutter-devel-48.3-1.aarch64.binary
lib64mutter-devel-debuginfo-48.3-1.aarch64.debuginfo
lib64mutter-gir-48.3-1.aarch64.binary
mutter-48.3-1.aarch64.source
mutter-48.3-1.aarch64.binary
mutter-debuginfo-48.3-1.aarch64.debuginfo
mutter-debugsource-48.3-1.aarch64.binary
mutter-tests-48.3-1.aarch64.binary
lib64mutter-48.3-1.znver1.binary
lib64mutter-debuginfo-48.3-1.znver1.debuginfo
lib64mutter-devel-48.3-1.znver1.binary
lib64mutter-devel-debuginfo-48.3-1.znver1.debuginfo
lib64mutter-gir-48.3-1.znver1.binary
mutter-48.3-1.znver1.binary
mutter-48.3-1.znver1.source
mutter-debuginfo-48.3-1.znver1.debuginfo
mutter-debugsource-48.3-1.znver1.binary
mutter-tests-48.3-1.znver1.binary
Build Date 2025-06-01 18:21:34 +0000 UTC
Last Updated 2025-06-03 15:22:42.964665535 +0000 UTC
$ git diff --patch-with-stat --summary 298828eec7d609e8d484760085ee7ad4d8ec8410..9c3df0346ccee0fdc1a363d5e0434bb6b88a5b38

 .abf.yml                            |   2 +-
 2623.patch                          |  27 ---
 2624.patch                          | 425 ------------------------------------
 mutter-47.0-fix-bogus-require.patch |  12 +
 mutter.spec                         |  67 ++++--
 5 files changed, 59 insertions(+), 474 deletions(-)
 delete mode 100644 2623.patch
 delete mode 100644 2624.patch
 create mode 100644 mutter-47.0-fix-bogus-require.patch

diff --git a/.abf.yml b/.abf.yml
index b51618b..a33af58 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
 sources:
-  mutter-43.0.tar.xz: 6010021f9b60f25d8dbdf3eaa2283d30a1b60da6
+  mutter-48.3.tar.xz: 83182def1c745db1bcf0b5366b00cc604f6b37dc
diff --git a/2623.patch b/2623.patch
deleted file mode 100644
index 40bae99..0000000
--- a/2623.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 89b8edcc6faefb5d2788bb5fa6d91b92181a4cde Mon Sep 17 00:00:00 2001
-From: Sebastian Wick <sebastian.wick@redhat.com>
-Date: Tue, 13 Sep 2022 20:03:42 +0200
-Subject: [PATCH] monitor: Keep the dbus night-light-supported property in sync
-
-Fixes #2424
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2623>
----
- src/backends/meta-monitor-manager.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
-index a60518850d..5c9a540299 100644
---- a/src/backends/meta-monitor-manager.c
-+++ b/src/backends/meta-monitor-manager.c
-@@ -1184,6 +1184,8 @@ update_night_light_supported (MetaMonitorManager *manager)
-   priv->night_light_supported = night_light_supported;
-   g_object_notify_by_pspec (G_OBJECT (manager),
-                             obj_props[PROP_NIGHT_LIGHT_SUPPORTED]);
-+  meta_dbus_display_config_set_night_light_supported (manager->display_config,
-+                                                      night_light_supported);
- }
- 
- void
--- 
-GitLab
diff --git a/2624.patch b/2624.patch
deleted file mode 100644
index f253b39..0000000
--- a/2624.patch
+++ /dev/null
@@ -1,425 +0,0 @@
-From 41f488a65ca67ee7e83a952c02af2fae60cc7583 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
-Date: Wed, 14 Sep 2022 23:12:00 +0200
-Subject: [PATCH 1/3] tests/wayland-unit: Move out sync point wait helper
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2624>
----
- src/tests/meta-wayland-test-driver.c | 25 +++++++++++++++++++++++++
- src/tests/meta-wayland-test-driver.h |  3 +++
- src/tests/wayland-unit-tests.c       | 20 +-------------------
- 3 files changed, 29 insertions(+), 19 deletions(-)
-
-diff --git a/src/tests/meta-wayland-test-driver.c b/src/tests/meta-wayland-test-driver.c
-index d418fa14f3..a9bb251234 100644
---- a/src/tests/meta-wayland-test-driver.c
-+++ b/src/tests/meta-wayland-test-driver.c
-@@ -331,3 +331,28 @@ meta_wayland_test_driver_set_property (MetaWaylandTestDriver *test_driver,
-                         g_strdup (name),
-                         g_strdup (value));
- }
-+
-+static void
-+on_sync_point (MetaWaylandTestDriver *test_driver,
-+               unsigned int           sequence,
-+               struct wl_resource    *surface_resource,
-+               struct wl_client      *wl_client,
-+               unsigned int          *latest_sequence)
-+{
-+  *latest_sequence = sequence;
-+}
-+
-+void
-+meta_wayland_test_driver_wait_for_sync_point (MetaWaylandTestDriver *test_driver,
-+                                              unsigned int           sync_point)
-+{
-+  gulong handler_id;
-+  unsigned int latest_sequence = sync_point - 1;
-+
-+  handler_id = g_signal_connect (test_driver, "sync-point",
-+                                 G_CALLBACK (on_sync_point),
-+                                 &latest_sequence);
-+  while (latest_sequence != sync_point)
-+    g_main_context_iteration (NULL, TRUE);
-+  g_signal_handler_disconnect (test_driver, handler_id);
-+}
-diff --git a/src/tests/meta-wayland-test-driver.h b/src/tests/meta-wayland-test-driver.h
-index b20af74496..dbd6ab82ba 100644
---- a/src/tests/meta-wayland-test-driver.h
-+++ b/src/tests/meta-wayland-test-driver.h
-@@ -34,4 +34,7 @@ void meta_wayland_test_driver_set_property (MetaWaylandTestDriver *test_driver,
-                                             const char            *name,
-                                             const char            *value);
- 
-+void meta_wayland_test_driver_wait_for_sync_point (MetaWaylandTestDriver *test_driver,
-+                                                   unsigned int           sync_point);
-+
- #endif /* META_WAYLAND_TEST_DRIVER_H */
-diff --git a/src/tests/wayland-unit-tests.c b/src/tests/wayland-unit-tests.c
-index 12dc6d8d36..2dc2f43815 100644
---- a/src/tests/wayland-unit-tests.c
-+++ b/src/tests/wayland-unit-tests.c
-@@ -385,28 +385,10 @@ toplevel_activation (void)
-   meta_wayland_test_client_finish (data.wayland_test_client);
- }
- 
--static void
--on_sync_point (MetaWaylandTestDriver *test_driver,
--               unsigned int           sequence,
--               struct wl_resource    *surface_resource,
--               struct wl_client      *wl_client,
--               unsigned int          *latest_sequence)
--{
--  *latest_sequence = sequence;
--}
--
- static void
- wait_for_sync_point (unsigned int sync_point)
- {
--  gulong handler_id;
--  unsigned int latest_sequence = 0;
--
--  handler_id = g_signal_connect (test_driver, "sync-point",
--                                 G_CALLBACK (on_sync_point),
--                                 &latest_sequence);
--  while (latest_sequence != sync_point)
--    g_main_context_iteration (NULL, TRUE);
--  g_signal_handler_disconnect (test_driver, handler_id);
-+  meta_wayland_test_driver_wait_for_sync_point (test_driver, sync_point);
- }
- 
- static gboolean
--- 
-GitLab
-
-
-From 85ef0d1a46b9c8d179f33208b5396b6a1f4225c9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
-Date: Wed, 14 Sep 2022 23:12:52 +0200
-Subject: [PATCH 2/3] compositor-view/native: Check that the actor covers the
- the view
-
-If we have a window that match the size (i.e. will pass the "fits
-framebuffer" low level check), that doesn't mean it matches the
-position. For example, if we have two monitors 2K monitors, with two 2K
-sized windows, one on monitor A, and one on monitor both monitor A and
-B, overlapping both, if the latter window is above the former, it'll end
-up bing scanned out on both if it ends up fitting all the other
-requirements.
-
-Fix this by checking that the paint box matches the stage view layout,
-as that makes sure the actor we're painting isn't just partially on the
-right view.
-
-Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2387
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2624>
----
- clutter/clutter/clutter-mutter.h             |  5 +++++
- src/compositor/meta-compositor-view-native.c | 17 +++++++++++++++++
- 2 files changed, 22 insertions(+)
-
-diff --git a/clutter/clutter/clutter-mutter.h b/clutter/clutter/clutter-mutter.h
-index b383ff518c..04efa5d86d 100644
---- a/clutter/clutter/clutter-mutter.h
-+++ b/clutter/clutter/clutter-mutter.h
-@@ -38,6 +38,11 @@
- #include "clutter-stage-view-private.h"
- #include "clutter.h"
- 
-+/* An epsilon larger than FLT_EPSILON that is useful when comparing coordinates
-+ * while ignoring floating point precision loss that might happen during
-+ * various matrix calculations. */
-+#define CLUTTER_COORDINATE_EPSILON (1.0 / 256.0)
-+
- typedef struct _ClutterMainContext ClutterContext;
- 
- typedef ClutterBackend * (* ClutterBackendConstructor) (gpointer user_data);
-diff --git a/src/compositor/meta-compositor-view-native.c b/src/compositor/meta-compositor-view-native.c
-index 932d43a3b9..4c7e7f7a89 100644
---- a/src/compositor/meta-compositor-view-native.c
-+++ b/src/compositor/meta-compositor-view-native.c
-@@ -83,6 +83,8 @@ find_scanout_candidate (MetaCompositorView  *compositor_view,
-   CoglFramebuffer *framebuffer;
-   MetaWindowActor *window_actor;
-   MetaWindow *window;
-+  MetaRectangle view_rect;
-+  ClutterActorBox actor_box;
-   MetaSurfaceActor *surface_actor;
-   MetaSurfaceActorWayland *surface_actor_wayland;
-   MetaWaylandSurface *surface;
-@@ -126,6 +128,21 @@ find_scanout_candidate (MetaCompositorView  *compositor_view,
-   if (meta_surface_actor_is_obscured (surface_actor))
-     return FALSE;
- 
-+  if (!clutter_actor_get_paint_box (CLUTTER_ACTOR (surface_actor),
-+                                    &actor_box))
-+    return FALSE;
-+
-+  clutter_stage_view_get_layout (stage_view, &view_rect);
-+  if (!G_APPROX_VALUE (actor_box.x1, view_rect.x,
-+                       CLUTTER_COORDINATE_EPSILON) ||
-+      !G_APPROX_VALUE (actor_box.y1, view_rect.y,
-+                       CLUTTER_COORDINATE_EPSILON) ||
-+      !G_APPROX_VALUE (actor_box.x2, view_rect.x + view_rect.width,
-+                       CLUTTER_COORDINATE_EPSILON) ||
-+      !G_APPROX_VALUE (actor_box.y2, view_rect.y + view_rect.height,
-+                       CLUTTER_COORDINATE_EPSILON))
-+    return FALSE;
-+
-   surface_actor_wayland = META_SURFACE_ACTOR_WAYLAND (surface_actor);
-   surface = meta_surface_actor_wayland_get_surface (surface_actor_wayland);
-   if (!surface)
--- 
-GitLab
-
-
-From 6601c3b02ab9d3fddce71c26618138122bc3fe7e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
-Date: Wed, 14 Sep 2022 23:18:37 +0200
-Subject: [PATCH 3/3] tests: Add partial-overlapping scanout test
-
-Make sure that if we wiggle a scan-out capable surface a bit, it won't
-scan out if it's not exactly in the right position. Do this by first
-making the window not fullscreen, then moving it back and forth,
-verifying the correct scanout state for each presented frame.
-
-This test addition reproduces the issue described in
-https://gitlab.gnome.org/GNOME/mutter/-/issues/2387.
-
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2624>
----
- src/tests/native-kms-render.c                 | 70 +++++++++++++++++--
- .../wayland-test-clients/dma-buf-scanout.c    | 46 +++++++++++-
- 2 files changed, 109 insertions(+), 7 deletions(-)
-
-diff --git a/src/tests/native-kms-render.c b/src/tests/native-kms-render.c
-index 278edf4bd2..6595eb5a29 100644
---- a/src/tests/native-kms-render.c
-+++ b/src/tests/native-kms-render.c
-@@ -32,6 +32,7 @@
- #include "core/display-private.h"
- #include "meta/meta-backend.h"
- #include "meta-test/meta-context-test.h"
-+#include "tests/meta-test-utils.h"
- #include "tests/meta-wayland-test-driver.h"
- #include "tests/meta-wayland-test-utils.h"
- 
-@@ -44,6 +45,8 @@ typedef struct
-     int n_paints;
-     uint32_t fb_id;
-   } scanout;
-+
-+  gboolean wait_for_scanout;
- } KmsRenderingTest;
- 
- static MetaContext *test_context;
-@@ -139,7 +142,7 @@ on_scanout_presented (ClutterStage     *stage,
-   if (test->scanout.n_paints > 0)
-     return;
- 
--  if (test->scanout.fb_id == 0)
-+  if (test->wait_for_scanout && test->scanout.fb_id == 0)
-     return;
- 
-   device_pool = meta_backend_native_get_device_pool (backend_native);
-@@ -159,7 +162,10 @@ on_scanout_presented (ClutterStage     *stage,
-   drm_crtc = drmModeGetCrtc (meta_device_file_get_fd (device_file),
-                              meta_kms_crtc_get_id (kms_crtc));
-   g_assert_nonnull (drm_crtc);
--  g_assert_cmpuint (drm_crtc->buffer_id, ==, test->scanout.fb_id);
-+  if (test->scanout.fb_id == 0)
-+    g_assert_cmpuint (drm_crtc->buffer_id, !=, test->scanout.fb_id);
-+  else
-+    g_assert_cmpuint (drm_crtc->buffer_id, ==, test->scanout.fb_id);
-   drmModeFreeCrtc (drm_crtc);
- 
-   meta_device_file_release (device_file);
-@@ -167,13 +173,19 @@ on_scanout_presented (ClutterStage     *stage,
-   g_main_loop_quit (test->loop);
- }
- 
-+typedef enum
-+{
-+  SCANOUT_WINDOW_STATE_NONE,
-+  SCANOUT_WINDOW_STATE_FULLSCREEN,
-+} ScanoutWindowState;
-+
- static void
- meta_test_kms_render_client_scanout (void)
- {
-   MetaBackend *backend = meta_context_get_backend (test_context);
-   MetaWaylandCompositor *wayland_compositor =
-     meta_context_get_wayland_compositor (test_context);
--  ClutterActor *stage = meta_backend_get_stage (backend);
-+  ClutterStage *stage = CLUTTER_STAGE (meta_backend_get_stage (backend));
-   MetaKms *kms = meta_backend_native_get_kms (META_BACKEND_NATIVE (backend));
-   MetaKmsDevice *kms_device = meta_kms_get_devices (kms)->data;
-   KmsRenderingTest test;
-@@ -183,6 +195,9 @@ meta_test_kms_render_client_scanout (void)
-   gulong before_paint_handler_id;
-   gulong paint_view_handler_id;
-   gulong presented_handler_id;
-+  MetaWindow *window;
-+  MetaRectangle view_rect;
-+  MetaRectangle buffer_rect;
- 
-   test_driver = meta_wayland_test_driver_new (wayland_compositor);
-   meta_wayland_test_driver_set_property (test_driver,
-@@ -195,8 +210,15 @@ meta_test_kms_render_client_scanout (void)
- 
-   test = (KmsRenderingTest) {
-     .loop = g_main_loop_new (NULL, FALSE),
-+    .wait_for_scanout = TRUE,
-   };
- 
-+  g_assert_cmpuint (g_list_length (clutter_stage_peek_stage_views (stage)),
-+                    ==,
-+                    1);
-+  clutter_stage_view_get_layout (clutter_stage_peek_stage_views (stage)->data,
-+                                 &view_rect);
-+
-   paint_view_handler_id =
-     g_signal_connect (stage, "paint-view",
-                       G_CALLBACK (on_scanout_paint_view), &test);
-@@ -212,7 +234,46 @@ meta_test_kms_render_client_scanout (void)
- 
-   clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
-   g_main_loop_run (test.loop);
--  g_main_loop_unref (test.loop);
-+
-+  g_assert_cmpuint (test.scanout.fb_id, >, 0);
-+
-+  g_debug ("Unmake fullscreen");
-+  window = meta_find_window_from_title (test_context, "dma-buf-scanout-test");
-+  g_assert_true (meta_window_is_fullscreen (window));
-+  meta_window_unmake_fullscreen (window);
-+
-+  g_debug ("Wait for fullscreen");
-+  meta_wayland_test_driver_wait_for_sync_point (test_driver,
-+                                                SCANOUT_WINDOW_STATE_NONE);
-+  g_assert_false (meta_window_is_fullscreen (window));
-+
-+  g_debug ("Moving to 10, 10");
-+  meta_window_move_frame (window, TRUE, 10, 10);
-+
-+  meta_window_get_buffer_rect (window, &buffer_rect);
-+  g_assert_cmpint (buffer_rect.width, ==, view_rect.width);
-+  g_assert_cmpint (buffer_rect.height, ==, view_rect.height);
-+  g_assert_cmpint (buffer_rect.x, ==, 10);
-+  g_assert_cmpint (buffer_rect.y, ==, 10);
-+
-+  test.wait_for_scanout = FALSE;
-+  clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
-+  g_main_loop_run (test.loop);
-+
-+  g_assert_cmpuint (test.scanout.fb_id, ==, 0);
-+
-+  g_debug ("Moving back to 0, 0");
-+  meta_window_move_frame (window, TRUE, 0, 0);
-+
-+  meta_window_get_buffer_rect (window, &buffer_rect);
-+  g_assert_cmpint (buffer_rect.width, ==, view_rect.width);
-+  g_assert_cmpint (buffer_rect.height, ==, view_rect.height);
-+  g_assert_cmpint (buffer_rect.x, ==, 0);
-+  g_assert_cmpint (buffer_rect.y, ==, 0);
-+
-+  test.wait_for_scanout = TRUE;
-+  clutter_actor_queue_redraw (CLUTTER_ACTOR (stage));
-+  g_main_loop_run (test.loop);
- 
-   g_assert_cmpuint (test.scanout.fb_id, >, 0);
- 
-@@ -223,6 +284,7 @@ meta_test_kms_render_client_scanout (void)
- 
-   meta_wayland_test_driver_emit_sync_event (test_driver, 0);
-   meta_wayland_test_client_finish (wayland_test_client);
-+  g_main_loop_unref (test.loop);
- }
- 
- static void
-diff --git a/src/tests/wayland-test-clients/dma-buf-scanout.c b/src/tests/wayland-test-clients/dma-buf-scanout.c
-index 25b9066965..273413f43f 100644
---- a/src/tests/wayland-test-clients/dma-buf-scanout.c
-+++ b/src/tests/wayland-test-clients/dma-buf-scanout.c
-@@ -53,6 +53,12 @@
- 
- #include "linux-dmabuf-unstable-v1-client-protocol.h"
- 
-+typedef enum
-+{
-+  WINDOW_STATE_NONE,
-+  WINDOW_STATE_FULLSCREEN,
-+} WindowState;
-+
- typedef struct _Buffer
- {
-   struct wl_buffer *buffer;
-@@ -78,6 +84,10 @@ struct gbm_device *gbm_device;
- 
- static GList *active_buffers;
- 
-+static int prev_width;
-+static int prev_height;
-+static WindowState window_state;
-+
- static struct
- {
-   uint32_t format;
-@@ -214,15 +224,44 @@ draw_main (int width,
-   wl_surface_attach (surface, buffer->buffer, 0, 0);
- }
- 
-+static WindowState
-+parse_xdg_toplevel_state (struct wl_array *states)
-+{
-+  uint32_t *state_ptr;
-+
-+  wl_array_for_each (state_ptr, states)
-+    {
-+      uint32_t state = *state_ptr;
-+
-+      if (state == XDG_TOPLEVEL_STATE_FULLSCREEN)
-+        return WINDOW_STATE_FULLSCREEN;
-+    }
-+
-+  return WINDOW_STATE_NONE;
-+}
-+
- static void
- handle_xdg_toplevel_configure (void                *user_data,
-                                struct xdg_toplevel *xdg_toplevel,
-                                int32_t              width,
-                                int32_t              height,
--                               struct wl_array     *state)
-+                               struct wl_array     *states)
- {
--  g_assert_cmpint (width, >, 0);
--  g_assert_cmpint (height, >, 0);
-+  g_assert (width > 0 || prev_width > 0);
-+  g_assert (height > 0 || prev_width > 0);
-+
-+  if (width > 0 && height > 0)
-+    {
-+      prev_width = width;
-+      prev_height = height;
-+    }
-+  else
-+    {
-+      width = prev_width;
-+      height = prev_height;
-+    }
-+
-+  window_state = parse_xdg_toplevel_state (states);
- 
-   draw_main (width, height);
- }
-@@ -270,6 +309,7 @@ handle_xdg_surface_configure (void               *user_data,
-   frame_callback = wl_surface_frame (surface);
-   wl_callback_add_listener (frame_callback, &frame_listener, NULL);
-   wl_surface_commit (surface);
-+  test_driver_sync_point (display->test_driver, window_state, NULL);
-   wl_display_flush (display->display);
- }
- 
--- 
-GitLab
diff --git a/mutter-47.0-fix-bogus-require.patch b/mutter-47.0-fix-bogus-require.patch
new file mode 100644
index 0000000..cb83574
--- /dev/null
+++ b/mutter-47.0-fix-bogus-require.patch
@@ -0,0 +1,12 @@
+diff -uraN mutter-47.0/meson.build omv-mutter-47.0/meson.build
+--- mutter-47.0/meson.build	2024-09-14 22:36:50.000000000 +0200
++++ omv-mutter-47.0/meson.build	2024-09-15 19:42:04.462431445 +0200
+@@ -26,7 +26,7 @@
+ cairo_req = '>= 1.10.0'
+ pangocairo_req = '>= 1.20'
+ pixman_req = '>= 0.42'
+-gsettings_desktop_schemas_req = '>= 47.beta'
++gsettings_desktop_schemas_req = '>= 47'
+ x11_req = '>= 1.7.0'
+ xcomposite_req = '>= 0.4'
+ xkbcommon_req = '>= 0.4.3'
diff --git a/mutter.spec b/mutter.spec
index 15e46aa..3e6b605 100644
--- a/mutter.spec
+++ b/mutter.spec
@@ -4,30 +4,24 @@
 
 %define url_ver %(echo %{version}|cut -d. -f1,2)
 
-%define api_m 11
+%define api_m 16
 %define api %{api_m}.0
 %define major 0
-%define libname %mklibname %{name} %{major}
-%define girname %mklibname %{name}-gir %{api}
+%define libname %mklibname %{name}
+%define oldlibname %mklibname %{name} 0
+%define girname %mklibname %{name}-gir
+%define oldgirname %mklibname %{name}-gir 15.0
 %define devname %mklibname -d %{name}
 
 Summary:	Mutter window manager
 Name:		mutter
-Version:	43.0
+Version:	48.3
 Release:	1
 License:	GPLv2+
 Group:		Graphical desktop/GNOME
-Url:		http://ftp.gnome.org/pub/gnome/sources/mutter/
-Source0:	http://ftp.gnome.org/pub/GNOME/sources/mutter/%{url_ver}/%{name}-%{version}.tar.xz
-
-# Backported from upstream
-# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2623
-Patch0:        2623.patch
- 
+Url:		https://ftp.gnome.org/pub/gnome/sources/mutter/
+Source0:	https://ftp.gnome.org/pub/GNOME/sources/mutter/%{url_ver}/%{name}-%{version}.tar.xz
 # Backported from upstream
-# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2624
-# https://bugzilla.redhat.com/show_bug.cgi?id=2128660
-Patch1:        2624.patch
 
 BuildRequires:	intltool
 BuildRequires:	gettext
@@ -49,11 +43,14 @@ BuildRequires:	pkgconfig(gsettings-desktop-schemas)
 BuildRequires:	pkgconfig(gnome-settings-daemon)
 BuildRequires:	pkgconfig(gudev-1.0)
 BuildRequires:	pkgconfig(graphene-gobject-1.0)
+BuildRequires:	pkgconfig(harfbuzz-gobject)
 BuildRequires:	pkgconfig(libdrm)
+BuildRequires:	pkgconfig(libeis-1.0)
+BuildRequires:	pkgconfig(libei-1.0)
 BuildRequires:	pkgconfig(libsystemd)
 BuildRequires:	pkgconfig(libwacom)
-BuildRequires:	pipewire-devel
 BuildRequires:	pkgconfig(libpipewire-0.3)
+BuildRequires:	pkgconfig(libdisplay-info)
 BuildRequires:	x11-server-xvfb
 BuildRequires:	x11-server-xwayland
 BuildRequires:	wayland-protocols-devel
@@ -63,7 +60,7 @@ BuildRequires:	pkgconfig(libcanberra-gtk3)
 BuildRequires:	pkgconfig(pango)
 BuildRequires:	pkgconfig(sm)
 BuildRequires:	pkgconfig(upower-glib)
-BuildRequires:	pkgconfig(gnome-desktop-3.0)
+BuildRequires:	pkgconfig(gnome-desktop-4)
 BuildRequires:	pkgconfig(xcomposite)
 BuildRequires:	pkgconfig(xcursor)
 BuildRequires:	pkgconfig(xdamage)
@@ -85,9 +82,8 @@ BuildRequires:	pkgconfig(clutter-wayland-1.0)
 BuildRequires:	pkgconfig(clutter-egl-1.0)
 BuildRequires:	pkgconfig(cogl-1.0) >= 1.17.1
 BuildRequires:	pkgconfig(sysprof-capture-4)
+BuildRequires:	sysprof
 
-
-# Wayland (not ready yet)
 BuildRequires:	pkgconfig(xtst)
 BuildRequires:  pkgconfig(glesv2)
 BuildRequires:	pkgconfig(libglvnd)
@@ -98,9 +94,15 @@ BuildRequires:	pkgconfig(wayland-protocols)
 BuildRequires:	pkgconfig(wayland-server)
 BuildRequires:	pkgconfig(xwayland)
 BuildRequires:	egl-devel
+BuildRequires:	python3dist(python-dbusmock)
+BuildRequires:  python-argcomplete
+BuildRequires:  python-docutils
 
 Requires:	zenity-gtk
 Requires:	%{girname} = %{version}-%{release}
+Requires:	%{libname} = %{version}-%{release}
+
+Requires: python-argcomplete
 
 %description
 Mutter is a simple window manager that integrates nicely with
@@ -109,6 +111,7 @@ GNOME.
 %package -n %{libname}
 Summary:	Libraries for Mutter
 Group:		System/Libraries
+%rename %{oldlibname}
 
 %description -n %{libname}
 This package contains libraries used by Mutter.
@@ -116,6 +119,7 @@ This package contains libraries used by Mutter.
 %package -n %{girname}
 Summary:	GObject Introspection interface description for %{name}
 Group:		System/Libraries
+%rename %{oldgirname}
 
 %description -n %{girname}
 GObject Introspection interface description for %{name}.
@@ -157,7 +161,9 @@ sed -i "/'-Werror=redundant-decls',/d" meson.build
 	-Dxwayland_initfd=enabled \
 	-Dremote_desktop=true \
 	-Dnative_backend=true \
-	-Dinstalled_tests=false
+	-Dinstalled_tests=false \
+        -Dcogl_tests=false \
+	-Dclutter_tests=false
 
 %meson_build
 
@@ -168,7 +174,7 @@ sed -i "/'-Werror=redundant-decls',/d" meson.build
 %files -f %{name}.lang
 %doc COPYING NEWS
 %{_bindir}/*
-%{_datadir}/applications/%{name}.desktop
+#{_datadir}/applications/%{name}.desktop
 %{_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
@@ -178,19 +184,38 @@ sed -i "/'-Werror=redundant-decls',/d" meson.build
 %{_libdir}/%{name}-%{api_m}/plugins/libdefault.so
 %{_mandir}/man1/*
 %{_libexecdir}/mutter-restart-helper
+%{_libexecdir}/mutter-x11-frames
 %{_prefix}/lib/udev/rules.d/61-mutter.rules
 #{_datadir}/applications/mutter-wayland.desktop
+%{_sysconfdir}/bash_completion.d/gdctl
 
 %files -n %{libname}
 %{_libdir}/libmutter-%{api_m}.so.%{major}*
+%{_libdir}/mutter-16/libmutter-clutter-%{api_m}.so.%{major}*
+%{_libdir}/mutter-16/libmutter-cogl-%{api_m}.so.%{major}*
+%{_libdir}/mutter-16/libmutter-mtk-%{api_m}.so.%{major}*
 
 %files -n %{girname}
-%{_libdir}/mutter-%{api_m}/*
+%{_libdir}/mutter-16/Clutter-%{api_m}.typelib
+%{_libdir}/mutter-16/Cogl-%{api_m}.typelib
+%{_libdir}/mutter-16/Meta-%{api_m}.typelib
+#{_libdir}/mutter-16/MetaTest-%{api_m}.typelib
+%{_libdir}/mutter-16/Mtk-%{api_m}.typelib
 
 %files -n %{devname}
 %{_libdir}/*.so
+%{_libdir}/mutter-16/libmutter-clutter-%{api_m}.so
+%{_libdir}/mutter-16/libmutter-cogl-%{api_m}.so
+%{_libdir}/mutter-16/libmutter-mtk-%{api_m}.so
+%{_libdir}/mutter-16/Clutter-%{api_m}.gir
+%{_libdir}/mutter-16/Cogl-%{api_m}.gir
+%{_libdir}/mutter-16/Meta-%{api_m}.gir
+#{_libdir}/mutter-16/MetaTest-%{api_m}.gir
+%{_libdir}/mutter-16/Mtk-%{api_m}.gir
 %{_includedir}/*
 %{_libdir}/pkgconfig/*
 
 %files tests
 %{_datadir}/mutter-%{api_m}/tests/
+%{_libdir}/mutter-%{api_m}/MetaTest-%{api_m}.gir
+%{_libdir}/mutter-%{api_m}/MetaTest-%{api_m}.typelib
Not Available

369start [@T] proton.meNo Comment.2d 14hrs
rugyada [@T] gmail.comNo Comment.2d 11hrs