- Update to 2.29.90
This commit is contained in:
parent
71012fc01b
commit
0df261f755
@ -1 +1 @@
|
||||
gnome-keyring-2.29.5.tar.bz2
|
||||
gnome-keyring-2.29.90.tar.bz2
|
||||
|
@ -1,16 +0,0 @@
|
||||
diff -up gnome-keyring-2.29.4/daemon/dbus/gkd-dbus-session.c.bak gnome-keyring-2.29.4/daemon/dbus/gkd-dbus-session.c
|
||||
--- gnome-keyring-2.29.4/daemon/dbus/gkd-dbus-session.c.bak 2009-12-15 04:31:36.000000000 +0100
|
||||
+++ gnome-keyring-2.29.4/daemon/dbus/gkd-dbus-session.c 2009-12-22 14:44:45.000000000 +0100
|
||||
@@ -130,7 +130,11 @@ signal_filter (DBusConnection *conn, DBu
|
||||
unregister_daemon_in_session (conn);
|
||||
gkd_main_quit ();
|
||||
return DBUS_HANDLER_RESULT_HANDLED;
|
||||
- }
|
||||
+ } else if (dbus_message_is_signal (msg, DBUS_INTERFACE_LOCAL, "Disconnected")) {
|
||||
+ unregister_daemon_in_session (conn);
|
||||
+ gkd_main_quit ();
|
||||
+ return DBUS_HANDLER_RESULT_HANDLED;
|
||||
+ }
|
||||
|
||||
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
|
||||
}
|
@ -1,63 +0,0 @@
|
||||
From 4d22df25dac5c051c04f8d957169ff5ba45b5020 Mon Sep 17 00:00:00 2001
|
||||
From: Stef Walter <stef@memberwebs.com>
|
||||
Date: Sat, 06 Feb 2010 15:06:16 +0000
|
||||
Subject: [dbus] Refresh and store the default keyring correctly.
|
||||
|
||||
Although the default keyring was being loaded, it was not being
|
||||
used correctly by the path resolution code.
|
||||
---
|
||||
diff --git a/daemon/dbus/gkd-secret-service.c b/daemon/dbus/gkd-secret-service.c
|
||||
index 4e2b01c..3d5bd19 100644
|
||||
--- a/daemon/dbus/gkd-secret-service.c
|
||||
+++ b/daemon/dbus/gkd-secret-service.c
|
||||
@@ -56,7 +56,6 @@ struct _GkdSecretService {
|
||||
GHashTable *clients;
|
||||
gchar *match_rule;
|
||||
GkdSecretObjects *objects;
|
||||
- gchar *default_collection;
|
||||
};
|
||||
|
||||
typedef struct _ServiceClient {
|
||||
@@ -88,9 +87,11 @@ static void
|
||||
update_default (GkdSecretService *self, gboolean force)
|
||||
{
|
||||
gchar *contents = NULL;
|
||||
+ const gchar *identifier;
|
||||
gchar *path;
|
||||
|
||||
- if (!force && self->default_collection)
|
||||
+ identifier = gkd_secret_objects_get_alias (self->objects, "default");
|
||||
+ if (!force && identifier)
|
||||
return;
|
||||
|
||||
path = default_path ();
|
||||
@@ -103,21 +104,23 @@ update_default (GkdSecretService *self, gboolean force)
|
||||
}
|
||||
g_free (path);
|
||||
|
||||
- g_free (self->default_collection);
|
||||
- self->default_collection = contents;
|
||||
+ gkd_secret_objects_set_alias (self->objects, "default", contents);
|
||||
+ g_free (contents);
|
||||
}
|
||||
|
||||
static void
|
||||
store_default (GkdSecretService *self)
|
||||
{
|
||||
GError *error = NULL;
|
||||
+ const gchar *identifier;
|
||||
gchar *path;
|
||||
|
||||
- if (!self->default_collection)
|
||||
+ identifier = gkd_secret_objects_get_alias (self->objects, "default");
|
||||
+ if (!identifier)
|
||||
return;
|
||||
|
||||
path = default_path ();
|
||||
- if (!g_file_set_contents (path, self->default_collection, -1, &error)) {
|
||||
+ if (!g_file_set_contents (path, identifier, -1, &error)) {
|
||||
g_message ("couldn't store default keyring: %s",
|
||||
error->message ? error->message : "");
|
||||
}
|
||||
--
|
||||
cgit v0.8.3.1
|
@ -1,31 +0,0 @@
|
||||
From 7407bcbbb0da9721c9ead7b9253b8dd90b12ccda Mon Sep 17 00:00:00 2001
|
||||
From: Stef Walter <stef@memberwebs.com>
|
||||
Date: Thu, 21 Jan 2010 14:49:00 +0000
|
||||
Subject: Fix endless loop when looking for password in login keyring.
|
||||
|
||||
If the password for an encryption key was stored in the login
|
||||
keyring in the 'old' way, there could be an endless loop if
|
||||
it was the wrong password.
|
||||
---
|
||||
diff --git a/daemon/pkcs11/gkd-pkcs11-auth.c b/daemon/pkcs11/gkd-pkcs11-auth.c
|
||||
index 599e212..e9cc232 100644
|
||||
--- a/daemon/pkcs11/gkd-pkcs11-auth.c
|
||||
+++ b/daemon/pkcs11/gkd-pkcs11-auth.c
|
||||
@@ -518,8 +518,15 @@ login_specific_done (CK_SESSION_HANDLE handle, CK_SESSION_INFO *info,
|
||||
case CKR_PIN_INVALID:
|
||||
case CKR_PIN_LEN_RANGE:
|
||||
case CKR_PIN_LOCKED:
|
||||
+ /* Clear out any stored secret */
|
||||
if (object->unique && object->token)
|
||||
gkd_login_remove_secret ("unique", object->unique, NULL);
|
||||
+
|
||||
+ /* COMPAT: Clear old method of storing secrets for objects in login keyring */
|
||||
+ if (object->digest) {
|
||||
+ convert_upper_case (object->digest);
|
||||
+ gkd_login_remove_secret ("object-digest", object->digest, NULL);
|
||||
+ }
|
||||
break;
|
||||
|
||||
case CKR_OK:
|
||||
--
|
||||
cgit v0.8.3.1
|
@ -1,57 +0,0 @@
|
||||
From aa548019df045b4085c088c84aec585ab0e62a98 Mon Sep 17 00:00:00 2001
|
||||
From: Stef Walter <stef@memberwebs.com>
|
||||
Date: Sun, 07 Feb 2010 17:32:57 +0000
|
||||
Subject: [pkcs11] Set attributes on object before storing.
|
||||
|
||||
Set attributes on new objects before storing them.
|
||||
---
|
||||
diff --git a/pkcs11/gck/gck-session.c b/pkcs11/gck/gck-session.c
|
||||
index 8b280ec..ead7b1c 100644
|
||||
--- a/pkcs11/gck/gck-session.c
|
||||
+++ b/pkcs11/gck/gck-session.c
|
||||
@@ -770,7 +770,6 @@ gck_session_create_object_for_factory (GckSession *self, GckFactory *factory,
|
||||
{
|
||||
GckTransaction *owned = NULL;
|
||||
GckObject *object;
|
||||
- gulong i;
|
||||
|
||||
g_return_val_if_fail (GCK_IS_SESSION (self), NULL);
|
||||
g_return_val_if_fail (factory && factory->func, NULL);
|
||||
@@ -797,13 +796,6 @@ gck_session_create_object_for_factory (GckSession *self, GckFactory *factory,
|
||||
gck_transaction_fail (transaction, CKR_GENERAL_ERROR);
|
||||
}
|
||||
|
||||
- /* Next go through and set all attributes that weren't used initially */
|
||||
- gck_attributes_consume (template, count, CKA_TOKEN, G_MAXULONG);
|
||||
- for (i = 0; i < count && !gck_transaction_get_failed (transaction); ++i) {
|
||||
- if (!gck_attribute_consumed (&template[i]))
|
||||
- gck_object_set_attribute (object, self, transaction, &template[i]);
|
||||
- }
|
||||
-
|
||||
g_free (template);
|
||||
|
||||
if (owned)
|
||||
@@ -846,6 +838,7 @@ gck_session_complete_object_creation (GckSession *self, GckTransaction *transact
|
||||
GckObject *object, CK_ATTRIBUTE_PTR attrs, CK_ULONG n_attrs)
|
||||
{
|
||||
gboolean is_private;
|
||||
+ gulong i;
|
||||
|
||||
g_return_if_fail (GCK_IS_SESSION (self));
|
||||
g_return_if_fail (GCK_IS_OBJECT (object));
|
||||
@@ -872,6 +865,13 @@ gck_session_complete_object_creation (GckSession *self, GckTransaction *transact
|
||||
return gck_transaction_fail (transaction, CKR_USER_NOT_LOGGED_IN);
|
||||
}
|
||||
|
||||
+ /* Next go through and set all attributes that weren't used initially */
|
||||
+ gck_attributes_consume (attrs, n_attrs, CKA_TOKEN, G_MAXULONG);
|
||||
+ for (i = 0; i < n_attrs && !gck_transaction_get_failed (transaction); ++i) {
|
||||
+ if (!gck_attribute_consumed (&attrs[i]))
|
||||
+ gck_object_set_attribute (object, self, transaction, &attrs[i]);
|
||||
+ }
|
||||
+
|
||||
/* Find somewhere to store the object */
|
||||
if (gck_object_is_token (object))
|
||||
gck_module_store_token_object (self->pv->module, transaction, object);
|
||||
--
|
||||
cgit v0.8.3.1
|
@ -1,18 +0,0 @@
|
||||
|
||||
--- a/daemon/dbus/gkd-secret-create.c 2009-12-14 20:30:29.000000000 +0530
|
||||
+++ b/daemon/dbus/gkd-secret-create.c 2010-01-23 02:41:54.000000000 +0530
|
||||
@@ -82,9 +82,9 @@
|
||||
gkd_prompt_set_secondary_text (prompt, text);
|
||||
g_free (text);
|
||||
|
||||
- gkd_prompt_hide_widget (prompt, "name_area");
|
||||
- gkd_prompt_hide_widget (prompt, "confirm_area");
|
||||
- gkd_prompt_hide_widget (prompt, "details_area");
|
||||
+ gkd_prompt_show_widget (prompt, "password_area");
|
||||
+ gkd_prompt_show_widget (prompt, "confirm_area");
|
||||
+ gkd_prompt_show_widget (prompt, "details_area");
|
||||
|
||||
g_free (label);
|
||||
}
|
||||
|
||||
Diff finished. Sat Jan 23 02:42:59 2010
|
@ -1,64 +0,0 @@
|
||||
From 701cab2c3b40216c01bf1cda23fe15c9ff0d7caa Mon Sep 17 00:00:00 2001
|
||||
From: Stef Walter <stef@memberwebs.com>
|
||||
Date: Sat, 06 Feb 2010 15:39:05 +0000
|
||||
Subject: [secrets] Fix problems with collection reloading.
|
||||
|
||||
The module had a bug which would cause collections that were reloaded
|
||||
to appear as new collections
|
||||
---
|
||||
diff --git a/pkcs11/secret-store/gck-secret-module.c b/pkcs11/secret-store/gck-secret-module.c
|
||||
index 0cd7f50..5b08008 100644
|
||||
--- a/pkcs11/secret-store/gck-secret-module.c
|
||||
+++ b/pkcs11/secret-store/gck-secret-module.c
|
||||
@@ -110,15 +110,15 @@ complete_add (GckTransaction *transaction, GObject *obj, gpointer user_data)
|
||||
static void
|
||||
add_collection (GckSecretModule *self, GckTransaction *transaction, GckSecretCollection *collection)
|
||||
{
|
||||
- const gchar *identifier;
|
||||
+ const gchar *filename;
|
||||
|
||||
g_assert (GCK_IS_SECRET_MODULE(self));
|
||||
g_assert (GCK_IS_SECRET_COLLECTION (collection));
|
||||
|
||||
- identifier = gck_secret_object_get_identifier (GCK_SECRET_OBJECT (collection));
|
||||
- g_return_if_fail (identifier);
|
||||
+ filename = gck_secret_collection_get_filename (collection);
|
||||
+ g_return_if_fail (filename);
|
||||
|
||||
- g_hash_table_replace (self->collections, g_strdup (identifier), g_object_ref (collection));
|
||||
+ g_hash_table_replace (self->collections, g_strdup (filename), g_object_ref (collection));
|
||||
|
||||
gck_object_expose_full (GCK_OBJECT (collection), transaction, TRUE);
|
||||
if (transaction)
|
||||
@@ -138,15 +138,15 @@ complete_remove (GckTransaction *transaction, GObject *obj, gpointer user_data)
|
||||
static void
|
||||
remove_collection (GckSecretModule *self, GckTransaction *transaction, GckSecretCollection *collection)
|
||||
{
|
||||
- const gchar *identifier;
|
||||
+ const gchar *filename;
|
||||
|
||||
g_assert (GCK_IS_SECRET_MODULE (self));
|
||||
g_assert (GCK_IS_SECRET_COLLECTION (collection));
|
||||
|
||||
- identifier = gck_secret_object_get_identifier (GCK_SECRET_OBJECT (collection));
|
||||
- g_return_if_fail (identifier);
|
||||
+ filename = gck_secret_collection_get_filename (collection);
|
||||
+ g_return_if_fail (filename);
|
||||
|
||||
- g_hash_table_remove (self->collections, identifier);
|
||||
+ g_hash_table_remove (self->collections, filename);
|
||||
|
||||
gck_object_expose_full (GCK_OBJECT (collection), transaction, FALSE);
|
||||
if (transaction)
|
||||
@@ -222,6 +222,9 @@ on_file_load (GckFileTracker *tracker, const gchar *path, GckSecretModule *self)
|
||||
"filename", path,
|
||||
"manager", manager,
|
||||
NULL);
|
||||
+ } else {
|
||||
+ created = FALSE;
|
||||
+ g_object_ref (collection);
|
||||
}
|
||||
|
||||
res = gck_secret_collection_load (collection);
|
||||
--
|
||||
cgit v0.8.3.1
|
@ -1,14 +0,0 @@
|
||||
*** a/daemon/control/gkd-control-client.c 2009-12-20 01:24:11.000000000 +0530
|
||||
--- b/daemon/control/gkd-control-client.c 2010-01-23 03:08:37.000000000 +0530
|
||||
***************
|
||||
*** 34,39 ****
|
||||
--- 34,40 ----
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/un.h>
|
||||
+ #include <sys/stat.h>
|
||||
|
||||
static int
|
||||
control_connect (const gchar *path)
|
||||
|
||||
Diff finished. Sat Jan 23 03:08:42 2010
|
@ -1,43 +1,22 @@
|
||||
%define glib2_version 2.16.0
|
||||
%define gtk2_version 2.18.0
|
||||
%define dbus_version 1.0
|
||||
%define eggdbus_version 0.4
|
||||
%define hal_version 0.5.7
|
||||
%define gcrypt_version 1.2.2
|
||||
%define libtasn1_version 0.3.4
|
||||
|
||||
Summary: Framework for managing passwords and other secrets
|
||||
Name: gnome-keyring
|
||||
Version: 2.29.5
|
||||
Release: 4%{?dist}
|
||||
Version: 2.29.90
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+ and LGPLv2+
|
||||
Group: System Environment/Libraries
|
||||
Source: http://download.gnome.org/sources/gnome-keyring/2.29/gnome-keyring-%{version}.tar.bz2
|
||||
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=598494
|
||||
Patch2: gnome-keyring-2.29.4-die-on-session-exit.patch
|
||||
|
||||
# http://bugzilla.redhat.com/529709
|
||||
# http://bugs.gnome.org/598494
|
||||
Patch3: gnome-keyring-2.28.1-nopass.patch
|
||||
|
||||
# from upstream
|
||||
Patch4: gnome-keyring-2.29.6-lookup-endless-loop.patch
|
||||
|
||||
# FTBFS: undefined reference to S_ISSOCK
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=607819
|
||||
Patch5: gnome-keyring-2.29.6-stat-include.patch
|
||||
|
||||
# Gnome keyring prompt new password request does not have text entry boxes
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=560345
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=607869
|
||||
Patch6: gnome-keyring-2.29.6-prompt-show-entry.patch
|
||||
|
||||
# from upstream
|
||||
Patch7: gnome-keyring-2.29.6-dbus-refresh-store.patch
|
||||
Patch8: gnome-keyring-2.29.6-secrets-reloading.patch
|
||||
Patch9: gnome-keyring-2.29.6-pkcs11-attributes-storing.patch
|
||||
|
||||
|
||||
URL: http://www.gnome.org
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
@ -46,7 +25,6 @@ BuildRequires: glib2-devel >= %{glib2_version}
|
||||
BuildRequires: gtk2-devel >= %{gtk2_version}
|
||||
BuildRequires: GConf2-devel
|
||||
BuildRequires: dbus-devel >= %{dbus_version}
|
||||
BuildRequires: eggdbus-devel >= %{eggdbus_version}
|
||||
BuildRequires: libgcrypt-devel >= %{gcrypt_version}
|
||||
BuildRequires: libtasn1-devel >= %{libtasn1_version}
|
||||
BuildRequires: pam-devel
|
||||
@ -97,14 +75,7 @@ automatically unlock the "login" keyring when the user logs in.
|
||||
|
||||
%prep
|
||||
%setup -q -n gnome-keyring-%{version}
|
||||
%patch2 -p1 -b .die-on-session-exit
|
||||
%patch3 -p1 -b .no-pass
|
||||
%patch4 -p1 -b .lookup-endless-loop
|
||||
%patch5 -p1 -b .ftbfs-stat
|
||||
%patch6 -p1 -b .prompt-entry
|
||||
%patch7 -p1 -b .dbus-refresh
|
||||
%patch8 -p1 -b .secrets-reloading
|
||||
%patch9 -p1 -b .attributes-storing
|
||||
|
||||
|
||||
%build
|
||||
@ -183,6 +154,9 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Feb 9 2010 Tomas Bzatek <tbzatek@redhat.com> - 2.29.90-1
|
||||
- Update to 2.29.90
|
||||
|
||||
* Mon Feb 8 2010 Tomas Bzatek <tbzatek@redhat.com> - 2.29.5-4
|
||||
- Backport some fixes related to password saving
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user