platform/upstream/evolution-data-server.git
11 years agoPost-release version bump.
Matthew Barnes [Sun, 26 May 2013 15:03:47 +0000 (11:03 -0400)]
Post-release version bump.

11 years agoNEWS update for 3.9.2 release.
Matthew Barnes [Sun, 26 May 2013 14:51:05 +0000 (10:51 -0400)]
NEWS update for 3.9.2 release.

11 years agolibedataserver: Fix some documentation typos.
Matthew Barnes [Fri, 24 May 2013 17:19:47 +0000 (13:19 -0400)]
libedataserver: Fix some documentation typos.

11 years agoImprove error handling in imapx_command_fetch_message_done().
Matthew Barnes [Tue, 21 May 2013 18:54:33 +0000 (14:54 -0400)]
Improve error handling in imapx_command_fetch_message_done().

Spotted a few execution paths where we claim success but have no
stream object for the fetched message.

11 years agocamel_imapx_command_set_error_if_failed() minor cleanup.
Matthew Barnes [Tue, 21 May 2013 18:32:44 +0000 (14:32 -0400)]
camel_imapx_command_set_error_if_failed() minor cleanup.

11 years agoMake CamelNNTPStore a bit more thread-safe.
Matthew Barnes [Tue, 21 May 2013 02:48:40 +0000 (22:48 -0400)]
Make CamelNNTPStore a bit more thread-safe.

* Make CamelNNTPStore's public members private.

* Guard the private CamelNNTPStore members with a mutex.

* Add thread-safe accessors:

    camel_nntp_store_ref_cache()
    camel_nntp_store_ref_stream()
    camel_nntp_store_ref_summary()
    camel_nntp_store_get_current_group()
    camel_nntp_store_dup_current_group()
    camel_nntp_store_set_current_group()
    camel_nntp_store_add_capabilities()
    camel_nntp_store_has_capabilities()
    camel_nntp_store_remove_capabilities()

11 years agoCamelNNTPStore: Remove unused "password_reprompt" flag.
Matthew Barnes [Tue, 21 May 2013 17:26:21 +0000 (13:26 -0400)]
CamelNNTPStore: Remove unused "password_reprompt" flag.

11 years agoCamelNNTPStore: Remove unused "posting_allowed" flag.
Matthew Barnes [Tue, 21 May 2013 17:25:48 +0000 (13:25 -0400)]
CamelNNTPStore: Remove unused "posting_allowed" flag.

11 years agoCamelNNTPStore: Remove unused "extensions" flags.
Matthew Barnes [Tue, 21 May 2013 17:25:07 +0000 (13:25 -0400)]
CamelNNTPStore: Remove unused "extensions" flags.

11 years agoCamelNNTPStore: Remove CamelMemStream member.
Matthew Barnes [Tue, 21 May 2013 00:57:01 +0000 (20:57 -0400)]
CamelNNTPStore: Remove CamelMemStream member.

It's just used for assembling command strings.  Use a GString instead,
and for heaven sake don't make it a public member!  That's not thread-
safe at all.

11 years agoMake CamelPOP3Store a bit more thread-safe.
Matthew Barnes [Mon, 20 May 2013 21:43:46 +0000 (17:43 -0400)]
Make CamelPOP3Store a bit more thread-safe.

* Make CamelPOP3Store's cache and engine members private.

* Guard the private cache and engine members with a mutex.

* Add thread-safe accessors which return a new reference:

    camel_pop3_store_ref_cache()
    camel_pop3_store_ref_engine()

TODO: CamelPOP3Engine itself should also be made thread-safe, but that
      will be considerably more work.  This commit merely prevents the
      CamelPOP3Engine from being finalized while still in use.

11 years agoBug 699597 - Autocomplete using GAL is slow
David Woodhouse [Mon, 20 May 2013 13:14:24 +0000 (14:14 +0100)]
Bug 699597 - Autocomplete using GAL is slow

With large addressbooks, using an inner join which produces hundreds of
thousands of duplicate results, and then filtering them back down to what
we really wanted with 'DISTINCT' is really inefficient. I can't even tell
you *how* inefficient, because it didn't complete a single query in the
hours that I left it running. Switch it to a more sensible outer join and
it completes in a second or so on my 216000-entry address book.

11 years agoUpdated Norwegian bokmål translation
Kjartan Maraas [Mon, 20 May 2013 12:42:29 +0000 (14:42 +0200)]
Updated Norwegian bokmål translation

11 years agoCamelGpgContext: Report decrypt error only if no data was decrypted
Milan Crha [Thu, 16 May 2013 14:15:05 +0000 (16:15 +0200)]
CamelGpgContext: Report decrypt error only if no data was decrypted

When there is a message which is both signed and encrypted in once,
the gpg checks also signature of the sender, and if the sender's key
is not available between user's keys, or it's not trusted, or
the signature is otherwise incorrect, then the gpg returns failure,
which caused no data returned, though the decrypt itself worked
flawlessly.

11 years agotest-intervaltree.c: Include toplevel libical header file
Milan Crha [Thu, 16 May 2013 09:27:35 +0000 (11:27 +0200)]
test-intervaltree.c: Include toplevel libical header file

11 years agoupdated kn translations
Shankar Prasad [Tue, 14 May 2013 09:43:46 +0000 (15:13 +0530)]
updated kn translations

11 years agoupdated kn translations
Shankar Prasad [Tue, 14 May 2013 09:16:10 +0000 (14:46 +0530)]
updated kn translations

11 years agoCamel MH provider can deadlock on folder creation
Milan Crha [Mon, 13 May 2013 17:08:03 +0000 (19:08 +0200)]
Camel MH provider can deadlock on folder creation

This was reported downstream as [1]. The MH provider can deadlock
during folder creation, because it tries to get a new CamelFolder
instance for a folder it is currently creating, which makes
the CamelObjectBag (of CamelFolder-s) wait for itself.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=854017

11 years ago[IMAPX] Set real Trash/Junk folder type as expected
Milan Crha [Mon, 13 May 2013 14:35:46 +0000 (16:35 +0200)]
[IMAPX] Set real Trash/Junk folder type as expected

Thus it's shown with a special icon in a folder tree.

11 years agoBug #699811 - Moved IMAPx messages reappear
Milan Crha [Mon, 13 May 2013 14:28:44 +0000 (16:28 +0200)]
Bug #699811 - Moved IMAPx messages reappear

This affected users whom had configured a real Trash folder.

11 years agoBug 699909 — Do not use toggle_refs in CamelObjectBag
David Woodhouse [Fri, 10 May 2013 20:13:35 +0000 (21:13 +0100)]
Bug 699909 — Do not use toggle_refs in CamelObjectBag

They are broken and not thread-safe. Use GWeakRef instead to fix the
original problem that they were introduced to fix (bug 638810).

11 years agoUpdated Spanish translation
Daniel Mustieles [Thu, 9 May 2013 15:30:54 +0000 (17:30 +0200)]
Updated Spanish translation

11 years agoIMAPX: Fix error message when moving with UID MOVE.
Matthew Barnes [Wed, 8 May 2013 17:37:54 +0000 (13:37 -0400)]
IMAPX: Fix error message when moving with UID MOVE.

Separate commit since this introduces a new translatable string.

11 years agoIMAPX: Support IMAP MOVE extension.
Matthew Barnes [Wed, 8 May 2013 17:30:18 +0000 (13:30 -0400)]
IMAPX: Support IMAP MOVE extension.

http://tools.ietf.org/rfc/rfc6851

11 years agoIMAPX: Add macros for checking server capabilities.
Matthew Barnes [Wed, 8 May 2013 16:20:11 +0000 (12:20 -0400)]
IMAPX: Add macros for checking server capabilities.

These just read better and are more compact.

    CAMEL_IMAPX_HAVE_CAPABILITY(cinfo, capa)
    CAMEL_IMAPX_LACK_CAPABILITY(cinfo, capa)

Both macros evaluate to FALSE if 'cinfo' is NULL.

11 years agoBug 697859 - Google: "Other Fax" is saved as "Business Fax"
Matthew Barnes [Wed, 8 May 2013 14:48:03 +0000 (10:48 -0400)]
Bug 697859 - Google: "Other Fax" is saved as "Business Fax"

The gd:phoneNumber @rel value "http://schemas.google.com/g/2005#fax"
has no clear mapping to an EContact field.

Both it and "http://schemas.google.com/g/2005#other_fax" end up in a
vCard as TEL;TYPE=fax.  But because of the conversion table ordering,
TEL;TYPE=fax was being saved as "#fax" instead of "#other_fax".

Then when reading the contact back from Google, I guess some fallback
logic somewhere was converting "#fax" to "TEL;TYPE="work,fax".  Never
found exactly where that was happening.  Maybe in the Contact Editor?

This commit reorders the conversion table to prefer "#other_fax" over
"#fax".  There's still a conflict where if a Google contact specifies
both "#fax" and "#other_fax" one of the fax numbers may be lost.  But
honestly, who has that many fax machines nowadays?

11 years agogoogle: Remove environment variable check for debugging.
Matthew Barnes [Wed, 8 May 2013 14:38:18 +0000 (10:38 -0400)]
google: Remove environment variable check for debugging.

GLib suppresses debug-level log messages by default now, so just defer
to the G_MESSAGES_DEBUG mechanism to activate debug messages, like so:

  $ export G_MESSAGES_DEBUG=e-book-backend-google
  $ evolution-addressbook-factory

11 years agoCoding style and whitespace cleanup.
Matthew Barnes [Wed, 8 May 2013 13:14:26 +0000 (09:14 -0400)]
Coding style and whitespace cleanup.

11 years agoECalBackendWeather: e_weather_source_new() is failable.
Matthew Barnes [Tue, 7 May 2013 17:51:37 +0000 (13:51 -0400)]
ECalBackendWeather: e_weather_source_new() is failable.

Backend logic was failing to take this into account and crashing if the
weather location code in the ESource was invalid.

I'm not sure if EWeatherSource is even worth keeping around, but I'll
come back to that later.  Not doing an all-out rewrite at the moment.

11 years agoEWeatherSource cleanups.
Matthew Barnes [Tue, 7 May 2013 16:18:47 +0000 (12:18 -0400)]
EWeatherSource cleanups.

11 years agoBug 699024 - [google/yahoo] Don't override username
Matthew Barnes [Mon, 6 May 2013 14:02:41 +0000 (10:02 -0400)]
Bug 699024 - [google/yahoo] Don't override username

When mail child sources are added to a google or yahoo collection, avoid
overriding an existing user name setting.  The IMAP or (especially) SMTP
configuration may have been modified to use a non-Google/Yahoo! server.

11 years agoECalClientView: Make D-Bus signal handlers thread-safe.
Matthew Barnes [Sat, 4 May 2013 13:44:00 +0000 (09:44 -0400)]
ECalClientView: Make D-Bus signal handlers thread-safe.

Seeing crashes now where handler functions for D-Bus signals like
"objects-added" are receiving finalized ECalClientView instances.
Possibly a side-effect of recent changes to GMainContext usage.

Use the trick of passing an allocated GWeakRef along with a suitable
GClosureNotify to g_signal_connect_data().  The handler function will
just return quietly if it can't obtain a strong client view reference.

11 years agoEBookClientView: Make D-Bus signal handlers thread-safe.
Matthew Barnes [Sat, 4 May 2013 14:32:36 +0000 (10:32 -0400)]
EBookClientView: Make D-Bus signal handlers thread-safe.

Seeing crashes now where handler functions for D-Bus signals like
"objects-added" are receiving finalized EBookClientView instances.
Possibly a side-effect of recent changes to GMainContext usage.

Use the trick of passing an allocated GWeakRef along with a suitable
GClosureNotify to g_signal_connect_data().  The handler function will
just return quietly if it can't obtain a strong client view reference.

11 years agoBug 699223 - Emit view signals from context where view was started
Matthew Barnes [Fri, 3 May 2013 17:14:53 +0000 (13:14 -0400)]
Bug 699223 - Emit view signals from context where view was started

This applies to both EBookClientView and ECalClientView.

Incoming D-Bus signals were being propagated to the EClient's main loop
context, but there may not be a running main loop on that thread, so the
main loop sources were never being dispatched and the view signals never
emitted.

Instead use the main loop context which was the thread-default at the
time the view was started, which is often the so-called "main" thread
where a main loop is more likely to be running.

11 years agoIMAPX: Recognize RFC 5530 response codes.
Matthew Barnes [Thu, 2 May 2013 23:34:37 +0000 (19:34 -0400)]
IMAPX: Recognize RFC 5530 response codes.

11 years agoBug 699160 - IMAPX: Always flush debugging messages
Matthew Barnes [Thu, 2 May 2013 21:39:42 +0000 (17:39 -0400)]
Bug 699160 - IMAPX: Always flush debugging messages

Had a debugging scenario where key information was not written to a log
file until another IMAP command was issued.  Caused a bit of confusion.
This commit ensures that won't happen again.

11 years agocamel_imapx_debug() cleanups.
Matthew Barnes [Thu, 2 May 2013 21:38:25 +0000 (17:38 -0400)]
camel_imapx_debug() cleanups.

11 years agoMake camel_mime_message_dump() dump message contents
Dan Williams [Thu, 2 May 2013 20:36:22 +0000 (15:36 -0500)]
Make camel_mime_message_dump() dump message contents

Previously unimplemented.  Dumps in hex and ASCII:

class: CamelMimeMessage
mime-type: text/plain; charset="UTF-8"
content class: CamelDataWrapper
content mime-type: text/plain; charset="UTF-8"
content len 967
    4f 6e 20 54 68 75 2c 20 32 30 31 33 2d 30 35 2d    On Thu, 2013-05-
    30 32 20 61 74 20 31 34 3a 31 37 20 2d 30 35 30    02 at 14:17 -050
    30 2c 20 44 61 6e 20 57 69 6c 6c 69 61 6d 73 20    0, Dan Williams
    77 72 6f 74 65 3a 0a 3e 20 4f 6e 20 54 68 75 2c    wrote:.> On Thu,
    20 32 30 31 33 2d 30 35 2d 30 32 20 61 74 20 31     2013-05-02 at 1
    31 3a 35 33 20 2d 30 37 30 30 2c 20 4c 69 6e 75    1:53 -0700, Linu
    73 20 54 6f 72 76 61 6c 64 73 20 77 72 6f 74 65    s Torvalds wrote
    3a 0a 3e 20 3e 20 4f 6e 20 54 68 75 2c 20 4d 61    :.> > On Thu, Ma
    79 20 32 2c 20 32 30 31 33 20 61 74 20 31 31 3a    y 2, 2013 at 11:

(02:09:38 PM) mbarnes: dcbw: nice, I forgot about camel_mime_message_dump() -- go ahead and commit that

11 years agoBug 699461 - Accept any 2xx HTTP code as successful DELETE
Matthew Barnes [Thu, 2 May 2013 18:48:28 +0000 (14:48 -0400)]
Bug 699461 - Accept any 2xx HTTP code as successful DELETE

11 years agoESource: Fix a compiler warning.
Matthew Barnes [Thu, 2 May 2013 12:55:40 +0000 (08:55 -0400)]
ESource: Fix a compiler warning.

11 years agoBug 698725 - ESourceRegistry: Handle service restarts gracefully
Matthew Barnes [Sun, 28 Apr 2013 01:36:46 +0000 (21:36 -0400)]
Bug 698725 - ESourceRegistry: Handle service restarts gracefully

Check GDBusObjectManagerClient's "name-owner" property when handling
"object-added" and "object-removed" signals.  If the property is NULL,
implement a strategy that swaps out the ESource's old proxy object for
an equivalent replacement such that applications should remain unaware
of the service restart.

This is important to handle gracefully not only for crash recovery, but
also when the registry service receives a Reload() method invocation or
a SIGHUP, both of which cause it to temporarily release its well-known
bus name and reload key files.

11 years agoe_source_ref_dbus_object: Use the property lock.
Matthew Barnes [Sat, 27 Apr 2013 15:18:22 +0000 (11:18 -0400)]
e_source_ref_dbus_object: Use the property lock.

ESourceRegistry is going to swap out the GDBusObject as part of the
recovery strategy for evolution-source-registry restarts, so we need
to make sure e_source_ref_dbus_object() is properly thread-safe.

11 years agoESourceRegistry: object_path_table cleanups.
Matthew Barnes [Tue, 30 Apr 2013 17:52:19 +0000 (13:52 -0400)]
ESourceRegistry: object_path_table cleanups.

11 years agoAdd source_registry_dbus_object_dup_uid().
Matthew Barnes [Tue, 30 Apr 2013 17:45:44 +0000 (13:45 -0400)]
Add source_registry_dbus_object_dup_uid().

Handy internal utility for ESourceRegistry.

This also happens to fix an EDBusSource reference leak in
source_registry_create_sources_object_added_cb().

11 years agoUpdated Slovenian translation
Matej Urbančič [Wed, 1 May 2013 18:32:29 +0000 (20:32 +0200)]
Updated Slovenian translation

11 years agoPost-release version bump.
Matthew Barnes [Sun, 28 Apr 2013 16:19:25 +0000 (12:19 -0400)]
Post-release version bump.

11 years agoNEWS update for 3.9.1 release.
Matthew Barnes [Sun, 28 Apr 2013 15:35:23 +0000 (11:35 -0400)]
NEWS update for 3.9.1 release.

11 years agoFix reference leak in book_client_view_emit_objects_modified().
Matthew Barnes [Sun, 28 Apr 2013 14:57:27 +0000 (10:57 -0400)]
Fix reference leak in book_client_view_emit_objects_modified().

This was causing test-client-photo-is-uri to fail.

11 years agoEGoaClient nitpicks.
Matthew Barnes [Sat, 27 Apr 2013 13:28:13 +0000 (09:28 -0400)]
EGoaClient nitpicks.

11 years agoBug 698726 - Handle goa-daemon crashes/restarts gracefully
Matthew Barnes [Sat, 27 Apr 2013 12:47:18 +0000 (08:47 -0400)]
Bug 698726 - Handle goa-daemon crashes/restarts gracefully

EGoaClient is an improved GoaClient that handles daemon crashes and
restarts gracefully so E-D-S accounts are not destroyed unnecessarily.

11 years agoUpdated Czech translation
Marek Černocký [Fri, 26 Apr 2013 21:53:24 +0000 (23:53 +0200)]
Updated Czech translation

11 years agoTamil Translation Updated
Shantha kumar [Thu, 25 Apr 2013 12:47:08 +0000 (18:17 +0530)]
Tamil Translation Updated

11 years agoUpdated Greek translation
Dimitris Spingos [Thu, 25 Apr 2013 06:24:30 +0000 (09:24 +0300)]
Updated Greek translation

11 years agoImprove error handling in imapx_server_get_message().
Matthew Barnes [Wed, 24 Apr 2013 14:09:09 +0000 (10:09 -0400)]
Improve error handling in imapx_server_get_message().

If a GET_MESSAGE job for the same UID is already in progress, wait for
the job to finish, but don't assume it was successful.  Try retrieving
the message from cache, but if that fails then we have to re-fetch the
message from the IMAP server.

11 years agoECalClient test: test-client-get-revision not broken anymore
Tristan Van Berkom [Wed, 24 Apr 2013 08:49:23 +0000 (17:49 +0900)]
ECalClient test: test-client-get-revision not broken anymore

Not sure how this is passing again, but it is.

11 years agoDo not consider PGP and S/MIME subparts as attachments
Milan Crha [Wed, 24 Apr 2013 06:53:41 +0000 (08:53 +0200)]
Do not consider PGP and S/MIME subparts as attachments

11 years agotest-client-custom-summary.c: Optimize test.
Tristan Van Berkom [Tue, 23 Apr 2013 10:30:51 +0000 (19:30 +0900)]
test-client-custom-summary.c: Optimize test.

Reuse the same two addressbooks for every test, so that only the
first 2 tests populate the addressbooks with contacts and the remaining
tests only create a client and execute a query.

Also add all test contacts with a single batch command and dont fetch
the test contacts, also removed the #if 0'd case which is the only
case which required the local contact copies.

11 years agotest-server-utils: Allow reuse of existing addressbook.
Tristan Van Berkom [Fri, 19 Apr 2013 10:48:08 +0000 (19:48 +0900)]
test-server-utils: Allow reuse of existing addressbook.

If committing the new scratch source ends with an error that
the addressbook/calendar already exists, then just use the existing
source instead of bailing out.

This is needed for tests which reuse the addressbook from a previous test.

Conflicts:

tests/test-server-utils/e-test-server-utils.c

11 years agoUpdated Spanish translation
Daniel Mustieles [Mon, 22 Apr 2013 15:48:15 +0000 (17:48 +0200)]
Updated Spanish translation

11 years ago[l10n] Updated Catalan (Valencian) translation
Carles Ferrando [Fri, 19 Apr 2013 22:29:32 +0000 (00:29 +0200)]
[l10n] Updated Catalan (Valencian) translation

11 years ago[l10n] Update Catalan translation
Gil Forcada [Fri, 19 Apr 2013 22:28:29 +0000 (00:28 +0200)]
[l10n] Update Catalan translation

11 years agoECalClientView: Remove unnecessary fetching of ECalClient.
Matthew Barnes [Thu, 18 Apr 2013 14:45:34 +0000 (10:45 -0400)]
ECalClientView: Remove unnecessary fetching of ECalClient.

Left over from the D-Bus error stripping work.

11 years agoEBookClientView: Remove unnecessary fetching of EBookClient.
Matthew Barnes [Thu, 18 Apr 2013 14:44:20 +0000 (10:44 -0400)]
EBookClientView: Remove unnecessary fetching of EBookClient.

Left over from the D-Bus error stripping work.

11 years agoBug #698261 - Skip invalid flags in imapx_parse_flags()
Milan Crha [Thu, 18 Apr 2013 12:14:48 +0000 (14:14 +0200)]
Bug #698261 - Skip invalid flags in imapx_parse_flags()

Previous patch had incorrectly implemented skip of the broken flag,
which fixes this change.

11 years agoBug #698261 - Skip invalid flags in imapx_parse_flags()
Milan Crha [Thu, 18 Apr 2013 10:27:16 +0000 (12:27 +0200)]
Bug #698261 - Skip invalid flags in imapx_parse_flags()

11 years agoCamelStoreSettings::filter-inbox: Change default to TRUE
Milan Crha [Thu, 18 Apr 2013 06:35:18 +0000 (08:35 +0200)]
CamelStoreSettings::filter-inbox: Change default to TRUE

11 years agoLC_ADDRESS is a GNU extension. Treat it as such.
Matthew Barnes [Wed, 17 Apr 2013 14:37:13 +0000 (10:37 -0400)]
LC_ADDRESS is a GNU extension. Treat it as such.

Unconditional use of the GNU extension LC_ADDRESS causes compiler
errors on non-GNU systems.

In test cases, use LC_MESSAGES if LC_ADDRESS is unavailable.
Also fail gracefully with a log message if setlocale() fails.

11 years agoESource: Move "remember-password" to Authentication extension.
Matthew Barnes [Wed, 17 Apr 2013 10:48:06 +0000 (06:48 -0400)]
ESource: Move "remember-password" to Authentication extension.

It's a more suitable place since the option is only relevant to
EAuthenticationSession.

11 years agoBug #691939 - Password prompt has "save password" always checked
Milan Crha [Wed, 17 Apr 2013 09:24:59 +0000 (11:24 +0200)]
Bug #691939 - Password prompt has "save password" always checked

11 years agoRemove backward-compatibility cruft for goa-1.0 < 3.8.
Matthew Barnes [Tue, 16 Apr 2013 17:31:02 +0000 (13:31 -0400)]
Remove backward-compatibility cruft for goa-1.0 < 3.8.

In particular, GOA's Google provider uses OAuth 2.0 now, so we can
drop the OAuth 1.0a support in EGDataGoaAuthorizer and with it the
last lingering goa-1.0 dependency outside of the GOA module.

11 years agoBump minimum goa-1.0 requirement to 3.8.
Matthew Barnes [Tue, 16 Apr 2013 15:42:38 +0000 (11:42 -0400)]
Bump minimum goa-1.0 requirement to 3.8.

Still an optional dependency.  This is to purge backward-compat cruft.

11 years agoSwitch NULL to empty string in e_util_utf8_{data_}make_valid()
Milan Crha [Tue, 16 Apr 2013 14:51:50 +0000 (16:51 +0200)]
Switch NULL to empty string in e_util_utf8_{data_}make_valid()

It's used on various places which expect a valid string, but which
doesn't check for NULL values of the string, which can cause a crash,
like xtian found with e_data_cal_respond_get_object(), which can have
passed in a NULL object. This change is also to avoid NULL-checking
on too many places.

11 years agoEBookBackendSqliteDB: Avoid summary introspection on initial creation.
Tristan Van Berkom [Tue, 16 Apr 2013 08:18:53 +0000 (17:18 +0900)]
EBookBackendSqliteDB: Avoid summary introspection on initial creation.

The summary introspection does not introspect whether regular prefix
indexes are created, which is acceptable since it does not effect queries.

However since we introspect before creating the indexes, we lose the
configured index information which is needed to initially create those
indexes.

This patch simply checks if the table exists when initially creating
the summary and avoids the introspection if the table is being created
for the first time.

11 years agoAutomatically strip D-Bus info from error messages.
Matthew Barnes [Mon, 15 Apr 2013 22:54:41 +0000 (18:54 -0400)]
Automatically strip D-Bus info from error messages.

I mistakenly assumed code generated by the gdbus-codegen tool would
automatically strip off the D-Bus error name from error messages, but
that apparently is not possible according to my discussion with David
Zeuthen in [1], since it would break g_dbus_error_is_remote_error().

Distinguishing between local and remote errors strikes me as a rarely
needed corner case, and is certainly not worth the extra step imposed
on applications when dealing with something as fundamental as GError.

This commit prevents the D-Bus error name from leaking through in any
Evolution-Data-Server client-facing library functions.

Also rename any stack-allocated GError pointers to 'local_error' to
help distinguish them from GError "out" parameters which are always
named 'error'.  This is just to improve variable name consistency.

[1] https://bugzilla.gnome.org/697819

11 years agoBug 695578 - Trailing space in translatable string
Matthew Barnes [Mon, 15 Apr 2013 11:42:26 +0000 (07:42 -0400)]
Bug 695578 - Trailing space in translatable string

11 years agoBug 697705 - e_cal_client_remove_objects_sync() crashes on empty UID
Matthew Barnes [Sun, 14 Apr 2013 14:31:20 +0000 (10:31 -0400)]
Bug 697705 - e_cal_client_remove_objects_sync() crashes on empty UID

11 years agoTest suite cleanups.
Matthew Barnes [Sun, 14 Apr 2013 13:24:04 +0000 (09:24 -0400)]
Test suite cleanups.

11 years agobuild: Fix srcdir != builddir from git
Colin Walters [Fri, 12 Apr 2013 13:23:53 +0000 (09:23 -0400)]
build: Fix srcdir != builddir from git

We can't do (cd $(srcdir); ...) and inside reference $(top_srcdir)
because that variable uses a *relative* path.  Thus we copy the
approach from gnome-shell of explicitly using addprefix to append the
source directory.

11 years agoBug #696757 - Do not use dynamic keys in g_object_set_data()
Milan Crha [Fri, 12 Apr 2013 08:38:55 +0000 (10:38 +0200)]
Bug #696757 - Do not use dynamic keys in g_object_set_data()

11 years agoBug #681837 - Make enum type registration thread safe
Milan Crha [Fri, 12 Apr 2013 07:44:42 +0000 (09:44 +0200)]
Bug #681837 - Make enum type registration thread safe

11 years agoBug 697734 - Memory leak in local calendar backend
Matthew Barnes [Thu, 11 Apr 2013 15:17:58 +0000 (11:17 -0400)]
Bug 697734 - Memory leak in local calendar backend

We were leaking an icalproperty while seeding the "revision" D-Bus
property during instance initialization, because the backend does
not yet have an icalcomponent to hold the icalproperty.

This commit avoids the leak during instance initialization, but also
makes sure the "revision" property gets updated once the backend does
have an icalcomponent.

11 years agoECalBackendFile: Indentation cleanups.
Matthew Barnes [Thu, 11 Apr 2013 13:45:24 +0000 (09:45 -0400)]
ECalBackendFile: Indentation cleanups.

Tabs, not spaces.

11 years agoUpdated Hungarian translation
Balázs Úr [Wed, 10 Apr 2013 21:13:31 +0000 (23:13 +0200)]
Updated Hungarian translation

11 years agoCamelIMAPXServer: Rewrite duplicate message fetching.
Matthew Barnes [Mon, 8 Apr 2013 18:09:13 +0000 (14:09 -0400)]
CamelIMAPXServer: Rewrite duplicate message fetching.

The g_cond_wait() call in imapx_server_get_message() seems to be the
source of many deadlocks.  Possibly because some of the error handling
branches in that function fail to broadcast the GCond being waited on,
and cancellation is a very common error condition, especially when the
user is rapidly browsing through messages.

The code is attempting to wait for the completion of a GET_MESSAGE job
for the same UID which is already queued.  It's doing this by defining
its own GMutex and GCond, but it turns out we already have a function
for this: camel_imapx_job_wait().

Let's try using camel_imapx_job_wait() there.  It can't do worse than
the current situation, and we can kill off the specialized GMutex and
GCond variables which were unfortunately made public.

11 years agoBug #271262 - Allow Send/Receive of local stores in offline
Milan Crha [Mon, 8 Apr 2013 17:19:33 +0000 (19:19 +0200)]
Bug #271262 - Allow Send/Receive of local stores in offline

11 years agoEBookBackendWebdav: Defer to default get_contact_list_uids_sync().
Matthew Barnes [Sat, 6 Apr 2013 17:10:37 +0000 (13:10 -0400)]
EBookBackendWebdav: Defer to default get_contact_list_uids_sync().

11 years agoEBookBackendGoogle: Defer to default get_contact_list_uids_sync().
Matthew Barnes [Sat, 6 Apr 2013 17:08:13 +0000 (13:08 -0400)]
EBookBackendGoogle: Defer to default get_contact_list_uids_sync().

11 years agoEBookBackend: Make get_contact_list_uids_sync() optional.
Matthew Barnes [Sat, 6 Apr 2013 16:59:39 +0000 (12:59 -0400)]
EBookBackend: Make get_contact_list_uids_sync() optional.

This method is now optional.  By default, get_contact_list_uids_sync()
simply calls get_contact_list_sync() and extracts UID strings from the
matched EContacts.  Subclasses may override this if they can implement
it more efficiently.

11 years agoEBookBackend: Minor code rearrangement.
Matthew Barnes [Sat, 6 Apr 2013 16:48:53 +0000 (12:48 -0400)]
EBookBackend: Minor code rearrangement.

11 years agoEBookBackendGoogle: Implement the new backend API.
Matthew Barnes [Fri, 5 Apr 2013 17:33:32 +0000 (13:33 -0400)]
EBookBackendGoogle: Implement the new backend API.

At the same time I converted back to using synchronous GData functions,
which makes the logic flow much easier to follow (in my opinion).

I'm not sure why the asynchronous functions were used in the first place
when each backend method is invoked from a worker thread where it's safe
to block.  Maybe the threading model was different at the time, I really
don't know.  The commit history does not reveal the rationale.

11 years agoEBookBackendGoogle cleanups.
Matthew Barnes [Fri, 5 Apr 2013 14:50:18 +0000 (10:50 -0400)]
EBookBackendGoogle cleanups.

11 years agoUpdated Danish translation
Joe Hansen [Sat, 6 Apr 2013 08:39:22 +0000 (10:39 +0200)]
Updated Danish translation

11 years agoEBookBackendWebdav: Remove unused macros.
Matthew Barnes [Fri, 5 Apr 2013 14:40:36 +0000 (10:40 -0400)]
EBookBackendWebdav: Remove unused macros.

11 years agoEBookBackendWebdav: Implement the new backend API.
Matthew Barnes [Fri, 5 Apr 2013 14:30:45 +0000 (10:30 -0400)]
EBookBackendWebdav: Implement the new backend API.

11 years agoEBookBackendWebdav cleanups.
Matthew Barnes [Fri, 5 Apr 2013 13:27:36 +0000 (09:27 -0400)]
EBookBackendWebdav cleanups.

11 years agoUpdated POTFILES.in
Piotr Drąg [Thu, 4 Apr 2013 20:37:33 +0000 (22:37 +0200)]
Updated POTFILES.in

11 years agosqlite addressbook: fix memory corruption in get_revision
Patrick Ohly [Wed, 3 Apr 2013 14:45:28 +0000 (07:45 -0700)]
sqlite addressbook: fix memory corruption in get_revision

Instead of setting a pointer, the pointer pointing to the pointer was
overwritten. As a result, e_book_backend_file_load_revision() always saw a
NULL pointer when opening the address book (regardless whether in
evolution-addressbook-factory or a DRA client) and used
e_book_backend_file_bump_revision() to write a new revision.

It is not entirely clear whether overwriting the wrong pointer (which was on
the stack and thus should not have been that important) or these concurrent
writes were to blame, but testing shows that this fix solves a mysterious
sqlite query failure ("corrupt database") in the DRA client when running
SyncEvolution's testpim.py TestContacts.testFilterStartupRefineSmart.

Fixes BGO #697173.

11 years agoRemove EBookBackendSync.
Matthew Barnes [Wed, 3 Apr 2013 20:31:58 +0000 (16:31 -0400)]
Remove EBookBackendSync.

Useless subclass, added no value other than a slightly less awkward API.

11 years agoEBookBackendFile: Implement the new backend API.
Matthew Barnes [Wed, 3 Apr 2013 16:52:25 +0000 (12:52 -0400)]
EBookBackendFile: Implement the new backend API.

11 years agoEBookBackendFile cleanups.
Matthew Barnes [Wed, 3 Apr 2013 16:41:36 +0000 (12:41 -0400)]
EBookBackendFile cleanups.