Merge branch 'testing'

This commit is contained in:
Kyle Gospodnetich 2024-05-13 19:21:37 -07:00
commit 86966899b8
7 changed files with 2255 additions and 1 deletions

View File

@ -2,7 +2,7 @@
%global _default_patch_fuzz 2
%global build_timestamp %(date +"%Y%m%d")
%global gamescope_tag 3.14.13
%global gamescope_tag 3.14.14
Name: gamescope
Version: 100.%{gamescope_tag}

View File

@ -0,0 +1,28 @@
From 692546a9701a7b363e6190af441a95385c244907 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 2 Dec 2022 22:49:41 +0100
Subject: [PATCH] place: Always center initial-setup/fedora-welcome
---
src/core/place.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/core/place.c b/src/core/place.c
index f9877dfc7..a69a3ebd1 100644
--- a/src/core/place.c
+++ b/src/core/place.c
@@ -321,6 +321,11 @@ window_place_centered (MetaWindow *window)
type = window->type;
+ if (g_strcmp0 (meta_window_get_wm_class (window), "org.gnome.InitialSetup") == 0 ||
+ g_strcmp0 (meta_window_get_wm_class (window), "org.fedoraproject.welcome-screen") == 0 ||
+ g_strcmp0 (meta_window_get_wm_class (window), "fedora-welcome") == 0)
+ return TRUE;
+
return (type == META_WINDOW_DIALOG ||
type == META_WINDOW_MODAL_DIALOG ||
type == META_WINDOW_SPLASHSCREEN ||
--
2.39.2

View File

@ -0,0 +1,70 @@
From b3b5aa01c63aee1df079e0394b0e6372df1838d0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 12 May 2017 13:40:31 +0200
Subject: [PATCH] window-actor: Special-case shaped Java windows
OpenJDK wrongly assumes that shaping a window implies no shadows.
They got lucky until commit b975676c changed the fallback case,
but now their compliance tests are broken. Make them happy again
by special-casing shaped Java windows.
---
src/compositor/meta-window-actor-x11.c | 8 ++++++++
src/x11/window-x11-private.h | 2 ++
src/x11/window-x11.c | 9 +++++++++
3 files changed, 19 insertions(+)
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c
index 19827af331..7d5e46ac75 100644
--- a/src/compositor/meta-window-actor-x11.c
+++ b/src/compositor/meta-window-actor-x11.c
@@ -424,6 +424,14 @@ has_shadow (MetaWindowActorX11 *actor_x11)
*/
if (window->has_custom_frame_extents)
return FALSE;
+
+ /*
+ * OpenJDK wrongly assumes that shaping a window implies no compositor
+ * shadows; make its compliance tests happy to give it what it wants ...
+ */
+ if (g_strcmp0 (window->res_name, "sun-awt-X11-XWindowPeer") == 0 &&
+ meta_window_x11_is_shaped (window))
+ return FALSE;
/*
* Generate shadows for all other windows.
diff --git a/src/x11/window-x11-private.h b/src/x11/window-x11-private.h
index c947744ee5..cb862f0d72 100644
--- a/src/x11/window-x11-private.h
+++ b/src/x11/window-x11-private.h
@@ -125,6 +125,8 @@ gboolean meta_window_x11_has_pointer (MetaWindow *window);
gboolean meta_window_x11_same_application (MetaWindow *window,
MetaWindow *other_window);
+gboolean meta_window_x11_is_shaped (MetaWindow *window);
+
void meta_window_x11_shutdown_group (MetaWindow *window);
META_EXPORT
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 745c45db18..83cdd2e420 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2585,6 +2585,15 @@ meta_window_x11_update_shape_region (MetaWindow *window)
meta_window_set_shape_region (window, region);
}
+gboolean
+meta_window_x11_is_shaped (MetaWindow *window)
+{
+ MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
+ MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
+
+ return priv->shape_region != NULL;
+}
+
/* Generally meta_window_x11_same_application() is a better idea
* of "sameness", since it handles the case where multiple apps
* want to look like the same app or the same app wants to look
--
2.43.2

1868
spec_files/mutter/1441.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,52 @@
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 6d2016e3e..6ba8988c9 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2400,6 +2400,7 @@ meta_window_x11_update_input_region (MetaWindow *window)
g_autoptr (MtkRegion) region = NULL;
MetaWindowX11 *window_x11 = META_WINDOW_X11 (window);
MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11);
+ MtkRectangle bounding_rect = { 0 };
Window xwindow;
if (window->decorated)
@@ -2411,10 +2412,14 @@ meta_window_x11_update_input_region (MetaWindow *window)
return;
}
xwindow = window->frame->xwindow;
+ bounding_rect.width = window->buffer_rect.width;
+ bounding_rect.height = window->buffer_rect.height;
}
else
{
xwindow = priv->xwindow;
+ bounding_rect.width = priv->client_rect.width;
+ bounding_rect.height = priv->client_rect.height;
}
if (META_X11_DISPLAY_HAS_SHAPE (x11_display))
@@ -2458,8 +2463,8 @@ meta_window_x11_update_input_region (MetaWindow *window)
else if (n_rects == 1 &&
(rects[0].x == 0 &&
rects[0].y == 0 &&
- rects[0].width == window->buffer_rect.width &&
- rects[0].height == window->buffer_rect.height))
+ rects[0].width == bounding_rect.width &&
+ rects[0].height == bounding_rect.height))
{
/* This is the bounding region case. Keep the
* region as NULL. */
@@ -2476,13 +2481,6 @@ meta_window_x11_update_input_region (MetaWindow *window)
if (region != NULL)
{
- MtkRectangle bounding_rect;
-
- bounding_rect.x = 0;
- bounding_rect.y = 0;
- bounding_rect.width = window->buffer_rect.width;
- bounding_rect.height = window->buffer_rect.height;
-
/* The shape we get back from the client may have coordinates
* outside of the frame. The X SHAPE Extension requires that
* the overall shape the client provides never exceeds the

View File

@ -0,0 +1,25 @@
From a5c67e0debaa89f7a73452560664cdc5c581ab95 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 9 Mar 2021 17:21:59 -0800
Subject: [PATCH] Test: deny atomic KMS for "tegra" (RHBZ #1936991)
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
src/backends/native/meta-kms-impl-device-atomic.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/backends/native/meta-kms-impl-device-atomic.c b/src/backends/native/meta-kms-impl-device-atomic.c
index 35837f7429..ffff7b8e23 100644
--- a/src/backends/native/meta-kms-impl-device-atomic.c
+++ b/src/backends/native/meta-kms-impl-device-atomic.c
@@ -1352,6 +1352,7 @@ is_atomic_allowed (const char *driver_name)
{
const char *atomic_driver_deny_list[] = {
"xlnx",
+ "tegra",
NULL,
};
--
2.43.0

View File

@ -0,0 +1,211 @@
%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 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 mutter_api_version 14
%global gnome_major_version 46
%global gnome_version %{gnome_major_version}.1
%global tarball_version %%(echo %{gnome_version} | tr '~' '.')
%global _default_patch_fuzz 2
Name: mutter
Version: %{gnome_version}.ublue.{{{ git_dir_version }}}
Release: 2%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
URL: http://www.gnome.org
Source0: https://download.gnome.org/sources/%{name}/%{gnome_major_version}/%{name}-%{tarball_version}.tar.xz
# Work-around for OpenJDK's compliance test
Patch0: 0001-window-actor-Special-case-shaped-Java-windows.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1936991
Patch1: mutter-42.alpha-disable-tegra.patch
# https://pagure.io/fedora-workstation/issue/79
Patch2: 0001-place-Always-center-initial-setup-fedora-welcome.patch
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441
Patch3: 1441.patch
# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3567
Patch4: 3720+3567.patch
BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(libwacom)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xdamage)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xi)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(xcursor)
BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xkbcommon-x11)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: pkgconfig(xtst)
BuildRequires: mesa-libEGL-devel
BuildRequires: mesa-libGLES-devel
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libgbm-devel
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(graphene-gobject-1.0)
BuildRequires: pam-devel
BuildRequires: pkgconfig(libdisplay-info)
BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_version}
BuildRequires: pkgconfig(sysprof-capture-4)
BuildRequires: sysprof-devel
BuildRequires: pkgconfig(libsystemd)
BuildRequires: xorg-x11-server-Xorg
BuildRequires: xorg-x11-server-Xvfb
BuildRequires: pkgconfig(xkeyboard-config)
BuildRequires: desktop-file-utils
# Bootstrap requirements
BuildRequires: gettext-devel git-core
BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(gsettings-desktop-schemas) >= %{gsettings_desktop_schemas_version}
BuildRequires: pkgconfig(gnome-settings-daemon)
BuildRequires: meson
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(gnome-desktop-4)
BuildRequires: pkgconfig(gudev-1.0)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libstartup-notification-1.0)
BuildRequires: pkgconfig(wayland-eglstream)
BuildRequires: pkgconfig(wayland-protocols)
BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(lcms2) >= %{lcms2_version}
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)
BuildRequires: python3-dbusmock
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
Requires: dbus
# Need common
Requires: %{name}-common = %{version}-%{release}
Recommends: mesa-dri-drivers%{?_isa}
Provides: firstboot(windowmanager) = mutter
# Cogl and Clutter were forked at these versions, but have diverged
# significantly since then.
Provides: bundled(cogl) = 1.22.0
Provides: bundled(clutter) = 1.26.0
Provides: mutter = %{gnome_version}-%{release}
Conflicts: mutter < 45~beta.1-2
# Make sure dnf updates gnome-shell together with this package; otherwise we
# might end up with broken gnome-shell installations due to mutter ABI changes.
Conflicts: gnome-shell < 45~rc
%description
Mutter is a window and compositing manager that displays and manages
your desktop via OpenGL. Mutter combines a sophisticated display engine
using the Clutter toolkit with solid window-management logic inherited
from the Metacity window manager.
While Mutter can be used stand-alone, it is primarily intended to be
used as the display core of a larger system such as GNOME Shell. For
this reason, Mutter is very extensible via plugins, which are used both
to add fancy visual effects and to rework the window management
behaviors to meet the needs of the environment.
%package common
Summary: Common files used by %{name} and forks of %{name}
BuildArch: noarch
Conflicts: mutter < 45~beta.1-2
Provides: mutter-common = %{gnome_version}-%{release}
%description common
Common files used by Mutter and soft forks of Mutter
%package devel
Summary: Development package for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
# for EGL/eglmesaext.h that's included from public cogl-egl-defines.h header
Requires: mesa-libEGL-devel
%description devel
Header files and libraries for developing Mutter plugins. Also includes
utilities for testing Metacity/Mutter themes.
%package tests
Summary: Tests for the %{name} package
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtk3%{?_isa} >= %{gtk3_version}
%description tests
The %{name}-tests package contains tests that can be used to verify
the functionality of the installed %{name} package.
%prep
%autosetup -S git -n %{name}-%{tarball_version}
%build
%meson -Degl_device=true -Dwayland_eglstream=true
%meson_build
%install
%meson_install
%find_lang %{name}
%files -f %{name}.lang
%license COPYING
%doc NEWS
%{_bindir}/mutter
%{_libdir}/lib*.so.*
%{_libdir}/mutter-%{mutter_api_version}/
%{_libexecdir}/mutter-restart-helper
%{_libexecdir}/mutter-x11-frames
%{_mandir}/man1/mutter.1*
%files common
%{_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
%{_datadir}/gnome-control-center/keybindings/50-mutter-*.xml
%{_udevrulesdir}/61-mutter.rules
%files devel
%{_includedir}/*
%{_libdir}/lib*.so
%{_libdir}/pkgconfig/*
%files tests
%{_libexecdir}/installed-tests/mutter-%{mutter_api_version}
%{_datadir}/installed-tests/mutter-%{mutter_api_version}
%{_datadir}/mutter-%{mutter_api_version}/tests
%changelog
%autochangelog