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
Matthew Barnes [Sun, 5 Aug 2012 20:45:22 +0000 (16:45 -0400)]
Silly typo.
Matthew Barnes [Sun, 5 Aug 2012 20:09:36 +0000 (16:09 -0400)]
Fix mistake in the previous commit.
Got the signal emissions mixed up.
Matthew Barnes [Sun, 5 Aug 2012 19:56:18 +0000 (15:56 -0400)]
Bug 679808 - e_source_selector_set_primary_selection() has side-effects
In ESourceSelector parlance, the "primary selection" is the highlighted
tree view item. A tree view item is "selected" if the check box cell is
ticked. The two selection states are supposed to be orthogonal.
e_source_selector_set_primary_selection() has apparently for some time
been highlighting the requested item and also activating its check box.
That last part is an unwanted and undocumented side-effect.
This commit removes the side-effect and explicitly states in the API
documentation that the function does NOT alter the item's check box.
Мирослав Николић [Sat, 4 Aug 2012 02:51:57 +0000 (04:51 +0200)]
Updated Serbian translation
Matthew Barnes [Fri, 3 Aug 2012 16:47:01 +0000 (12:47 -0400)]
evolution-source-viewer: Add icons for new interfaces.
Matthew Barnes [Wed, 25 Jul 2012 18:47:57 +0000 (14:47 -0400)]
e_source_registry_commit_source_sync(): Handle collection members.
If a scratch source (with no GDBusObject) references a collection source
as an ancestor call e_source_remote_create_sync() on the collection source
instead of e_source_registry_create_sources_sync().
Matthew Barnes [Thu, 2 Aug 2012 17:51:41 +0000 (13:51 -0400)]
EServerSideSource: Support creating/deleting remote resources.
Add "remote-creatable" and "remote-deletable" properties which work the
same as the "removable" and "writable" properties in terms of exporting
and unexporting D-Bus interfaces.
Add handlers for Create() and Delete() D-Bus method invocations, which
call e_source_remote_create() and e_source_remote_delete() respectively.
Override the remote_create_sync() and remote_delete_sync() methods to
ferry the request to an associated ECollectionBackend (or set an error
if there is no associated ECollectionBackend).
Matthew Barnes [Wed, 25 Jul 2012 16:55:49 +0000 (12:55 -0400)]
ESource: Add functions to create/delete remote resources.
Matthew Barnes [Fri, 20 Jul 2012 17:24:31 +0000 (13:24 -0400)]
ECollectionBackend: Add virual methods to create/delete resources.
Matthew Barnes [Thu, 19 Jul 2012 12:20:05 +0000 (08:20 -0400)]
Add D-Bus interfaces for remote resource management.
Defines two new D-Bus interfaces for data source object paths:
org.gnome.evolution.dataserver.Source.RemoteCreatable
Create() - creates a remote resource
org.gnome.evolution.dataserver.Source.RemoteDeletable
Delete() - deletes a remote resource
These methods will be invoked through ESource objects on the client
side. On the server side, the corresponding EServerSideSource will
receive the method invocation, but forward to an ECollectionBackend
to perform the actual operation.
Matthew Barnes [Mon, 23 Jul 2012 03:27:36 +0000 (23:27 -0400)]
Add e_source_registry_server_ref_backend().
Returns the ECollectionBackend for a given ESource, if one exists.
This works for any collection member: the "collection" ESource itself
as well as any of its hierarchical descendants.
Matthew Barnes [Thu, 2 Aug 2012 18:58:49 +0000 (14:58 -0400)]
Remove collection_backend_children_contains().
Decided I don't need this for the moment, so removing it to silence an
"unused-function" compiler warning.
Nilamdyuti Goswami [Fri, 3 Aug 2012 08:58:47 +0000 (14:28 +0530)]
Assamese translation updated
Sweta Kothari [Fri, 3 Aug 2012 06:31:37 +0000 (12:01 +0530)]
Updated gujarati file
Matthew Barnes [Fri, 3 Aug 2012 02:28:19 +0000 (22:28 -0400)]
Remove docs/reference/.gitignore from source control.
Matthew Barnes [Fri, 3 Aug 2012 02:27:47 +0000 (22:27 -0400)]
configure.ac: Remove redundant check for gio-unix-2.0.
Patrick Ohly [Mon, 23 Jul 2012 11:19:24 +0000 (11:19 +0000)]
libecal: fix memory leak after failed object creation
Apparently e_gdbus_cal_call_create_objects_sync() returns a muids
array even in case of failures. Free it when returning the error.
Found in SyncEvolution unit tests with valgrind.
Milan Crha [Thu, 2 Aug 2012 09:22:48 +0000 (11:22 +0200)]
Conditionally enable bug-buddy/gtk+ also for evolution-source-registry
Milan Crha [Thu, 2 Aug 2012 09:07:08 +0000 (11:07 +0200)]
Debug-print also error message on ERROR authentication
Dan Vrátil [Wed, 1 Aug 2012 19:25:33 +0000 (21:25 +0200)]
Fix a memory leak in e-cal-system-timezone.c
Piotr Drąg [Wed, 1 Aug 2012 13:47:34 +0000 (15:47 +0200)]
Updated POTFILES.in
Matthew Barnes [Tue, 31 Jul 2012 22:07:02 +0000 (18:07 -0400)]
Use e_backend_authenticate_sync() in backends.
Matthew Barnes [Tue, 31 Jul 2012 21:58:18 +0000 (17:58 -0400)]
ECollectionBackend: Implement authenticate_sync() method.
Matthew Barnes [Tue, 31 Jul 2012 21:49:13 +0000 (17:49 -0400)]
ECalBackend: Implement authenticate_sync() method.
Matthew Barnes [Tue, 31 Jul 2012 21:45:35 +0000 (17:45 -0400)]
EBookBackend: Implement authenticate_sync() method.
Matthew Barnes [Tue, 31 Jul 2012 21:32:10 +0000 (17:32 -0400)]
EBackend: Add authenticate() sync+async methods.
These are convenience functions providing a consistent interface for
backends running in either the registry service itself or a client
process communicating with the registry service over D-Bus.
Dynamically loaded backend classes need not implement these methods.
They will inherit a suitable method implementation from ECalBackend,
EBookBackend or ECollectionBackend.
Christian Hilberg [Mon, 30 Jul 2012 14:16:13 +0000 (16:16 +0200)]
CamelIMAPXServer: untagged handler descriptor needs untagged response code
* CamelIMAPXUntaggedRespHandlerDesc needs a member
for the IMAP untagged response code
* this does also simplify much the code which generates
the initial lookup tables for the untagged response
handlers
Christian Hilberg [Fri, 20 Jul 2012 16:12:33 +0000 (18:12 +0200)]
CamelIMAPXServer: fixed API function for running custom commands
* imapx_command_run() deadlocks every now and then
when running custom CamelIMAPXCommands
* imapx_command_run_sync() does not, so we're using
this one although it is definitely not the best
possible solution
* imapx_command_run_sync() expects a CamelIMAPXJob
to be set on the CamelIMAPXCommand, so we're
setting a local one if the command does not have
a job set
Fran Diéguez [Mon, 30 Jul 2012 00:40:39 +0000 (02:40 +0200)]
Updated Galician translations
Matthew Barnes [Sun, 29 Jul 2012 12:54:20 +0000 (08:54 -0400)]
Remove flex/bison dependencies.
configure says "You need bison to build evolution-data-server"
No, actually, you don't. In fact I have no idea why these were ever
needed. "git blame" shows the requirements were present even in the
initial evolution-data-server commit in 2003, and yet even back then
I can't find evidence that flex or bison were actually used.
Matthew Barnes [Sat, 28 Jul 2012 16:04:27 +0000 (12:04 -0400)]
Replace e_source_registry_server_queue_auth_session().
I realized ECollectionBackends are going to need a proper asynchronous
authentication function so they know when authentication is achieved.
e_source_registry_server_queue_auth_session() is a "fire-and-forget"
function with no way for the caller to know if and when authentication
is achieved.
The replacement function, e_source_registry_server_authenticate_sync(),
is a variation of e_source_registry_authenticate_sync() for use in the
registry service itself. It takes an EAuthenticationSession instead of
an ESource.
Since this API has not yet seen a stable release, I'm going to forego
deprecating the old function and just remove it. This is an API break,
and the libebackend soname has been bumped accordingly.
Matthew Barnes [Fri, 27 Jul 2012 22:23:56 +0000 (18:23 -0400)]
Bug 678893 - Allow concurrent authentication sessions
I wrote the original queuing algorithm for authentication requests to
serialize requests to ensure password prompts never pile up. But that
means requests for which a cached password exists may wait longer than
necessary, especially if an authentication session already in progress
is taking a long time to complete.
This was before I started using GcrSystemPrompt, which also serializes
requests to ensure password prompts never pile up. That frees us up to
process authentication requests for different data sources concurrently.
This commit simplifies the queuing algorithm significantly and also
makes it thread-safe so authentication requests can be submitted from
any thread. This is going to be important for ECollectionBackends.
Matthew Barnes [Mon, 23 Jul 2012 21:23:14 +0000 (17:23 -0400)]
ECollectionBackend: Convert the children queue to a hash table.
The hash table is used as a set (key == value). Also write simple
wrapper functions so all access to the hash table is thread-safe.
Milan Crha [Fri, 27 Jul 2012 10:36:42 +0000 (12:36 +0200)]
Bug #680687 - System timezone name differs from set in Gnome
Milan Crha [Thu, 26 Jul 2012 16:42:30 +0000 (18:42 +0200)]
Move e_pointer_tracker to camel
Thus it can be used in camel (and elsewhere) again.
Milan Crha [Thu, 26 Jul 2012 15:19:18 +0000 (17:19 +0200)]
Add only used message UIDs to virtual Trash/Junk data_cache
On removal from virtual Trash/Junk folder was also tried to remove
message UIDs from Unmatched folder, but because these virtual
Trash/Junk folders don't influence Unmatched folder, then it's
a no-op, except of a side-effect of adding all UIDs from the respective
folder into virtual Trash/Junk folder data_cache, which made only
exhausting memory usage for the application with no gain.
Milan Crha [Wed, 25 Jul 2012 17:47:35 +0000 (19:47 +0200)]
Bug #680013 - Deadlock in CalDAV calendar
Matthew Barnes [Wed, 25 Jul 2012 17:44:10 +0000 (13:44 -0400)]
Typos: "occurred" has two R's.
Milan Crha [Wed, 25 Jul 2012 11:14:28 +0000 (13:14 +0200)]
Bug #674696 - Crash from finish_operation, get_groups_cb in Google backend
Мирослав Николић [Tue, 24 Jul 2012 21:11:03 +0000 (23:11 +0200)]
Updated Serbian translation
Tom Tryfonidis [Tue, 24 Jul 2012 15:16:59 +0000 (18:16 +0300)]
Updated Greek translation
Milan Crha [Tue, 24 Jul 2012 14:42:06 +0000 (16:42 +0200)]
Make sure IMAP is connected before doing online operations
This is a replacement of store's connect lock.
Milan Crha [Tue, 24 Jul 2012 07:06:53 +0000 (09:06 +0200)]
Bug #680502 - Deadlock in contacts backend
Matthew Barnes [Mon, 23 Jul 2012 11:30:22 +0000 (07:30 -0400)]
EServerSideSource: Forgot to remove the AsyncClosure struct.
Matthew Barnes [Mon, 23 Jul 2012 11:24:11 +0000 (07:24 -0400)]
EServerSideSource: Remove clone of EAsyncClosure.
Can't remember why I copied EAsyncClosure there. Maybe it was before I
moved EAsyncClosure from Evolution to Evolution-Data-Server?
Kjartan Maraas [Mon, 23 Jul 2012 09:35:41 +0000 (11:35 +0200)]
Updated Norwegian bokmål translation
Matthew Barnes [Sun, 22 Jul 2012 14:47:29 +0000 (10:47 -0400)]
Synchronize with Evolution's git.mk.
It knows how to handle GSettings schemas.
Philip Withnall [Sun, 22 Jul 2012 11:49:50 +0000 (12:49 +0100)]
google: Fix removal of custom vCard attributes in Google address books
If a client had previously added a custom vCard attribute to a vCard in a
Google address book, subsequent removal of that attribute wouldn’t work,
since the backend wasn’t removing extended properties from the GData entries
when updating them.
Daniel Mustieles [Sat, 21 Jul 2012 16:42:19 +0000 (18:42 +0200)]
Updated Spanish translation
Matthew Barnes [Sat, 21 Jul 2012 16:10:26 +0000 (12:10 -0400)]
source_registry_server_create_sources_cb(): Fix error handling.
Matthew Barnes [Fri, 20 Jul 2012 23:01:19 +0000 (19:01 -0400)]
Cosmetic touchup to D-Bus interface definition.
Milan Crha [Fri, 20 Jul 2012 16:04:31 +0000 (18:04 +0200)]
Bug #680211 - Memory usage increases on each folder select
Milan Crha [Fri, 20 Jul 2012 06:10:12 +0000 (08:10 +0200)]
Prefer camel_folder_summary_peek_loaded() when removing CamelMessageInfo
Milan Crha [Thu, 19 Jul 2012 20:30:37 +0000 (22:30 +0200)]
Make sure loaded info is also freed before using camel_folder_summary_remove_uid()
The problem is that camel_folder_summary_remove_uid() doesn't free loaded
CamelMessageInfo, if there is any, it does only camel_folder_summary_remove(),
thus this might be done on each place, unfortunately.
Milan Crha [Thu, 19 Jul 2012 20:09:46 +0000 (22:09 +0200)]
Bug #677530 - Memory leaks in imapx code
Christian Hilberg [Thu, 19 Jul 2012 18:47:23 +0000 (20:47 +0200)]
camel-imapx-utils: fixed capability registration function
Andika Triwidada [Thu, 19 Jul 2012 11:46:21 +0000 (18:46 +0700)]
Updated Indonesian translation
Milan Crha [Wed, 18 Jul 2012 16:45:18 +0000 (18:45 +0200)]
Bug #679017 - Broken spool mbox file accounts
Chao-Hsiung Liao [Wed, 18 Jul 2012 11:30:37 +0000 (19:30 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Matthew Barnes [Tue, 17 Jul 2012 17:33:54 +0000 (13:33 -0400)]
Bug 680106 - Missing status message in camel_folder_refresh_info_sync()
Matthew Barnes [Tue, 17 Jul 2012 14:35:25 +0000 (10:35 -0400)]
Use template files to generate GEnumClass types.
Milan Crha [Tue, 17 Jul 2012 12:34:50 +0000 (14:34 +0200)]
Bug #551788 - Hangs when network changes
Daniel Mustieles [Mon, 16 Jul 2012 14:40:55 +0000 (16:40 +0200)]
Updated Spanish translation
Matthew Barnes [Sun, 15 Jul 2012 22:59:55 +0000 (18:59 -0400)]
Post-release version bump.
Matthew Barnes [Sun, 15 Jul 2012 22:42:02 +0000 (18:42 -0400)]
NEWS update for 3.5.4 release.
Matthew Barnes [Sun, 15 Jul 2012 19:17:03 +0000 (15:17 -0400)]
source_registry_ref_any_mail_identity(): Fix a typo.