Simon McVittie [Fri, 8 Mar 2013 13:55:29 +0000 (13:55 +0000)]
Mostly avoid an expensive multi-map iteration pattern
If you have a MultiMap with, say, 100 keys each with 1 value, and you
iterate over it like this (pseudocode):
for key in keys():
values = get(key)
for value in values:
do something(key, value)
then you have constructed one GObject for the result of keys(), and
100 GObjects for the results of get() (because it returns a read-only
view). If you iterate it like this:
iter = map_iterator()
while iter.next():
do something(iter.key(), iter.value())
there's only one extraneous GObject, the iterator itself.
When there are thousands of contacts, as in add-contacts-stress-test,
this really starts to matter.
This patch doesn't fix every use of get_keys() - some of them do
non-trivial work per key as well as per value, making it awkward to
convert to map_iterator() - but it's a start. It cuts 'user' CPU time
for IndividualAggregator quiescence for an e-d-s Google account with
2049 contacts (reading from cache) by around 3%.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=682903
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[note added to HACKING as per Philip's review]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Matej Urbančič [Thu, 7 Mar 2013 15:59:54 +0000 (16:59 +0100)]
Updated Slovenian translation
Ihar Hrachyshka [Thu, 7 Mar 2013 14:15:19 +0000 (17:15 +0300)]
Updated Belarusian translation.
Enrico Nicoletto [Thu, 7 Mar 2013 03:14:36 +0000 (00:14 -0300)]
Updated Brazilian Portuguese translation
Simon McVittie [Thu, 28 Feb 2013 16:50:08 +0000 (16:50 +0000)]
Use absolute paths for --vapidir
In the rules currently generated by Automake, valac currently runs
cd'd into the ${srcdir}. It seems unwise to rely on that, and the
only thing that will work regardless of whether ${srcdir} is ".",
relative or absolute is its "absolutized" version.
Similarly, look in both the ${srcdir} and the ${builddir} for Vala
bindings we generate: the ${srcdir} because that's where valac currently
puts them, and the ${builddir} because that's where they ought to go
in principle.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=694883
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
Simon McVittie [Thu, 28 Feb 2013 16:33:08 +0000 (16:33 +0000)]
Add -I$(top_srcdir) throughout
Automake adds (the equivalent of) -I$(top_builddir) to our CPPFLAGS
automatically, so we can #include "config.h". It does not add
-I$(top_srcdir). Many things in folks want to #include <folks/folks.h>,
so we should always have -I$(top_srcdir) so we can pick that up.
Out-of-tree builds previously either didn't work, or relied on having
installed folks headers (I'm not sure which).
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=694883
Reviewed-by: Philip Withnall <philip@tecnocode.co.uk>
[amended to do the same for tracker- and libsocialweb-specifics too -smcv]
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Kjartan Maraas [Mon, 4 Mar 2013 14:00:39 +0000 (15:00 +0100)]
Updated Norwegian bokmål translation
Mario Blättermann [Sun, 3 Mar 2013 21:00:57 +0000 (22:00 +0100)]
[l10n] Updated German translation
Aurimas Černius [Sat, 2 Mar 2013 21:28:03 +0000 (23:28 +0200)]
Updated Lithuanian translation
Chao-Hsiung Liao [Fri, 1 Mar 2013 14:14:46 +0000 (22:14 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)
Мирослав Николић [Fri, 1 Mar 2013 10:17:19 +0000 (11:17 +0100)]
Updated Serbian translation
Fran Diéguez [Mon, 25 Feb 2013 23:25:30 +0000 (00:25 +0100)]
Updated Galician translations
Piotr Drąg [Sun, 24 Feb 2013 01:39:27 +0000 (02:39 +0100)]
Updated Polish translation
Travis Reitter [Fri, 22 Feb 2013 17:10:35 +0000 (09:10 -0800)]
build: Include location-details.c in POTFILES.skip
This fixes a break in distcheck
Travis Reitter [Fri, 22 Feb 2013 16:59:26 +0000 (08:59 -0800)]
build: Use @return instead of unsupported @returns valadoc
This was breaking the build when making docs
Gheyret Kenji [Fri, 22 Feb 2013 13:22:06 +0000 (22:22 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Fri, 22 Feb 2013 13:19:56 +0000 (22:19 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Fri, 22 Feb 2013 13:09:51 +0000 (22:09 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Marek Černocký [Fri, 22 Feb 2013 09:43:48 +0000 (10:43 +0100)]
Updated Czech translation
A S Alam [Fri, 22 Feb 2013 01:38:16 +0000 (01:38 +0000)]
Punjabi: Translation updated (aalam)
Daniel Mustieles [Thu, 21 Feb 2013 15:54:25 +0000 (16:54 +0100)]
Updated Spanish translation
Alexandre Franke [Wed, 20 Feb 2013 19:19:11 +0000 (20:19 +0100)]
Update French translation
Alexandre Franke [Wed, 20 Feb 2013 19:18:37 +0000 (20:18 +0100)]
Update French translation
Patrick Ohly [Fri, 8 Feb 2013 14:23:13 +0000 (15:23 +0100)]
support geo location information
This adds "Location" class with latitude and longitude and
single-valued "LocationDetails" which exposes that information for a
contact. The logic for choosing "the best" among many locations from
different personas is left out for now. Instead folks picks according
to the default ordering of single values, which prefers values from
the primary store.
The EDS backend provides, creates and writes the GEO property as
location.
Marek Černocký [Tue, 19 Feb 2013 10:13:28 +0000 (11:13 +0100)]
Updated Czech translation
Philip Withnall [Mon, 18 Feb 2013 18:28:04 +0000 (18:28 +0000)]
eds: Fix the type of a parameter in add_persona_from_details()
This build breaker was introduced in commit
dcc558d87d113dae0aa8721db3d80261c08dee57.
Patrick Ohly [Mon, 18 Feb 2013 11:19:08 +0000 (12:19 +0100)]
eds: fix Android favourite handling when creating contact
When processing PersonaDetail.GROUPS before PersonaDetail.IS_FAVOURITE
while creating a new contact in EDS, the special code for adding the
contact to the “Starred in Android” group (bgo#661490 was skipped). We
must go through _set_is_favourite instead of _set_contact_is_favourite
to get that part done, too.
Patrick Ohly [Thu, 7 Feb 2013 14:28:08 +0000 (15:28 +0100)]
eds: support 'groups' when creating a contact
There's a minor twist with supporting the setting of groups from
details: _set_contact_groups() needs to know whether the contact
is a favorite, for special handling of Google contacts.
If the PersonaDetail.IS_FAVOURITE is found first in the details, that
boolean is passed to a later _set_contact_groups(). If
_set_contact_groups() is done first, then _set_contact_is_favourite()
applies the special Google workaround.
Travis Reitter [Mon, 18 Feb 2013 03:53:40 +0000 (19:53 -0800)]
Update the home page listed in DOAP file
Travis Reitter [Mon, 18 Feb 2013 03:44:29 +0000 (19:44 -0800)]
Post-release version bump
Travis Reitter [Mon, 18 Feb 2013 03:29:09 +0000 (19:29 -0800)]
Release version 0.9.1
Giovanni Campagna [Sun, 17 Feb 2013 22:50:44 +0000 (23:50 +0100)]
Fix build with evolution-data-server master
Eds recently splitted certain enums from libebook into libebook-contacts.
As part of that, they are now correctly reported as error domains,
rather than bare enums, so we need to change the syntax to check them.
https://bugzilla.gnome.org/show_bug.cgi?id=694049
Travis Reitter [Mon, 18 Feb 2013 02:07:54 +0000 (18:07 -0800)]
Post-release version bump
Travis Reitter [Mon, 18 Feb 2013 00:33:26 +0000 (16:33 -0800)]
Release version 0.9.0
Travis Reitter [Tue, 12 Feb 2013 20:58:43 +0000 (12:58 -0800)]
Temporarily disable some broken tests for the release.
Travis Reitter [Mon, 18 Feb 2013 01:31:37 +0000 (17:31 -0800)]
Distribute the ofono backend dir
Travis Reitter [Mon, 18 Feb 2013 01:31:17 +0000 (17:31 -0800)]
Alphabetize backend subdirs
Travis Reitter [Mon, 18 Feb 2013 01:04:17 +0000 (17:04 -0800)]
Revert "build fix: Only depend on Gee 0.8.3, since 0.8.4 isn't released yet"
This reverts commit
ad77950c7a628399e59ac3d04f07f95bb21f1887.
Travis Reitter [Mon, 18 Feb 2013 01:03:40 +0000 (17:03 -0800)]
Bump Tracker requirement to the latest series.
Piotr Drąg [Sun, 17 Feb 2013 14:48:05 +0000 (15:48 +0100)]
Updated Polish translation
Philip Withnall [Tue, 12 Feb 2013 00:39:32 +0000 (00:39 +0000)]
eds: Check property values have changed before committing them to EDS
This prevents timeouts when waiting for EDS to notify us of property changes,
since it won’t notify for non-changed properties. It also saves a D-Bus round
trip in the case the folks property setter is called with an unchanged value.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=692951
Alexandre Franke [Thu, 14 Feb 2013 16:27:15 +0000 (17:27 +0100)]
Update French translation
Travis Reitter [Tue, 12 Feb 2013 21:06:30 +0000 (13:06 -0800)]
Revert "CUT -- disable some broken tests"
This reverts commit
f58c41dfbdb53bb617215888859fafb32ad2b9d6.
Travis Reitter [Tue, 12 Feb 2013 20:58:43 +0000 (12:58 -0800)]
CUT -- disable some broken tests
Travis Reitter [Tue, 12 Feb 2013 19:18:13 +0000 (11:18 -0800)]
build fix: Only depend on Gee 0.8.3, since 0.8.4 isn't released yet
This can safely be reverted once Gee 0.8.4 is released.
Philip Withnall [Tue, 12 Feb 2013 11:26:50 +0000 (11:26 +0000)]
tools: Fix ambiguous references to HashTable
Could have been GLib.HashTable or Xml.HashTable. Caught by Jenkins:
https://jenkins.qa.ubuntu.com/view/Raring/view/JHBuild%20Gnome/job/jhbuild-amd64-folks/114/
On further investigation, this was caused by changes to the libxml2
bindings in Vala. Compilation of folks against Vala master now
succeeds, so there shouldn’t be any more HashTable failures.
Philip Withnall [Tue, 12 Feb 2013 08:30:35 +0000 (08:30 +0000)]
eds: Fix ambiguous references to HashTable
Could have been GLib.HashTable or Xml.HashTable. Caught by Jenkins:
https://jenkins.qa.ubuntu.com/view/Raring/view/JHBuild%20Gnome/job/jhbuild-amd64-folks/113/
Travis Reitter [Thu, 7 Feb 2013 05:33:24 +0000 (21:33 -0800)]
Port folks to libgee 0.8.
Added hash_static and equal_static to AbstractFieldDetails.
Use AbstractFieldDetails hash_static and equal_static where needed.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=673918
Travis Reitter [Fri, 8 Feb 2013 17:28:22 +0000 (09:28 -0800)]
eds test: Ensure the source is declared enabled
This seems to fix the problem with create-remove-stores from failing
sporadically. And it matches all the sample sources used in e-d-s itself.
I also added a trailing \n to match them as well (though it doesn't seem to
have any obvious effect).
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=693435
Philip Withnall [Wed, 6 Feb 2013 17:21:53 +0000 (17:21 +0000)]
individual-aggregator: Expand documentation on linking/unlinking API
Philip Withnall [Tue, 5 Feb 2013 23:00:09 +0000 (23:00 +0000)]
individual-aggregator: Add some documentation on linking/unlinking API
Aurimas Černius [Sat, 26 Jan 2013 18:06:56 +0000 (20:06 +0200)]
Updated Lithuanian translation
Gheyret Kenji [Sat, 26 Jan 2013 01:11:32 +0000 (10:11 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Sat, 26 Jan 2013 01:09:06 +0000 (10:09 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Gheyret Kenji [Sat, 26 Jan 2013 01:06:46 +0000 (10:06 +0900)]
Updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Nuno Araujo [Mon, 21 Jan 2013 12:00:41 +0000 (13:00 +0100)]
build: Don't use make functions for defining TESTS
Usage of 'make' functions in the definition of TESTS special variable
can lead to the creation of a corrupt Makefile.in, thus a corrupt Makefile.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=692122
Gheyret Kenji [Sun, 20 Jan 2013 02:49:25 +0000 (11:49 +0900)]
Uyghur translation added
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
Мирослав Николић [Fri, 18 Jan 2013 10:41:46 +0000 (11:41 +0100)]
Updated Serbian translation
Daiki Ueno [Thu, 17 Jan 2013 06:02:36 +0000 (15:02 +0900)]
Don't rebuild docs on every "make" run.
Create timestamp files to avoid redundant valadoc invocation.
https://bugzilla.gnome.org/show_bug.cgi?id=691923
Travis Reitter [Mon, 7 Jan 2013 06:27:27 +0000 (22:27 -0800)]
Bug 691382 — Restore tests disabled by bug #668415 (which has been fixed)
This ports the store-removed test to the current EDS introspection bindings
and removes the change-primary-store test on the basis that we don't really
support clients changing the primary store.
In the future, we may want to add a test to ensure we cope with the primary
store disappearing, but that's a different case.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=691382
Philip Withnall [Sun, 30 Dec 2012 18:53:08 +0000 (18:53 +0000)]
Bug 686695 — support nickname in add_persona_from_details
Support nicknames in add_persona_from_details() in the EDS backend. This
adds a test case (which passes).
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=686695
Alexander Shopov [Wed, 9 Jan 2013 05:10:55 +0000 (07:10 +0200)]
Updated Bulgarian translation
Dušan Kazik [Tue, 8 Jan 2013 20:53:20 +0000 (21:53 +0100)]
Updated slovak translation
Travis Reitter [Sat, 5 Jan 2013 02:02:15 +0000 (18:02 -0800)]
Bug 691167 — Build failure: key-file tests built before dependencies
This fixes a regression from
96c51fe585b which built the key-file tests
before the libraries they depended upon (breaking the build).
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=691167
Travis Reitter [Sun, 6 Jan 2013 01:11:42 +0000 (17:11 -0800)]
Bug 690876 — eds: fix various test failures
Note bug fixed by the last several commits
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=690876
Travis Reitter [Fri, 4 Jan 2013 23:15:57 +0000 (15:15 -0800)]
eds test: don't assume Individuals remain after changing a linkable property
Travis Reitter [Fri, 4 Jan 2013 06:23:04 +0000 (22:23 -0800)]
eds test: create a new address book for each test to avoid inheriting state
This fixes a bug where the second anti-linking test would fail if it ran
after the first.
Travis Reitter [Fri, 4 Jan 2013 05:55:19 +0000 (21:55 -0800)]
eds test: ensure basic anti-link removal works
Travis Reitter [Thu, 3 Jan 2013 17:42:57 +0000 (09:42 -0800)]
eds test: add basic anti-linking test
Travis Reitter [Thu, 3 Jan 2013 00:42:38 +0000 (16:42 -0800)]
eds test: remove unnecessarily-strict test for extra Individual add/remove
Ideally, we should be able to fulfill this test, but it's probably not worth
the extra code complexity.
Travis Reitter [Sun, 30 Dec 2012 20:17:21 +0000 (12:17 -0800)]
eds test: support setting email addresses in test backend
Travis Reitter [Sun, 30 Dec 2012 20:10:47 +0000 (12:10 -0800)]
eds test: rename _parse_addrs to _parse_im_addrs for specificity.
Travis Reitter [Sun, 30 Dec 2012 20:08:49 +0000 (12:08 -0800)]
eds test: ensure changes to linkable properties aggregate Personas together
Travis Reitter [Sun, 30 Dec 2012 02:43:22 +0000 (18:43 -0800)]
eds test: create a new address book for each test to avoid inheriting state
This fixes a bug where the web services linking test would fail if it ran
after the im address linking test.
Travis Reitter [Fri, 28 Dec 2012 17:31:57 +0000 (09:31 -0800)]
eds test: add test for specific behavior of linkable properties
This splits out a subtle and complicated linkable-properties bug discovered
by the set-emails test where changing the emails (which happen to be a
linkable property in the EDS backend) causes an unnecessary Edsf.Persona
creation and removal cycle.
The set-* tests are meant to confirm that reading and writing the given
property works, so seperating this should let us simplify those tests
slightly yet focus on the secondary details we care about in a specific test
case.
Philip Withnall [Thu, 3 Jan 2013 11:18:35 +0000 (11:18 +0000)]
HACKING: Update documentation for running single tests
Philip Withnall [Thu, 3 Jan 2013 11:04:11 +0000 (11:04 +0000)]
build: Rewrite valgrind.mk to use GNU Make conditionals
This means we’re not overwriting rules and potentially changing their
prerequisites. Incorrectly overwriting check-* rules was causing tests to
be run twice in the tests/folks directory.
See: https://bugzilla.gnome.org/show_bug.cgi?id=690990
Philip Withnall [Thu, 3 Jan 2013 10:40:04 +0000 (10:40 +0000)]
build: Fix cleaning of .stamp files in EDS tests directory
Philip Withnall [Thu, 3 Jan 2013 10:35:03 +0000 (10:35 +0000)]
build: Tidy up test Makefiles a little
Guillaume Desmottes [Wed, 2 Jan 2013 09:33:59 +0000 (10:33 +0100)]
HACKING: document how to run a single test
https://bugzilla.gnome.org/show_bug.cgi?id=690990
Philip Withnall [Wed, 2 Jan 2013 16:01:18 +0000 (16:01 +0000)]
build: Update valgrind.mk to match automake-generated ‘check’ rule
The dependencies and chained rule were wrong. Not that it seems to
make much difference.
Philip Withnall [Wed, 2 Jan 2013 15:35:02 +0000 (15:35 +0000)]
Bug 690989 — "warning: copying delegates is discouraged"
Fix a warning introduced by commit
7088fbafafd3e75f02266aa8b093d69660311b36.
Whoops.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=690989
Philip Withnall [Tue, 1 Jan 2013 17:45:22 +0000 (17:45 +0000)]
build: Add a missing bracket in configure.ac
Balázs Úr [Mon, 31 Dec 2012 17:59:21 +0000 (18:59 +0100)]
Updated Hungarian translation
Philip Withnall [Sun, 30 Dec 2012 22:41:59 +0000 (22:41 +0000)]
telepathy: Call continuations in idle callbacks rather than directly
The continuations will proceed to a g_simple_async_result_complete() call,
rather than a g_simple_async_result_complete_in_idle() call as I expected
(and didn’t check). This could result in the first continuation executing
a lot of code and starving the other continuations (and the original
prepare() call). By delaying the continuations to the idle queue, the
original prepare() call is guaranteed to finish first. Then the
continuations can only starve each other.
See: https://bugzilla.gnome.org/show_bug.cgi?id=677633
Philip Withnall [Sun, 30 Dec 2012 00:52:36 +0000 (00:52 +0000)]
individual-aggregator: Fix some debug spew
Philip Withnall [Sun, 30 Dec 2012 00:48:38 +0000 (00:48 +0000)]
documentation: Document which yielding methods are safe to call concurrently
This is a follow-up commit to
ce55fa2bf2f5f8cf95532da585d835bafeeb3347.
I went through all methods in folks which yield to another async method,
and tried to work out whether the caller was safe to run multiple times
concurrently (e.g. begin a second asynchronous call to it between a previous
async call beginning and finishing).
I’ve marked all such methods as safe (or not safe) as appropriate. I
haven’t made any attempt to make the unsafe methods safe, except in one
case in backend-store.vala.
Guillaume Desmottes [Fri, 28 Dec 2012 14:11:25 +0000 (15:11 +0100)]
phone-details: get_normalised: keep the leading '+'
It's needed to be able to call phone numbers containing an international
prefix.
https://bugzilla.gnome.org/show_bug.cgi?id=685992
Yaron Shahrabani [Sat, 29 Dec 2012 09:39:26 +0000 (11:39 +0200)]
Updated Hebrew translation.
Philip Withnall [Fri, 28 Dec 2012 13:47:50 +0000 (13:47 +0000)]
telepathy: Yield subsequent Logger.prepare() calls if one is pending
If one PersonaStore began to prepare its Logger, then yielded on a D-Bus
call, another PersonaStore could begin to prepare its Logger and also
try to create a static D-Bus proxy (which is only supposed to be created
once). This is because the original async call hasn’t returned and set
Logger._logger by that point.
Fix this by keeping a queue of pending prepare() calls which is signalled
by the initial prepare() call once it finishes yielding.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=677633
Philip Withnall [Fri, 28 Dec 2012 13:12:54 +0000 (13:12 +0000)]
telepathy: Remove Logger.prepare() return value
It’s unused. It’s private. It’s a waste of code.
Philip Withnall [Fri, 28 Dec 2012 12:50:35 +0000 (12:50 +0000)]
telepathy: Fix bus watching by multiple Tpf.PersonaStore instances
The bus needs to be watched by all Tpf.PersonaStores which are connected to
the Logger instance, so that they all get the ‘invalidated’ signal.
Dimitris Spingos [Mon, 24 Dec 2012 15:07:45 +0000 (17:07 +0200)]
Updated Greek translation
Fran Diéguez [Sun, 23 Dec 2012 03:24:22 +0000 (04:24 +0100)]
Updated Galician translations
Travis Reitter [Tue, 18 Dec 2012 06:41:35 +0000 (22:41 -0800)]
eds test: Use the same birthday for the test individual and expected value.
Shantha kumar [Tue, 18 Dec 2012 09:57:27 +0000 (15:27 +0530)]
Tamil translation updated
Shantha kumar [Tue, 18 Dec 2012 09:51:48 +0000 (15:21 +0530)]
Tamil Translation updated
Daniel Mustieles [Sun, 16 Dec 2012 19:46:52 +0000 (20:46 +0100)]
Updated Spanish translation
Patrick Ohly [Fri, 7 Dec 2012 18:07:17 +0000 (19:07 +0100)]
folks.pc: remove telepathy-glib
Apps linking against just folks core libraries do not need
telepathy. Always including it as it was done before leads to a
folks.pc which is unusuable unless Telepathy is installed, which
partly defeats the purpose of --disable-telepathy-backend.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=689859
Patrick Ohly [Wed, 5 Dec 2012 14:57:21 +0000 (15:57 +0100)]
eds: handle removal of store without removal of personas
The assumption in the IndividualAggregator that all backends remove
their personas before removing a store did not hold for the EDS
backend when stores were removed via set_persona_stores() or
disable_store().
Fixing that in EDS is tricky, so better make the IndividualAggregator
more resilient and remove any remaining personas when the store gets
removed.
Closes: https://bugzilla.gnome.org/show_bug.cgi?id=689146