From ff10c02e747ce68f388d121573956dd672682d4b Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sep 04 2007 03:16:15 +0000 Subject: - Update to 1.11.92 --- diff --git a/.cvsignore b/.cvsignore index 342f86b..d9663b6 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -evolution-data-server-1.11.91.tar.bz2 +evolution-data-server-1.11.92.tar.bz2 diff --git a/evolution-data-server-1.9.92-e-passwords.patch b/evolution-data-server-1.9.92-e-passwords.patch index db0cd8c..12aadea 100644 --- a/evolution-data-server-1.9.92-e-passwords.patch +++ b/evolution-data-server-1.9.92-e-passwords.patch @@ -1,5 +1,5 @@ ---- evolution-data-server-1.11.91/libedataserverui/e-passwords.c.e-passwords 2007-08-24 08:48:15.000000000 +0200 -+++ evolution-data-server-1.11.91/libedataserverui/e-passwords.c 2007-08-28 15:25:45.000000000 +0200 +--- evolution-data-server-1.11.92/libedataserverui/e-passwords.c.e-passwords 2007-09-02 14:54:22.000000000 -0400 ++++ evolution-data-server-1.11.92/libedataserverui/e-passwords.c 2007-09-03 23:13:10.000000000 -0400 @@ -23,18 +23,29 @@ */ @@ -340,10 +340,7 @@ static void -ep_msg_free(EPassMsg *msg) +ep_msg_dispatch (EPassMsg *msg) - { -- e_msgport_destroy(msg->msg.reply_port); -- g_free(msg->password); -- g_free(msg); ++{ + msg->callback (msg); + e_flag_set (msg->done); +} @@ -361,13 +358,11 @@ + g_async_queue_unlock (express_queue); + + return success; - } - - static void --ep_msg_send(EPassMsg *msg) ++} ++ ++static void +ep_msg_send (EPassMsg *msg) - { -- int needidle = 0; ++{ + GMainContext *context; + + context = g_main_context_default (); @@ -377,12 +372,7 @@ + + 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); ++ + /* Don't block the main loop. */ + if (g_main_context_is_owner (context)) + while (!e_flag_is_set (msg->done)) @@ -393,7 +383,10 @@ + +static void +ep_msg_free (EPassMsg *msg) -+{ + { +- e_msgport_destroy(msg->msg.reply_port); +- g_free(msg->password); +- g_free(msg); + e_flag_free (msg->done); + g_slice_free (EPassMsg, msg); +} @@ -414,9 +407,10 @@ + data->flags = flags; + + return data; -+} -+ -+static void + } + + static void +-ep_msg_send(EPassMsg *msg) +ep_dialog_data_free (EPassDialogData *data) +{ + e_flag_free (data->done); @@ -425,9 +419,15 @@ + +static gboolean +ep_dialog_run (EPassMsg *msg) -+{ + { +- int needidle = 0; + /* This function must run in the main thread. */ -+ + +- LOCK(); +- e_dlist_addtail(&request_list, (EDListNode *)&msg->msg); +- if (!idle_id) { +- if (!msg->ismain) +- idle_id = g_idle_add(ep_idle_dispatch, NULL); + EPassDialogData *data = msg->data; + GtkBox *box; + GtkWidget *dialog; @@ -524,7 +524,7 @@ { GnomeKeyringAttributeList *attributes; GnomeKeyringResult result; -@@ -203,11 +436,8 @@ ep_clear_passwords_keyring(EPassMsg *msg +@@ -203,11 +436,8 @@ result = gnome_keyring_get_default_keyring_sync (&default_keyring); if (!default_keyring) { @@ -538,7 +538,7 @@ default_keyring = g_strdup ("default"); } -@@ -232,38 +462,44 @@ ep_clear_passwords_keyring(EPassMsg *msg +@@ -232,38 +462,44 @@ } g_free (default_keyring); @@ -552,15 +552,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) @@ -601,7 +601,7 @@ { GnomeKeyringAttributeList *attributes; GnomeKeyringResult result; -@@ -272,11 +508,8 @@ ep_forget_passwords_keyring(EPassMsg *ms +@@ -272,11 +508,8 @@ result = gnome_keyring_get_default_keyring_sync (&default_keyring); if (!default_keyring) { @@ -615,7 +615,7 @@ default_keyring = g_strdup ("default"); } d(g_print("Get Default %d\n", result)); -@@ -301,68 +534,53 @@ ep_forget_passwords_keyring(EPassMsg *ms +@@ -301,68 +534,53 @@ g_free (default_keyring); /* free up the session passwords */ @@ -711,7 +711,7 @@ guint32 item_id; if (!strcmp (uri->protocol, "ldap") && !uri->user) { -@@ -394,48 +612,48 @@ ep_remember_password_keyring(EPassMsg *m +@@ -394,48 +612,48 @@ gnome_keyring_attribute_list_free (attributes); /* now remove it from our session hash */ @@ -789,7 +789,7 @@ } #ifdef WITH_GNOME_KEYRING -@@ -446,7 +664,6 @@ ep_forget_password_keyring (EPassMsg *ms +@@ -446,7 +664,6 @@ GnomeKeyringResult result; GList *matches = NULL, *tmp; char *default_keyring = NULL; @@ -797,7 +797,7 @@ EUri *uri = e_uri_new (msg->key); if (!strcmp (uri->protocol, "ldap") && !uri->user) { -@@ -460,12 +677,7 @@ ep_forget_password_keyring (EPassMsg *ms +@@ -460,12 +677,7 @@ uri->user = keycopy; } @@ -811,7 +811,7 @@ if (!uri->host && !uri->user) /* No need to remove from keyring for pass phrases */ -@@ -524,36 +736,45 @@ ep_forget_password_keyring (EPassMsg *ms +@@ -524,36 +736,45 @@ g_free (default_keyring); exit: @@ -878,7 +878,7 @@ #ifdef WITH_GNOME_KEYRING static void -@@ -562,11 +783,11 @@ ep_get_password_keyring (EPassMsg *msg) +@@ -562,11 +783,11 @@ char *passwd; GnomeKeyringAttributeList *attributes; GnomeKeyringResult result; @@ -893,7 +893,7 @@ } else { EUri *uri = e_uri_new (msg->key); -@@ -630,288 +851,154 @@ ep_get_password_keyring (EPassMsg *msg) +@@ -630,288 +851,154 @@ e_uri_free (uri); } @@ -958,11 +958,6 @@ - g_free (okey); - g_free (value); - } -- -- g_hash_table_insert (passwords, g_strdup (msg->key), g_strdup (msg->oldpass)); -- -- if (!msg->noreply) -- e_msgport_reply(&msg->msg); +#ifdef WITH_GNOME_KEYRING + if (gnome_keyring_is_available ()) + ep_get_password_keyring (msg); @@ -971,36 +966,36 @@ +#else + ep_get_password_keyfile (msg); +#endif ++} + +- g_hash_table_insert (passwords, g_strdup (msg->key), g_strdup (msg->oldpass)); ++static void ++ep_add_password (EPassMsg *msg) ++{ ++ gchar *key = g_strdup (msg->key); ++ gchar *password = g_strdup (msg->password); + +- if (!msg->noreply) +- e_msgport_reply(&msg->msg); ++ g_hash_table_insert (password_cache, key, password); } -static void ep_ask_password(EPassMsg *msg); - static void -pass_response(GtkDialog *dialog, int response, void *data) -+ep_add_password (EPassMsg *msg) ++ep_ask_password (EPassMsg *msg) { - EPassMsg *msg = data; - int type = msg->flags & E_PASSWORDS_REMEMBER_MASK; - EDList pending = E_DLIST_INITIALISER(pending); - EPassMsg *mw, *mn; -+ gchar *key = g_strdup (msg->key); -+ gchar *password = g_strdup (msg->password); - -- if (response == GTK_RESPONSE_OK) { -- msg->password = g_strdup(gtk_entry_get_text((GtkEntry *)msg->entry)); -+ g_hash_table_insert (password_cache, key, password); -+} - -- if (type != E_PASSWORDS_REMEMBER_NEVER) { -- int noreply = msg->noreply; -+static void -+ep_ask_password (EPassMsg *msg) -+{ + EPassDialogData *data = msg->data; + gchar *password; + gint remember; -- *msg->remember = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (msg->check)); +- if (response == GTK_RESPONSE_OK) { +- msg->password = g_strdup(gtk_entry_get_text((GtkEntry *)msg->entry)); + /* Open the express queue for this key. This allows us to catch + * incoming operations on this key while waiting for the user to + * provide a password. Once we have the password, immediately @@ -1009,10 +1004,17 @@ + express_key = msg->key; + g_async_queue_unlock (express_queue); -- msg->noreply = 1; +- if (type != E_PASSWORDS_REMEMBER_NEVER) { +- int noreply = msg->noreply; + if (data->flags & E_PASSWORDS_REPROMPT) + ep_get_password (msg); +- *msg->remember = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (msg->check)); ++ /* Run the password dialog in the main thread. */ ++ g_idle_add ((GSourceFunc) ep_dialog_run, msg); + +- msg->noreply = 1; +- - if (*msg->remember || type == E_PASSWORDS_REMEMBER_FOREVER) { - msg->oldpass = msg->password; - ep_add_password(msg); @@ -1028,18 +1030,26 @@ - if (*msg->remember && type == E_PASSWORDS_REMEMBER_FOREVER) - ep_remember_password_file(msg); -#endif -+ /* Run the password dialog in the main thread. */ -+ g_idle_add ((GSourceFunc) ep_dialog_run, msg); ++ /* Wait for the user to respond. */ ++ e_flag_wait (data->done); - msg->noreply = noreply; - } -- } -+ /* Wait for the user to respond. */ -+ e_flag_wait (data->done); ++ /* If the user cancelled the dialog then we need to dispatch ++ * any messages that we trapped in the express queue. */ ++ if (data->response != GTK_RESPONSE_OK) { ++ g_async_queue_lock (express_queue); ++ express_key = NULL; ++ while ((msg = g_async_queue_try_pop_unlocked (express_queue))) ++ ep_msg_dispatch (msg); ++ g_async_queue_unlock (express_queue); ++ return; + } - gtk_widget_destroy((GtkWidget *)dialog); - password_dialog = NULL; -- ++ remember = data->flags & E_PASSWORDS_REMEMBER_MASK; + - /* ok, here things get interesting, we suck up any pending - * operations on this specific password, and return the same - * result or ignore other operations */ @@ -1067,23 +1077,20 @@ - } - mw = mn; - mn = (EPassMsg *)mn->msg.ln.next; -+ /* If the user cancelled the dialog then we need to dispatch -+ * any messages that we trapped in the express queue. */ -+ if (data->response != GTK_RESPONSE_OK) { -+ g_async_queue_lock (express_queue); -+ express_key = NULL; -+ while ((msg = g_async_queue_try_pop_unlocked (express_queue))) -+ ep_msg_dispatch (msg); -+ g_async_queue_unlock (express_queue); -+ return; - } +- } - UNLOCK(); -- ++ if (remember == E_PASSWORDS_REMEMBER_NEVER) ++ goto cleanup; + - if (!msg->noreply) - e_msgport_reply(&msg->msg); -- ++ if (data->remember || remember == E_PASSWORDS_REMEMBER_FOREVER) ++ ep_add_password (msg); + - ep_idle_dispatch(NULL); -} ++ if (data->remember && remember == E_PASSWORDS_REMEMBER_FOREVER) ++ ep_remember_password (msg); -static void -ep_ask_password(EPassMsg *msg) @@ -1092,12 +1099,9 @@ - int type = msg->flags & E_PASSWORDS_REMEMBER_MASK; - guint noreply = msg->noreply; - AtkObject *a11y; -+ remember = data->flags & E_PASSWORDS_REMEMBER_MASK; - +- - msg->noreply = 1; -+ if (remember == E_PASSWORDS_REMEMBER_NEVER) -+ goto cleanup; - +- - /*password_dialog = (GtkDialog *)e_error_new(msg->parent, "mail:ask-session-password", msg->prompt, NULL);*/ - password_dialog = (GtkDialog *)gtk_message_dialog_new (msg->parent, - 0, @@ -1105,15 +1109,11 @@ - GTK_BUTTONS_OK_CANCEL, - "%s", msg->prompt); - gtk_window_set_title(GTK_WINDOW(password_dialog), msg->title); -+ if (data->remember || remember == E_PASSWORDS_REMEMBER_FOREVER) -+ ep_add_password (msg); - +- - gtk_widget_ensure_style (GTK_WIDGET (password_dialog)); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (password_dialog)->vbox), 0); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (password_dialog)->action_area), 12); -+ if (data->remember && remember == E_PASSWORDS_REMEMBER_FOREVER) -+ ep_remember_password (msg); - +- - gtk_dialog_set_default_response(password_dialog, GTK_RESPONSE_OK); +cleanup: @@ -1271,7 +1271,7 @@ * * Set the offline-state of the application. This is a work-around * for having the backends fully offline aware, and returns a -@@ -920,10 +1007,11 @@ e_passwords_shutdown (void) +@@ -920,10 +1007,11 @@ * FIXME: This is not a permanent api, review post 2.0. **/ void @@ -1286,7 +1286,7 @@ } /** -@@ -934,151 +1022,138 @@ e_passwords_set_online(int state) +@@ -934,151 +1022,138 @@ void e_passwords_forget_passwords (void) { @@ -1322,15 +1322,15 @@ - EPassMsg *msg = ep_msg_new(ep_clear_passwords_file); -#endif + EPassMsg *msg; -+ -+ g_return_if_fail (component != NULL); -+ -+ msg = ep_msg_new (ep_clear_passwords, FALSE); -+ msg->component = component; - 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; ++ + ep_msg_send (msg); + ep_msg_free (msg); } @@ -1436,14 +1436,14 @@ 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; } @@ -1492,7 +1492,7 @@ * @prompt: prompt string * @type: whether or not to offer to remember the password, * and for how long. -@@ -1093,241 +1168,44 @@ e_passwords_add_password (const char *ke +@@ -1093,245 +1168,44 @@ * return value is non-%NULL and @remember_type is not * E_PASSWORDS_DO_NOT_REMEMBER. **/ @@ -1511,8 +1511,10 @@ GtkWindow *parent) { - char *passwd; -- EPassMsg *msg = ep_msg_new(ep_ask_password); -+ EPassMsg *msg; + EPassMsg *msg; +- +- g_return_val_if_fail (component_name != NULL, NULL); +- g_return_val_if_fail (key != NULL, NULL); + EPassDialogData *data; + gboolean remember; + gchar *password; @@ -1524,6 +1526,7 @@ if ((type & E_PASSWORDS_ONLINE) && !ep_online_state) return NULL; +- msg = ep_msg_new (ep_ask_password); - msg->title = title; - msg->component = component_name; - msg->key = key; @@ -1762,8 +1765,8 @@ - return (char *)plain; + return password; } ---- evolution-data-server-1.11.91/libedataserverui/e-passwords.h.e-passwords 2007-07-05 08:01:52.000000000 +0200 -+++ evolution-data-server-1.11.91/libedataserverui/e-passwords.h 2007-08-28 15:32:45.000000000 +0200 +--- evolution-data-server-1.11.92/libedataserverui/e-passwords.h.e-passwords 2007-09-02 14:54:22.000000000 -0400 ++++ evolution-data-server-1.11.92/libedataserverui/e-passwords.h 2007-09-03 23:13:10.000000000 -0400 @@ -28,45 +28,65 @@ G_BEGIN_DECLS @@ -1861,9 +1864,9 @@ G_END_DECLS ---- evolution-data-server-1.11.91/libedataserver/e-msgport.h.e-passwords 2007-07-05 08:01:55.000000000 +0200 -+++ evolution-data-server-1.11.91/libedataserver/e-msgport.h 2007-08-28 15:18:31.000000000 +0200 -@@ -54,7 +54,7 @@ typedef struct _EMsgPort EMsgPort; +--- evolution-data-server-1.11.92/libedataserver/e-msgport.h.e-passwords 2007-07-05 02:01:55.000000000 -0400 ++++ evolution-data-server-1.11.92/libedataserver/e-msgport.h 2007-09-03 23:13:10.000000000 -0400 +@@ -54,7 +54,7 @@ /* header for any message */ typedef struct _EMsg { diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 5df38d7..5209c38 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -26,7 +26,7 @@ ### Abstract ### Name: evolution-data-server -Version: 1.11.91 +Version: 1.11.92 Release: 1%{?dist} License: LGPL Group: System Environment/Libraries @@ -381,6 +381,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/pkgconfig/libexchange-storage-%{eds_api_version}.pc %changelog +* Mon Sep 03 2007 Matthew Barnes - 1.11.92-1.fc8 +- Update to 1.11.92 + * Tue Aug 28 2007 Milan Crha - 1.11.91-1.fc8 - Update to 1.11.91 - Removed patch for RH bug #215634 (fixed upstream). diff --git a/sources b/sources index 7abc02f..21bf068 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -5f405c32980d086091efbcedd4655724 evolution-data-server-1.11.91.tar.bz2 +51fc0b011c240eaefeadbdbcc9517af7 evolution-data-server-1.11.92.tar.bz2