dbus: Fix object path regression from GDBus port
This commit is contained in:
parent
1ddf21164c
commit
8f51a4af39
67
0001-dbus-Fix-object-path-regression-from-GDBus-port.patch
Normal file
67
0001-dbus-Fix-object-path-regression-from-GDBus-port.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
From 7840cb97902c952c34831cc63dcba00ececabd0c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stef Walter <stefw@gnome.org>
|
||||||
|
Date: Fri, 16 Oct 2015 22:46:07 +0200
|
||||||
|
Subject: [PATCH] dbus: Fix object path regression from GDBus port
|
||||||
|
|
||||||
|
Previously objects were only explicitly exported on the bus when
|
||||||
|
they were ready. However now due to GDBus handler connections
|
||||||
|
they are exported earlier.
|
||||||
|
|
||||||
|
Make sure to export a prompt object before something is exported
|
||||||
|
at the same object path to take its place.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=756032
|
||||||
|
---
|
||||||
|
daemon/dbus/gkd-secret-create.c | 1 +
|
||||||
|
daemon/dbus/gkd-secret-prompt.c | 10 ++++++++++
|
||||||
|
daemon/dbus/gkd-secret-prompt.h | 3 +++
|
||||||
|
3 files changed, 14 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/daemon/dbus/gkd-secret-create.c b/daemon/dbus/gkd-secret-create.c
|
||||||
|
index 0f2b573..cd5587b 100644
|
||||||
|
--- a/daemon/dbus/gkd-secret-create.c
|
||||||
|
+++ b/daemon/dbus/gkd-secret-create.c
|
||||||
|
@@ -176,6 +176,7 @@ unlock_or_complete_this_prompt (GkdSecretCreate *self)
|
||||||
|
|
||||||
|
g_object_ref (self);
|
||||||
|
prompt = GKD_SECRET_PROMPT (self);
|
||||||
|
+ gkd_secret_prompt_unexport (prompt);
|
||||||
|
|
||||||
|
unlock = gkd_secret_unlock_new (gkd_secret_prompt_get_service (prompt),
|
||||||
|
gkd_secret_prompt_get_caller (prompt),
|
||||||
|
diff --git a/daemon/dbus/gkd-secret-prompt.c b/daemon/dbus/gkd-secret-prompt.c
|
||||||
|
index 207cc8a..f0a6d63 100644
|
||||||
|
--- a/daemon/dbus/gkd-secret-prompt.c
|
||||||
|
+++ b/daemon/dbus/gkd-secret-prompt.c
|
||||||
|
@@ -202,6 +202,16 @@ gkd_secret_prompt_constructed (GObject *obj)
|
||||||
|
G_CALLBACK (prompt_method_prompt), self);
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+gkd_secret_prompt_unexport (GkdSecretPrompt *self)
|
||||||
|
+{
|
||||||
|
+ g_return_if_fail (self->pv->skeleton != NULL);
|
||||||
|
+ g_dbus_interface_skeleton_unexport (G_DBUS_INTERFACE_SKELETON (self->pv->skeleton));
|
||||||
|
+ g_signal_handlers_disconnect_by_func (self->pv->skeleton, prompt_method_dismiss, self);
|
||||||
|
+ g_signal_handlers_disconnect_by_func (self->pv->skeleton, prompt_method_prompt, self);
|
||||||
|
+ g_clear_object (&self->pv->skeleton);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
gkd_secret_prompt_init (GkdSecretPrompt *self)
|
||||||
|
{
|
||||||
|
diff --git a/daemon/dbus/gkd-secret-prompt.h b/daemon/dbus/gkd-secret-prompt.h
|
||||||
|
index 0b52ea0..a133f25 100644
|
||||||
|
--- a/daemon/dbus/gkd-secret-prompt.h
|
||||||
|
+++ b/daemon/dbus/gkd-secret-prompt.h
|
||||||
|
@@ -77,4 +77,7 @@ void gkd_secret_prompt_dismiss (GkdSecretPrompt *
|
||||||
|
void gkd_secret_prompt_dismiss_with_error (GkdSecretPrompt *self,
|
||||||
|
GError *error);
|
||||||
|
|
||||||
|
+/* Used by derived classes */
|
||||||
|
+void gkd_secret_prompt_unexport (GkdSecretPrompt *self);
|
||||||
|
+
|
||||||
|
#endif /* __GKD_SECRET_PROMPT_H__ */
|
||||||
|
--
|
||||||
|
2.5.0
|
||||||
|
|
@ -5,13 +5,16 @@
|
|||||||
Summary: Framework for managing passwords and other secrets
|
Summary: Framework for managing passwords and other secrets
|
||||||
Name: gnome-keyring
|
Name: gnome-keyring
|
||||||
Version: 3.18.1
|
Version: 3.18.1
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
#VCS: git:git://git.gnome.org/gnome-keyring
|
#VCS: git:git://git.gnome.org/gnome-keyring
|
||||||
Source: https://download.gnome.org/sources/%{name}/3.18/%{name}-%{version}.tar.xz
|
Source: https://download.gnome.org/sources/%{name}/3.18/%{name}-%{version}.tar.xz
|
||||||
URL: https://wiki.gnome.org/Projects/GnomeKeyring
|
URL: https://wiki.gnome.org/Projects/GnomeKeyring
|
||||||
|
|
||||||
|
# Backported from upstream
|
||||||
|
Patch0: 0001-dbus-Fix-object-path-regression-from-GDBus-port.patch
|
||||||
|
|
||||||
BuildRequires: pkgconfig(gcr-3) >= %{gcr_version}
|
BuildRequires: pkgconfig(gcr-3) >= %{gcr_version}
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
|
||||||
BuildRequires: pkgconfig(p11-kit-1)
|
BuildRequires: pkgconfig(p11-kit-1)
|
||||||
@ -49,6 +52,7 @@ automatically unlock the "login" keyring when the user logs in.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n gnome-keyring-%{version}
|
%setup -q -n gnome-keyring-%{version}
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure \
|
%configure \
|
||||||
@ -105,6 +109,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas >&/dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat Oct 17 2015 Kalev Lember <klember@redhat.com> - 3.18.1-2
|
||||||
|
- dbus: Fix object path regression from GDBus port
|
||||||
|
|
||||||
* Sat Oct 17 2015 Kalev Lember <klember@redhat.com> - 3.18.1-1
|
* Sat Oct 17 2015 Kalev Lember <klember@redhat.com> - 3.18.1-1
|
||||||
- Update to 3.18.1
|
- Update to 3.18.1
|
||||||
- Drop unused dbus build dependency
|
- Drop unused dbus build dependency
|
||||||
|
Loading…
Reference in New Issue
Block a user