=== modified file 'debian/changelog' --- debian/changelog 2010-09-27 19:36:54 +0000 +++ debian/changelog 2010-10-14 14:17:52 +0000 @@ -1,7 +1,20 @@ +evolution-data-server (2.30.3-2ubuntu2) UNRELEASED; urgency=low + + * debian/patches/107-git-consider-local-inbox-as-inbox.patch: + - adapted from upstream git: local inbox wasn't recognized as an inbox, + debugged with upstream shown that the consequence was POP account not + getting notification neither indicator support in the messaging menu. + (LP: #657837) + * debian/patches/108-git-fix-eproxy-and-https.patch: + - fix the authentication of https webcal through a proxy (LP: #659167) + + -- Didier Roche Thu, 14 Oct 2010 14:08:13 +0200 + evolution-data-server (2.30.3-2ubuntu1) maverick; urgency=low * Mege from debian unstable, backporting the upstream patch list - in 2.30.3-2 + lockup fix + in 2.30.3-2 + lockup fix. This fixes a lot of bugs when people find evo + unressponding or crashing -- Didier Roche Mon, 27 Sep 2010 21:36:52 +0200 === added file 'debian/patches/107-git-consider-local-inbox-as-inbox.patch' --- debian/patches/107-git-consider-local-inbox-as-inbox.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/107-git-consider-local-inbox-as-inbox.patch 2010-10-14 14:15:51 +0000 @@ -0,0 +1,268 @@ + +Index: evolution-data-server-2.30.3/camel/providers/local/camel-local-folder.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-local-folder.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-local-folder.c 2010-10-14 13:43:17.183531002 +0200 +@@ -207,7 +207,6 @@ + CamelLocalFolder * + camel_local_folder_construct(CamelLocalFolder *lf, CamelStore *parent_store, const gchar *full_name, guint32 flags, CamelException *ex) + { +- CamelFolderInfo *fi; + CamelFolder *folder; + const gchar *root_dir_path; + gchar *name; +@@ -217,7 +216,6 @@ + struct stat st; + #endif + gint forceindex, len; +- CamelURL *url; + CamelLocalStore *ls = (CamelLocalStore *)parent_store; + + folder = (CamelFolder *)lf; +@@ -316,17 +314,10 @@ + + /* TODO: This probably shouldn't be here? */ + if ((flags & CAMEL_STORE_FOLDER_CREATE) != 0) { +- url = camel_url_copy (((CamelService *) parent_store)->url); +- camel_url_set_fragment (url, full_name); ++ CamelFolderInfo *fi; + +- fi = camel_folder_info_new (); +- fi->full_name = g_strdup (full_name); +- fi->name = g_strdup (name); +- fi->uri = camel_url_to_string (url, 0); +- fi->unread = camel_folder_get_unread_message_count(folder); +- fi->flags = CAMEL_FOLDER_NOCHILDREN; +- +- camel_url_free (url); ++ fi = camel_store_get_folder_info (parent_store, full_name, 0, NULL); ++ g_return_val_if_fail (fi != NULL, lf); + + camel_object_trigger_event(CAMEL_OBJECT (parent_store), "folder_created", fi); + camel_folder_info_free(fi); +Index: evolution-data-server-2.30.3/camel/providers/local/camel-local-store.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-local-store.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-local-store.c 2010-10-14 13:41:14.843531000 +0200 +@@ -40,6 +40,8 @@ + #include "camel/camel-url.h" + #include "camel/camel-vtrash-folder.h" + ++#include ++ + #include "camel-local-folder.h" + #include "camel-local-store.h" + +@@ -66,6 +68,12 @@ + + static CamelStoreClass *parent_class = NULL; + ++const gchar * ++e_get_user_data_dir (void) ++{ ++ return g_build_filename (g_get_home_dir (), ".evolution", NULL); ++} ++ + static void + camel_local_store_class_init (CamelLocalStoreClass *camel_local_store_class) + { +@@ -129,6 +137,7 @@ + { + CamelLocalStore *local_store = CAMEL_LOCAL_STORE (service); + gint len; ++ gchar *local_store_path, *local_store_uri; + + CAMEL_SERVICE_CLASS (parent_class)->construct (service, session, provider, url, ex); + if (camel_exception_is_set (ex)) +@@ -139,6 +148,23 @@ + local_store->toplevel_dir = g_strdup_printf ("%s/", service->url->path); + else + local_store->toplevel_dir = g_strdup (service->url->path); ++ ++ local_store_path = g_build_filename (e_get_user_data_dir (), "mail", "local", NULL); ++ local_store_uri = g_filename_to_uri (local_store_path, NULL, NULL); ++ if (local_store_uri) { ++ CamelProvider *provider = service->provider; ++ CamelURL *local_store_url = camel_url_new (local_store_uri, NULL); ++ ++ camel_url_set_protocol (local_store_url, service->url->protocol); ++ camel_url_set_host (local_store_url, service->url->host); ++ ++ local_store->is_main_store = (provider && provider->url_equal) ? provider->url_equal (service->url, local_store_url) : camel_url_equal (service->url, local_store_url); ++ camel_url_free (local_store_url); ++ } ++ ++ g_free (local_store_uri); ++ g_free (local_store_path); ++ + } + + const gchar * +@@ -493,3 +519,31 @@ + /* any local folder can be refreshed */ + return TRUE; + } ++ ++/* Returns whether is this store used as 'On This Computer' main store */ ++gboolean ++camel_local_store_is_main_store (CamelLocalStore *store) ++{ ++ g_return_val_if_fail (store != NULL, FALSE); ++ ++ return store->is_main_store; ++} ++ ++guint32 ++camel_local_store_get_folder_type_by_full_name (CamelLocalStore *store, const gchar *full_name) ++{ ++ g_return_val_if_fail (store != NULL, 0); ++ g_return_val_if_fail (full_name != NULL, 0); ++ ++ if (!camel_local_store_is_main_store (store)) ++ return CAMEL_FOLDER_TYPE_NORMAL; ++ ++ if (g_ascii_strcasecmp (full_name, "Inbox") == 0) ++ return CAMEL_FOLDER_TYPE_INBOX; ++ else if (g_ascii_strcasecmp (full_name, "Outbox") == 0) ++ return CAMEL_FOLDER_TYPE_OUTBOX; ++ else if (g_ascii_strcasecmp (full_name, "Sent") == 0) ++ return CAMEL_FOLDER_TYPE_SENT; ++ ++ return CAMEL_FOLDER_TYPE_NORMAL; ++} +Index: evolution-data-server-2.30.3/camel/providers/local/camel-local-store.h +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-local-store.h 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-local-store.h 2010-10-14 13:41:14.843531000 +0200 +@@ -36,6 +36,7 @@ + CamelStore parent_object; + + gchar *toplevel_dir; ++ gboolean is_main_store; + } CamelLocalStore; + + typedef struct { +@@ -49,6 +50,8 @@ + CamelType camel_local_store_get_type (void); + + const gchar *camel_local_store_get_toplevel_dir (CamelLocalStore *store); ++gboolean camel_local_store_is_main_store (CamelLocalStore *store); ++guint32 camel_local_store_get_folder_type_by_full_name (CamelLocalStore *store, const gchar *full_name); + + #define camel_local_store_get_full_path(ls, name) ((CamelLocalStoreClass *)((CamelObject *)ls)->klass)->get_full_path((CamelLocalStore *)ls, name) + #define camel_local_store_get_meta_path(ls, name, ext) ((CamelLocalStoreClass *)((CamelObject *)ls)->klass)->get_meta_path((CamelLocalStore *)ls, name, ext) +Index: evolution-data-server-2.30.3/camel/providers/local/camel-maildir-store.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-maildir-store.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-maildir-store.c 2010-10-14 13:41:14.843531000 +0200 +@@ -300,7 +300,7 @@ + { + CamelFolder *folder; + +- folder = camel_object_bag_get(store->folders, fi->full_name); ++ folder = camel_object_bag_peek (store->folders, fi->full_name); + + if (folder == NULL + && (flags & CAMEL_STORE_FOLDER_INFO_FAST) == 0) +@@ -330,6 +330,11 @@ + g_free(folderpath); + g_free(path); + } ++ ++ if (camel_local_store_is_main_store (CAMEL_LOCAL_STORE (store)) && fi->full_name ++ && (fi->flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_NORMAL) ++ fi->flags = (fi->flags & ~CAMEL_FOLDER_TYPE_MASK) ++ | camel_local_store_get_folder_type_by_full_name (CAMEL_LOCAL_STORE (store), fi->full_name); + } + + struct _scan_node { +Index: evolution-data-server-2.30.3/camel/providers/local/camel-mbox-store.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-mbox-store.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-mbox-store.c 2010-10-14 13:41:14.847531000 +0200 +@@ -620,7 +620,7 @@ + + fi->unread = -1; + fi->total = -1; +- folder = camel_object_bag_get(store->folders, fi->full_name); ++ folder = camel_object_bag_peek (store->folders, fi->full_name); + if (folder) { + if ((flags & CAMEL_STORE_FOLDER_INFO_FAST) == 0) + camel_folder_refresh_info(folder, NULL); +@@ -646,6 +646,11 @@ + g_free(folderpath); + g_free(path); + } ++ ++ if (camel_local_store_is_main_store (CAMEL_LOCAL_STORE (store)) && fi->full_name ++ && (fi->flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_NORMAL) ++ fi->flags = (fi->flags & ~CAMEL_FOLDER_TYPE_MASK) ++ | camel_local_store_get_folder_type_by_full_name (CAMEL_LOCAL_STORE (store), fi->full_name); + } + + static CamelFolderInfo * +@@ -829,14 +834,13 @@ + fi->unread = -1; + fi->total = -1; + ++ fill_fi (store, fi, flags); ++ + subdir = g_strdup_printf("%s.sbd", path); + if (g_stat(subdir, &st) == 0) { + if (S_ISDIR(st.st_mode)) + fi->child = scan_dir (store, url, visited, fi, subdir, top, flags, ex); +- else +- fill_fi(store, fi, flags); +- } else +- fill_fi(store, fi, flags); ++ } + + camel_url_free (url); + +Index: evolution-data-server-2.30.3/camel/providers/local/camel-mh-store.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-mh-store.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-mh-store.c 2010-10-14 13:41:14.847531000 +0200 +@@ -309,7 +309,7 @@ + { + CamelFolder *folder; + +- folder = camel_object_bag_get(store->folders, fi->full_name); ++ folder = camel_object_bag_peek (store->folders, fi->full_name); + + if (folder == NULL + && (flags & CAMEL_STORE_FOLDER_INFO_FAST) == 0) +@@ -344,6 +344,11 @@ + g_free(folderpath); + g_free(path); + } ++ ++ if (camel_local_store_is_main_store (CAMEL_LOCAL_STORE (store)) && fi->full_name ++ && (fi->flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_NORMAL) ++ fi->flags = (fi->flags & ~CAMEL_FOLDER_TYPE_MASK) ++ | camel_local_store_get_folder_type_by_full_name (CAMEL_LOCAL_STORE (store), fi->full_name); + } + + static CamelFolderInfo * +Index: evolution-data-server-2.30.3/camel/providers/local/camel-spool-store.c +=================================================================== +--- evolution-data-server-2.30.3.orig/camel/providers/local/camel-spool-store.c 2010-06-20 14:15:39.000000000 +0200 ++++ evolution-data-server-2.30.3/camel/providers/local/camel-spool-store.c 2010-10-14 13:41:14.847531000 +0200 +@@ -253,7 +253,7 @@ + + fi->unread = -1; + fi->total = -1; +- folder = camel_object_bag_get(store->folders, fi->full_name); ++ folder = camel_object_bag_peek (store->folders, fi->full_name); + if (folder) { + if ((flags & CAMEL_STORE_FOLDER_INFO_FAST) == 0) + camel_folder_refresh_info(folder, NULL); +@@ -366,7 +366,7 @@ + gint isfolder = FALSE; + + /* first, see if we already have it open */ +- folder = camel_object_bag_get(store->folders, fname); ++ folder = camel_object_bag_peek (store->folders, fname); + if (folder == NULL) { + fp = fopen(tmp, "r"); + if (fp != NULL) { === added file 'debian/patches/108-git-fix-eproxy-and-https.patch' --- debian/patches/108-git-fix-eproxy-and-https.patch 1970-01-01 00:00:00 +0000 +++ debian/patches/108-git-fix-eproxy-and-https.patch 2010-10-14 14:15:19 +0000 @@ -0,0 +1,49 @@ +From 90dcdd392015a16729257a4089cbe2c7ae8f8f70 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 03 Sep 2010 07:48:45 +0000 +Subject: Bug #611539 - EProxy doesn't use authentication for HTTPS + +--- +diff --git a/libedataserver/e-proxy.c b/libedataserver/e-proxy.c +index ed85ea2..15b4575 100644 +--- a/libedataserver/e-proxy.c ++++ b/libedataserver/e-proxy.c +@@ -622,23 +622,33 @@ ep_set_proxy (GConfClient *client, + } + + if (gconf_client_get_bool (client, RIGHT_KEY (HTTP_USE_AUTH), NULL)) { +- gchar *proxy_user, *proxy_pw, *tmp = NULL; ++ gchar *proxy_user, *proxy_pw, *tmp = NULL, *tmps = NULL; + + proxy_user = gconf_client_get_string (client, RIGHT_KEY (HTTP_AUTH_USER), NULL); + proxy_pw = gconf_client_get_string (client, RIGHT_KEY (HTTP_AUTH_PWD), NULL); + +- if (proxy_user && *proxy_user && proxy_pw && *proxy_pw) { ++ if (uri_http && proxy_user && *proxy_user && proxy_pw && *proxy_pw) { + tmp = uri_http; + uri_http = g_strdup_printf ("http://%s:%s@%s", proxy_user, proxy_pw, tmp + strlen ("http://")); +- } else if (proxy_user && *proxy_user) { ++ } else if (uri_http && proxy_user && *proxy_user) { + /* proxy without password, just try it */ + tmp = uri_http; + uri_http = g_strdup_printf ("http://%s@%s", proxy_user, tmp + strlen ("http://")); + } + ++ if (uri_https && proxy_user && *proxy_user && proxy_pw && *proxy_pw) { ++ tmps = uri_https; ++ uri_https = g_strdup_printf ("https://%s:%s@%s", proxy_user, proxy_pw, tmps + strlen ("https://")); ++ } else if (uri_https && proxy_user && *proxy_user) { ++ /* proxy without password, just try it */ ++ tmps = uri_https; ++ uri_https = g_strdup_printf ("https://%s@%s", proxy_user, tmps + strlen ("https://")); ++ } ++ + g_free (proxy_user); + g_free (proxy_pw); + g_free (tmp); ++ g_free (tmps); + } + + changed = ep_change_uri (&priv->uri_http, uri_http) || changed; +-- +cgit v0.8.3.1 === modified file 'debian/patches/series' --- debian/patches/series 2010-09-27 18:46:24 +0000 +++ debian/patches/series 2010-10-14 14:15:51 +0000 @@ -8,3 +8,5 @@ 104-Bug-630152-imapx_parser_thread-registers-wrong-opera.patch 105-Bug-629916-imapx-fails-to-handle-errors-in-imapx_com.patch 106-Bug-630149-imapx_sync-never-returns-error.patch +107-git-consider-local-inbox-as-inbox.patch +108-git-fix-eproxy-and-https.patch