systemd/mutter-mobile: upgrade to 48.0

Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6361
This commit is contained in:
fossdd 2025-03-30 17:18:00 +02:00
parent 9aa018e762
commit 2c0fa10988
No known key found for this signature in database
GPG key ID: BB8C8A81C6452A88
4 changed files with 146 additions and 27 deletions

View file

@ -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
"

View file

@ -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?= <mdaenzer@redhat.com>
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338>
---
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?= <mdaenzer@redhat.com>
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4338>
---
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

View file

@ -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)

View file

@ -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'