Update to 1.18.1
This commit is contained in:
parent
a8b904a600
commit
db2359642f
1
.gitignore
vendored
1
.gitignore
vendored
@ -44,3 +44,4 @@
|
|||||||
/xdg-desktop-portal-1.17.0.tar.xz
|
/xdg-desktop-portal-1.17.0.tar.xz
|
||||||
/xdg-desktop-portal-1.17.2.tar.xz
|
/xdg-desktop-portal-1.17.2.tar.xz
|
||||||
/xdg-desktop-portal-1.18.0.tar.xz
|
/xdg-desktop-portal-1.18.0.tar.xz
|
||||||
|
/xdg-desktop-portal-1.18.1.tar.xz
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (xdg-desktop-portal-1.18.0.tar.xz) = 416c0736342b2909c10db025da72edca6d106b46224341bdf45ab41152c01b97f4a4eb78df924a6fbc771475bf103c1aea3005d8ff683f1eca935dbd1afe4a51
|
SHA512 (xdg-desktop-portal-1.18.1.tar.xz) = b4340d14a94a03bdf3ebee8d5a13e7d9386e870b50654369293670d5a828fd258fe419b330c036eaa28963447764db2169aa7f225819a4f9877e57d18c59030e
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global pipewire_version 0.2.90
|
%global pipewire_version 0.2.90
|
||||||
|
|
||||||
Name: xdg-desktop-portal
|
Name: xdg-desktop-portal
|
||||||
Version: 1.18.0
|
Version: 1.18.1
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
Summary: Portal frontend service to flatpak
|
Summary: Portal frontend service to flatpak
|
||||||
|
|
||||||
@ -12,10 +12,6 @@ License: LGPLv2+
|
|||||||
URL: https://github.com/flatpak/xdg-desktop-portal/
|
URL: https://github.com/flatpak/xdg-desktop-portal/
|
||||||
Source0: https://github.com/flatpak/xdg-desktop-portal/releases/download/%{version}/%{name}-%{version}.tar.xz
|
Source0: https://github.com/flatpak/xdg-desktop-portal/releases/download/%{version}/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
# Issue: Transient screen cast stream restoration no longer works
|
|
||||||
# Link: https://github.com/flatpak/xdg-desktop-portal/issues/1124
|
|
||||||
Patch0: xdp-delete-transient-permission-when-peer-dies.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: meson
|
BuildRequires: meson
|
||||||
|
@ -1,215 +0,0 @@
|
|||||||
From ec7af044599a19d5709fa67d45f6af1a7ac1ae88 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
|
||||||
Date: Wed, 4 Oct 2023 11:04:48 -0300
|
|
||||||
Subject: [PATCH 1/3] session: Delete transient permissions when peer dies
|
|
||||||
|
|
||||||
This is what the documented behaviour mentions - if the peer dies,
|
|
||||||
transient permissions are gone.
|
|
||||||
|
|
||||||
This doesn't yet work since we're removing transient permissions
|
|
||||||
when the session is closed.
|
|
||||||
|
|
||||||
Related: https://github.com/flatpak/xdg-desktop-portal/issues/1124
|
|
||||||
---
|
|
||||||
src/restore-token.c | 23 +++++++++++++++++++++++
|
|
||||||
src/restore-token.h | 2 ++
|
|
||||||
src/xdg-desktop-portal.c | 2 ++
|
|
||||||
3 files changed, 27 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/restore-token.c b/src/restore-token.c
|
|
||||||
index 2e6f31fcf..71910d849 100644
|
|
||||||
--- a/src/restore-token.c
|
|
||||||
+++ b/src/restore-token.c
|
|
||||||
@@ -89,6 +89,29 @@ xdp_session_persistence_delete_transient_permissions (Session *session,
|
|
||||||
g_hash_table_remove (transient_permissions, id);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+xdp_session_persistence_delete_transient_permissions_for_sender (const char *sender_name)
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ g_autoptr(GMutexLocker) locker = NULL;
|
|
||||||
+ GHashTableIter iter;
|
|
||||||
+ const char *key;
|
|
||||||
+
|
|
||||||
+ locker = g_mutex_locker_new (&transient_permissions_lock);
|
|
||||||
+
|
|
||||||
+ if (!transient_permissions)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ g_hash_table_iter_init (&iter, transient_permissions);
|
|
||||||
+ while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
|
|
||||||
+ {
|
|
||||||
+ g_auto(GStrv) split = g_strsplit (key, "/", 2);
|
|
||||||
+
|
|
||||||
+ if (split && split[0] && g_strcmp0 (split[0], sender_name) == 0)
|
|
||||||
+ g_hash_table_iter_remove (&iter);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
GVariant *
|
|
||||||
xdp_session_persistence_get_transient_permissions (Session *session,
|
|
||||||
const char *restore_token)
|
|
||||||
diff --git a/src/restore-token.h b/src/restore-token.h
|
|
||||||
index 1853017be..fdd3389e6 100644
|
|
||||||
--- a/src/restore-token.h
|
|
||||||
+++ b/src/restore-token.h
|
|
||||||
@@ -34,6 +34,8 @@ void xdp_session_persistence_set_transient_permissions (Session *session,
|
|
||||||
void xdp_session_persistence_delete_transient_permissions (Session *session,
|
|
||||||
const char *restore_token);
|
|
||||||
|
|
||||||
+void xdp_session_persistence_delete_transient_permissions_for_sender (const char *sender_name);
|
|
||||||
+
|
|
||||||
GVariant * xdp_session_persistence_get_transient_permissions (Session *session,
|
|
||||||
const char *restore_token);
|
|
||||||
|
|
||||||
diff --git a/src/xdg-desktop-portal.c b/src/xdg-desktop-portal.c
|
|
||||||
index 157752543..e377a9671 100644
|
|
||||||
--- a/src/xdg-desktop-portal.c
|
|
||||||
+++ b/src/xdg-desktop-portal.c
|
|
||||||
@@ -57,6 +57,7 @@
|
|
||||||
#include "realtime.h"
|
|
||||||
#include "remote-desktop.h"
|
|
||||||
#include "request.h"
|
|
||||||
+#include "restore-token.h"
|
|
||||||
#include "screen-cast.h"
|
|
||||||
#include "screenshot.h"
|
|
||||||
#include "secret.h"
|
|
||||||
@@ -229,6 +230,7 @@ peer_died_cb (const char *name)
|
|
||||||
{
|
|
||||||
close_requests_for_sender (name);
|
|
||||||
close_sessions_for_sender (name);
|
|
||||||
+ xdp_session_persistence_delete_transient_permissions_for_sender (name);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
|
|
||||||
From 9e6c7d9daf3b0fa55e30ce4ed0bcfc29e440b8ab Mon Sep 17 00:00:00 2001
|
|
||||||
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
|
||||||
Date: Wed, 4 Oct 2023 11:07:22 -0300
|
|
||||||
Subject: [PATCH 2/3] restore-token: Keep transient permissions on session
|
|
||||||
close
|
|
||||||
|
|
||||||
This is the counterpart to removing transient permissions when
|
|
||||||
the peer dies - not remove them when the session is closed.
|
|
||||||
|
|
||||||
Closes: https://github.com/flatpak/xdg-desktop-portal/issues/1124
|
|
||||||
---
|
|
||||||
src/restore-token.c | 29 -----------------------------
|
|
||||||
1 file changed, 29 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/restore-token.c b/src/restore-token.c
|
|
||||||
index 71910d849..b084d2528 100644
|
|
||||||
--- a/src/restore-token.c
|
|
||||||
+++ b/src/restore-token.c
|
|
||||||
@@ -27,28 +27,6 @@ static GHashTable *transient_permissions;
|
|
||||||
|
|
||||||
#define RESTORE_DATA_TYPE "(suv)"
|
|
||||||
|
|
||||||
-static void
|
|
||||||
-internal_closed_cb (Session *session)
|
|
||||||
-{
|
|
||||||
- g_autoptr(GMutexLocker) locker = NULL;
|
|
||||||
- GHashTableIter iter;
|
|
||||||
- const char *key;
|
|
||||||
-
|
|
||||||
- locker = g_mutex_locker_new (&transient_permissions_lock);
|
|
||||||
-
|
|
||||||
- if (!transient_permissions)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
- g_hash_table_iter_init (&iter, transient_permissions);
|
|
||||||
- while (g_hash_table_iter_next (&iter, (gpointer *) &key, NULL))
|
|
||||||
- {
|
|
||||||
- g_auto(GStrv) split = g_strsplit (key, "/", 2);
|
|
||||||
-
|
|
||||||
- if (split && split[0] && g_strcmp0 (split[0], session->sender) == 0)
|
|
||||||
- g_hash_table_iter_remove (&iter);
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
void
|
|
||||||
xdp_session_persistence_set_transient_permissions (Session *session,
|
|
||||||
const char *restore_token,
|
|
||||||
@@ -66,13 +44,6 @@ xdp_session_persistence_set_transient_permissions (Session *session,
|
|
||||||
g_hash_table_insert (transient_permissions,
|
|
||||||
g_strdup_printf ("%s/%s", session->sender, restore_token),
|
|
||||||
g_variant_ref (restore_data));
|
|
||||||
-
|
|
||||||
- if (!session->persistence.has_transient_permissions)
|
|
||||||
- {
|
|
||||||
- g_signal_connect (session, "internal-closed",
|
|
||||||
- G_CALLBACK (internal_closed_cb), NULL);
|
|
||||||
- session->persistence.has_transient_permissions = TRUE;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
|
|
||||||
From 3b63f097e4d42a584fa11702deb51ac37be876a5 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
|
||||||
Date: Wed, 4 Oct 2023 11:08:35 -0300
|
|
||||||
Subject: [PATCH 3/3] session: Remove unused signal and struct field
|
|
||||||
|
|
||||||
They're not used anymore.
|
|
||||||
---
|
|
||||||
src/session.c | 18 ------------------
|
|
||||||
src/session.h | 4 ----
|
|
||||||
2 files changed, 22 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/session.c b/src/session.c
|
|
||||||
index 20017de6d..fe1a0d916 100644
|
|
||||||
--- a/src/session.c
|
|
||||||
+++ b/src/session.c
|
|
||||||
@@ -22,15 +22,6 @@
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
-enum
|
|
||||||
-{
|
|
||||||
- INTERNAL_CLOSED,
|
|
||||||
-
|
|
||||||
- N_SIGNALS
|
|
||||||
-};
|
|
||||||
-
|
|
||||||
-static guint signals[N_SIGNALS];
|
|
||||||
-
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
PROP_0,
|
|
||||||
@@ -183,8 +174,6 @@ session_close (Session *session,
|
|
||||||
|
|
||||||
SESSION_GET_CLASS (session)->close (session);
|
|
||||||
|
|
||||||
- g_signal_emit (session, signals[INTERNAL_CLOSED], 0);
|
|
||||||
-
|
|
||||||
if (notify_closed)
|
|
||||||
{
|
|
||||||
GVariantBuilder details_builder;
|
|
||||||
@@ -539,11 +528,4 @@ session_class_init (SessionClass *klass)
|
|
||||||
G_PARAM_STATIC_STRINGS);
|
|
||||||
|
|
||||||
g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
|
|
||||||
-
|
|
||||||
- signals[INTERNAL_CLOSED] = g_signal_new ("internal-closed",
|
|
||||||
- G_TYPE_FROM_CLASS (klass),
|
|
||||||
- G_SIGNAL_RUN_LAST,
|
|
||||||
- 0,
|
|
||||||
- NULL, NULL, NULL,
|
|
||||||
- G_TYPE_NONE, 0);
|
|
||||||
}
|
|
||||||
diff --git a/src/session.h b/src/session.h
|
|
||||||
index d52aa9780..14e62045c 100644
|
|
||||||
--- a/src/session.h
|
|
||||||
+++ b/src/session.h
|
|
||||||
@@ -45,10 +45,6 @@ struct _Session
|
|
||||||
char *impl_dbus_name;
|
|
||||||
GDBusConnection *impl_connection;
|
|
||||||
XdpDbusImplSession *impl_session;
|
|
||||||
-
|
|
||||||
- struct {
|
|
||||||
- gboolean has_transient_permissions;
|
|
||||||
- } persistence;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _SessionClass
|
|
Loading…
Reference in New Issue
Block a user