From 2c0fa1098836fc878ec8a2023e0ffa1dd4693f44 Mon Sep 17 00:00:00 2001 From: fossdd Date: Sun, 30 Mar 2025 17:18:00 +0200 Subject: [PATCH] systemd/mutter-mobile: upgrade to 48.0 Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6361 --- extra-repos/systemd/mutter-mobile/APKBUILD | 31 +++--- .../systemd/mutter-mobile/fix-freeze.patch | 99 +++++++++++++++++++ extra-repos/systemd/mutter-mobile/pcver.patch | 27 +++++ .../systemd/mutter-mobile/pcversion.patch | 16 --- 4 files changed, 146 insertions(+), 27 deletions(-) create mode 100644 extra-repos/systemd/mutter-mobile/fix-freeze.patch create mode 100644 extra-repos/systemd/mutter-mobile/pcver.patch delete mode 100644 extra-repos/systemd/mutter-mobile/pcversion.patch diff --git a/extra-repos/systemd/mutter-mobile/APKBUILD b/extra-repos/systemd/mutter-mobile/APKBUILD index 7b62a22c2..74a382f55 100644 --- a/extra-repos/systemd/mutter-mobile/APKBUILD +++ b/extra-repos/systemd/mutter-mobile/APKBUILD @@ -1,9 +1,9 @@ # Forked from Alpine to apply mobile adaptivity patches pkgname=mutter-mobile -pkgver=99946.1 -_pkgver=46.1 -pkgrel=1 +pkgver=99948.0 +_pkgver=48.0 +pkgrel=0 pkgdesc="clutter-based window manager and compositor" url="https://wiki.gnome.org/Projects/Mutter/" # ricsv64: doesn't build currently: @@ -32,9 +32,10 @@ makedepends=" graphene-dev gtk+3.0-dev json-glib-dev - libei-dev libcanberra-dev + libdisplay-info-dev libdrm-dev + libei-dev libgudev-dev libice-dev libinput-dev @@ -59,25 +60,31 @@ makedepends=" meson pango-dev pipewire-dev + py3-argcomplete + py3-docutils startup-notification-dev wayland-dev wayland-protocols xorg-server + xwayland-dev " options="!check" # Can't be run with release builds provides="mutter=$pkgver-r$pkgrel" subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-lang $pkgname-schemas::noarch" -_commit="46-mobile.1" +_commit="48.mobile.0" +_gvdb_commit="b54bc5da25127ef416858a3ad92e57159ff565b3" source="mutter-mobile-$_commit.tar.gz::https://gitlab.gnome.org/verdre/mutter-mobile/-/archive/$_commit/mutter-mobile-$_commit.tar.gz - pcversion.patch + https://gitlab.gnome.org/GNOME/gvdb/-/archive/$_gvdb_commit/gvdb-$_gvdb_commit.tar.gz + pcver.patch + fix-freeze.patch " builddir="$srcdir/mutter-mobile-$_commit" prepare() { default_prepare - sed -i "s/libmutter_api_version = '.*'/libmutter_api_version = '99'/g" meson.build - sed -i "s/version: '$_commit'/version: '$_pkgver'/g" meson.build + mkdir -p subprojects/gvdb + mv "$srcdir"/gvdb*/* subprojects/gvdb } build() { @@ -89,7 +96,7 @@ build() { -Dxwayland_path=/usr/bin/Xwayland \ -Dremote_desktop=true \ -Dprofiler=false \ - -Dtests=false \ + -Dtests=disabled \ -Dinstalled_tests=false \ . output meson compile ${JOBS:+-j ${JOBS}} -C output @@ -121,6 +128,8 @@ package() { } sha512sums=" -210266238a9cf56b77e195559a2f99574de4a52b973bad7143a88f112730dd61ebf807e6644519998f39fe5ddbcb1bfd589d0d5167c92718953d5ad22eba2ae7 mutter-mobile-46-mobile.1.tar.gz -2f2379d1f6676c69ba182d008d44c3d216ba5044af56352c785f4c34d17aeb0ac98a539827371d06ade7c2b42b06f916753c736167d2d89c0053b0a0e738c5d5 pcversion.patch +c1aef60e14662b373ddeab88d7b49f153165ab2bfb63906aeb64f6de9d224ed3d4c9c5b3cd8a7b12ba29b8de8a5b9fa738dfa681e83cd51e7a33d0695b6410f2 mutter-mobile-48.mobile.0.tar.gz +1cd8d689758cda662737e5ec78d55e4f4c6934b0f429d8cadcec4a423bafd8765040f8d62c51d8797b101fff89df75a7b85e37006ea133ab81e600f205c2ef1e gvdb-b54bc5da25127ef416858a3ad92e57159ff565b3.tar.gz +5b4851ba1728f9d539cebdf5feb8e49dffc61c5b8f992e84145b654b0c3cadb4e585a4c1d53a4992132e4472771c97bbad2c261525fb17f91c4715da7eea799d pcver.patch +b7d0bea395c47558a089f75c2c30ac04da2ffc60d044364653098dcb30302aeeb839631fc51c5b5673d11f07fe85af645ea6fe9b2ebe107f8fc67541d5a8e3eb fix-freeze.patch " diff --git a/extra-repos/systemd/mutter-mobile/fix-freeze.patch b/extra-repos/systemd/mutter-mobile/fix-freeze.patch new file mode 100644 index 000000000..ae911463e --- /dev/null +++ b/extra-repos/systemd/mutter-mobile/fix-freeze.patch @@ -0,0 +1,99 @@ +Patch-Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338 +--- +From d6005b539ca42905dfaf1c3854540a559332b78e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= +Date: Mon, 17 Mar 2025 11:00:11 +0100 +Subject: [PATCH 1/2] kms/impl-device: Always catch pending KMS update in + _schedule_process + +Not only if the deadline timer is enabled. With the next commit, it'll +be semi-expected to happen even if the deadline timer is disabled. + +Still leave the warning though, as a reminder that we'd rather prevent +this outside of the KMS thread. + +Part-of: +--- + src/backends/native/meta-kms-impl-device.c | 19 +++++++++---------- + 1 file changed, 9 insertions(+), 10 deletions(-) + +diff --git a/src/backends/native/meta-kms-impl-device.c b/src/backends/native/meta-kms-impl-device.c +index 0135f22033..25cb1cbd5e 100644 +--- a/src/backends/native/meta-kms-impl-device.c ++++ b/src/backends/native/meta-kms-impl-device.c +@@ -2081,17 +2081,8 @@ meta_kms_impl_device_schedule_process (MetaKmsImplDevice *impl_device, + + if (ensure_deadline_timer_armed (impl_device, crtc_frame)) + return; +- +- if (crtc_frame->pending_update) +- { +- meta_kms_impl_device_do_process_update (impl_device, crtc_frame, +- crtc_frame->crtc, +- crtc_frame->pending_update, +- META_KMS_UPDATE_FLAG_NONE); +- } + } +- +- if (crtc_frame->pending_update) ++ else if (crtc_frame->pending_update) + { + MetaKmsImplDevicePrivate *priv = + meta_kms_impl_device_get_instance_private (impl_device); +@@ -2100,6 +2091,14 @@ meta_kms_impl_device_schedule_process (MetaKmsImplDevice *impl_device, + crtc_frame->pending_update, priv->deadline_timer_state); + } + ++ if (crtc_frame->pending_update) ++ { ++ meta_kms_impl_device_do_process_update (impl_device, crtc_frame, ++ crtc_frame->crtc, ++ crtc_frame->pending_update, ++ META_KMS_UPDATE_FLAG_NONE); ++ } ++ + meta_kms_device_set_needs_flush (meta_kms_crtc_get_device (crtc), crtc); + } + +-- +GitLab + + +From a355f68d347830ab1dc8fba0bf409dd0aaf2804d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= +Date: Mon, 17 Mar 2025 10:50:13 +0100 +Subject: [PATCH 2/2] Revert "onscreen/native: Account for all posted frames" + +This reverts commit 9fc5fdc953f96cd91ad54fce6c50964e7ce57815. + +It caused freezes for some users. + +Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3974 +Part-of: +--- + src/backends/native/meta-onscreen-native.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c +index bb7a2c4bd5..a8d7d7aa26 100644 +--- a/src/backends/native/meta-onscreen-native.c ++++ b/src/backends/native/meta-onscreen-native.c +@@ -1672,7 +1672,6 @@ maybe_post_next_frame (CoglOnscreen *onscreen) + { + kms_update = meta_frame_native_steal_kms_update (frame_native); + post_nonprimary_plane_update (onscreen_native, frame, kms_update); +- onscreen_native->posted_frame = clutter_frame_ref (frame); + return; + } + +@@ -2127,7 +2126,6 @@ meta_onscreen_native_finish_frame (CoglOnscreen *onscreen, + } + + post_nonprimary_plane_update (onscreen_native, frame, kms_update); +- onscreen_native->posted_frame = clutter_frame_ref (frame); + + clutter_frame_set_result (frame, CLUTTER_FRAME_RESULT_PENDING_PRESENTED); + } +-- +GitLab + diff --git a/extra-repos/systemd/mutter-mobile/pcver.patch b/extra-repos/systemd/mutter-mobile/pcver.patch new file mode 100644 index 000000000..6e1ab9b64 --- /dev/null +++ b/extra-repos/systemd/mutter-mobile/pcver.patch @@ -0,0 +1,27 @@ +--- a/meson.build ++++ b/meson.build +@@ -1,5 +1,5 @@ + project('mutter', 'c', +- version: '48.mobile.0', ++ version: '48.0', + meson_version: '>= 1.3.0', + license: 'GPL-2.0-or-later', + ) +@@ -26,7 +26,7 @@ pango_req = '>= 1.46.0' + 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' +@@ -122,7 +122,7 @@ gio_unix_dep = dependency('gio-unix-2.0', version: glib_req) + gobject_dep = dependency('gobject-2.0', version: glib_req) + gthread_dep = dependency('gobject-2.0', version: glib_req) + gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req) +-gnome_settings_daemon_dep = dependency('gnome-settings-daemon', version: '= 48.mobile.0', required: true) ++gnome_settings_daemon_dep = dependency('gnome-settings-daemon', version: '= 48.0', required: true) + xkbcommon_dep = dependency('xkbcommon', version: xkbcommon_req) + atk_dep = dependency('atk', version: atk_req) + colord_dep = dependency('colord', version: colord_req) diff --git a/extra-repos/systemd/mutter-mobile/pcversion.patch b/extra-repos/systemd/mutter-mobile/pcversion.patch deleted file mode 100644 index bc25c7b07..000000000 --- a/extra-repos/systemd/mutter-mobile/pcversion.patch +++ /dev/null @@ -1,16 +0,0 @@ -apk-tools 2.12.10 fails with this in a .pc depends file -diff --git a/meson.build b/meson.build -index e29c5001bcad..3f21f10cf49a 100644 ---- a/meson.build -+++ b/meson.build -@@ -25,9 +25,9 @@ gdk_pixbuf_req = '>= 2.0' - pango_req = '>= 1.46.0' - cairo_req = '>= 1.10.0' - pangocairo_req = '>= 1.20' - pixman_req = '>= 0.42' --gsettings_desktop_schemas_req = '>= 40.alpha' -+gsettings_desktop_schemas_req = '>= 40_alpha' - x11_req = '>= 1.7.0' - xcomposite_req = '>= 0.4' - xkbcommon_req = '>= 0.4.3' - xfixes_req = '>= 6'