Matthew Barnes [Wed, 29 Aug 2012 13:56:53 +0000 (09:56 -0400)]
CamelIMAPXStream: Add a private structure.
Matthew Barnes [Wed, 29 Aug 2012 13:41:38 +0000 (09:41 -0400)]
CamelIMAPXStream: Cleanups.
Matthew Barnes [Thu, 30 Aug 2012 17:00:08 +0000 (13:00 -0400)]
CamelIMAPXSummary: Fix comparison typo.
Milan Crha [Thu, 30 Aug 2012 11:39:57 +0000 (13:39 +0200)]
Bug #681930 - STARTTLS was default auth method
Fran Diéguez [Thu, 30 Aug 2012 01:48:37 +0000 (03:48 +0200)]
Updated Galician translations
Milan Crha [Wed, 29 Aug 2012 17:04:52 +0000 (19:04 +0200)]
Bug #681939 - camel_folder_summary_remove_uids() doesn't remove from DB
Milan Crha [Wed, 29 Aug 2012 15:51:58 +0000 (17:51 +0200)]
Could not create folders in Yahoo! account using imapx
Aurimas Černius [Tue, 28 Aug 2012 19:09:45 +0000 (22:09 +0300)]
Updated Lithuanian translation
Piotr Drąg [Tue, 28 Aug 2012 17:03:28 +0000 (19:03 +0200)]
Updated Polish translation
Daniel Mustieles [Tue, 28 Aug 2012 14:06:26 +0000 (16:06 +0200)]
Updated Spanish translation
Milan Crha [Tue, 28 Aug 2012 13:06:53 +0000 (15:06 +0200)]
Mark user-visible strings in book/cal backends for translation
Milan Crha [Tue, 28 Aug 2012 12:25:53 +0000 (14:25 +0200)]
Bug #682706 - WebDAV addressbook lookup very slow
Milan Crha [Tue, 28 Aug 2012 10:54:32 +0000 (12:54 +0200)]
WebDAV addressbook cannot be opened
Nilamdyuti Goswami [Mon, 27 Aug 2012 17:45:26 +0000 (23:15 +0530)]
Implemented FUEL entries to Assamese translation
Matthew Barnes [Mon, 27 Aug 2012 15:44:46 +0000 (11:44 -0400)]
ESourceWebdav: Add "resource-query" property.
Retain the query portion of a WebDAV URI, and update migration to
preserve it from the old XML-based ESource URIs.
Also reimplement the "soup-uri" property. Using bi-directional property
bindings from one property to many properties results in feedback loops.
Instead, listen for "notify" signals from URI component properties and
emit a "notify::soup-uri" signal, but don't actually update the internal
SoupURI until a copy is requested.
This makes Facebook birthday calendars work again, which has the form:
webcal://www.facebook.com/ical/b.php?uid=<<UID>>&key=<<KEY>>
Matthew Barnes [Sat, 25 Aug 2012 21:04:04 +0000 (17:04 -0400)]
Update API documentation.
Make sure all new APIs in 3.6 have "Since: 3.6" tags.
Matthew Barnes [Sat, 25 Aug 2012 18:24:36 +0000 (14:24 -0400)]
Finish documenting ECollectionBackend APIs.
Matthew Barnes [Fri, 24 Aug 2012 17:00:51 +0000 (13:00 -0400)]
Bug 680961 - Broken dispatching of EAuthenticationSession
In source_registry_server_maybe_start_auth_session() we need to start
the next EAuthenticationSession::execute() from a known GMainContext,
and not from whatever happens to be the current thread-default.
In some cases the current thread-default GMainContext gets popped and
discarded just after source_registry_server_maybe_start_auth_session()
returns, causing g_simple_async_result_complete_in_idle() to schedule
an idle callback on a now-unused GMainContext, and the authentication
session would never complete.
Yuri Myasoedov [Fri, 24 Aug 2012 07:14:52 +0000 (11:14 +0400)]
Updated Russian translation
Matthew Barnes [Fri, 24 Aug 2012 02:31:59 +0000 (22:31 -0400)]
Add new symbol to API documentation.
Matthew Barnes [Fri, 24 Aug 2012 01:22:04 +0000 (21:22 -0400)]
EAuthenticationMediator: Fix some runtime warnings.
In authentication_mediator_authenticator_thread(), the GDBusInterface
was getting finalized a bit too soon.
Matthew Barnes [Thu, 23 Aug 2012 18:16:48 +0000 (14:16 -0400)]
Export the EDBusAuthenticator interface from an isolated thread.
This is similar to the problem I had with GDBusObjectManagerClient.
When a GDBusInterfaceSkeleton is exported, it grabs the thread-default
main context and emits method invocation signals from only that context.
Problem is when e_authenticator_try_password_sync() is called on an
EAuthenticationMediator, something may have pushed a different main
context and so the method invocation signal emissions are inhibited
and we eventually time out thinking the client is unresponsive.
The workaround is to export the GDBusInterfaceSkeleton from an
isolated thread where its signals cannot be inhibited. The thread
runs its own main loop until the EAuthenticationMediator object is
finalized, at which point the thread terminates and is joined with.
This is the same as my initial attempt in commit [1] which I reverted,
except with improved thread-safety.
[1] commit:
e13cb4e0ba820694f908fe39255ff8f7a6239038
Dan Vrátil [Thu, 23 Aug 2012 09:09:24 +0000 (11:09 +0200)]
Add function to validate binary data
bug #680786
Chao-Hsiung Liao [Thu, 23 Aug 2012 07:30:44 +0000 (15:30 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Piotr Drąg [Wed, 22 Aug 2012 23:53:41 +0000 (01:53 +0200)]
Updated Polish translation
Milan Crha [Wed, 22 Aug 2012 17:24:42 +0000 (19:24 +0200)]
Bug #660383 - Backends should listen for changes in refresh interval
Milan Crha [Wed, 22 Aug 2012 12:35:02 +0000 (14:35 +0200)]
IMAP - Do not do folder summary update as all-or-nothing approach
Kjartan Maraas [Wed, 22 Aug 2012 08:27:04 +0000 (10:27 +0200)]
Updated Norwegian bokmål translation
Nguyễn Thái Ngọc Duy [Wed, 22 Aug 2012 01:47:00 +0000 (08:47 +0700)]
Updated Vietnamese translation
Nguyễn Thái Ngọc Duy [Wed, 22 Aug 2012 01:33:30 +0000 (08:33 +0700)]
po/vi: imported from Damned Lies
Matthew Barnes [Tue, 21 Aug 2012 17:38:17 +0000 (13:38 -0400)]
ESource: Suppress "changed" emissions during initialization.
If an ESource is being instantiated from a worker thread, the change
notifications can possibly be emitted from callbacks on the ESource's
GMainContext before the ESource is fully initialized, which can break
invariants like "all ESources have a non-NULL UID string".
This commit suppresses those change notifications until the ESource
instance is fully initialized.
Matthew Barnes [Tue, 21 Aug 2012 14:46:52 +0000 (10:46 -0400)]
Add e_collection_backend_dup_resource_id().
Extracts the resource ID for a child source, which is supposed to be a
stable and unique server-assigned identifier for the remote resource
described by the child source. If the child source is not actually a
child of the collection backend, the function returns NULL.
Milan Crha [Tue, 21 Aug 2012 13:22:29 +0000 (15:22 +0200)]
Start/stop book/cal views in a dedicated thread
Thus the backend, if it does any expensive operation during
the start/stop call, will not block factory's main thread,
thus the factory will not get unresponsive. This could happen
during autocompletion, for example.
Milan Crha [Tue, 21 Aug 2012 10:13:34 +0000 (12:13 +0200)]
Bug #680467 - Crash under camel_folder_search_search()
Andika Triwidada [Tue, 21 Aug 2012 07:33:16 +0000 (14:33 +0700)]
Updated Indonesian translation
Milan Crha [Tue, 21 Aug 2012 07:31:46 +0000 (09:31 +0200)]
Fix a compiler warning
Duarte Loreto [Sun, 19 Aug 2012 22:10:21 +0000 (23:10 +0100)]
Updated Portuguese translation
Matthew Barnes [Sun, 19 Aug 2012 20:00:51 +0000 (16:00 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 19 Aug 2012 19:51:42 +0000 (15:51 -0400)]
NEWS update for 3.5.90 release.
Matthew Barnes [Thu, 12 Jul 2012 12:12:33 +0000 (08:12 -0400)]
Coding style and whitespace cleanup.
Fabien Tassin [Sat, 18 Aug 2012 17:56:16 +0000 (13:56 -0400)]
Bug 682103 - -fPIC build fix
Matthew Barnes [Sat, 18 Aug 2012 17:37:52 +0000 (13:37 -0400)]
Bug 682102 - Upstream Debian's 20_gettext_intltool.patch
Debian changelog:
20_gettext_intltool.patch: don't confuse autoreconf by using both
gettext and intltool.
Taking their word for it...
Matthew Barnes [Fri, 17 Aug 2012 23:29:19 +0000 (19:29 -0400)]
Bug 681679 - Typo in migration causes signatures to be dropped
Krishnababu Krothapalli [Fri, 17 Aug 2012 13:48:22 +0000 (19:18 +0530)]
Updated Telugu Translations
Matthew Barnes [Fri, 17 Aug 2012 13:23:38 +0000 (09:23 -0400)]
cache-reaper: Skip directories named "system".
Milan Crha [Fri, 17 Aug 2012 13:03:03 +0000 (15:03 +0200)]
Bug #680744 - IMAP: Does not update folder structure
Milan Crha [Fri, 17 Aug 2012 11:34:45 +0000 (13:34 +0200)]
Bug #678289 - Filters are not applied automatically to local maildir Inbox
Milan Crha [Fri, 17 Aug 2012 11:07:59 +0000 (13:07 +0200)]
Bug #682038 - "Show only this calendar" broken
Мирослав Николић [Fri, 17 Aug 2012 08:25:01 +0000 (10:25 +0200)]
Updated Serbian translation
Matthew Barnes [Thu, 16 Aug 2012 19:55:17 +0000 (15:55 -0400)]
ECalBackendWeather: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:54:28 +0000 (15:54 -0400)]
ECalBackendHttp: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:53:48 +0000 (15:53 -0400)]
ECalBackendFile: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:52:57 +0000 (15:52 -0400)]
ECalBackendContacts: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:52:15 +0000 (15:52 -0400)]
ECalBackendCaldav: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:48:37 +0000 (15:48 -0400)]
EBookBackendWebdav: Remove the remove() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:47:57 +0000 (15:47 -0400)]
EBookBackendLDAP: Remove the remove() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:47:16 +0000 (15:47 -0400)]
EBookBackendGoogle: Remove the remove() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Matthew Barnes [Thu, 16 Aug 2012 19:45:07 +0000 (15:45 -0400)]
EBookBackendFile: Remove the remove_sync() method.
Cache reaper module takes care of the data and cache cleanup now.
When a data source is removed, the backend for it is simply finalized.
Fran Diéguez [Thu, 16 Aug 2012 21:26:38 +0000 (23:26 +0200)]
Updated Galician translations
Matthew Barnes [Thu, 16 Aug 2012 19:37:01 +0000 (15:37 -0400)]
Deprecate e_client_remove_sync().
e_client_remove_sync() merely calls e_source_remove_sync() now.
Similarly for e_client_remove() / e_client_remove_finish().
Matthew Barnes [Thu, 16 Aug 2012 18:49:46 +0000 (14:49 -0400)]
cache-reaper: Clean up abandoned data directories.
Cache reaper now cleans up abandoned data directories for local address
books and calendars, but more conservatively than for cache directories.
Whereas a cache directory is marked as trash as soon as its data source
is removed and then allowed to linger for one week, a data directory is
only moved to trash when the registry service starts, and is allowed to
linger for four weeks. This should give ample time to recover the data
if needed.
Daniel Mustieles [Thu, 16 Aug 2012 14:08:25 +0000 (16:08 +0200)]
Updated Spanish translation
Matthew Barnes [Thu, 16 Aug 2012 11:47:11 +0000 (07:47 -0400)]
Revert "Export the EDBusAuthenticator interface from an isolated thread."
This reverts commit
e13cb4e0ba820694f908fe39255ff8f7a6239038.
Apparently this does not solve the problem it was trying to solve, and
is less stable than what was there before.
Matthew Barnes [Wed, 15 Aug 2012 21:58:48 +0000 (17:58 -0400)]
Fix typo.
Matthew Barnes [Wed, 15 Aug 2012 21:33:32 +0000 (17:33 -0400)]
Export the EDBusAuthenticator interface from an isolated thread.
This is similar to the problem I had with GDBusObjectManagerClient.
When a GDBusInterfaceSkeleton is exported, it grabs the thread-default
main context and emits method invocation signals from only that context.
Problem is when e_authenticator_try_password_sync() is called on an
EAuthenticationMediator, something may have pushed a different main
context and so the method invocation signal emissions are inhibited
and we eventually time out thinking the client is unresponsive.
The workaround is to export the GDBusInterfaceSkeleton from an
isolated thread where its signals cannot be inhibited. The thread
runs its own main loop until the EAuthenticationMediator object is
finalized, at which point the thread terminates and is joined with.
Matthew Barnes [Wed, 15 Aug 2012 16:18:53 +0000 (12:18 -0400)]
Add e_collection_backend_claim_all_resources().
Claims all previously used sources that have not yet been claimed by
e_collection_backend_new_child() and returns them in a GList. Note
that previously used sources can only be claimed once, so subsequent
calls to this function for backend will return NULL.
The backend is then expected to compare the returned list with a
current list of resources from a remote server, create new ESource
instances as needed with e_collection_backend_new_child(), discard
unneeded ESource instances with e_source_remove(), and export the
remaining instances with e_source_registry_server_add_source().
Colin Walters [Mon, 13 Aug 2012 13:50:50 +0000 (09:50 -0400)]
Bug 681321 - Support both old and new-buf libxml2 APIs
libxml2 changed the API for xmlOutputBuffer incompatibly.
See https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00004.html
Matthew Barnes [Mon, 13 Aug 2012 13:39:56 +0000 (09:39 -0400)]
Bug 681640 - Check for Python interpreter in configure.ac
For /addressbook/libebook/gen-western-table.py.
Nilamdyuti Goswami [Mon, 13 Aug 2012 08:08:54 +0000 (13:38 +0530)]
Assamese translation updated
Matthew Barnes [Sun, 12 Aug 2012 16:31:57 +0000 (12:31 -0400)]
Bump libcamel soname.
For the previous series of API changes.
Matthew Barnes [Sun, 12 Aug 2012 17:52:58 +0000 (13:52 -0400)]
Rename camel_service_get_settings().
Applying lessons learned from ESourceRegistry.
Rename camel_service_get_settings() to camel_service_ref_settings()
and have it return a new reference.
When returning a pointer to a reference-counted object in a multi-
threaded environment, always increase the object's reference count
before returning so as to transfer a new reference to the caller.
Otherwise it introduces a potential race where the reference-counted
object may lose its last reference and be freed while the caller is
still using the object. Even if the caller immediately increments
the object's reference count, it's still a potential race.
Transferring a new reference to the caller means the caller must
unreference the object when finished with it so the object will be
properly freed when it's no longer needed.
Matthew Barnes [Sun, 12 Aug 2012 14:12:38 +0000 (10:12 -0400)]
Rename camel_session_get_service().
Applying lessons learned from ESourceRegistry.
Rename camel_session_get_service() to camel_session_ref_service()
and have it return a new reference.
When returning a pointer to a reference-counted object in a multi-
threaded environment, always increase the object's reference count
before returning so as to transfer a new reference to the caller.
Otherwise it introduces a potential race where the reference-counted
object may lose its last reference and be freed while the caller is
still using the object. Even if the caller immediately increments
the object's reference count, it's still a potential race.
Transferring a new reference to the caller means the caller must
unreference the object when finished with it so the object will be
properly freed when it's no longer needed.
Similarly for camel_session_get_service_by_url().
Matthew Barnes [Sun, 12 Aug 2012 13:11:08 +0000 (09:11 -0400)]
Have camel_session_list_services() return new references.
Applying lessons learned from ESourceRegistry.
When returning a pointer to a reference-counted object in a multi-
threaded environment, always increase the object's reference count
before returning so as to transfer a new reference to the caller.
Otherwise it introduces a potential race where the reference-counted
object may lose its last reference and be freed while the caller is
still using the object. Even if the caller immediately increments
the object's reference count, it's still a potential race.
Transferring a new reference to the caller means the caller must
unreference the object when finished with it so the object will be
properly freed when it's no longer needed.
Making subtle behavioral changes like this without renaming the API
is usually considered bad, but since Evolution is the only consumer
we can easily keep the side-effects under control.
Matthew Barnes [Sun, 12 Aug 2012 12:23:15 +0000 (08:23 -0400)]
CamelSession: Have add_service() return a new reference.
Applying lessons learned from ESourceRegistry.
When returning a pointer to a reference-counted object in a multi-
threaded environment, always increase the object's reference count
before returning so as to transfer a new reference to the caller.
Otherwise it introduces a potential race where the reference-counted
object may lose its last reference and be freed while the caller is
still using the object. Even if the caller immediately increments
the object's reference count, it's still a potential race.
Transferring a new reference to the caller means the caller must
unreference the object when finished with it so the object will be
properly freed when it's no longer needed.
Making subtle behavioral changes like this without renaming the API
is usually considered bad, but since Evolution is the only consumer
we can easily keep the side-effects under control.
Matthew Barnes [Sun, 12 Aug 2012 12:08:05 +0000 (08:08 -0400)]
CamelSession: Remove camel_session_lock/unlock().
Because exposing mutexes in a public API is horrible.
Matthew Barnes [Sun, 12 Aug 2012 12:05:08 +0000 (08:05 -0400)]
CamelSession: Avoid camel_session_lock/unlock().
Use an internal mutex to guard the services hash table.
Matthew Barnes [Sun, 12 Aug 2012 11:09:12 +0000 (07:09 -0400)]
CamelSession: Make forward_to() method asynchronous.
Missed this while converting the rest of Camel to GIO's async pattern,
but came to realize Evolution's forward_to() implementation starts an
asynchronous CamelFolder.append_to() operation and returns TRUE.
So the return value from camel_session_forward_to() does not actually
indicate whether the message was successfully forwarded. In fact the
caller has no way of knowing!
This calls for an API break.
Split the forward_to() method into synchronous and asynchronous
variations:
gboolean (*forward_to_sync) (CamelSession *session,
CamelFolder *folder,
CamelMimeMessage *message,
const gchar *address,
GCancellable *cancellable,
GError **error);
void (*forward_to) (CamelSession *session,
CamelFolder *folder,
CamelMimeMessage *message,
const gchar *address,
gint io_priority,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean (*forward_to_finish) (CamelSession *session,
GAsyncResult *result,
GError **error);
Matthew Barnes [Sat, 11 Aug 2012 21:38:20 +0000 (17:38 -0400)]
Update API documentation.
Matthew Barnes [Sat, 11 Aug 2012 15:11:28 +0000 (11:11 -0400)]
Update git.mk.
Source: https://github.com/behdad/git.mk
Matthew Barnes [Fri, 10 Aug 2012 12:36:36 +0000 (08:36 -0400)]
e-book-backend-db-cache.h: Cleanups.
Clean up the header file while we're at it.
Matthew Barnes [Fri, 10 Aug 2012 12:31:01 +0000 (08:31 -0400)]
e-book-backend-db-cache.h: Avoid DB typedef.
Some distros use compiler settings that choke on duplicate typedefs.
Gentoo seems to be one of them.
Replace the DB typedef with a forward declaration of "struct __db"
and fix up all the function arguments that take a DB pointer.
Matthew Barnes [Fri, 10 Aug 2012 11:34:19 +0000 (07:34 -0400)]
mbox_store_get_full_path(): Improve path building.
Deal with the root path not ending in a directory separator, and use a
GString for heaven sake!
Matthew Barnes [Fri, 10 Aug 2012 01:55:17 +0000 (21:55 -0400)]
source_registry_server_create_source(): Create parent directories.
Same deal as the previous commit.
Matthew Barnes [Fri, 10 Aug 2012 00:12:44 +0000 (20:12 -0400)]
server_side_source_write(): Create parent directories.
Had a situation while restoring from a backup tarball where the
"sources" directory was getting deleted and consequently causing
g_file_replace_contents() to fail. So always make the directory
immediately before writing the key file to disk.
Milan Crha [Fri, 10 Aug 2012 10:14:12 +0000 (12:14 +0200)]
Fix typo in camel_debug() call, should be "pop3", not "pop", for POP3 provider
Milan Crha [Thu, 9 Aug 2012 17:21:15 +0000 (19:21 +0200)]
Do not update unread count in source folder for junk/deleted messages
Milan Crha [Thu, 9 Aug 2012 17:14:22 +0000 (19:14 +0200)]
Bug #681466 - Virtual Trash/Junk not updated on change
Sandeep Sheshrao Shedmake [Thu, 9 Aug 2012 11:33:52 +0000 (17:03 +0530)]
Updated Marathi Translations
Milan Crha [Thu, 9 Aug 2012 11:25:11 +0000 (13:25 +0200)]
Bug #679488 - Unable to send mail using SMTP
Aurimas Černius [Wed, 8 Aug 2012 20:18:36 +0000 (23:18 +0300)]
Updated Lithuanian translation
Milan Crha [Wed, 8 Aug 2012 06:52:24 +0000 (08:52 +0200)]
Bug #681046 - Occasional crash of evolution-source-registry
Daniel Mustieles [Tue, 7 Aug 2012 18:57:37 +0000 (20:57 +0200)]
Updated Spanish translation
Colin Walters [Tue, 7 Aug 2012 18:04:51 +0000 (14:04 -0400)]
vala: Fix srcdir != builddir
Milan Crha [Tue, 7 Aug 2012 17:04:39 +0000 (19:04 +0200)]
Fix regression after move to GSimpleAsyncResult in camel_service_disconnect
IMAP provider called disconnect in its finalize method, it was all fine
until move to GSimpleAsyncResult, which requires "live" GObject, which
is not true when called from finalize, thus everything breaks.
Moving the disconnect call to dispose function fixes this.
This was recognized when creating a new IMAP account and querying
for authentication methods.
Milan Crha [Tue, 7 Aug 2012 16:13:51 +0000 (18:13 +0200)]
Bug #681318 - Filter by Source account doesn't match in local folders
Chao-Hsiung Liao [Tue, 7 Aug 2012 05:31:25 +0000 (13:31 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Sweta Kothari [Mon, 6 Aug 2012 06:14:01 +0000 (11:44 +0530)]
Updated gujarati file
Matthew Barnes [Sun, 5 Aug 2012 23:41:38 +0000 (19:41 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 5 Aug 2012 23:13:48 +0000 (19:13 -0400)]
NEWS update for 3.5.5 release.
Nilamdyuti Goswami [Mon, 6 Aug 2012 03:16:10 +0000 (08:46 +0530)]
Assamese translation updated