- Modify patch for GNOME bug #376991 to fix RH bug #231994.

- Add patch for GNOME bug #419999 (avoid deprecated GTK+ symbols).
- Remove evolution-data-server-1.0.2-workaround-cal-backend-leak.patch.
- Remove evolution-data-server-1.2.2-fix_open_calendar_declaration.patch.
- Remove evolution-data-server-1.3.8-fix-implicit-function-declarations.
This commit is contained in:
Matthew Barnes 2007-03-15 00:56:56 +00:00
parent 83418fe8b7
commit 3b4059feca
3 changed files with 1214 additions and 85 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
--- evolution-data-server-1.9.92/libedataserverui/e-passwords.h.e-passwords 2007-01-03 09:56:25.000000000 -0500
+++ evolution-data-server-1.9.92/libedataserverui/e-passwords.h 2007-03-08 16:47:27.000000000 -0500
--- evolution-data-server-1.10.0/libedataserverui/e-passwords.h.e-passwords 2007-01-03 05:09:27.000000000 -0500
+++ evolution-data-server-1.10.0/libedataserverui/e-passwords.h 2007-03-14 18:05:55.000000000 -0400
@@ -28,45 +28,65 @@
G_BEGIN_DECLS
@ -97,8 +97,8 @@
G_END_DECLS
--- evolution-data-server-1.9.92/libedataserverui/e-passwords.c.e-passwords 2007-02-09 13:49:32.000000000 -0500
+++ evolution-data-server-1.9.92/libedataserverui/e-passwords.c 2007-03-08 16:47:27.000000000 -0500
--- evolution-data-server-1.10.0/libedataserverui/e-passwords.c.e-passwords 2007-02-09 03:38:09.000000000 -0500
+++ evolution-data-server-1.10.0/libedataserverui/e-passwords.c 2007-03-14 20:27:01.000000000 -0400
@@ -23,18 +23,29 @@
*/
@ -139,7 +139,7 @@
*/
#ifdef HAVE_CONFIG_H
@@ -42,159 +53,372 @@
@@ -42,159 +53,384 @@
#endif
#include <string.h>
@ -467,18 +467,30 @@
+ep_msg_send (EPassMsg *msg)
{
- int needidle = 0;
+ GMainContext *context;
+
+ context = g_main_context_default ();
+
+ /* Expedite flag requires a key. */
+ g_assert (!msg->expedite || msg->key != NULL);
+
+ if (!(msg->expedite && ep_msg_expedite (msg)))
+ g_thread_pool_push (dispatcher, msg, NULL);
- LOCK();
- e_dlist_addtail(&request_list, (EDListNode *)&msg->msg);
- if (!idle_id) {
- if (!msg->ismain)
- idle_id = g_idle_add(ep_idle_dispatch, NULL);
+ if (!(msg->expedite && ep_msg_expedite (msg)))
+ g_thread_pool_push (dispatcher, msg, NULL);
+ g_debug ("%s: in main thread? %d", G_STRFUNC,
+ g_main_context_is_owner (context));
+
+ e_flag_wait (msg->done);
+ /* Don't block the main loop. */
+ if (g_main_context_is_owner (context))
+ while (!e_flag_is_set (msg->done))
+ g_main_context_iteration (context, TRUE);
+ else
+ e_flag_wait (msg->done);
+}
+
+static void
@ -614,7 +626,7 @@
{
GnomeKeyringAttributeList *attributes;
GnomeKeyringAttribute attribute;
@@ -205,11 +429,8 @@
@@ -205,11 +441,8 @@
result = gnome_keyring_get_default_keyring_sync (&default_keyring);
if (!default_keyring) {
@ -628,7 +640,7 @@
default_keyring = g_strdup ("default");
}
@@ -239,38 +460,44 @@
@@ -239,38 +472,44 @@
}
g_free (default_keyring);
@ -642,15 +654,15 @@
+ep_clear_passwords_keyfile (EPassMsg *msg)
{
- char *path;
-
- path = g_strdup_printf ("/Evolution/Passwords-%s", msg->component);
+ gchar *group;
+ GError *error = NULL;
- gnome_config_private_clean_section (path);
- gnome_config_private_sync_file ("/Evolution");
- path = g_strdup_printf ("/Evolution/Passwords-%s", msg->component);
+ group = ep_key_file_get_group (msg->component);
- gnome_config_private_clean_section (path);
- gnome_config_private_sync_file ("/Evolution");
-
- g_free (path);
+ g_key_file_remove_group (key_file, group, &error);
+ if (error == NULL)
@ -691,7 +703,7 @@
{
GnomeKeyringAttributeList *attributes;
GnomeKeyringAttribute attribute;
@@ -281,11 +508,8 @@
@@ -281,11 +520,8 @@
result = gnome_keyring_get_default_keyring_sync (&default_keyring);
if (!default_keyring) {
@ -705,7 +717,7 @@
default_keyring = g_strdup ("default");
}
d(g_print("Get Default %d\n", result));
@@ -316,69 +540,54 @@
@@ -316,69 +552,54 @@
g_free (default_keyring);
/* free up the session passwords */
@ -802,7 +814,7 @@
guint32 item_id;
if (!strcmp (uri->protocol, "ldap") && !uri->user) {
@@ -419,48 +628,48 @@
@@ -419,48 +640,48 @@
d(g_print("Remember %s: %d/%d\n", msg->key, result, item_id));
/* now remove it from our session hash */
@ -826,16 +838,11 @@
- gpointer okey, value;
- char *path, *pass64;
- int len, state, save;
+ gchar *group, *key, *password;
-
- if (g_hash_table_lookup_extended (passwords, msg->key, &okey, &value)) {
- /* add it to the on-disk cache of passwords */
- path = password_path (msg->component, okey);
+ password = g_hash_table_lookup (password_cache, msg->key);
+ if (password == NULL) {
+ g_warning ("Password for key \"%s\" not found", msg->key);
+ return;
+ }
+ gchar *group, *key, *password;
- len = strlen (value);
- pass64 = g_malloc0 ((len + 2) * 4 / 3 + 1);
@ -845,6 +852,16 @@
- gnome_config_private_set_string (path, pass64);
- g_free (path);
- g_free (pass64);
+ password = g_hash_table_lookup (password_cache, msg->key);
+ if (password == NULL) {
+ g_warning ("Password for key \"%s\" not found", msg->key);
+ return;
+ }
- /* now remove it from our session hash */
- g_hash_table_remove (passwords, msg->key);
- g_free (okey);
- g_free (value);
+ group = ep_key_file_get_group (msg->component);
+ key = ep_key_file_normalize_key (msg->key);
+ password = ep_password_encode (password);
@ -853,11 +870,6 @@
+ g_key_file_set_string (key_file, group, key, password);
+ ep_key_file_save ();
- /* now remove it from our session hash */
- g_hash_table_remove (passwords, msg->key);
- g_free (okey);
- g_free (value);
-
- gnome_config_private_sync_file ("/Evolution");
- }
+ g_free (group);
@ -881,7 +893,7 @@
}
#if WITH_GNOME_KEYRING
@@ -472,7 +681,6 @@
@@ -472,7 +693,6 @@
GnomeKeyringResult result;
GList *matches = NULL, *tmp;
char *default_keyring = NULL;
@ -889,7 +901,7 @@
EUri *uri = e_uri_new (msg->key);
if (!strcmp (uri->protocol, "ldap") && !uri->user) {
@@ -486,27 +694,17 @@
@@ -486,27 +706,17 @@
uri->user = keycopy;
}
@ -920,7 +932,7 @@
default_keyring = g_strdup ("default");
}
@@ -567,35 +765,44 @@
@@ -567,35 +777,44 @@
}
g_free (default_keyring);
@ -938,14 +950,14 @@
- char *path;
+ gchar *group, *key;
+ GError *error = NULL;
+
+ g_hash_table_remove (password_cache, msg->key);
- if (g_hash_table_lookup_extended (passwords, msg->key, &okey, &value)) {
- g_hash_table_remove (passwords, msg->key);
- memset (value, 0, strlen (value));
- g_free (okey);
- g_free (value);
+ g_hash_table_remove (password_cache, msg->key);
+
+ group = ep_key_file_get_group (msg->component);
+ key = ep_key_file_normalize_key (msg->key);
+
@ -984,7 +996,7 @@
#if WITH_GNOME_KEYRING
static void
@@ -605,11 +812,11 @@
@@ -605,11 +824,11 @@
GnomeKeyringAttributeList *attributes;
GnomeKeyringAttribute attribute;
GnomeKeyringResult result;
@ -999,7 +1011,7 @@
} else {
EUri *uri = e_uri_new (msg->key);
@@ -683,287 +890,154 @@
@@ -683,287 +902,154 @@
}
}
@ -1377,7 +1389,7 @@
*
* Set the offline-state of the application. This is a work-around
* for having the backends fully offline aware, and returns a
@@ -972,10 +1046,11 @@
@@ -972,10 +1058,11 @@
* FIXME: This is not a permanent api, review post 2.0.
**/
void
@ -1392,7 +1404,7 @@
}
/**
@@ -986,150 +1061,137 @@
@@ -986,150 +1073,137 @@
void
e_passwords_forget_passwords (void)
{
@ -1428,12 +1440,12 @@
- EPassMsg *msg = ep_msg_new(ep_clear_passwords_file);
-#endif
+ EPassMsg *msg;
+
+ g_return_if_fail (component != NULL);
- msg->component = component_name;
- ep_msg_send(msg);
- ep_msg_free(msg);
+ g_return_if_fail (component != NULL);
+
+ msg = ep_msg_new (ep_clear_passwords, FALSE);
+ msg->component = component;
+
@ -1523,33 +1535,33 @@
{
EPassMsg *msg;
- char *passwd;
-
+ char *password;
- g_return_val_if_fail(component_name != NULL, NULL);
- g_return_val_if_fail(key != NULL, NULL);
+ char *password;
+ g_return_val_if_fail (component != NULL, NULL);
+ g_return_val_if_fail (key != NULL, NULL);
-#if WITH_GNOME_KEYRING
- msg = ep_msg_new(gnome_keyring_is_available() ? ep_get_password_keyring : ep_get_password_file);
-#else
- msg = ep_msg_new(ep_get_password_file);
-#endif
+ g_return_val_if_fail (component != NULL, NULL);
+ g_return_val_if_fail (key != NULL, NULL);
-
- msg->component = component_name;
+ msg = ep_msg_new (ep_get_password, TRUE);
+ msg->component = component;
msg->key = key;
- ep_msg_send(msg);
-
- passwd = msg->password;
- msg->password = NULL;
- ep_msg_free(msg);
+ ep_msg_send (msg);
+ password = msg->password;
+ ep_msg_free (msg);
- passwd = msg->password;
- msg->password = NULL;
- ep_msg_free(msg);
-
- return passwd;
+ return password;
}
@ -1596,7 +1608,7 @@
* @key: key to store the password under
* @prompt: prompt string
* @secret: whether or not the password text should be ***ed out
@@ -1146,241 +1208,45 @@
@@ -1146,241 +1220,45 @@
* return value is non-%NULL and @remember_type is not
* E_PASSWORDS_DO_NOT_REMEMBER.
**/
@ -1867,8 +1879,8 @@
- return (char *)plain;
+ return password;
}
--- evolution-data-server-1.9.92/libedataserver/e-msgport.h.e-passwords 2007-02-26 01:52:22.000000000 -0500
+++ evolution-data-server-1.9.92/libedataserver/e-msgport.h 2007-03-08 16:47:27.000000000 -0500
--- evolution-data-server-1.10.0/libedataserver/e-msgport.h.e-passwords 2007-02-26 04:52:17.000000000 -0500
+++ evolution-data-server-1.10.0/libedataserver/e-msgport.h 2007-03-14 18:05:55.000000000 -0400
@@ -54,7 +54,7 @@
/* header for any message */

View File

@ -26,7 +26,7 @@
Name: evolution-data-server
Version: 1.10.0
Release: 1%{?dist}
Release: 2%{?dist}
License: LGPL
Group: System Environment/Libraries
Summary: Backend data server for Evolution
@ -36,47 +36,47 @@ Source: %{name}-%{version}.tar.bz2
### Patches ###
Patch10: evolution-data-server-1.0.2-workaround-cal-backend-leak.patch
Patch11: evolution-1.4.4-ldap-x86_64-hack.patch
Patch12: evolution-data-server-1.2.2-fix_open_calendar_declaration.patch
Patch13: evolution-data-server-1.3.8-fix-implicit-function-declarations
Patch10: evolution-1.4.4-ldap-x86_64-hack.patch
# Remove gnome-common macros from configure.in.
# We do not ship gnome-common (or at least we're not supposed to).
Patch14: evolution-data-server-1.8.0-no-gnome-common.patch
Patch11: evolution-data-server-1.8.0-no-gnome-common.patch
# RH bug #202309
Patch15: evolution-data-server-1.7.91-maybe-fix-crash.patch
Patch12: evolution-data-server-1.7.91-maybe-fix-crash.patch
# RH bug #203915
Patch17: evolution-data-server-1.8.0-fix-camel-malloc.patch
Patch13: evolution-data-server-1.8.0-fix-camel-malloc.patch
# GNOME bug #360240
Patch18: evolution-data-server-1.8.1-warn-unused-variable.patch
Patch14: evolution-data-server-1.8.1-warn-unused-variable.patch
# GNOME bug #360619
Patch19: evolution-data-server-1.8.1-warn-incompatible-pointer-type.patch
Patch15: evolution-data-server-1.8.1-warn-incompatible-pointer-type.patch
# GNOME bug #363965
Patch20: evolution-data-server-1.9.1-kill-ememory.patch
Patch16: evolution-data-server-1.9.1-kill-ememory.patch
# RH bug #203058
Patch21: evolution-data-server-1.9.2-fix-name-selector-dialog.patch
Patch17: evolution-data-server-1.9.2-fix-name-selector-dialog.patch
# RH bug #210142
Patch22: evolution-data-server-1.9.2-strftime.patch
Patch18: evolution-data-server-1.9.2-strftime.patch
# GNOME bug #373117
Patch23: evolution-data-server-1.9.3-e-source-color.patch
Patch19: evolution-data-server-1.9.3-e-source-color.patch
# GNOME bug #415891
Patch24: evolution-data-server-1.9.92-e-flag.patch
Patch20: evolution-data-server-1.9.92-e-flag.patch
# GNOME bug #376991
Patch25: evolution-data-server-1.9.92-e-passwords.patch
Patch21: evolution-data-server-1.9.92-e-passwords.patch
# GNOME bug #415922
Patch26: evolution-data-server-1.9.92-isa-support.patch
Patch22: evolution-data-server-1.9.92-isa-support.patch
# GNOME bug #417999
Patch23: evolution-data-server-1.10.0-code-cleanup.patch
### Dependencies ###
@ -156,22 +156,20 @@ evolution-data-server.
%prep
%setup -q
%patch10 -p1 -b .workaround-cal-backend-leak
%patch11 -p1 -b .ldaphack
%patch12 -p1 -b .fix_open_calendar_declaration
%patch13 -p1 -b .fix-implicit-function-declarations
%patch14 -p1 -b .no-gnome-common
%patch15 -p1 -b .maybe-fix-crash
%patch17 -p1 -b .fix-camel-malloc
%patch18 -p1 -b .warn-unused-variable
%patch19 -p1 -b .warn-incompatible-pointer-type
%patch20 -p1 -b .kill-ememory
%patch21 -p1 -b .fix-name-selector-dialog
%patch22 -p1 -b .strftime
%patch23 -p1 -b .e-source-color
%patch24 -p1 -b .e-flag
%patch25 -p1 -b .e-passwords
%patch26 -p1 -b .isa-support
%patch10 -p1 -b .ldaphack
%patch11 -p1 -b .no-gnome-common
%patch12 -p1 -b .maybe-fix-crash
%patch13 -p1 -b .fix-camel-malloc
%patch14 -p1 -b .warn-unused-variable
%patch15 -p1 -b .warn-incompatible-pointer-type
%patch16 -p1 -b .kill-ememory
%patch17 -p1 -b .fix-name-selector-dialog
%patch18 -p1 -b .strftime
%patch19 -p1 -b .e-source-color
%patch20 -p1 -b .e-flag
%patch21 -p1 -b .e-passwords
%patch22 -p1 -b .isa-support
%patch23 -p1 -b .code-cleanup
mkdir -p krb5-fakeprefix/include
mkdir -p krb5-fakeprefix/lib
@ -380,6 +378,13 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/libexchange-storage-%{eds_api_version}.pc
%changelog
* Wed Mar 14 2007 Matthew Barnes <mbarnes@redhat.com> - 1.10.0-2.fc7
- Modify patch for GNOME bug #376991 to fix RH bug #231994.
- Add patch for GNOME bug #419999 (avoid deprecated GTK+ symbols).
- Remove evolution-data-server-1.0.2-workaround-cal-backend-leak.patch.
- Remove evolution-data-server-1.2.2-fix_open_calendar_declaration.patch.
- Remove evolution-data-server-1.3.8-fix-implicit-function-declarations.
* Mon Mar 12 2007 Matthew Barnes <mbarnes@redhat.com> - 1.10.0-1.fc7
- Update to 1.10.0
- Remove patch for GNOME bug #301363 (fixed upstream).