From 593fbcd81f9b15d04acd38d6361f6d9b12582480 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 14 Apr 2023 16:30:26 +0300 Subject: [PATCH] import xdg-desktop-portal-gnome-41.2-2.el9 --- .gitignore | 1 + .xdg-desktop-portal-gnome.metadata | 1 + SOURCES/windows-changed-signal.patch | 176 +++++++++++++++++++++++++++ SPECS/xdg-desktop-portal-gnome.spec | 93 ++++++++++++++ 4 files changed, 271 insertions(+) create mode 100644 .gitignore create mode 100644 .xdg-desktop-portal-gnome.metadata create mode 100644 SOURCES/windows-changed-signal.patch create mode 100644 SPECS/xdg-desktop-portal-gnome.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed51144 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/xdg-desktop-portal-gnome-41.2.tar.xz diff --git a/.xdg-desktop-portal-gnome.metadata b/.xdg-desktop-portal-gnome.metadata new file mode 100644 index 0000000..b5d648e --- /dev/null +++ b/.xdg-desktop-portal-gnome.metadata @@ -0,0 +1 @@ +0ff21a277478d553fcb740c7cd01f28c8d932997 SOURCES/xdg-desktop-portal-gnome-41.2.tar.xz diff --git a/SOURCES/windows-changed-signal.patch b/SOURCES/windows-changed-signal.patch new file mode 100644 index 0000000..d5ca97f --- /dev/null +++ b/SOURCES/windows-changed-signal.patch @@ -0,0 +1,176 @@ +From 396a999f3e9daa0e3511e590339915e5ad9b6b31 Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Mon, 24 Oct 2022 16:10:00 -0300 +Subject: [PATCH 1/4] screencastwidget: Trivial style cleanup + +(cherry picked from commit 663994bc20a0d93264a0b68222522c68e8525ba4) +--- + src/screencastwidget.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/screencastwidget.c b/src/screencastwidget.c +index cdd57dc..0009a35 100644 +--- a/src/screencastwidget.c ++++ b/src/screencastwidget.c +@@ -266,9 +266,9 @@ connect_windows_changed_listener (ScreenCastWidget *widget) + g_assert (!widget->windows_changed_handler_id); + widget->windows_changed_handler_id = + g_signal_connect (widget->shell_introspect, +- "windows-changed", +- G_CALLBACK (on_windows_changed), +- widget); ++ "windows-changed", ++ G_CALLBACK (on_windows_changed), ++ widget); + shell_introspect_ref_listeners (widget->shell_introspect); + } + +-- +2.38.1 + + +From 5e7444c4ac4e0bc181a7cee9c00b3e542f77e0f6 Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Mon, 24 Oct 2022 16:10:31 -0300 +Subject: [PATCH 2/4] screencastwidget: Use g_clear_signal_handler + +Small cleanup + +(cherry picked from commit e0002330c41d62f49d9b58002ae1a607a79c67bf) +--- + src/meson.build | 2 +- + src/screencastwidget.c | 5 ++--- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/src/meson.build b/src/meson.build +index 6d2e476..8341aa1 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -60,7 +60,7 @@ deps = [ + declare_dependency(sources: built_sources), + meson.get_compiler('c').find_library('m'), + dependency('fontconfig'), +- dependency('glib-2.0', version: '>= 2.44'), ++ dependency('glib-2.0', version: '>= 2.62'), + dependency('gio-unix-2.0'), + dependency('gtk4', version: '>= 4.0'), + dependency('gsettings-desktop-schemas'), +diff --git a/src/screencastwidget.c b/src/screencastwidget.c +index 0009a35..82dd3bd 100644 +--- a/src/screencastwidget.c ++++ b/src/screencastwidget.c +@@ -276,9 +276,8 @@ static void + disconnect_windows_changed_listener (ScreenCastWidget *widget) + { + g_assert (widget->windows_changed_handler_id); +- g_signal_handler_disconnect (widget->shell_introspect, +- widget->windows_changed_handler_id); +- widget->windows_changed_handler_id = 0; ++ g_clear_signal_handler (&widget->windows_changed_handler_id, ++ widget->shell_introspect); + shell_introspect_unref_listeners (widget->shell_introspect); + } + +-- +2.38.1 + + +From 6b491b555bb3514da4fcadb4147813217392724b Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Mon, 24 Oct 2022 18:55:51 -0300 +Subject: [PATCH 3/4] Import newer org.gnome.Shell.Introspect.xml + +It has a handy signal we will use soon, the "WindowsChanged" signal. + +(cherry picked from commit 41277ae33a9c9d54e6df7d7277854ccc79265fc2) +--- + data/org.gnome.Shell.Introspect.xml | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/data/org.gnome.Shell.Introspect.xml b/data/org.gnome.Shell.Introspect.xml +index d71f241..cb19cfe 100644 +--- a/data/org.gnome.Shell.Introspect.xml ++++ b/data/org.gnome.Shell.Introspect.xml +@@ -18,6 +18,12 @@ + --> + + ++ ++ ++ + + + ++ ++ ++ + + + +-- +2.38.1 + + +From 70b25b7abb8223876f0ca509852e21ec26e3f624 Mon Sep 17 00:00:00 2001 +From: Georges Basile Stavracas Neto +Date: Mon, 24 Oct 2022 18:56:59 -0300 +Subject: [PATCH 4/4] shellintrospect: React to "windows-changed" signal + +In addition to fetching the list of windows whenever a new +listener registers, listen to the "windows-changed" signal +from the D-Bus proxy and update the list of windows when +Shell signals us. + +Fixes +https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/issues/17 + +(cherry picked from commit ddc82436d623a7904882230ede0049a8e3ee6595) +--- + src/shellintrospect.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/shellintrospect.c b/src/shellintrospect.c +index 6b007b4..1fa8b93 100644 +--- a/src/shellintrospect.c ++++ b/src/shellintrospect.c +@@ -189,6 +189,14 @@ shell_introspect_are_animations_enabled (ShellIntrospect *shell_introspect, + return TRUE; + } + ++static void ++on_windows_changed_cb (GDBusProxy *proxy, ++ ShellIntrospect *shell_introspect) ++{ ++ if (shell_introspect->num_listeners > 0) ++ sync_state (shell_introspect); ++} ++ + static void + sync_animations_enabled (ShellIntrospect *shell_introspect) + { +@@ -233,6 +241,10 @@ on_shell_introspect_proxy_acquired (GObject *object, + + shell_introspect->proxy = proxy; + ++ g_signal_connect (proxy, "windows-changed", ++ G_CALLBACK (on_windows_changed_cb), ++ shell_introspect); ++ + if (shell_introspect->num_listeners > 0) + sync_state (shell_introspect); + +-- +2.38.1 + diff --git a/SPECS/xdg-desktop-portal-gnome.spec b/SPECS/xdg-desktop-portal-gnome.spec new file mode 100644 index 0000000..2849678 --- /dev/null +++ b/SPECS/xdg-desktop-portal-gnome.spec @@ -0,0 +1,93 @@ +%global tarball_version %%(echo %{version} | tr '~' '.') + +# Required for xdp_impl_background_emit_running_applications_changed +%global xdg_desktop_portal_version 1.5.4 + +Name: xdg-desktop-portal-gnome +Version: 41.2 +Release: 2%{?dist} +Summary: Backend implementation for xdg-desktop-portal using GNOME + +License: LGPLv2+ +URL: https://gitlab.gnome.org/GNOME/%{name} +Source0: https://download.gnome.org/sources/%{name}/41/%{name}-%{tarball_version}.tar.xz + +Patch0: windows-changed-signal.patch + +BuildRequires: desktop-file-utils +BuildRequires: gcc +BuildRequires: gettext +BuildRequires: meson +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gsettings-desktop-schemas) +BuildRequires: pkgconfig(gtk4) +BuildRequires: pkgconfig(xdg-desktop-portal) >= %{xdg_desktop_portal_version} +BuildRequires: systemd-rpm-macros +Requires: dbus +Requires: dbus-common +Requires: xdg-desktop-portal >= %{xdg_desktop_portal_version} +Supplements: gnome-shell + +%description +A backend implementation for xdg-desktop-portal that is using various pieces of +GNOME infrastructure, such as the org.gnome.Shell.Screenshot or +org.gnome.SessionManager D-Bus interfaces. + + +%prep +%autosetup -p1 -n %{name}-%{tarball_version} + + +%build +%meson -Dsystemduserunitdir=%{_userunitdir} +%meson_build + + +%install +%meson_install +desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop +%find_lang %{name} + + +%post +%systemd_user_post %{name}.service + +%preun +%systemd_user_preun %{name}.service + + +%files -f %{name}.lang +%license COPYING +%doc NEWS README.md +%{_libexecdir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/dbus-1/services/org.freedesktop.impl.portal.desktop.gnome.service +%{_datadir}/xdg-desktop-portal/portals/gnome.portal +%{_userunitdir}/%{name}.service + + + +%changelog +* Fri Apr 14 2023 MSVSphere Packaging Team - 41.2-2 +- Rebuilt for MSVSphere 9.2 beta + +* Tue Dec 13 2022 Jonas Ã…dahl - 41.2-2 +- Keep screen share window list up to date + Resolves: #2148362 + +* Wed Jun 01 2022 Debarshi Ray - 41.2-1 +- Update to 41.2 +Resolves: #2083018 + +* Tue Apr 12 2022 Debarshi Ray - 41.1-3 +- Recommend this portal backend for all GNOME users +Resolves: #2051473 + +* Tue Apr 05 2022 Debarshi Ray - 41.1-2 +- Make the Supplements specific to Fedora to retain consistency with + xdg-desktop-portal-gtk +Resolves: #2051473 + +* Sat Mar 05 2022 Debarshi Ray - 41.1-1 +- Initial version +Resolves: #2051473