- Update to 2.29.90

This commit is contained in:
Tomas Bzatek 2010-02-09 10:12:57 +00:00
parent 71012fc01b
commit 0df261f755
10 changed files with 7 additions and 296 deletions

View File

@ -1 +1 @@
gnome-keyring-2.29.5.tar.bz2
gnome-keyring-2.29.90.tar.bz2

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
13c0da5743242313400fe86a363a5f69 gnome-keyring-2.29.5.tar.bz2
b83675cb9830d9899de4c55df1df2be7 gnome-keyring-2.29.90.tar.bz2