From 3d896aade132b44f3ef1c6936c64083bf3a67879a53c876fed95c205ccf681d7 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 6 Feb 2009 21:33:39 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/evolution-data-server?expand=0&rev=52 --- bgo-559153-eds-migration.patch | 336 --------------- bgo-562228-eds-mailbox-field.patch | 40 -- bnc-209514-gw-missing-mails.patch | 17 - bnc-431133-unread-mail-empty.patch | 11 - bnc-435599-junk-contacts-created.patch | 55 --- bnc-435632-moving-contacts-crash.patch | 10 - bnc-438730-loosing-more-state.patch | 36 -- bnc-439986-show-time-free.patch | 15 - bnc-440265-gw-contacts.patch | 96 ----- bnc-440265-list-not-saved.patch | 12 - bnc-441347-imap-performance-fix.patch | 90 ---- bnc-441542-fix-translock.patch | 32 -- bnc-441763-show-meeting-icon.patch | 80 ---- bnc-442507-imap-parts-sync.patch | 491 ---------------------- bnc-443544-eds-free-busy.patch | 50 --- bnc-446269-moving-emails-broken.patch | 20 - bnc-446290-gw-counts-issues.patch | 102 ----- bnc-446371-fix-completed-on.patch | 26 -- bnc-446372-fix-empty-trash.patch | 11 - bnc-446373-fix-refresh-vfolderquery.patch | 57 --- bnc-447121-gw-memory-crasher.patch | 11 - bnc-448079-gw-memory-issues.patch | 137 ------ bnc-449916-task-memo-description.patch | 58 --- bnc-455939-eds-deadlock.patch | 27 -- bnc-458127-keyboard-shortcut-port.patch | 13 - bnc-462575-gw-refresh-folders.patch | 33 -- bnc-463095-content-info-from-db.patch | 17 - eds-core-mapi-changes.diff | 192 --------- evolution-data-server-2.24.1.1.tar.bz2 | 3 - evolution-data-server-2.25.90.tar.bz2 | 3 + evolution-data-server-po.tar.gz | 3 + evolution-data-server.changes | 86 ++++ evolution-data-server.spec | 196 +++++---- 33 files changed, 188 insertions(+), 2178 deletions(-) delete mode 100644 bgo-559153-eds-migration.patch delete mode 100644 bgo-562228-eds-mailbox-field.patch delete mode 100644 bnc-209514-gw-missing-mails.patch delete mode 100644 bnc-431133-unread-mail-empty.patch delete mode 100644 bnc-435599-junk-contacts-created.patch delete mode 100644 bnc-435632-moving-contacts-crash.patch delete mode 100644 bnc-438730-loosing-more-state.patch delete mode 100644 bnc-439986-show-time-free.patch delete mode 100644 bnc-440265-gw-contacts.patch delete mode 100644 bnc-440265-list-not-saved.patch delete mode 100644 bnc-441347-imap-performance-fix.patch delete mode 100644 bnc-441542-fix-translock.patch delete mode 100644 bnc-441763-show-meeting-icon.patch delete mode 100644 bnc-442507-imap-parts-sync.patch delete mode 100644 bnc-443544-eds-free-busy.patch delete mode 100644 bnc-446269-moving-emails-broken.patch delete mode 100644 bnc-446290-gw-counts-issues.patch delete mode 100644 bnc-446371-fix-completed-on.patch delete mode 100644 bnc-446372-fix-empty-trash.patch delete mode 100644 bnc-446373-fix-refresh-vfolderquery.patch delete mode 100644 bnc-447121-gw-memory-crasher.patch delete mode 100644 bnc-448079-gw-memory-issues.patch delete mode 100644 bnc-449916-task-memo-description.patch delete mode 100644 bnc-455939-eds-deadlock.patch delete mode 100644 bnc-458127-keyboard-shortcut-port.patch delete mode 100644 bnc-462575-gw-refresh-folders.patch delete mode 100644 bnc-463095-content-info-from-db.patch delete mode 100644 eds-core-mapi-changes.diff delete mode 100644 evolution-data-server-2.24.1.1.tar.bz2 create mode 100644 evolution-data-server-2.25.90.tar.bz2 create mode 100644 evolution-data-server-po.tar.gz diff --git a/bgo-559153-eds-migration.patch b/bgo-559153-eds-migration.patch deleted file mode 100644 index 90cae15..0000000 --- a/bgo-559153-eds-migration.patch +++ /dev/null @@ -1,336 +0,0 @@ -Index: camel/camel-store.c -=================================================================== ---- camel/camel-store.c (revision 9841) -+++ camel/camel-store.c (revision 9842) -@@ -322,6 +322,21 @@ - } - - if (!folder) { -+ -+ if (flags & CAMEL_STORE_IS_MIGRATING) { -+ if ((store->flags & CAMEL_STORE_VTRASH) && strcmp(folder_name, CAMEL_VTRASH_NAME) == 0) { -+ if (store->folders) -+ camel_object_bag_abort(store->folders, folder_name); -+ return NULL; -+ } -+ -+ if ((store->flags & CAMEL_STORE_VJUNK) && strcmp(folder_name, CAMEL_VJUNK_NAME) == 0) { -+ if (store->folders) -+ camel_object_bag_abort(store->folders, folder_name); -+ return NULL; -+ } -+ } -+ - if ((store->flags & CAMEL_STORE_VTRASH) && strcmp(folder_name, CAMEL_VTRASH_NAME) == 0) { - folder = CS_CLASS(store)->get_trash(store, ex); - } else if ((store->flags & CAMEL_STORE_VJUNK) && strcmp(folder_name, CAMEL_VJUNK_NAME) == 0) { -Index: camel/camel-store.h -=================================================================== ---- camel/camel-store.h (revision 9841) -+++ camel/camel-store.h (revision 9842) -@@ -115,6 +115,7 @@ - #define CAMEL_STORE_FILTER_INBOX (1 << 2) - #define CAMEL_STORE_VJUNK (1 << 3) - #define CAMEL_STORE_PROXY (1 << 4) -+#define CAMEL_STORE_IS_MIGRATING (1 << 5) - - struct _CamelDB; - -Index: camel/providers/local/camel-local-folder.c -=================================================================== ---- camel/providers/local/camel-local-folder.c (revision 9841) -+++ camel/providers/local/camel-local-folder.c (revision 9842) -@@ -289,7 +289,7 @@ - } - - folder->summary = (CamelFolderSummary *)CLOCALF_CLASS(lf)->create_summary(lf, lf->summary_path, lf->folder_path, lf->index); -- if (camel_local_summary_load((CamelLocalSummary *)folder->summary, forceindex, NULL) == -1) { -+ if (!(flags & CAMEL_STORE_IS_MIGRATING) && camel_local_summary_load((CamelLocalSummary *)folder->summary, forceindex, NULL) == -1) { - /* ? */ - if (camel_local_summary_check((CamelLocalSummary *)folder->summary, lf->changes, ex) == 0) { - /* we sync here so that any hard work setting up the folder isn't lost */ -Index: camel/camel-db.c -=================================================================== ---- camel/camel-db.c (revision 9841) -+++ camel/camel-db.c (revision 9842) -@@ -47,6 +47,8 @@ - - static GStaticRecMutex trans_lock = G_STATIC_REC_MUTEX_INIT; - -+static int write_mir (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex, gboolean delete_old_record); -+ - static int - cdb_sql_exec (sqlite3 *db, const char* stmt, CamelException *ex) - { -@@ -812,13 +814,29 @@ - return ret; - } - -+ -+int -+camel_db_write_fresh_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex) -+{ -+ return write_mir (cdb, folder_name, record, ex, FALSE); -+} -+ -+ - int - camel_db_write_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex) - { -+ return write_mir (cdb, folder_name, record, ex, TRUE); -+} -+ -+static int -+write_mir (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex, gboolean delete_old_record) -+{ - int ret; - char *del_query; - char *ins_query; - -+ /* FIXME: We should migrate from this DELETE followed by INSERT model to an INSERT OR REPLACE model as pointed out by pvanhoof */ -+ - /* NB: UGLIEST Hack. We can't modify the schema now. We are using msg_security (an unsed one to notify of FLAGGED/Dirty infos */ - - ins_query = sqlite3_mprintf ("INSERT INTO %Q VALUES (%Q, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %ld, %ld, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q )", -@@ -832,7 +850,8 @@ - record->part, record->labels, record->usertags, - record->cinfo, record->bdata); - -- del_query = sqlite3_mprintf ("DELETE FROM %Q WHERE uid = %Q", folder_name, record->uid); -+ if (delete_old_record) -+ del_query = sqlite3_mprintf ("DELETE FROM %Q WHERE uid = %Q", folder_name, record->uid); - - #if 0 - char *upd_query; -@@ -842,12 +861,14 @@ - g_free (upd_query); - #else - -- ret = camel_db_add_to_transaction (cdb, del_query, ex); -+ if (delete_old_record) -+ ret = camel_db_add_to_transaction (cdb, del_query, ex); - ret = camel_db_add_to_transaction (cdb, ins_query, ex); - - #endif - -- sqlite3_free (del_query); -+ if (delete_old_record) -+ sqlite3_free (del_query); - sqlite3_free (ins_query); - - return ret; -@@ -1198,3 +1219,39 @@ - CAMEL_DB_RELEASE_SQLITE_MEMORY; - return ret; - } -+ -+int camel_db_start_in_memory_transactions (CamelDB *cdb, CamelException *ex) -+{ -+ int ret; -+ char *cmd = sqlite3_mprintf ("ATTACH DATABASE ':memory:' AS %s", CAMEL_DB_IN_MEMORY_DB); -+ -+ ret = camel_db_command (cdb, cmd, ex); -+ sqlite3_free (cmd); -+ -+ cmd = sqlite3_mprintf ("CREATE TEMPORARY TABLE %Q ( uid TEXT PRIMARY KEY , flags INTEGER , msg_type INTEGER , read INTEGER , deleted INTEGER , replied INTEGER , important INTEGER , junk INTEGER , attachment INTEGER , msg_security INTEGER , size INTEGER , dsent NUMERIC , dreceived NUMERIC , subject TEXT , mail_from TEXT , mail_to TEXT , mail_cc TEXT , mlist TEXT , followup_flag TEXT , followup_completed_on TEXT , followup_due_by TEXT , part TEXT , labels TEXT , usertags TEXT , cinfo TEXT , bdata TEXT )", CAMEL_DB_IN_MEMORY_TABLE); -+ ret = camel_db_command (cdb, cmd, ex); -+ if (ret != 0 ) -+ abort (); -+ sqlite3_free (cmd); -+ -+ return ret; -+} -+ -+int camel_db_flush_in_memory_transactions (CamelDB *cdb, const char * folder_name, CamelException *ex) -+{ -+ int ret; -+ char *cmd = sqlite3_mprintf ("INSERT INTO %Q SELECT * FROM %Q", folder_name, CAMEL_DB_IN_MEMORY_TABLE); -+ -+ ret = camel_db_command (cdb, cmd, ex); -+ sqlite3_free (cmd); -+ -+ cmd = sqlite3_mprintf ("DROP TABLE %Q", CAMEL_DB_IN_MEMORY_TABLE); -+ ret = camel_db_command (cdb, cmd, ex); -+ sqlite3_free (cmd); -+ -+ cmd = sqlite3_mprintf ("DETACH %Q", CAMEL_DB_IN_MEMORY_DB); -+ ret = camel_db_command (cdb, cmd, ex); -+ sqlite3_free (cmd); -+ -+ return ret; -+} -Index: camel/camel-db.h -=================================================================== ---- camel/camel-db.h (revision 9841) -+++ camel/camel-db.h (revision 9842) -@@ -4,8 +4,14 @@ - #define __CAMEL_DB_H - #include - #include -+ - #define CAMEL_DB_FILE "folders.db" - -+/* Hopefully no one will create a folder named EVO_IN_meM_hAnDlE */ -+#define CAMEL_DB_IN_MEMORY_TABLE "EVO_IN_meM_hAnDlE.temp" -+#define CAMEL_DB_IN_MEMORY_DB "EVO_IN_meM_hAnDlE" -+#define CAMEL_DB_IN_MEMORY_TABLE_LIMIT 100000 -+ - #include "camel-exception.h" - - typedef struct _CamelDBPrivate CamelDBPrivate; -@@ -132,6 +138,7 @@ - int camel_db_prepare_message_info_table (CamelDB *cdb, const char *folder_name, CamelException *ex); - - int camel_db_write_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex); -+int camel_db_write_fresh_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex); - int camel_db_read_message_info_records (CamelDB *cdb, const char *folder_name, gpointer p, CamelDBSelectCB read_mir_callback, CamelException *ex); - int camel_db_read_message_info_record_with_uid (CamelDB *cdb, const char *folder_name, const char *uid, gpointer p, CamelDBSelectCB read_mir_callback, CamelException *ex); - -@@ -168,5 +175,9 @@ - int camel_db_set_collate (CamelDB *cdb, const char *col, const char *collate, CamelDBCollate func); - /* Migration APIS */ - int camel_db_migrate_vfolders_to_14(CamelDB *cdb, const char *folder, CamelException *ex); -+ -+int camel_db_start_in_memory_transactions (CamelDB *cdb, CamelException *ex); -+int camel_db_flush_in_memory_transactions (CamelDB *cdb, const char * folder_name, CamelException *ex); -+ - #endif - -Index: camel/camel-folder-summary.c -=================================================================== ---- camel/camel-folder-summary.c (revision 9841) -+++ camel/camel-folder-summary.c (revision 9842) -@@ -129,7 +129,7 @@ - static int content_info_save(CamelFolderSummary *, FILE *, CamelMessageContentInfo *); - static void content_info_free(CamelFolderSummary *, CamelMessageContentInfo *); - --static int save_message_infos_to_db (CamelFolderSummary *s, CamelException *ex); -+static int save_message_infos_to_db (CamelFolderSummary *s, gboolean fresh_mir, CamelException *ex); - static int camel_read_mir_callback (void * ref, int ncol, char ** cols, char ** name); - - static char *next_uid_string(CamelFolderSummary *s); -@@ -1237,23 +1237,20 @@ - if (fclose (in) != 0) - return -1; - -+ record = (((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->summary_header_to_db (s, &ex)); -+ if (!record) { -+ return -1; -+ } - -- camel_db_begin_transaction (cdb, &ex); -+ ret = save_message_infos_to_db (s, TRUE, &ex); - -- ret = save_message_infos_to_db (s, &ex); -- - if (ret != 0) { -- camel_db_abort_transaction (cdb, &ex); - return -1; - } -- camel_db_end_transaction (cdb, &ex); -- -- record = (((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->summary_header_to_db (s, &ex)); -- if (!record) { -- return -1; -- } - -+ camel_db_begin_transaction (cdb, &ex); - ret = camel_db_write_folder_info_record (cdb, record, &ex); -+ camel_db_end_transaction (cdb, &ex); - - g_free (record->bdata); - g_free (record); -@@ -1321,17 +1318,24 @@ - return 0; - } - -+typedef struct { -+ CamelException *ex; -+ gboolean migration; -+ int progress; -+} SaveToDBArgs; -+ - static void - save_to_db_cb (gpointer key, gpointer value, gpointer data) - { -- CamelException *ex = (CamelException *)data; -+ SaveToDBArgs *args = (SaveToDBArgs *) data; -+ CamelException *ex = args->ex; - CamelMessageInfoBase *mi = (CamelMessageInfoBase *)value; - CamelFolderSummary *s = (CamelFolderSummary *)mi->summary; - char *folder_name = s->folder->full_name; - CamelDB *cdb = s->folder->parent_store->cdb_w; - CamelMIRecord *mir; - -- if (!mi->dirty) -+ if (!args->migration && !mi->dirty) - return; - - mir = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->message_info_to_db (s, (CamelMessageInfo *)mi); -@@ -1345,30 +1349,52 @@ - } - } - -- if (camel_db_write_message_info_record (cdb, folder_name, mir, ex) != 0) { -- camel_db_camel_mir_free (mir); -- return; -+ if (!args->migration) { -+ if (camel_db_write_message_info_record (cdb, folder_name, mir, ex) != 0) { -+ camel_db_camel_mir_free (mir); -+ return; -+ } -+ } else { -+ if (camel_db_write_fresh_message_info_record (cdb, CAMEL_DB_IN_MEMORY_TABLE, mir, ex) != 0) { -+ camel_db_camel_mir_free (mir); -+ return; -+ } -+ -+ if (args->progress > CAMEL_DB_IN_MEMORY_TABLE_LIMIT) { -+ g_print ("BULK INsert limit reached \n"); -+ camel_db_flush_in_memory_transactions (cdb, folder_name, ex); -+ camel_db_start_in_memory_transactions (cdb, ex); -+ args->progress = 0; -+ } else { -+ args->progress ++; -+ } - } - - /* Reset the flags */ - mi->dirty = FALSE; -+ mi->flags &= ~CAMEL_MESSAGE_FOLDER_FLAGGED; - - camel_db_camel_mir_free (mir); - } - - static int --save_message_infos_to_db (CamelFolderSummary *s, CamelException *ex) -+save_message_infos_to_db (CamelFolderSummary *s, gboolean fresh_mirs, CamelException *ex) - { - CamelDB *cdb = s->folder->parent_store->cdb_w; - char *folder_name; -+ SaveToDBArgs args; - -+ args.ex = ex; -+ args.migration = fresh_mirs; -+ args.progress = 0; -+ - folder_name = s->folder->full_name; - if (camel_db_prepare_message_info_table (cdb, folder_name, ex) != 0) { - return -1; - } - CAMEL_SUMMARY_LOCK(s, summary_lock); - /* Push MessageInfo-es */ -- g_hash_table_foreach (s->loaded_infos, save_to_db_cb, ex); -+ g_hash_table_foreach (s->loaded_infos, save_to_db_cb, &args); - CAMEL_SUMMARY_UNLOCK(s, summary_lock); - /* FIXME[disk-summary] make sure we free the message infos that are loaded - * are freed if not used anymore or should we leave that to the timer? */ -@@ -1398,7 +1424,7 @@ - - camel_db_begin_transaction (cdb, ex); - -- ret = save_message_infos_to_db (s, ex); -+ ret = save_message_infos_to_db (s, FALSE, ex); - if (ret != 0) { - camel_db_abort_transaction (cdb, ex); - /* Failed, so lets reset the flag */ diff --git a/bgo-562228-eds-mailbox-field.patch b/bgo-562228-eds-mailbox-field.patch deleted file mode 100644 index bbb82e2..0000000 --- a/bgo-562228-eds-mailbox-field.patch +++ /dev/null @@ -1,40 +0,0 @@ -Index: servers/exchange/lib/e2k-autoconfig.c -=================================================================== ---- servers/exchange/lib/e2k-autoconfig.c (revision 9780) -+++ servers/exchange/lib/e2k-autoconfig.c (working copy) -@@ -1516,6 +1516,8 @@ validate (const char *owa_url, char *use - } - - if (*result == E2K_AUTOCONFIG_OK) { -+ int len; -+ - *result = e2k_autoconfig_check_global_catalog (ac, &op); - e2k_operation_free (&op); - -@@ -1524,6 +1526,13 @@ validate (const char *owa_url, char *use - path = g_strdup (euri->path + 1); - e2k_uri_free (euri); - -+ /* no slash at the end of path */ -+ len = strlen (path); -+ while (len && path [len - 1] == '/') { -+ path [len - 1] = '\0'; -+ len--; -+ } -+ - /* change a mailbox only if not set by the caller */ - if (!exchange_params->mailbox || !*exchange_params->mailbox) { - mailbox = strrchr (path, '/'); -@@ -1536,6 +1545,12 @@ validate (const char *owa_url, char *use - - g_free (exchange_params->mailbox); - exchange_params->mailbox = g_strdup (mailbox); -+ } else { -+ /* always strip the mailbox part from the path */ -+ char *slash = strrchr (path, '/'); -+ -+ if (slash) -+ *slash = '\0'; - } - - exchange_params->owa_path = g_strdup_printf ("%s%s", "/", path); diff --git a/bnc-209514-gw-missing-mails.patch b/bnc-209514-gw-missing-mails.patch deleted file mode 100644 index 76e4a50..0000000 --- a/bnc-209514-gw-missing-mails.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- camel/providers/groupwise/camel-groupwise-folder.c -+++ camel/providers/groupwise/camel-groupwise-folder.c -@@ -925,7 +925,13 @@ update_update (CamelSession *session, CamelSessionThreadMsg *msg) - done = FALSE; - m->slist = NULL; - -- while (!done && !camel_application_is_exiting) { -+ while (!done) { -+ -+ if (camel_application_is_exiting) { -+ CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); -+ return ; -+ } -+ - item_list = NULL; - status = e_gw_connection_get_all_mail_uids (m->cnc, m->container_id, cursor, FALSE, READ_CURSOR_MAX_IDS, position, &item_list); - if (status != E_GW_CONNECTION_STATUS_OK) { diff --git a/bnc-431133-unread-mail-empty.patch b/bnc-431133-unread-mail-empty.patch deleted file mode 100644 index 6650ea6..0000000 --- a/bnc-431133-unread-mail-empty.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- camel/camel-vee-summary.c -+++ camel/camel-vee-summary.c -@@ -42,7 +42,7 @@ - #define d(x) - - static CamelFolderSummaryClass *camel_vee_summary_parent; --const char *unread_str = " (and\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n; (match-threads \"all\" (and\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n)\n;"; -+const char *unread_str = " (and\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n; (or\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n; (match-threads \"all\" (and\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n)\n; (match-threads \"all\" (or\n \n (match-all (not (system-flag \"Seen\")))\n \n )\n)\n;"; - - static void - vee_message_info_free(CamelFolderSummary *s, CamelMessageInfo *info) diff --git a/bnc-435599-junk-contacts-created.patch b/bnc-435599-junk-contacts-created.patch deleted file mode 100644 index 53ffe4b..0000000 --- a/bnc-435599-junk-contacts-created.patch +++ /dev/null @@ -1,55 +0,0 @@ -Index: addressbook/backends/groupwise/e-book-backend-groupwise.c -=================================================================== ---- addressbook/backends/groupwise/e-book-backend-groupwise.c (revision 9761) -+++ addressbook/backends/groupwise/e-book-backend-groupwise.c (working copy) -@@ -1168,7 +1168,9 @@ - int element_type; - int i; - gboolean is_contact_list; -+ gboolean is_organization; - -+ is_organization = e_gw_item_get_item_type (item) == E_GW_ITEM_TYPE_ORGANISATION ? TRUE: FALSE; - is_contact_list = e_gw_item_get_item_type (item) == E_GW_ITEM_TYPE_GROUP ? TRUE: FALSE; - e_contact_set (contact, E_CONTACT_IS_LIST, GINT_TO_POINTER (is_contact_list)); - if (is_contact_list) -@@ -1179,9 +1181,11 @@ - - if(element_type == ELEMENT_TYPE_SIMPLE) { - if (mappings[i].field_id != E_CONTACT_BOOK_URI) { -- value = e_gw_item_get_field_value (item, mappings[i].element_name); -- if(value != NULL) -- e_contact_set (contact, mappings[i].field_id, value); -+ if (!is_organization) { -+ value = e_gw_item_get_field_value (item, mappings[i].element_name); -+ if(value != NULL) -+ e_contact_set (contact, mappings[i].field_id, value); -+ } - } - } else if (element_type == ELEMENT_TYPE_COMPLEX) { - if (mappings[i].field_id == E_CONTACT_CATEGORIES) { -@@ -1251,10 +1255,6 @@ - element_type = mappings[i].element_type; - if (element_type == ELEMENT_TYPE_SIMPLE) { - value = e_contact_get(contact, mappings[i].field_id); -- if (mappings[i].field_id == E_CONTACT_ORG) { -- set_organization_in_gw_item (item, contact, egwb); -- continue; -- } - if (value != NULL) - e_gw_item_set_field_value (item, mappings[i].element_name, value); - } else if (element_type == ELEMENT_TYPE_COMPLEX) { -@@ -1453,14 +1453,7 @@ - - if (e_contact_get (contact, E_CONTACT_IS_LIST)) - set_member_changes (new_item, old_item, egwb); -- new_org = e_gw_item_get_field_value (new_item, "organization"); -- old_org = e_gw_item_get_field_value (old_item, "organization"); -- if (new_org && *new_org) { - -- if ((old_org == NULL) || (old_org && strcmp (new_org, old_org)) != 0) -- set_organization_in_gw_item (new_item, contact, egwb); -- } -- - set_changes_in_gw_item (new_item, old_item); - - e_gw_item_set_item_type (new_item, e_gw_item_get_item_type (old_item)); diff --git a/bnc-435632-moving-contacts-crash.patch b/bnc-435632-moving-contacts-crash.patch deleted file mode 100644 index de70029..0000000 --- a/bnc-435632-moving-contacts-crash.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- addressbook/libedata-book/e-data-book-view.c -+++ addressbook/libedata-book/e-data-book-view.c -@@ -247,7 +247,6 @@ e_data_book_view_notify_update (EDataBookView *book_view, - - id = e_contact_get_const (contact, E_CONTACT_UID); - if (!id) { -- g_object_unref (contact); - g_mutex_unlock (book_view->priv->pending_mutex); - return; - } diff --git a/bnc-438730-loosing-more-state.patch b/bnc-438730-loosing-more-state.patch deleted file mode 100644 index 6d40ec0..0000000 --- a/bnc-438730-loosing-more-state.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- camel/camel-folder-summary.c -+++ camel/camel-folder-summary.c -@@ -67,6 +67,7 @@ - - /* Make 5 minutes as default cache drop */ - #define SUMMARY_CACHE_DROP 300 -+#define dd(x) if (camel_debug("sync")) x - - static pthread_mutex_t info_lock = PTHREAD_MUTEX_INITIALIZER; - -@@ -823,12 +824,13 @@ remove_cache (CamelSession *session, CamelSessionThreadMsg *msg) - CamelFolderSummary *s = m->summary; - - CAMEL_DB_RELEASE_SQLITE_MEMORY; -- -+ camel_folder_sync (s->folder, FALSE, NULL); -+ - if (time(NULL) - s->cache_load_time < SUMMARY_CACHE_DROP) - return; - -- d(printf("removing cache for %s %d %p\n", s->folder ? s->folder->full_name : s->summary_path, g_hash_table_size (s->loaded_infos), s->loaded_infos)); -- #warning "hack. fix it" -+ dd(printf("removing cache for %s %d %p\n", s->folder ? s->folder->full_name : s->summary_path, g_hash_table_size (s->loaded_infos), s->loaded_infos)); -+ - CAMEL_SUMMARY_LOCK (s, summary_lock); - g_hash_table_foreach_remove (s->loaded_infos, (GHRFunc) remove_item, s); - CAMEL_SUMMARY_UNLOCK (s, summary_lock); -@@ -1378,7 +1380,7 @@ camel_folder_summary_save_to_db (CamelFolderSummary *s, CamelException *ex) - if (!count) - return camel_folder_summary_header_save_to_db (s, ex); - -- d(printf("Saving %d/%d dirty records of %s\n", count, g_hash_table_size (s->loaded_infos), s->folder->full_name)); -+ dd(printf("Saving %d/%d dirty records of %s\n", count, g_hash_table_size (s->loaded_infos), s->folder->full_name)); - - camel_db_begin_transaction (cdb, ex); - diff --git a/bnc-439986-show-time-free.patch b/bnc-439986-show-time-free.patch deleted file mode 100644 index c1bc376..0000000 --- a/bnc-439986-show-time-free.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- calendar/backends/groupwise/e-cal-backend-groupwise.c -+++ calendar/backends/groupwise/e-cal-backend-groupwise.c -@@ -2581,8 +2581,12 @@ receive_object (ECalBackendGroupwise *cbgw, EDataCal *cal, icalcomponent *icalco - e_cal_component_free_id (id); - } else { - char *comp_str = NULL; -+ ECalComponentTransparency transp; - - change_status (component, pstatus, e_gw_connection_get_user_email (priv->cnc)); -+ e_cal_component_get_transparency (comp, &transp); -+ e_cal_component_set_transparency (component, transp); -+ - e_cal_backend_cache_put_component (priv->cache, component); - comp_str = e_cal_component_get_as_string (component); - diff --git a/bnc-440265-gw-contacts.patch b/bnc-440265-gw-contacts.patch deleted file mode 100644 index fcd15e6..0000000 --- a/bnc-440265-gw-contacts.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- addressbook/backends/groupwise/e-book-backend-groupwise.c -+++ addressbook/backends/groupwise/e-book-backend-groupwise.c -@@ -44,6 +44,7 @@ - #include "libedataserver/e-flag.h" - #include "libedataserver/e-url.h" - #include "libebook/e-contact.h" -+#include "libebook/e-destination.h" - #include "libedata-book/e-book-backend-sexp.h" - #include "libedata-book/e-data-book.h" - #include "libedata-book/e-data-book-view.h" -@@ -798,7 +799,7 @@ populate_contact_members (EContact *contact, gpointer data) - static void - set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise *egwb) - { -- GList *members, *temp, *items, *p, *emails_without_ids; -+ GList *members, *temp, *dtemp, *items, *p, *emails_without_ids, *dest_without_ids; - GList *group_members; - char *email; - EGwFilter *filter; -@@ -816,10 +817,12 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - filter = e_gw_filter_new (); - group_members = NULL; - emails_without_ids = NULL; -+ dest_without_ids = NULL; - - for ( ;temp != NULL; temp = g_list_next (temp)) { - EVCardAttribute *attr = temp->data; - id = email = NULL; -+ EDestination *dest = e_destination_new (); - - for (p = e_vcard_attribute_get_params (attr); p; p = p->next) { - EVCardAttributeParam *param = p->data; -@@ -856,8 +859,11 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - member->id = g_strdup (id); - group_members = g_list_append (group_members, member); - } else if (email) { -+ e_destination_set_raw (dest, email); - e_gw_filter_add_filter_component (filter, E_GW_FILTER_OP_EQUAL, "emailList/@primary", email); - emails_without_ids = g_list_append (emails_without_ids, g_strdup (email)); -+ dest_without_ids = g_list_append (dest_without_ids, dest); -+ - count++; - } - } -@@ -874,8 +880,15 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - temp_item = E_GW_ITEM (items->data); - emails = e_gw_item_get_email_list (temp_item); - if (emails_without_ids && (ptr = g_list_find_custom (emails_without_ids, emails->data, (GCompareFunc)strcasecmp ))) { -+ int pos = g_list_position (emails_without_ids, ptr); - emails_without_ids = g_list_remove_link (emails_without_ids, ptr); - g_list_free (ptr); -+ -+ ptr = g_list_nth (dest_without_ids, pos); -+ dest_without_ids = g_list_remove_link (dest_without_ids, ptr); -+ g_object_unref (ptr->data); -+ g_list_free (ptr); -+ - id = g_strdup (e_gw_item_get_id (temp_item)); - member = g_new0 (EGroupMember , 1); - member->id = id; -@@ -893,19 +906,21 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - */ - - temp = emails_without_ids ; -- for (; temp != NULL; temp = g_list_next (temp)) { -+ dtemp = dest_without_ids; -+ for (; temp != NULL && dtemp != NULL ; temp = g_list_next (temp), dtemp = g_list_next(dtemp)) { - EContact *new_contact = e_contact_new (); - EGwItem *new_item = e_gw_item_new_empty (); - FullName *full_name; -+ EDestination *tdest = (EDestination *)dtemp->data; - -- e_contact_set (new_contact,E_CONTACT_FULL_NAME, e_contact_name_from_string (strdup (temp->data))); -- e_contact_set (new_contact, E_CONTACT_EMAIL_1, strdup (temp->data)); -+ e_contact_set (new_contact,E_CONTACT_FULL_NAME, e_contact_name_from_string (strdup (e_destination_get_email(tdest)))); -+ e_contact_set (new_contact, E_CONTACT_EMAIL_1, strdup (e_destination_get_email(tdest))); - e_contact_set (new_contact, E_CONTACT_IS_LIST, GINT_TO_POINTER (FALSE)); - e_gw_item_set_item_type (new_item, E_GW_ITEM_TYPE_CONTACT); - e_gw_item_set_container_id (new_item, g_strdup(egwb->priv->container_id)); - full_name = g_new0 (FullName, 1); - full_name->name_prefix = NULL; -- full_name->first_name = g_strdup(temp->data); -+ full_name->first_name = g_strdup(e_destination_get_name(tdest)); - full_name->middle_name = NULL; - full_name->last_name = NULL; - full_name->name_suffix = NULL; -@@ -959,6 +974,9 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - g_list_free (members); - g_list_foreach (emails_without_ids, (GFunc) g_free, NULL); - g_list_free (emails_without_ids); -+ g_list_foreach (dest_without_ids, (GFunc) g_object_unref, NULL); -+ g_list_free (dest_without_ids); -+ - g_list_free (items); - e_gw_item_set_member_list (item, group_members); - } diff --git a/bnc-440265-list-not-saved.patch b/bnc-440265-list-not-saved.patch deleted file mode 100644 index 21ee53d..0000000 --- a/bnc-440265-list-not-saved.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- addressbook/backends/groupwise/e-book-backend-groupwise.c -+++ addressbook/backends/groupwise/e-book-backend-groupwise.c -@@ -848,6 +848,9 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise - email = v ? v->data : NULL; - } - } -+ -+ if (!id && !email) -+ email = e_vcard_attribute_get_value (attr); - if (id) { - member = g_new0 (EGroupMember , 1); - member->id = g_strdup (id); diff --git a/bnc-441347-imap-performance-fix.patch b/bnc-441347-imap-performance-fix.patch deleted file mode 100644 index b81bc6b..0000000 --- a/bnc-441347-imap-performance-fix.patch +++ /dev/null @@ -1,90 +0,0 @@ -Index: camel/providers/imap/camel-imap-store.c -=================================================================== ---- camel/providers/imap/camel-imap-store.c (revision 9761) -+++ camel/providers/imap/camel-imap-store.c (working copy) -@@ -2385,7 +2385,7 @@ parse_list_response_as_folder_info (Came - if (si == NULL) - return NULL; - -- newflags = (si->info.flags & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED) | (flags & ~CAMEL_STORE_INFO_FOLDER_SUBSCRIBED); -+ newflags = (si->info.flags & (CAMEL_STORE_INFO_FOLDER_SUBSCRIBED | CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW)) | (flags & ~CAMEL_STORE_INFO_FOLDER_SUBSCRIBED); - if (si->info.flags != newflags) { - si->info.flags = newflags; - camel_store_summary_touch((CamelStoreSummary *)imap_store->summary); -@@ -3074,12 +3074,19 @@ imap_can_refresh_folder (CamelStore *sto - (camel_url_get_param (((CamelService *)store)->url, "check_all") != NULL) || - (camel_url_get_param (((CamelService *)store)->url, "check_lsub") != NULL && (info->flags & CAMEL_FOLDER_SUBSCRIBED) != 0); - -- if (!res && !camel_exception_is_set (ex)) { -- CamelFolder *folder; -+ if (!res && !camel_exception_is_set (ex) && CAMEL_IS_IMAP_STORE (store)) { -+ CamelStoreInfo *si; -+ CamelStoreSummary *sm = CAMEL_STORE_SUMMARY (((CamelImapStore *)(store))->summary); - -- folder = camel_store_get_folder (store, info->full_name, 0, ex); -- if (folder && CAMEL_IS_IMAP_FOLDER (folder)) -- res = CAMEL_IMAP_FOLDER (folder)->check_folder; -+ if (!sm) -+ return FALSE; -+ -+ si = camel_store_summary_path (sm, info->full_name); -+ if (si) { -+ res = (si->flags & CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW) != 0 ? TRUE : FALSE; -+ -+ camel_store_summary_info_free (sm, si); -+ } - } - - return res; -Index: camel/providers/imap/camel-imap-folder.c -=================================================================== ---- camel/providers/imap/camel-imap-folder.c (revision 9761) -+++ camel/providers/imap/camel-imap-folder.c (working copy) -@@ -473,6 +473,7 @@ imap_getv(CamelObject *object, CamelExce - break; } - /* imap args */ - case CAMEL_IMAP_FOLDER_ARG_CHECK_FOLDER: -+ /* The internal value has precedence before the one stored in the summary. */ - *arg->ca_int = ((CamelImapFolder *)object)->check_folder; - break; - /* CamelObject args */ -@@ -514,8 +515,27 @@ imap_setv (CamelObject *object, CamelExc - switch (tag & CAMEL_ARG_TAG) { - case CAMEL_IMAP_FOLDER_ARG_CHECK_FOLDER: - if (((CamelImapFolder *)object)->check_folder != arg->ca_int) { -+ CamelFolder *folder = (CamelFolder *)object; -+ - ((CamelImapFolder *)object)->check_folder = arg->ca_int; - save = 1; -+ -+ /* store both to the summary and to folder cmeta, to have this value restored correctly next time folder is fully loaded */ -+ if (folder->parent_store && CAMEL_IS_IMAP_STORE (folder->parent_store)) { -+ CamelStoreInfo *si; -+ CamelStoreSummary *sm = CAMEL_STORE_SUMMARY (((CamelImapStore *)(folder->parent_store))->summary); -+ -+ si = camel_store_summary_path (sm, folder->full_name); -+ if (si) { -+ if ((si->flags & CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW) != 0 ? 1 : 0 != (arg->ca_int) ? 1 : 0) { -+ si->flags = (si->flags & (~CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW)) | ((arg->ca_int) ? CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW : 0); -+ camel_store_summary_touch (sm); -+ camel_store_summary_save (sm); -+ } -+ -+ camel_store_summary_info_free (sm, si); -+ } -+ } - } - break; - default: -Index: camel/camel-store-summary.h -=================================================================== ---- camel/camel-store-summary.h (revision 9761) -+++ camel/camel-store-summary.h (working copy) -@@ -57,6 +57,7 @@ typedef enum _CamelStoreInfoFlags { - - /* not in camle-store.h yet */ - CAMEL_STORE_INFO_FOLDER_READONLY = 1<<13, -+ CAMEL_STORE_INFO_FOLDER_CHECK_FOR_NEW = 1<<14, - - CAMEL_STORE_INFO_FOLDER_FLAGGED = 1<<31 - } CamelStoreInfoFlags; diff --git a/bnc-441542-fix-translock.patch b/bnc-441542-fix-translock.patch deleted file mode 100644 index 56999c3..0000000 --- a/bnc-441542-fix-translock.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- camel/camel-db.c -+++ camel/camel-db.c -@@ -190,7 +190,8 @@ camel_db_begin_transaction (CamelDB *cdb, CamelException *ex) - { - if (!cdb) - return -1; -- g_static_rec_mutex_lock (&trans_lock); -+ if (g_getenv("SQLITE_TRANSLOCK")) -+ g_static_rec_mutex_lock (&trans_lock); - - g_mutex_lock (cdb->lock); - return (cdb_sql_exec (cdb->db, "BEGIN", ex)); -@@ -207,7 +208,8 @@ camel_db_end_transaction (CamelDB *cdb, CamelException *ex) - ret = cdb_sql_exec (cdb->db, "COMMIT", ex); - END; - g_mutex_unlock (cdb->lock); -- g_static_rec_mutex_unlock (&trans_lock); -+ if (g_getenv("SQLITE_TRANSLOCK")) -+ g_static_rec_mutex_unlock (&trans_lock); - - CAMEL_DB_RELEASE_SQLITE_MEMORY; - -@@ -221,7 +223,8 @@ camel_db_abort_transaction (CamelDB *cdb, CamelException *ex) - - ret = cdb_sql_exec (cdb->db, "ROLLBACK", ex); - g_mutex_unlock (cdb->lock); -- g_static_rec_mutex_unlock (&trans_lock); -+ if (g_getenv("SQLITE_TRANSLOCK")) -+ g_static_rec_mutex_unlock (&trans_lock); - CAMEL_DB_RELEASE_SQLITE_MEMORY; - - return ret; diff --git a/bnc-441763-show-meeting-icon.patch b/bnc-441763-show-meeting-icon.patch deleted file mode 100644 index c925349..0000000 --- a/bnc-441763-show-meeting-icon.patch +++ /dev/null @@ -1,80 +0,0 @@ ---- /home/psankar/svn/gnome224/evolution-data-server/camel/providers/groupwise/camel-groupwise-folder.c 2008-10-31 15:59:21.000000000 +0530 -+++ camel/providers/groupwise/camel-groupwise-folder.c 2008-11-03 13:58:27.000000000 +0530 -@@ -1342,6 +1342,9 @@ gw_update_cache (CamelFolder *folder, GL - mi->info.content = camel_folder_summary_content_info_new (folder->summary); - mi->info.content->type = camel_content_type_new ("multipart", "mixed"); - } -+ -+ if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_TASK || type == E_GW_ITEM_TYPE_NOTE) -+ camel_message_info_set_user_flag ((CamelMessageInfo*)mi, "$has_cal", TRUE); - } - - rk = e_gw_item_get_recurrence_key (item); -@@ -1567,6 +1570,9 @@ gw_update_summary ( CamelFolder *folder, - mi->info.content = camel_folder_summary_content_info_new (folder->summary); - mi->info.content->type = camel_content_type_new ("multipart", "mixed"); - } -+ -+ if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_TASK || type == E_GW_ITEM_TYPE_NOTE) -+ camel_message_info_set_user_flag ((CamelMessageInfo*)mi, "$has_cal", TRUE); - } - - rk = e_gw_item_get_recurrence_key (item); ---- /home/psankar/svn/gnome224/evolution-data-server/camel/camel-folder-summary.c 2008-10-31 15:59:21.000000000 +0530 -+++ camel/camel-folder-summary.c 2008-10-31 15:52:43.000000000 +0530 -@@ -3600,6 +3607,7 @@ summary_build_content_info(CamelFolderSu - struct _CamelFolderSummaryPrivate *p = _PRIVATE(s); - CamelMimeFilterCharset *mfc; - CamelMessageContentInfo *part; -+ const char *calendar_header; - - d(printf("building content info\n")); - -@@ -3622,6 +3630,16 @@ summary_build_content_info(CamelFolderSu - ) - camel_message_info_set_flags(msginfo, CAMEL_MESSAGE_SECURE, CAMEL_MESSAGE_SECURE); - -+ calendar_header = camel_mime_parser_header (mp, "Content-class", NULL); -+ if (calendar_header && g_ascii_strcasecmp (calendar_header, "urn:content-classes:calendarmessage") != 0) -+ calendar_header = NULL; -+ -+ if (!calendar_header) -+ calendar_header = camel_mime_parser_header (mp, "X-Calendar-Attachment", NULL); -+ -+ if (calendar_header) -+ camel_message_info_set_user_flag (msginfo, "$has_cal", TRUE); -+ - if (p->index && camel_content_type_is(ct, "text", "*")) { - char *encoding; - const char *charset; -@@ -3751,6 +3769,7 @@ summary_build_content_info_message(Camel - struct _CamelFolderSummaryPrivate *p = _PRIVATE(s); - CamelMessageContentInfo *info = NULL, *child; - CamelContentType *ct; -+ const struct _camel_header_raw *header; - - if (s->build_content) - info = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->content_info_new_from_message(s, object); -@@ -3780,6 +3799,22 @@ summary_build_content_info_message(Camel - camel_message_info_set_flags(msginfo, CAMEL_MESSAGE_SECURE, CAMEL_MESSAGE_SECURE); - } - -+ for (header = object->headers; header; header = header->next) { -+ const char *value = header->value; -+ -+ /* skip preceding spaces in the value */ -+ while (value && *value && isspace (*value)) -+ value++; -+ -+ if (header->name && value && ( -+ (g_ascii_strcasecmp (header->name, "Content-class") == 0 && g_ascii_strcasecmp (value, "urn:content-classes:calendarmessage") == 0) || -+ (g_ascii_strcasecmp (header->name, "X-Calendar-Attachment") == 0))) -+ break; -+ } -+ -+ if (header) -+ camel_message_info_set_user_flag (msginfo, "$has_cal", TRUE); -+ - /* using the object types is more accurate than using the mime/types */ - if (CAMEL_IS_MULTIPART(containee)) { - parts = camel_multipart_get_number(CAMEL_MULTIPART(containee)); diff --git a/bnc-442507-imap-parts-sync.patch b/bnc-442507-imap-parts-sync.patch deleted file mode 100644 index d3b1364..0000000 --- a/bnc-442507-imap-parts-sync.patch +++ /dev/null @@ -1,491 +0,0 @@ ---- camel/camel-folder.c 2008-12-15 09:10:26 +0000 -+++ camel/camel-folder.c 2008-12-16 06:57:35 +0000 -@@ -88,6 +88,7 @@ - CamelException *ex); - - static GPtrArray *get_uids (CamelFolder *folder); -+static GPtrArray *get_uncached_uids (CamelFolder *, GPtrArray * uids, CamelException *); - static void free_uids (CamelFolder *folder, - GPtrArray *array); - static void sort_uids (CamelFolder *folder, -@@ -148,6 +149,7 @@ - camel_folder_class->set_message_user_tag = set_message_user_tag; - camel_folder_class->get_message = get_message; - camel_folder_class->get_uids = get_uids; -+ camel_folder_class->get_uncached_uids = get_uncached_uids; - camel_folder_class->free_uids = free_uids; - camel_folder_class->sort_uids = sort_uids; - camel_folder_class->get_summary = get_summary; -@@ -163,6 +165,7 @@ - camel_folder_class->delete = delete; - camel_folder_class->rename = folder_rename; - camel_folder_class->freeze = freeze; -+ camel_folder_class->sync_message = NULL; - camel_folder_class->thaw = thaw; - camel_folder_class->is_frozen = is_frozen; - camel_folder_class->get_quota_info = get_quota_info; -@@ -1137,6 +1140,35 @@ - return ret; - } - -+/** -+ * camel_folder_sync_message: -+ * @folder: a #CamelFolder object -+ * @uid: the UID -+ * @ex: a #CamelException -+ * -+ * Ensure that a message identified by UID has been synced in the folder (so -+ * that camel_folder_get_message on it later will work in offline mode). -+ * -+ * Returns: void. -+ **/ -+void -+camel_folder_sync_message (CamelFolder *folder, const char *uid, CamelException *ex) -+{ -+ g_return_if_fail (CAMEL_IS_FOLDER (folder)); -+ CAMEL_FOLDER_REC_LOCK(folder, lock); -+ -+ /* Use the sync_message method if the class implements it. */ -+ if (CF_CLASS (folder)->sync_message) -+ CF_CLASS (folder)->sync_message (folder, uid, ex); -+ else { -+ CamelMimeMessage *message; -+ message = CF_CLASS (folder)->get_message (folder, uid, ex); -+ if (message) -+ camel_object_unref(message); -+ } -+ CAMEL_FOLDER_REC_UNLOCK(folder, lock); -+} -+ - static GPtrArray * - get_uids(CamelFolder *folder) - { -@@ -1200,6 +1232,41 @@ - } - - -+/** -+ * Default: return the uids we are given. -+ */ -+static GPtrArray * -+get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex) -+{ -+ GPtrArray *result; -+ int i; -+ -+ result = g_ptr_array_new(); -+ -+ g_ptr_array_set_size(result, uids->len); -+ for (i = 0; i < uids->len; i++) -+ result->pdata[i] = (char *)camel_pstring_strdup(uids->pdata[i]); -+ return result; -+} -+ -+/** -+ * camel_folder_get_uncached_uids: -+ * @folder: a #CamelFolder object -+ * @uids: the array of uids to filter down to uncached ones. -+ * -+ * Returns the known-uncached uids from a list of uids. It may return uids -+ * which are locally cached but should never filter out a uid which is not -+ * locally cached. Free the result by called #camel_folder_free_uids. -+ * Frees the array of UIDs returned by #camel_folder_get_uids. -+ **/ -+GPtrArray * -+camel_folder_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex) -+{ -+ g_return_if_fail (CAMEL_IS_FOLDER (folder)); -+ return CF_CLASS (folder)->get_uncached_uids(folder, uids, ex); -+} -+ -+ - static int - uidcmp (const void *v0, const void *v1) - { - ---- camel/camel-folder.h 2008-10-06 09:27:15 +0000 -+++ camel/camel-folder.h 2008-12-16 06:57:35 +0000 -@@ -211,6 +211,10 @@ - - CamelFolderQuotaInfo * (*get_quota_info) (CamelFolder *folder); - guint32 (*count_by_expression) (CamelFolder *, const char *, CamelException *); -+ void (*sync_message) (CamelFolder *folder, -+ const char *uid, -+ CamelException *ex); -+ GPtrArray * (*get_uncached_uids)(CamelFolder *, GPtrArray * uids, CamelException *); - } CamelFolderClass; - - /* Standard Camel function */ -@@ -303,12 +307,18 @@ - CamelMimeMessage * camel_folder_get_message (CamelFolder *folder, - const char *uid, - CamelException *ex); -+void camel_folder_sync_message (CamelFolder *folder, -+ const char *uid, -+ CamelException *ex); - #define camel_folder_delete_message(folder, uid) \ - camel_folder_set_message_flags (folder, uid, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN) - - GPtrArray * camel_folder_get_uids (CamelFolder *folder); - void camel_folder_free_uids (CamelFolder *folder, - GPtrArray *array); -+GPtrArray * camel_folder_get_uncached_uids (CamelFolder *, -+ GPtrArray * uids, -+ CamelException *); - void camel_folder_sort_uids (CamelFolder *folder, - GPtrArray *uids); - - ---- camel/camel-offline-folder.c 2008-06-20 22:32:12 +0000 -+++ camel/camel-offline-folder.c 2008-12-16 06:57:35 +0000 -@@ -247,8 +247,7 @@ - offline_folder_downsync (CamelOfflineFolder *offline, const char *expression, CamelException *ex) - { - CamelFolder *folder = (CamelFolder *) offline; -- CamelMimeMessage *message; -- GPtrArray *uids; -+ GPtrArray *uids, *uncached_uids; - int i; - - camel_operation_start (NULL, _("Syncing messages in folder '%s' to disk"), folder->full_name); -@@ -257,27 +256,29 @@ - uids = camel_folder_search_by_expression (folder, expression, ex); - else - uids = camel_folder_get_uids (folder); -- -- if (!uids) { -- camel_operation_end (NULL); -- return; -+ -+ if (!uids) -+ goto done; -+ uncached_uids = camel_folder_get_uncached_uids(folder, uids, ex); -+ if (uids) { -+ if (expression) -+ camel_folder_search_free (folder, uids); -+ else -+ camel_folder_free_uids (folder, uids); - } - -- for (i = 0; i < uids->len; i++) { -- int pc = i * 100 / uids->len; -- -- message = camel_folder_get_message (folder, uids->pdata[i], ex); -+ if (!uncached_uids) -+ goto done; -+ -+ for (i = 0; i < uncached_uids->len; i++) { -+ int pc = i * 100 / uncached_uids->len; -+ camel_folder_sync_message (folder, uncached_uids->pdata[i], ex); - camel_operation_progress (NULL, pc); -- if (message == NULL) -- break; -- -- camel_object_unref (message); - } -- -- if (expression) -- camel_folder_search_free (folder, uids); -- else -- camel_folder_free_uids (folder, uids); -+ -+done: -+ if (uncached_uids) -+ camel_folder_free_uids(folder, uncached_uids); - - camel_operation_end (NULL); - } - ---- camel/providers/imap/camel-imap-folder.c 2008-12-05 12:10:12 +0000 -+++ camel/providers/imap/camel-imap-folder.c 2008-12-16 06:57:35 +0000 -@@ -102,10 +102,13 @@ - static void imap_expunge (CamelFolder *folder, CamelException *ex); - //static void imap_cache_message (CamelDiscoFolder *disco_folder, const char *uid, CamelException *ex); - static void imap_rename (CamelFolder *folder, const char *new); -+static GPtrArray * imap_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex); - - /* message manipulation */ - static CamelMimeMessage *imap_get_message (CamelFolder *folder, const gchar *uid, - CamelException *ex); -+static void imap_sync_message (CamelFolder *folder, const gchar *uid, -+ CamelException *ex); - static void imap_append_online (CamelFolder *folder, CamelMimeMessage *message, - const CamelMessageInfo *info, char **appended_uid, - CamelException *ex); -@@ -135,6 +138,12 @@ - - static GData *parse_fetch_response (CamelImapFolder *imap_folder, char *msg_att); - -+/* internal helpers */ -+static CamelImapMessageInfo * imap_folder_summary_uid_or_error( -+ CamelFolderSummary *summary, -+ const char * uid, -+ CamelException *ex); -+ - #ifdef G_OS_WIN32 - /* The strtok() in Microsoft's C library is MT-safe (but still uses - * only one buffer pointer per thread, but for the use of strtok_r() -@@ -166,7 +175,9 @@ - camel_folder_class->expunge = imap_expunge; - camel_folder_class->sync= imap_sync; - camel_folder_class->append_message = imap_append_online; -+ camel_folder_class->sync_message = imap_sync_message; - camel_folder_class->transfer_messages_to = imap_transfer_online; -+ camel_folder_class->get_uncached_uids = imap_get_uncached_uids; - } - - static void -@@ -2809,24 +2820,33 @@ - return FALSE; - } - --static CamelMimeMessage * --imap_get_message (CamelFolder *folder, const char *uid, CamelException *ex) -+static CamelImapMessageInfo * -+imap_folder_summary_uid_or_error(CamelFolderSummary *summary, const char * uid, CamelException *ex) - { -- CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); -- CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store); -- CamelImapMessageInfo *mi; -- CamelMimeMessage *msg = NULL; -- CamelStream *stream = NULL; -- int retry; -- -- mi = (CamelImapMessageInfo *)camel_folder_summary_uid (folder->summary, uid); -+ CamelImapMessageInfo *mi; -+ mi = (CamelImapMessageInfo *)camel_folder_summary_uid (summary, uid); - if (mi == NULL) { - camel_exception_setv ( - ex, CAMEL_EXCEPTION_FOLDER_INVALID_UID, - _("Cannot get message with message ID %s: %s"), - uid, _("No such message available.")); -- return NULL; - } -+ return mi; -+} -+ -+static CamelMimeMessage * -+imap_get_message (CamelFolder *folder, const char *uid, CamelException *ex) -+{ -+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); -+ CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store); -+ CamelImapMessageInfo *mi; -+ CamelMimeMessage *msg = NULL; -+ CamelStream *stream = NULL; -+ int retry; -+ -+ mi = imap_folder_summary_uid_or_error(folder->summary, uid, ex); -+ if (!mi) -+ return NULL; - - /* If its cached in full, just get it as is, this is only a shortcut, - since we get stuff from the cache anyway. It affects a busted connection though. */ -@@ -2947,6 +2967,44 @@ - return msg; - } - -+/** -+ * imap_sync_message -+ * -+ * Ensure that a message is cached locally, but don't retrieve the content if -+ * it is already local. -+ */ -+static void -+imap_sync_message (CamelFolder *folder, const char *uid, CamelException *ex) -+{ -+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); -+ CamelImapMessageInfo *mi; -+ CamelMimeMessage *msg = NULL; -+ CamelStream *stream = NULL; -+ -+ mi = imap_folder_summary_uid_or_error(folder->summary, uid, ex); -+ if (!mi) -+ /* No such UID - is this duplicate work? The sync process selects -+ * UIDs to start with. -+ */ -+ return; -+ camel_message_info_free(&mi->info); -+ -+ /* If we can get a stream, assume its fully cached. This may be false -+ * if partial streams are saved elsewhere in the code - but that seems -+ * best solved by knowning more about whether a given message is fully -+ * available locally or not, -+ */ -+ /* If its cached in full, just get it as is, this is only a shortcut, -+ since we get stuff from the cache anyway. It affects a busted connection though. */ -+ if ((stream = camel_imap_folder_fetch_data(imap_folder, uid, "", TRUE, NULL))) { -+ camel_object_unref (stream); -+ return; -+ } -+ msg = imap_get_message(folder, uid, ex); -+ if (msg) -+ camel_object_unref(msg); -+} -+ - /* FIXME Remove it after confirming - static void - imap_cache_message (CamelDiscoFolder *disco_folder, const char *uid, -@@ -3919,3 +3977,19 @@ - CAMEL_SERVICE_REC_UNLOCK (imap_store, connect_lock); - return res; - } -+ -+/** -+ * Scan for messages that are local and return the rest. -+ */ -+static GPtrArray * -+imap_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex) -+{ -+ GPtrArray *result; -+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); -+ -+ CAMEL_IMAP_FOLDER_REC_LOCK (imap_folder, cache_lock); -+ result = camel_imap_message_cache_filter_cached (imap_folder->cache, uids, ex); -+ CAMEL_IMAP_FOLDER_REC_UNLOCK (imap_folder, cache_lock); -+ return result; -+} -+ - ---- camel/providers/imap/camel-imap-message-cache.c 2008-10-16 03:42:34 +0000 -+++ camel/providers/imap/camel-imap-message-cache.c 2008-12-16 06:57:35 +0000 -@@ -35,6 +35,7 @@ - #include "camel-data-wrapper.h" - #include "camel-exception.h" - #include "camel-stream-fs.h" -+#include "camel-string-utils.h" - - #include "camel-imap-message-cache.h" - -@@ -42,9 +43,27 @@ - #define O_BINARY 0 - #endif - -+/* Common define to start reducing duplication of base-part handling on win32. -+ */ -+#ifdef G_OS_WIN32 -+/* See comment in insert_setup() */ -+#define BASE_PART_SUFFIX ".~" -+#else -+#define BASE_PART_SUFFIX "." -+#endif -+ - static void finalize (CamelImapMessageCache *cache); - static void stream_finalize (CamelObject *stream, gpointer event_data, gpointer user_data); - -+struct _part_find { -+ /* UID name on disk - e.g. "0." or "0.HEADERS". On windows "0." is -+ * stored as "0.~" -+ */ -+ char *disk_part_name; -+ /* Was the part found? */ -+ int found; -+}; -+ - - CamelType - camel_imap_message_cache_get_type (void) -@@ -142,6 +161,8 @@ - * Return value: a new CamelImapMessageCache object using @path for - * storage. If cache files already exist in @path, then any that do not - * correspond to messages in @summary will be deleted. -+ * @path is scanned for its contents, which means creating a cache object can be -+ * expensive, but the parts hash is immediately usable. - **/ - CamelImapMessageCache * - camel_imap_message_cache_new (const char *path, CamelFolderSummary *summary, -@@ -591,3 +612,67 @@ - } - } - } -+ -+ -+static void -+_match_part(gpointer part_name, gpointer user_data) -+{ -+ struct _part_find *part_find = (struct _part_find *) user_data; -+ if (g_str_equal(part_name, part_find->disk_part_name)) -+ part_find->found = 1; -+} -+ -+/** -+ * Filter uids by the uids cached in cache. -+ * The intent is that only uids fully cached are returned, but that may not be -+ * what is achieved. An additional constraint is that this check should be -+ * cheap, so that going offline is not an expensive operation. Filtering all -+ * uids is inefficient in the first place; significant processing per uid -+ * makes synchronisation very expensive. At the suggestion of Srinivasa Ragavan -+ * (see http://bugzilla.gnome.org/show_bug.cgi?id=564339) the cache->parts hash -+ * table is consulted. If there is a parts-list in the hash table containing -+ * the part "", then we assume the message has been completely downloaded. This -+ * is incorrect (see http://bugzilla.gnome.org/show_bug.cgi?id=561211 for the -+ * symptoms). The code this replaces, a loop over all uids asking for the "" -+ * part of the message has the same flaw: it is no /less/ accurate to assess -+ * 'cached' in the manner this method does (assuming no concurrent process is -+ * removing messages from the cache). -+ * -+ * In the future, fixing bug 561211 needs a check for *all* the parts of a -+ * given uid. If the complete list of parts is available in the folder summary -+ * information then it can be done cheaply, otherwise some redesign will be -+ * needed. -+ */ -+GPtrArray * -+camel_imap_message_cache_filter_cached(CamelImapMessageCache *cache, GPtrArray *uids, CamelException *ex) -+{ -+ GPtrArray *result, *parts_list; -+ int i; -+ struct _part_find part_find; -+ /* Look for a part "" for each uid. */ -+ result = g_ptr_array_sized_new(uids->len); -+ for (i = 0; i < uids->len; i++) { -+ if ((parts_list = g_hash_table_lookup(cache->parts, uids->pdata[i]))) { -+ /* At least one part locally present; look for "" (the -+ * HEADERS part can be present without anything else, -+ * and that part is not useful for users wanting to -+ * read the message). -+ */ -+ part_find.found = 0; -+ part_find.disk_part_name = g_strdup_printf("%s" BASE_PART_SUFFIX, -+ (char *)uids->pdata[i]); -+ g_ptr_array_foreach(parts_list, _match_part, &part_find); -+ g_free(part_find.disk_part_name); -+ if (part_find.found) -+ /* The message is cached locally, do not -+ * include it in the result. -+ */ -+ continue; -+ } -+ /* No message parts, or message part "" not found: include the -+ * uid in the result. -+ */ -+ g_ptr_array_add(result, (char *)camel_pstring_strdup(uids->pdata[i])); -+ } -+ return result; -+} - ---- camel/providers/imap/camel-imap-message-cache.h 2008-07-31 09:31:51 +0000 -+++ camel/providers/imap/camel-imap-message-cache.h 2008-12-16 06:57:35 +0000 -@@ -41,6 +41,13 @@ - CamelObject parent_object; - - char *path; -+ /* parts contains two sorts of objects. -+ * If the key contains '.' then it is a stream (also reverse-indexed in -+ * cached). -+ * Otherwise it is a g_ptr_array containing the subparts the message -+ * has. (e.g. 0., or 0.MIME.1). -+ */ -+ /* cached contains streams for recently accessed messages */ - GHashTable *parts, *cached; - guint32 max_uid; - }; -@@ -98,6 +105,9 @@ - CamelException *ex); - gboolean camel_imap_message_cache_delete (const char *path, - CamelException *ex); -+GPtrArray * camel_imap_message_cache_filter_cached(CamelImapMessageCache *, -+ GPtrArray *uids, -+ CamelException *ex); - - /* Standard Camel function */ - CamelType camel_imap_message_cache_get_type (void); - diff --git a/bnc-443544-eds-free-busy.patch b/bnc-443544-eds-free-busy.patch deleted file mode 100644 index 10ff508..0000000 --- a/bnc-443544-eds-free-busy.patch +++ /dev/null @@ -1,50 +0,0 @@ -Index: calendar/backends/groupwise/e-cal-backend-groupwise-utils.c -=================================================================== ---- calendar/backends/groupwise/e-cal-backend-groupwise-utils.c (revision 9879) -+++ calendar/backends/groupwise/e-cal-backend-groupwise-utils.c (revision 9881) -@@ -1785,6 +1785,7 @@ - ECalComponentAttendee attendee; - GSList *attendee_list = NULL; - icalcomponent *icalcomp = NULL; -+ icaltimetype start_time, end_time; - - tmp = soup_soap_parameter_get_first_child_by_name (subparam, "email"); - if (tmp) -@@ -1801,6 +1802,11 @@ - e_cal_component_commit_sequence (comp); - icalcomp = e_cal_component_get_icalcomponent (comp); - -+ start_time = icaltime_from_timet_with_zone (start, 0, default_zone ? default_zone : NULL); -+ end_time = icaltime_from_timet_with_zone (end, 0, default_zone ? default_zone : NULL); -+ icalcomponent_set_dtstart (icalcomp, start_time); -+ icalcomponent_set_dtend (icalcomp, end_time); -+ - memset (&attendee, 0, sizeof (ECalComponentAttendee)); - if (name) - attendee.cn = name; -@@ -1829,7 +1835,24 @@ - return E_GW_CONNECTION_STATUS_INVALID_RESPONSE; - } - -- for (subparam_block = soup_soap_parameter_get_first_child_by_name (param_blocks, "block"); -+ subparam_block = soup_soap_parameter_get_first_child_by_name (param_blocks, "block"); -+ /* The GW server only returns 'Busy', 'OOF' and 'Tentative' periods. The rest are -+ * assumed to be 'Free' periods. In case of an attendee having only 'Free' periods, -+ * ensure to send a block to the frontend saying so. */ -+ if (subparam_block == NULL) { -+ struct icalperiodtype ipt; -+ icaltimetype sitt, eitt; -+ icalproperty *icalprop; -+ sitt = icaltime_from_timet_with_zone (start, 0, default_zone ? default_zone : NULL); -+ ipt.start = sitt; -+ eitt = icaltime_from_timet_with_zone (end, 0, default_zone ? default_zone : NULL); -+ ipt.end = eitt; -+ icalprop = icalproperty_new_freebusy (ipt); -+ icalproperty_set_parameter_from_string (icalprop, "FBTYPE", "FREE"); -+ icalcomponent_add_property(icalcomp, icalprop); -+ } -+ -+ for (; - subparam_block != NULL; - subparam_block = soup_soap_parameter_get_next_child_by_name (subparam_block, "block")) { - diff --git a/bnc-446269-moving-emails-broken.patch b/bnc-446269-moving-emails-broken.patch deleted file mode 100644 index b21f250..0000000 --- a/bnc-446269-moving-emails-broken.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- camel/providers/imap/camel-imap-folder.c -+++ camel/providers/imap/camel-imap-folder.c -@@ -2256,12 +2256,12 @@ do_copy (CamelFolder *source, GPtrArray *uids, - if (response) - handle_copyuid_copy_user_tags (response, source, destination); - camel_imap_response_free (store, response); -+ } - -- if (!camel_exception_is_set(ex) && delete_originals) { -- for (i=last;ipdata[i]); -- last = uid; -- } -+ if (!camel_exception_is_set(ex) && delete_originals) { -+ for (i=last;ipdata[i]); -+ last = uid; - } - g_free (uidset); - } diff --git a/bnc-446290-gw-counts-issues.patch b/bnc-446290-gw-counts-issues.patch deleted file mode 100644 index e25de8c..0000000 --- a/bnc-446290-gw-counts-issues.patch +++ /dev/null @@ -1,102 +0,0 @@ -Index: camel/providers/groupwise/camel-groupwise-folder.c -=================================================================== ---- camel/providers/groupwise/camel-groupwise-folder.c (revision 9858) -+++ camel/providers/groupwise/camel-groupwise-folder.c (revision 9859) -@@ -1200,10 +1200,6 @@ - if (gw_store->current_folder != folder) { - gw_store->current_folder = folder; - } -- -- if (list) { -- gw_update_cache (folder, list, ex, FALSE); -- } - - if (check_all && !is_proxy) { - EGwContainer *container; -@@ -1214,8 +1210,15 @@ - - if (camel_folder_summary_count (folder->summary) == e_gw_container_get_total_count (container)) - check_all = FALSE; -+ -+ folder->summary->unread_count = e_gw_container_get_unread_count (container); -+ folder->summary->visible_count = e_gw_container_get_total_count (container); - g_object_unref (container); - } -+ -+ if (list) { -+ gw_update_cache (folder, list, ex, FALSE); -+ } - } - - -@@ -1352,6 +1355,8 @@ - mi->info.content->type = camel_content_type_new ("multipart", "mixed"); - } - -+ mi->info.flags = 0; -+ - if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_TASK || type == E_GW_ITEM_TYPE_NOTE) - camel_message_info_set_user_flag ((CamelMessageInfo*)mi, "$has_cal", TRUE); - } -@@ -1368,16 +1373,12 @@ - - item_status = e_gw_item_get_item_status (item); - if (item_status & E_GW_ITEM_STAT_READ) -- status_flags |= CAMEL_MESSAGE_SEEN; -+ mi->info.flags |= CAMEL_MESSAGE_SEEN; - else - mi->info.flags &= ~CAMEL_MESSAGE_SEEN; - - if (item_status & E_GW_ITEM_STAT_REPLIED) -- status_flags |= CAMEL_MESSAGE_ANSWERED; -- if (exists) -- mi->info.flags |= status_flags; -- else -- mi->info.flags = status_flags; -+ mi->info.flags |= CAMEL_MESSAGE_ANSWERED; - - priority = e_gw_item_get_priority (item); - if (priority && !(g_ascii_strcasecmp (priority,"High"))) { -@@ -1468,6 +1469,7 @@ - } - } - -+ mi->info.dirty = TRUE; - if (exists) { - camel_folder_change_info_change_uid (changes, mi->info.uid); - camel_message_info_free (pmi); -@@ -1475,12 +1477,7 @@ - mi->info.uid = camel_pstring_strdup (e_gw_item_get_id(item)); - mi->info.size = e_gw_item_get_mail_size (item); - mi->info.subject = camel_pstring_strdup(e_gw_item_get_subject(item)); -- mi->info.dirty = TRUE; - -- folder->summary->visible_count ++; -- if (!(mi->info.flags & CAMEL_MESSAGE_SEEN)) -- folder->summary->unread_count ++; -- - camel_folder_summary_add (folder->summary,(CamelMessageInfo *)mi); - camel_folder_change_info_add_uid (changes, mi->info.uid); - camel_folder_change_info_recent_uid (changes, mi->info.uid); -Index: servers/groupwise/e-gw-connection.c -=================================================================== ---- servers/groupwise/e-gw-connection.c (revision 9858) -+++ servers/groupwise/e-gw-connection.c (revision 9859) -@@ -840,7 +840,7 @@ - } - - e_gw_message_write_string_parameter (msg, "uid", NULL, uid); -- e_gw_message_write_string_parameter (msg, "view", NULL, "count"); -+ e_gw_message_write_string_parameter (msg, "view", NULL, "count unreadCount"); - e_gw_message_write_footer (msg); - - /* send message to server */ -@@ -2772,7 +2772,7 @@ - - if (buffer && buf_length && atoi (buf_length) > 0) { - gsize len = atoi (buf_length) ; -- *attachment = g_base64_decode (buffer,&len) ; -+ *attachment = (char *) g_base64_decode (buffer,&len) ; - *attach_length = len ; - } else { - *attachment = NULL; diff --git a/bnc-446371-fix-completed-on.patch b/bnc-446371-fix-completed-on.patch deleted file mode 100644 index f5d875e..0000000 --- a/bnc-446371-fix-completed-on.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- camel/camel-search-sql-sexp.c -+++ camel/camel-search-sql-sexp.c -@@ -150,8 +150,12 @@ func_not(ESExp *f, int argc, struct _ESExpTerm **argv, void *data) - - if (r1->type == ESEXP_RES_STRING) { - r = e_sexp_result_new(f, ESEXP_RES_STRING); -- r->value.string = g_strdup_printf ("(NOT (%s))", -- r1->value.string); -+ /* HACK: Fix and handle completed-on better. */ -+ if (strcmp(r1->value.string, "( (usertags LIKE '%completed-on 0%' AND usertags LIKE '%completed-on%') )") == 0) -+ r->value.string = g_strdup ("( (not (usertags LIKE '%completed-on 0%')) AND usertags LIKE '%completed-on%' )"); -+ else -+ r->value.string = g_strdup_printf ("(NOT (%s))", -+ r1->value.string); - } - e_sexp_result_free (f, r1); - -@@ -439,7 +443,7 @@ user_tag(struct _ESExp *f, int argc, struct _ESExpResult **argv, void *data) - r = e_sexp_result_new(f, ESEXP_RES_STRING); - /* Hacks no otherway to fix these really :( */ - if (strcmp(argv[0]->value.string, "completed-on") == 0) -- r->value.string = g_strdup_printf("usertags NOT LIKE '%ccompleted-on%c'", '%', '%'); -+ r->value.string = g_strdup_printf("(usertags LIKE '%ccompleted-on 0%c' AND usertags LIKE '%ccompleted-on%c')", '%', '%', '%', '%'); - else if (strcmp(argv[0]->value.string, "follow-up") == 0) - r->value.string = g_strdup_printf("usertags NOT LIKE '%cfollow-up%c'", '%', '%'); - else diff --git a/bnc-446372-fix-empty-trash.patch b/bnc-446372-fix-empty-trash.patch deleted file mode 100644 index dc1f13f..0000000 --- a/bnc-446372-fix-empty-trash.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- camel/providers/imap/camel-imap-folder.c -+++ camel/providers/imap/camel-imap-folder.c -@@ -1587,6 +1587,8 @@ imap_expunge (CamelFolder *folder, CamelException *ex) - - camel_folder_summary_save_to_db (folder->summary, ex); - uids = camel_db_get_folder_deleted_uids (folder->parent_store->cdb_r, folder->full_name, ex); -+ if (!uids) -+ return; - - if (CAMEL_OFFLINE_STORE (store)->state == CAMEL_OFFLINE_STORE_NETWORK_AVAIL) - imap_expunge_uids_online (folder, uids, ex); diff --git a/bnc-446373-fix-refresh-vfolderquery.patch b/bnc-446373-fix-refresh-vfolderquery.patch deleted file mode 100644 index 666d831..0000000 --- a/bnc-446373-fix-refresh-vfolderquery.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- camel/camel-folder-summary.c -+++ camel/camel-folder-summary.c -@@ -2074,25 +2074,24 @@ camel_folder_summary_touch(CamelFolderSummary *s) - void - camel_folder_summary_clear(CamelFolderSummary *s) - { --#if 0 -- int i; -+ d(printf ("\ncamel_folder_summary_clearcalled \n")); -+ s->flags &= ~CAMEL_SUMMARY_DIRTY; - - CAMEL_SUMMARY_LOCK(s, summary_lock); - if (camel_folder_summary_count(s) == 0) { - CAMEL_SUMMARY_UNLOCK(s, summary_lock); - return; - } -+ -+ g_ptr_array_foreach (s->uids, (GFunc) camel_pstring_free, NULL); -+ g_ptr_array_free (s->uids, TRUE); -+ s->uids = g_ptr_array_new (); -+ s->visible_count = s->deleted_count = s->unread_count = 0; - -- for (i=0;imessages->len;i++) -- camel_message_info_free(s->messages->pdata[i]); -+ g_hash_table_destroy(s->loaded_infos); -+ s->loaded_infos = g_hash_table_new(g_str_hash, g_str_equal); - -- g_ptr_array_set_size(s->messages, 0); -- g_hash_table_destroy(s->messages_uid); -- s->messages_uid = g_hash_table_new(g_str_hash, g_str_equal); -- s->flags |= CAMEL_SUMMARY_DIRTY; -- s->meta_summary->msg_expunged = TRUE; - CAMEL_SUMMARY_UNLOCK(s, summary_lock); --#endif - } - - /* FIXME: This is non-sense. Neither an exception is passed, ---- camel/camel-vee-folder.c -+++ camel/camel-vee-folder.c -@@ -2064,8 +2064,16 @@ vee_set_expression(CamelVeeFolder *vf, const char *query) - } - - /* Recreate the table when the query changes, only if we are not setting it first */ -- if (vf->expression) -+ if (vf->expression) { -+ CamelFolderSummary *s = ((CamelFolder *)vf)->summary; -+ camel_folder_summary_clear (s); - camel_db_recreate_vfolder (((CamelFolder *) vf)->parent_store->cdb_w, ((CamelFolder *) vf)->full_name, NULL); -+ s->junk_count = 0; -+ s->deleted_count = 0; -+ s->unread_count = 0; -+ s->visible_count = 0; -+ s->junk_not_deleted_count = 0; -+ } - - - g_free(vf->expression); diff --git a/bnc-447121-gw-memory-crasher.patch b/bnc-447121-gw-memory-crasher.patch deleted file mode 100644 index 8e0d149..0000000 --- a/bnc-447121-gw-memory-crasher.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- addressbook/backends/groupwise/e-book-backend-groupwise.c -+++ addressbook/backends/groupwise/e-book-backend-groupwise.c -@@ -2020,7 +2020,7 @@ e_book_backend_groupwise_get_contact_list (EBookBackend *backend, - g_object_unref (contact); - } - g_ptr_array_free (ids, TRUE); -- ids->len = 0; -+ ids = NULL; - } - } - else { diff --git a/bnc-448079-gw-memory-issues.patch b/bnc-448079-gw-memory-issues.patch deleted file mode 100644 index 9349a58..0000000 --- a/bnc-448079-gw-memory-issues.patch +++ /dev/null @@ -1,137 +0,0 @@ ---- camel/providers/groupwise/camel-groupwise-folder.c -+++ camel/providers/groupwise/camel-groupwise-folder.c -@@ -229,8 +229,11 @@ groupwise_populate_details_from_item (CamelMimeMessage *msg, EGwItem *item) - time_t actual_time; - int offset = 0; - dtstring = e_gw_item_get_creation_date (item); -- time = e_gw_connection_get_date_from_string (dtstring); -- actual_time = camel_header_decode_date (ctime(&time), NULL); -+ if (dtstring) { -+ time = e_gw_connection_get_date_from_string (dtstring); -+ actual_time = camel_header_decode_date (ctime(&time), NULL); -+ } else -+ actual_time = (time_t) 0; - camel_mime_message_set_date (msg, actual_time, offset); - } - } -@@ -1270,7 +1273,7 @@ gw_update_cache (CamelFolder *folder, GList *list, CamelException *ex, gboolean - - int folder_needs_caching; - -- camel_object_get (folder, NULL, CAMEL_OFFLINE_FOLDER_ARG_SYNC_OFFLINE, &folder_needs_caching, NULL); -+ camel_object_get (folder, NULL, CAMEL_OFFLINE_FOLDER_SYNC_OFFLINE, &folder_needs_caching, NULL); - - changes = camel_folder_change_info_new (); - container_id = g_strdup (camel_groupwise_store_container_id_lookup (gw_store, folder->full_name)); -@@ -1449,8 +1452,12 @@ gw_update_cache (CamelFolder *folder, GList *list, CamelException *ex, gboolean - time_t time; - time_t actual_time; - temp_date = e_gw_item_get_creation_date (item); -- time = e_gw_connection_get_date_from_string (temp_date); -- actual_time = camel_header_decode_date (ctime(&time), NULL); -+ if (temp_date) { -+ /* Creation date can be returned as null for auto-generated meetings */ -+ time = e_gw_connection_get_date_from_string (temp_date); -+ actual_time = camel_header_decode_date (ctime(&time), NULL); -+ } else -+ actual_time = (time_t) 0; - mi->info.date_sent = mi->info.date_received = actual_time; - } - } -@@ -1670,8 +1677,11 @@ gw_update_summary ( CamelFolder *folder, GList *list,CamelException *ex) - time_t time; - time_t actual_time; - temp_date = e_gw_item_get_creation_date (item); -- time = e_gw_connection_get_date_from_string (temp_date); -- actual_time = camel_header_decode_date (ctime(&time), NULL); -+ if (temp_date) { -+ time = e_gw_connection_get_date_from_string (temp_date); -+ actual_time = camel_header_decode_date (ctime(&time), NULL); -+ } else -+ actual_time = (time_t) 0; - mi->info.date_sent = mi->info.date_received = actual_time; - } - } ---- servers/groupwise/e-gw-item.c -+++ servers/groupwise/e-gw-item.c -@@ -307,6 +307,11 @@ e_gw_item_dispose (GObject *object) - priv->classification = NULL; - } - -+ if (priv->security) { -+ g_free (priv->security); -+ priv->security = NULL; -+ } -+ - if (priv->accept_level) { - g_free (priv->accept_level); - priv->accept_level = NULL; ---- servers/groupwise/e-gw-connection.c -+++ servers/groupwise/e-gw-connection.c -@@ -1813,39 +1813,41 @@ e_gw_connection_get_server_time (EGwConnection *cnc) - static time_t - timet_from_string (const char *str) - { -- struct tm date; -- int len, i; -+ struct tm date; -+ int len, i; - -- g_return_val_if_fail (str != NULL, -1); -+ g_return_val_if_fail (str != NULL, -1); - -- /* yyyymmdd[Thhmmss[Z]] */ -- len = strlen (str); -+ /* yyyymmdd[Thhmmss[Z]] */ -+ len = strlen (str); - -- if (!(len == 8 || len == 15 || len == 16)) -- return -1; -+ if (!(len == 8 || len == 15 || len == 16)) -+ return -1; - -- for (i = 0; i < len; i++) -- if (!((i != 8 && i != 15 && isdigit (str[i])) -- || (i == 8 && str[i] == 'T') -- || (i == 15 && str[i] == 'Z'))) -- return -1; -+ for (i = 0; i < len; i++) -+ if (!((i != 8 && i != 15 && isdigit (str[i])) -+ || (i == 8 && str[i] == 'T') -+ || (i == 15 && str[i] == 'Z'))) -+ return -1; - - #define digit_at(x,y) (x[y] - '0') - -- date.tm_year = digit_at (str, 0) * 1000 -- + digit_at (str, 1) * 100 -- + digit_at (str, 2) * 10 -- + digit_at (str, 3) -1900; -- date.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5) -1; -- date.tm_mday = digit_at (str, 6) * 10 + digit_at (str, 7); -- if (len > 8) { -- date.tm_hour = digit_at (str, 9) * 10 + digit_at (str, 10); -- date.tm_min = digit_at (str, 11) * 10 + digit_at (str, 12); -- date.tm_sec = digit_at (str, 13) * 10 + digit_at (str, 14); -- } else -- date.tm_hour = date.tm_min = date.tm_sec = 0; -+ date.tm_year = digit_at (str, 0) * 1000 -+ + digit_at (str, 1) * 100 -+ + digit_at (str, 2) * 10 -+ + digit_at (str, 3) -1900; -+ date.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5) -1; -+ date.tm_mday = digit_at (str, 6) * 10 + digit_at (str, 7); -+ if (len > 8) { -+ date.tm_hour = digit_at (str, 9) * 10 + digit_at (str, 10); -+ date.tm_min = digit_at (str, 11) * 10 + digit_at (str, 12); -+ date.tm_sec = digit_at (str, 13) * 10 + digit_at (str, 14); -+ } else -+ date.tm_hour = date.tm_min = date.tm_sec = 0; -+ -+ date.tm_wday = date.tm_yday = date.tm_isdst = 0; - -- return mktime (&date); -+ return mktime (&date); - } - - char * diff --git a/bnc-449916-task-memo-description.patch b/bnc-449916-task-memo-description.patch deleted file mode 100644 index b649e13..0000000 --- a/bnc-449916-task-memo-description.patch +++ /dev/null @@ -1,58 +0,0 @@ -Index: camel/providers/groupwise/camel-groupwise-folder.c -=================================================================== ---- camel/providers/groupwise/camel-groupwise-folder.c (revision 9780) -+++ camel/providers/groupwise/camel-groupwise-folder.c (working copy) -@@ -2686,7 +2686,21 @@ - g_string_append_printf (gstr, "UID:%s\n",e_gw_item_get_icalid (item)); - g_string_append_printf (gstr, "DTSTART:%s\n",e_gw_item_get_start_date (item)); - g_string_append_printf (gstr, "SUMMARY:%s\n", e_gw_item_get_subject (item)); -- g_string_append_printf (gstr, "DESCRIPTION:%s\n", e_gw_item_get_message (item)); -+ -+ temp = e_gw_item_get_message (item); -+ if (temp) { -+ g_string_append(gstr, "DESCRIPTION:"); -+ while (*temp) { -+ if (*temp == '\n') -+ g_string_append(gstr, "\\n"); -+ else -+ g_string_append_c(gstr, *temp); -+ temp++; -+ } -+ g_string_append(gstr, "\n"); -+ } -+ temp = NULL; -+ - g_string_append_printf (gstr, "DTSTAMP:%s\n", e_gw_item_get_creation_date (item)); - g_string_append_printf (gstr, "X-GWMESSAGEID:%s\n", e_gw_item_get_id (item)); - g_string_append_printf (gstr, "X-GWSHOW-AS:BUSY\n"); -@@ -2741,6 +2755,7 @@ - EGwItemOrganizer *org = NULL; - GString *gstr = g_string_new (NULL); - char **tmp = NULL; -+ const char *temp = NULL; - - tmp = g_strsplit (e_gw_item_get_id (item), "@", -1); - -@@ -2750,7 +2765,21 @@ - g_string_append_printf (gstr, "UID:%s\n",e_gw_item_get_icalid (item)); - g_string_append_printf (gstr, "DTSTART:%s\n",e_gw_item_get_start_date (item)); - g_string_append_printf (gstr, "SUMMARY:%s\n", e_gw_item_get_subject (item)); -- g_string_append_printf (gstr, "DESCRIPTION:%s\n", e_gw_item_get_message (item)); -+ -+ temp = e_gw_item_get_message (item); -+ if (temp) { -+ g_string_append(gstr, "DESCRIPTION:"); -+ while (*temp) { -+ if (*temp == '\n') -+ g_string_append(gstr, "\\n"); -+ else -+ g_string_append_c(gstr, *temp); -+ temp++; -+ } -+ g_string_append(gstr, "\n"); -+ } -+ temp = NULL; -+ - g_string_append_printf (gstr, "DTSTAMP:%s\n", e_gw_item_get_creation_date (item)); - g_string_append_printf (gstr, "X-GWMESSAGEID:%s\n", e_gw_item_get_id (item)); - g_string_append_printf (gstr, "X-GWRECORDID:%s\n", tmp[0]); diff --git a/bnc-455939-eds-deadlock.patch b/bnc-455939-eds-deadlock.patch deleted file mode 100644 index 3eb07a0..0000000 --- a/bnc-455939-eds-deadlock.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- addressbook/libedata-book/e-book-backend.c -+++ addressbook/libedata-book/e-book-backend.c -@@ -476,12 +476,21 @@ book_destroy_cb (gpointer data, GObject *where_book_was) - e_book_backend_remove_client (backend, (EDataBook *)where_book_was); - } - --static void --listener_died_cb (gpointer cnx, gpointer user_data) -+static gboolean -+idle_remove_client (gpointer data) - { -- EDataBook *book = E_DATA_BOOK (user_data); -+ EDataBook *book = (EDataBook *) data; - - e_book_backend_remove_client (e_data_book_get_backend (book), book); -+ g_object_unref ((GObject *) book); -+ -+ return FALSE; -+} -+static void -+listener_died_cb (gpointer cnx, gpointer user_data) -+{ -+ g_object_ref ((GObject *)user_data); -+ g_idle_add (idle_remove_client, user_data); - } - - static void diff --git a/bnc-458127-keyboard-shortcut-port.patch b/bnc-458127-keyboard-shortcut-port.patch deleted file mode 100644 index c7aeab3..0000000 --- a/bnc-458127-keyboard-shortcut-port.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: camel/providers/groupwise/camel-groupwise-provider.c -=================================================================== ---- camel/providers/groupwise/camel-groupwise-provider.c (revision 9852) -+++ camel/providers/groupwise/camel-groupwise-provider.c (working copy) -@@ -73,7 +73,7 @@ - N_("SOAP Settings") }, - - { CAMEL_PROVIDER_CONF_ENTRY, "soap_port", NULL, -- N_("Post Office Agent SOAP Port:"), "7191" }, -+ N_("Post Office Agent SOAP _Port:"), "7191" }, - - { CAMEL_PROVIDER_CONF_HIDDEN, "auth-domain", NULL, - NULL, "Groupwise" }, diff --git a/bnc-462575-gw-refresh-folders.patch b/bnc-462575-gw-refresh-folders.patch deleted file mode 100644 index 8424af8..0000000 --- a/bnc-462575-gw-refresh-folders.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- camel/providers/groupwise/camel-groupwise-store.c 2008-12-23 09:25:44.000000000 +0100 -+++ camel/providers/groupwise/camel-groupwise-store.c 2008-12-23 09:38:58.000000000 +0100 -@@ -1430,6 +1430,17 @@ - return NULL; - } - -+static gboolean -+groupwise_can_refresh_folder (CamelStore *store, CamelFolderInfo *info, CamelException *ex) -+{ -+ gboolean res; -+ -+ res = CAMEL_STORE_CLASS(parent_class)->can_refresh_folder (store, info, ex) || -+ (camel_url_get_param (((CamelService *)store)->url, "check_all") != NULL); -+ -+ return res; -+} -+ - /* - * Function to check if we are both connected and are _actually_ - * online. Based on an equivalient function in IMAP -@@ -1498,6 +1509,7 @@ - camel_store_class->get_folder_info = groupwise_get_folder_info; - camel_store_class->free_folder_info = camel_store_free_folder_info_full; - camel_store_class->get_trash = groupwise_get_trash; -+ camel_store_class->can_refresh_folder = groupwise_can_refresh_folder; - } - - -@@ -1597,3 +1609,4 @@ - - return camel_groupwise_store_type; - } -+ diff --git a/bnc-463095-content-info-from-db.patch b/bnc-463095-content-info-from-db.patch deleted file mode 100644 index 05b0947..0000000 --- a/bnc-463095-content-info-from-db.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- camel/providers/groupwise/camel-groupwise-summary.c.orig 2008-12-31 14:53:07.000000000 +0100 -+++ camel/providers/groupwise/camel-groupwise-summary.c 2008-12-31 15:05:26.000000000 +0100 -@@ -317,8 +317,13 @@ - guint32 type=0; - - if (part) { -- EXTRACT_FIRST_DIGIT (type); -+ if (*part == ' ') -+ part++; -+ if (part) { -+ EXTRACT_FIRST_DIGIT (type); -+ } - } -+ mir->cinfo = part; - if (type) - return camel_groupwise_summary_parent->content_info_from_db (s, mir); - else diff --git a/eds-core-mapi-changes.diff b/eds-core-mapi-changes.diff deleted file mode 100644 index d1fcd69..0000000 --- a/eds-core-mapi-changes.diff +++ /dev/null @@ -1,192 +0,0 @@ -diff -Nupr 1-eds/addressbook/libedata-book/e-book-backend-db-cache.c 2-eds/addressbook/libedata-book/e-book-backend-db-cache.c ---- 1-eds/addressbook/libedata-book/e-book-backend-db-cache.c 2008-10-01 16:11:20.000000000 +0530 -+++ 2-eds/addressbook/libedata-book/e-book-backend-db-cache.c 2008-07-01 22:08:59.000000000 +0530 -@@ -420,3 +420,41 @@ e_book_backend_db_cache_is_populated (DB - return TRUE; - } - } -+ -+void -+e_book_backend_db_cache_set_time(DB *db, const char *t) -+{ -+ DBT uid_dbt, vcard_dbt ; -+ int db_error ; -+ -+ string_to_dbt ("last_update_time", &uid_dbt); -+ string_to_dbt (t, &vcard_dbt); -+ -+ db_error = db->put (db, NULL, &uid_dbt, &vcard_dbt, 0); -+ if (db_error != 0) { -+ g_warning ("db->put failed with %d", db_error); -+ } -+} -+ -+char * -+e_book_backend_db_cache_get_time (DB *db) -+{ -+ DBT uid_dbt, vcard_dbt; -+ int db_error; -+ char *t; -+ -+ string_to_dbt ("last_update_time", &uid_dbt); -+ memset (&vcard_dbt, 0, sizeof(vcard_dbt)); -+ vcard_dbt.flags = DB_DBT_MALLOC; -+ -+ db_error = db->get (db, NULL, &uid_dbt, &vcard_dbt, 0); -+ if (db_error != 0) { -+ g_warning ("db->get failed with %d", db_error); -+ return NULL; -+ } -+ else { -+ t = g_strdup (vcard_dbt.data); -+ g_free (vcard_dbt.data); -+ return t; -+ } -+} -diff -Nupr 1-eds/addressbook/libedata-book/e-book-backend-db-cache.h 2-eds/addressbook/libedata-book/e-book-backend-db-cache.h ---- 1-eds/addressbook/libedata-book/e-book-backend-db-cache.h 2008-10-01 16:11:20.000000000 +0530 -+++ 2-eds/addressbook/libedata-book/e-book-backend-db-cache.h 2008-09-05 11:24:08.000000000 +0530 -@@ -25,6 +25,8 @@ - #include - #include "db.h" - -+G_BEGIN_DECLS -+ - EContact* e_book_backend_db_cache_get_contact (DB *db, const char *uid); - void string_to_dbt(const char *str, DBT *dbt); - char *e_book_backend_db_cache_get_filename(DB *db); -@@ -39,9 +41,8 @@ gboolean e_book_backend_db_cache_exists - void e_book_backend_db_cache_set_populated (DB *db); - gboolean e_book_backend_db_cache_is_populated (DB *db); - GPtrArray* e_book_backend_db_cache_search (DB *db, const char *query); -- -- -- -+void e_book_backend_db_cache_set_time(DB *db, const char *t); -+char * e_book_backend_db_cache_get_time (DB *db); - - G_END_DECLS - -diff -Nupr 1-eds/calendar/ChangeLog 2-eds/calendar/ChangeLog ---- 1-eds/calendar/ChangeLog 2008-10-15 11:33:05.000000000 +0530 -+++ 2-eds/calendar/ChangeLog 2008-10-20 16:03:01.000000000 +0530 -@@ -157,6 +157,18 @@ - (e_cal_util_parse_ics_file): Make the documentation reflect that these - functions either return a new icalcomponent or NULL. - -+2008-07-18 Suman Manjunath -+ -+ ** Added CAL_STATIC_CAPABILITY_CREATE_MESSAGES -+ -+ * libecal/e-cal-util.h: -+ This static capability determines if a calendar backend can send -+ messages to recipients by itself. It is different from the -+ CAL_STATIC_CAPABILITY_SAVE_SCHEDULES from the fact that this new -+ capability is processed after the user has been prompted to send -+ an update. It is useful if the actual object needs some processing -+ after the messages are sent. -+ - 2008-07-18 Milan Crha - - ** Fix for bug #515998 -diff -Nupr 1-eds/calendar/libecal/e-cal.c 2-eds/calendar/libecal/e-cal.c ---- 1-eds/calendar/libecal/e-cal.c 2008-10-01 16:11:33.000000000 +0530 -+++ 2-eds/calendar/libecal/e-cal.c 2008-09-09 12:07:54.000000000 +0530 -@@ -1386,7 +1386,16 @@ set_local_attachment_store (ECal *ecal) - priv->local_attachment_store = - g_filename_to_uri (filename, NULL, NULL); - g_free (filename); -+ } else if (g_str_has_prefix (priv->uri, "mapi://")) { -+ gchar *filename = g_build_filename (g_get_home_dir (), -+ ".evolution/cache/calendar", -+ mangled_uri, -+ NULL); -+ priv->local_attachment_store = -+ g_filename_to_uri (filename, NULL, NULL); -+ g_free (filename); - } -+ - g_free (mangled_uri); - } - -diff -Nupr 1-eds/calendar/libecal/e-cal-util.h 2-eds/calendar/libecal/e-cal-util.h ---- 1-eds/calendar/libecal/e-cal-util.h 2008-10-01 16:11:33.000000000 +0530 -+++ 2-eds/calendar/libecal/e-cal-util.h 2008-07-18 16:29:46.000000000 +0530 -@@ -115,6 +115,7 @@ gboolean e_cal_util_event_dates_match (i - #define CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ATTEND "organizer-must-attend" - #define CAL_STATIC_CAPABILITY_ORGANIZER_NOT_EMAIL_ADDRESS "organizer-not-email-address" - #define CAL_STATIC_CAPABILITY_REMOVE_ALARMS "remove-alarms" -+#define CAL_STATIC_CAPABILITY_CREATE_MESSAGES "create-messages" - #define CAL_STATIC_CAPABILITY_SAVE_SCHEDULES "save-schedules" - #define CAL_STATIC_CAPABILITY_NO_CONV_TO_ASSIGN_TASK "no-conv-to-assign-task" - #define CAL_STATIC_CAPABILITY_NO_CONV_TO_RECUR "no-conv-to-recur" -diff -Nupr 1-eds/servers/exchange/ChangeLog 2-eds/servers/exchange/ChangeLog ---- 1-eds/servers/exchange/ChangeLog 2008-10-20 10:19:25.000000000 +0530 -+++ 2-eds/servers/exchange/ChangeLog 2008-10-20 16:03:01.000000000 +0530 -@@ -14,6 +14,11 @@ - * storage/exchange-account.c: (set_sf_prop): Do not store invalid - values in 'standard_uris', it leads to crash later. - -+2008-09-19 Ashish Shrivastava -+ -+ * lib/e2k-global-catalog.c (e2k_global_catalog_get_ldap): Don't set -+ ldap_error - prevents crashes for now. -+ - 2008-08-18 Milan Crha - - ** Part of fix for bug #324203 -@@ -233,6 +238,12 @@ - * lib/e2k-result.c (prop_get_binary_array), (prop_get_binary): - Initialize 'length' before calling g_base64_decode(). - -+2007-11-11 Srinivasa Ragavan -+ -+ * lib/e2k-global-catalog.c: (e2k_global_catalog_set_password): Added a -+ new api to set password into gc. -+ * lib/e2k-global-catalog.h: -+ - 2007-10-27 Matthew Barnes - - * lib/e2k-user-dialog.c: -diff -Nupr 1-eds/servers/exchange/lib/e2k-global-catalog.c 2-eds/servers/exchange/lib/e2k-global-catalog.c ---- 1-eds/servers/exchange/lib/e2k-global-catalog.c 2008-10-01 16:11:00.000000000 +0530 -+++ 2-eds/servers/exchange/lib/e2k-global-catalog.c 2008-09-19 14:34:53.000000000 +0530 -@@ -435,8 +435,11 @@ e2k_global_catalog_get_ldap (E2kGlobalCa - - err = get_ldap_connection (gc, op, gc->priv->server, 3268, &ldap); - -+#if 0 -+ //ldap_error = (gint *) g_malloc (sizeof (gint)); - if (ldap_error) - *ldap_error = err; -+#endif - - return ldap; - } -@@ -473,6 +476,13 @@ e2k_global_catalog_new (const char *serv - return gc; - } - -+void -+e2k_global_catalog_set_password (E2kGlobalCatalog *gc, const char *password) -+{ -+ g_free (gc->priv->password); -+ gc->priv->password = g_strdup (password); -+} -+ - static const char * - lookup_mta (E2kGlobalCatalog *gc, E2kOperation *op, const char *mta_dn) - { -diff -Nupr 1-eds/servers/exchange/lib/e2k-global-catalog.h 2-eds/servers/exchange/lib/e2k-global-catalog.h ---- 1-eds/servers/exchange/lib/e2k-global-catalog.h 2008-10-01 16:11:00.000000000 +0530 -+++ 2-eds/servers/exchange/lib/e2k-global-catalog.h 2008-09-09 12:07:54.000000000 +0530 -@@ -117,6 +117,9 @@ E2kGlobalCatalogStatus e2k_global_catalo - const char *self_dn, - const char *delegate_dn); - -+void -+e2k_global_catalog_set_password (E2kGlobalCatalog *gc, const char *password); -+ - #ifdef __cplusplus - } - #endif /* __cplusplus */ diff --git a/evolution-data-server-2.24.1.1.tar.bz2 b/evolution-data-server-2.24.1.1.tar.bz2 deleted file mode 100644 index e8a4569..0000000 --- a/evolution-data-server-2.24.1.1.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23a19e40854cb56e78544da3c78a9cb38df640b019a4382e782e0540d51ebcd0 -size 7874659 diff --git a/evolution-data-server-2.25.90.tar.bz2 b/evolution-data-server-2.25.90.tar.bz2 new file mode 100644 index 0000000..aa2349e --- /dev/null +++ b/evolution-data-server-2.25.90.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e34c9d211f55449b5758d69960ba6fd6a0b9e7e531272ed2588747d760e5eb21 +size 7330533 diff --git a/evolution-data-server-po.tar.gz b/evolution-data-server-po.tar.gz new file mode 100644 index 0000000..143a2e9 --- /dev/null +++ b/evolution-data-server-po.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0fe98e1a5b0596054b420ae5c8a80348708949028174ef1af76343881cd5b0a +size 317182 diff --git a/evolution-data-server.changes b/evolution-data-server.changes index 4910d3f..f50c705 100644 --- a/evolution-data-server.changes +++ b/evolution-data-server.changes @@ -1,3 +1,49 @@ +------------------------------------------------------------------- +Thu Feb 5 13:29:13 CET 2009 - vuntz@novell.com + +- Remove compilation flags that were added: those should really + used upstream, and not in a distribution. + +------------------------------------------------------------------- +Wed Feb 4 11:02:36 IST 2009 - msuman@suse.de + +- Update to version 2.25.90: + + Libical fork in evolution-data-server is dropped. Upstream + libical is an external dependency now. + + Bugs fixed: bgo#303738, bgo#360813, bgo#501298, bgo#518920, + bgo#554182, bgo#557348, bgo#562200, bgo#564339, bgo#564543, + bgo#564954, bgo#566279, bgo#565376, bgo#567384, bgo#390198, + bgo#557348, bgo#568332, bgo#568561, bgo#569405, bgo#569742, + bgo#569874, bgo#347287, bgo#550414, bnc#435599, bnc#439986, + bnc#443296, bnc#443544, bnc#463095, bnc#464758, bnc#464878, + bnc#467075, bnc#467638, bnc#470143 + + Updated translations +- Dropped these patches already fixed upstream: + + bnc-435599-junk-contacts-created.patch + + bnc-439986-show-time-free.patch + + bnc-442507-imap-parts-sync.patch + + bnc-443544-eds-free-busy.patch + + bnc-458127-keyboard-shortcut-port.patch + + bnc-463095-content-info-from-db.patch + +------------------------------------------------------------------- +Mon Jan 12 15:25:27 EST 2009 - mauro@suse.de + +- Translations update. + +------------------------------------------------------------------- +Sat Jan 10 09:38:26 IST 2009 - msuman@suse.de + +- Pruning changes from the factory submission: + + Dropped these patches already fixed upstream: + + bgo-559153-eds-migration.patch + + bnc-440265-gw-contacts.patch + + bnc-455939-eds-deadlock.patch + + bnc-209514-gw-missing-mails.patch + + bnc-446290-gw-counts-issues.patch + + bnc-462575-gw-refresh-folders.patch + + bnc-448079-gw-memory-issues.patch + ------------------------------------------------------------------- Wed Jan 7 06:57:24 CET 2009 - abharath@suse.de @@ -31,6 +77,46 @@ Wed Jan 7 06:57:24 CET 2009 - abharath@suse.de displays the wrong time for an appointment in the message list. +------------------------------------------------------------------- +Tue Jan 6 10:26:10 IST 2009 - msuman@suse.de + +- Update to version 2.25.4: + + Bugs fixed: bgo#446290, bgo#559153, bgo#564652, bnc#209514, + bnc#448079, bnc#449916, bnc#462575 + + Updated translations +- Dropped this patch fixed upstream: + + bnc-449916-task-memo-description.patch + +------------------------------------------------------------------- +Tue Dec 23 15:08:01 IST 2008 - msuman@suse.de + +- Update to version 2.25.3 + + Bugs fixed: bgo#359745, bgo#524377, bgo#527692, bgo#531090, + bgo#546637, bgo#555979, bgo#556119, bgo#557348, bgo#557818, + bgo#558322, bgo#558737, bgo#558883, bgo#559272, bgo#560076, + bgo#560185, bgo#560681, bgo#560981, bgo#561069, bgo#561466, + bnc#435964, bgo#270376, bgo#348299, bgo#352287, bgo#357948, + bnc#435632, bnc#440265, bnc#447121, bgo#451734, bgo#503662, + bgo#545834, bgo#552986, bgo#558883, bgo#561081, bgo#561561, + bgo#562228, bgo#562567 + + Updated translations +- Dropped these patches fixed upstream: + + bgo-562228-eds-mailbox-field.patch + + bnc-431133-unread-mail-empty.patch + + bnc-435632-moving-contacts-crash.patch + + bnc-438730-loosing-more-state.patch + + bnc-440265-list-not-saved.patch + + bnc-441347-imap-performance-fix.patch + + bnc-441542-fix-translock.patch + + bnc-441763-show-meeting-icon.patch + + bnc-446269-moving-emails-broken.patch + + bnc-446371-fix-completed-on.patch + + bnc-446372-fix-empty-trash.patch + + bnc-446373-fix-refresh-vfolderquery.patch + + bnc-447121-gw-memory-crasher.patch + + eds-core-mapi-changes.diff +- Added libgweather-devel to the list of BuildRequires + ------------------------------------------------------------------- Thu Dec 4 12:05:08 CET 2008 - abharath@suse.de diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 7a7d866..c783bcb 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -1,5 +1,5 @@ # -# spec file for package evolution-data-server (Version 2.24.1.1) +# spec file for package evolution-data-server (Version 2.25.90) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -19,7 +19,7 @@ Name: evolution-data-server -%define _evo_version 2.24 +%define _evo_version 2.26 BuildRequires: bison BuildRequires: db-devel %if %suse_version > 1100 @@ -37,6 +37,8 @@ BuildRequires: intltool BuildRequires: krb5-devel BuildRequires: libglade2-devel BuildRequires: libgnome-devel +BuildRequires: libgweather-devel >= 2.25.4 +BuildRequires: libical-devel >= 0.43 BuildRequires: libidl-devel BuildRequires: libsoup-devel BuildRequires: mozilla-nss-devel @@ -56,81 +58,26 @@ Obsoletes: evolution-data-server-64bit Obsoletes: evolution-data-server-32bit %endif Summary: Evolution Data Server -Version: 2.24.1.1 -Release: 5 -Source0: ftp://ftp.gnome.org/pub/gnome/sources/evolution-data-server/2.24/%{name}-%{version}.tar.bz2 +Version: 2.25.90 +Release: 1 +Source0: ftp://ftp.gnome.org/pub/gnome/sources/evolution-data-server/2.25/%{name}-%{version}.tar.bz2 +Source1: %{name}-po.tar.gz # PATCH-FIX-UPSTREAM evolution-data-server-1.11.5-cert-auth-complete.patch bgo253574 -- Fix has been submitted to bgo. Patch3: evolution-data-server-1.11.5-cert-auth-complete.patch # PATCH-FIX-UPSTREAM bnc-304835-ex-crash-after-restart.patch bnc304835 bgo253574 -- Fix has been submitted to bgo. Patch4: bnc-304835-ex-crash-after-restart.patch # PATCH-FIX-UPSTREAM bnc-307861-calendar-auth.diff -- bnc307861 bgo253574 -- Fix has been submitted to bgo. Patch5: bnc-307861-calendar-auth.diff -# PATCH-FIX-UPSTREAM bnc-441763-show-meeting-icon.patch psankar@novell.com -- Fix has been submitted to bgo. -Patch6: bnc-441763-show-meeting-icon.patch # PATCH-FEATURE-OPENSUSE dice-eds-changes.patch pchenthill@novell.com -- Patch yet to be pushed upstream Patch7: dice-eds-changes.patch -# PATCH-FIX-UPSTREAM bnc-431133-unread-mail-empty.patch bnc431133 bgo546637 sragavan@novell.com -- Fix has been submitted upstream. -Patch8: bnc-431133-unread-mail-empty.patch -# PATCH-FIX-UPSTREAM bnc-435599-junk-contacts-created.patch bnc435599 shashish@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch9: bnc-435599-junk-contacts-created.patch -# PATCH-FIX-UPSTREAM bnc-441347-imap-performance-fix.patch bnc441347 bgo558883 -- Fix has been submitted upstream. -Patch10: bnc-441347-imap-performance-fix.patch -# PATCH-FIX-UPSTREAM bnc-441542-fix-translock.patch bnc441542 sragavan@novell.com -- Fix has been submitted upstream. -Patch11: bnc-441542-fix-translock.patch -# PATCH-FIX-UPSTREAM bnc-446269-moving-emails-broken.patch bnc446269 bgo561081 sragavan@novell.com -- Fix has been submitted upstream. -Patch12: bnc-446269-moving-emails-broken.patch -# PATCH-FIX-UPSTREAM bnc-446371-fix-completed-on.patch bnc446371 bgo560076 sragavan@novell.com -- Fix has been submitted upstream. -Patch13: bnc-446371-fix-completed-on.patch -# PATCH-FIX-UPSTREAM bnc-446372-fix-empty-trash.patch bnc446372 bgo561069 sragavan@novell.com -- Fix has been submitted upstream. -Patch14: bnc-446372-fix-empty-trash.patch -# PATCH-FIX-UPSTREAM bnc-446373-fix-refresh-vfolderquery.patch bnc446373 bgo557348 sragavan@novell.com -- Fix has been submitted upstream. -Patch15: bnc-446373-fix-refresh-vfolderquery.patch # PATCH-FIX-UPSTREAM bnc-210959-eds-accept_ics.patch bnc210959 pchenthill@novell.com -- Patch yet to be pushed upstream. Patch16: bnc-210959-eds-accept_ics.patch -# PATCH-FIX-UPSTREAM bnc-438730-loosing-more-state.patch bnc438730 sragavan@novell.com -- Fix has been submitted upstream. -Patch17: bnc-438730-loosing-more-state.patch # PATCH-FEATURE-OPENSUSE evolution-data-server-shared-nss-db.patch hpj@novell.com -- Migrate to shared NSS database. Patch18: evolution-data-server-shared-nss-db.patch -# PATCH-FIX-UPSTREAM eds-comp-percent.diff pchenthill@suse.de -- Wrapper function to get percent as int. Needed for sharepoint connector. Will be pushed upstream. +# PATCH-FIX-UPSTREAM eds-comp-percent.diff pchenthill@suse.de -- API freeze = Patch will be upstream only in 2.27.x Patch19: eds-comp-percent.diff -# PATCH-FIX-UPSTREAM bnc-440265-list-not-saved.patch bnc440265 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch20: bnc-440265-list-not-saved.patch -# PATCH-FIX-UPSTREAM bnc-447121-gw-memory-crasher.patch bnc447121 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch21: bnc-447121-gw-memory-crasher.patch -# PATCH-FIX-UPSTREAM bnc-449916-task-memo-description.patch bnc449916 abharath@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch22: bnc-449916-task-memo-description.patch -# PATCH-FIX-UPSTREAM bgo-562228-eds-mailbox-field.patch bgo562228 -- Fix has been submitted upstream. -Patch23: bgo-562228-eds-mailbox-field.patch -# PATCH-FIX-UPSTREAM bnc-435632-moving-contacts-crash.patch bnc435632 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch24: bnc-435632-moving-contacts-crash.patch -# PATCH-FIX-UPSTREAM bgo-559153-eds-migration.patch bgo559153 psankar@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch25: bgo-559153-eds-migration.patch -# PATCH-FIX-UPSTREAM bnc-440265-gw-contacts.patch bnc440265 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch26: bnc-440265-gw-contacts.patch -# PATCH-FIX-UPSTREAM bnc-442507-imap-parts-sync.patch bnc442507 -- Patch is part of GNOME 2.25.5 release. -Patch27: bnc-442507-imap-parts-sync.patch -# PATCH-FIX-UPSTREAM bnc-455939-eds-deadlock.patch bnc455939 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch28: bnc-455939-eds-deadlock.patch -# PATCH-FIX-UPSTREAM bnc-443544-eds-free-busy.patch bnc443544 abharath@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch29: bnc-443544-eds-free-busy.patch -# PATCH-FIX-UPSTREAM bnc-209514-gw-missing-mails.patch bnc209514 psankar@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch30: bnc-209514-gw-missing-mails.patch -# PATCH-FIX-UPSTREAM bnc-446290-gw-counts-issues.patch bnc446290 psankar@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch31: bnc-446290-gw-counts-issues.patch -# PATCH-FIX-UPSTREAM bnc-458127-keyboard-shortcut-port.patch bnc458127 shashish@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch32: bnc-458127-keyboard-shortcut-port.patch -# PATCH-FIX-UPSTREAM bnc-462575-gw-refresh-folders.patch bnc462575 sbrys@novell.com -- Patch is part of GNOME 2.25.5 release. -Patch33: bnc-462575-gw-refresh-folders.patch -# PATCH-FIX-UPSTREAM bnc-448079-gw-memory-issues.patch bnc448079 psankar@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch34: bnc-448079-gw-memory-issues.patch -# PATCH-FIX-UPSTREAM bnc-463095-content-info-from-db.patch bnc463095 sbrys@novell.com -- Yet to be pushed upstream. -Patch35: bnc-463095-content-info-from-db.patch -# PATCH-FIX-UPSTREAM bnc-439986-show-time-free.patch bnc439986 pchenthill@suse.de -- Patch is part of GNOME 2.25.5 release. -Patch36: bnc-439986-show-time-free.patch -# PATCH-FIX-UPSTREAM bnc-463653-msg-list-meeting-time.patch bnc463653 pchenthill@suse.de -- Patch is part of GNOME 2.25.5 release. +# PATCH-FIX-UPSTREAM bnc-463653-msg-list-meeting-time.patch bnc463653 pchenthill@suse.de -- Patch is yet to be pushed upstream. Patch37: bnc-463653-msg-list-meeting-time.patch -# PATCH-FIX-OPENSUSE eds-core-mapi-changes.diff msuman@suse.de -- This patch contains changes in the core code base for the MAPI provider. -Patch100: eds-core-mapi-changes.diff Url: http://www.gnome.org BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-lang = %{version} @@ -162,7 +109,9 @@ Requires: libbonobo-devel Requires: libcom_err Requires: libglade2-devel Requires: libgnome-devel +Requires: libgweather-devel >= 2.25.4 Requires: libgpg-error-devel +Requires: libical-devel >= 0.43 Requires: libsoup-devel Requires: libxml2-devel Requires: nss-shared-helper-devel @@ -197,43 +146,15 @@ documentation. %lang_package %prep -%setup -q +%setup -q -a1 ###%patch3 ###%patch4 ###%patch5 -%patch6 %patch7 -p1 -%patch8 -%patch9 -%patch10 -%patch11 -%patch12 -%patch13 -%patch14 -%patch15 %patch16 -%patch17 %patch18 -p1 %patch19 -p1 -%patch20 -%patch21 -%patch22 -%patch23 -%patch24 -%patch25 -%patch26 -%patch27 -%patch28 -%patch29 -%patch30 -%patch31 -%patch32 -%patch33 -%patch34 -%patch35 -%patch36 %patch37 -%patch100 -p1 %build intltoolize --force --copy @@ -243,10 +164,9 @@ aclocal autoconf automake -a autoheader -(pushd calendar/libical; autoreconf -fi; popd) -export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" -export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" -export FFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED" +export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED" +export FFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -DLDAP_DEPRECATED" %{configure} \ --libexecdir=%{_libdir}/evolution-data-server \ %if %suse_version > 1100 @@ -259,14 +179,22 @@ export FFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" --enable-gnome-keyring \ --enable-gtk-doc \ --enable-ipv6=yes \ - --enable-ssl + --enable-nss=yes \ + --enable-nspr=yes \ + --enable-smime=yes \ + --enable-nntp=yes \ + --enable-hula=yes \ + --enable-exchange=yes \ + --with-e2k-debug \ + --disable-static %{__make} %{?jobs:-j%jobs} %install -%{__make} DESTDIR=$RPM_BUILD_ROOT install +%{makeinstall} +# Remove the libtool archive files +%{__rm} $RPM_BUILD_ROOT/%{_libdir}/*.la +%{__rm} $RPM_BUILD_ROOT/%{_libdir}/*/*/*.la %find_lang evolution-data-server-%{_evo_version} -%{__rm} $RPM_BUILD_ROOT/%{_libdir}/*.*a -%{__rm} $RPM_BUILD_ROOT/%{_libdir}/*/*/*.*a %fdupes $RPM_BUILD_ROOT %if %suse_version > 1100 %{__mv} $RPM_BUILD_ROOT/%{_libdir}/evolution-data-server/evolution-data-server-%{_evo_version} $RPM_BUILD_ROOT/%{_libdir}/evolution-data-server/evolution-data-server-%{_evo_version}.bin @@ -305,6 +233,40 @@ echo -e "#!/bin/sh\n\nLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir %{_datadir}/gtk-doc/html/* %changelog +* Thu Feb 05 2009 vuntz@novell.com +- Remove compilation flags that were added: those should really + used upstream, and not in a distribution. +* Wed Feb 04 2009 msuman@suse.de +- Update to version 2.25.90: + + Libical fork in evolution-data-server is dropped. Upstream + libical is an external dependency now. + + Bugs fixed: bgo#303738, bgo#360813, bgo#501298, bgo#518920, + bgo#554182, bgo#557348, bgo#562200, bgo#564339, bgo#564543, + bgo#564954, bgo#566279, bgo#565376, bgo#567384, bgo#390198, + bgo#557348, bgo#568332, bgo#568561, bgo#569405, bgo#569742, + bgo#569874, bgo#347287, bgo#550414, bnc#435599, bnc#439986, + bnc#443296, bnc#443544, bnc#463095, bnc#464758, bnc#464878, + bnc#467075, bnc#467638, bnc#470143 + + Updated translations +- Dropped these patches already fixed upstream: + + bnc-435599-junk-contacts-created.patch + + bnc-439986-show-time-free.patch + + bnc-442507-imap-parts-sync.patch + + bnc-443544-eds-free-busy.patch + + bnc-458127-keyboard-shortcut-port.patch + + bnc-463095-content-info-from-db.patch +* Mon Jan 12 2009 mauro@suse.de +- Translations update. +* Sat Jan 10 2009 msuman@suse.de +- Pruning changes from the factory submission: + + Dropped these patches already fixed upstream: + + bgo-559153-eds-migration.patch + + bnc-440265-gw-contacts.patch + + bnc-455939-eds-deadlock.patch + + bnc-209514-gw-missing-mails.patch + + bnc-446290-gw-counts-issues.patch + + bnc-462575-gw-refresh-folders.patch + + bnc-448079-gw-memory-issues.patch * Wed Jan 07 2009 abharath@suse.de - Patches added + bgo#559153 - bgo-559153-eds-migration.patch - Migration patches @@ -335,6 +297,40 @@ echo -e "#!/bin/sh\n\nLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir + bnc#463653 - bnc-463653-msg-list-meeting-time.patch - Evolution displays the wrong time for an appointment in the message list. +* Tue Jan 06 2009 msuman@suse.de +- Update to version 2.25.4: + + Bugs fixed: bgo#446290, bgo#559153, bgo#564652, bnc#209514, + bnc#448079, bnc#449916, bnc#462575 + + Updated translations +- Dropped this patch fixed upstream: + + bnc-449916-task-memo-description.patch +* Tue Dec 23 2008 msuman@suse.de +- Update to version 2.25.3 + + Bugs fixed: bgo#359745, bgo#524377, bgo#527692, bgo#531090, + bgo#546637, bgo#555979, bgo#556119, bgo#557348, bgo#557818, + bgo#558322, bgo#558737, bgo#558883, bgo#559272, bgo#560076, + bgo#560185, bgo#560681, bgo#560981, bgo#561069, bgo#561466, + bnc#435964, bgo#270376, bgo#348299, bgo#352287, bgo#357948, + bnc#435632, bnc#440265, bnc#447121, bgo#451734, bgo#503662, + bgo#545834, bgo#552986, bgo#558883, bgo#561081, bgo#561561, + bgo#562228, bgo#562567 + + Updated translations +- Dropped these patches fixed upstream: + + bgo-562228-eds-mailbox-field.patch + + bnc-431133-unread-mail-empty.patch + + bnc-435632-moving-contacts-crash.patch + + bnc-438730-loosing-more-state.patch + + bnc-440265-list-not-saved.patch + + bnc-441347-imap-performance-fix.patch + + bnc-441542-fix-translock.patch + + bnc-441763-show-meeting-icon.patch + + bnc-446269-moving-emails-broken.patch + + bnc-446371-fix-completed-on.patch + + bnc-446372-fix-empty-trash.patch + + bnc-446373-fix-refresh-vfolderquery.patch + + bnc-447121-gw-memory-crasher.patch + + eds-core-mapi-changes.diff +- Added libgweather-devel to the list of BuildRequires * Thu Dec 04 2008 abharath@suse.de - Patches added + bnc#440265 - bnc-440265-list-not-saved.patch - Groupwise