Philip Withnall [Sat, 17 Sep 2011 16:24:30 +0000 (17:24 +0100)]
Bug 658531 — Sometimes avatar caching doesn't work
Work around bug #659324 (in GIO) to ensure that we never close the same FD
more than once when storing avatars to the cache.
Closes: bgo#658531
Philip Withnall [Sat, 17 Sep 2011 16:23:19 +0000 (17:23 +0100)]
eds: Re-use a GTimeZone instance for converting birthday timezones
Every time a GTimeZone is created, /etc/localtime is opened. Reduce this
overhead by sharing a single GTimeZone instance between all Edsf.Personas
for all time.
This makes our strace a little tidier.
Matej Urbančič [Sat, 17 Sep 2011 15:29:32 +0000 (17:29 +0200)]
Updated Slovenian translation
Philip Withnall [Sat, 17 Sep 2011 11:06:15 +0000 (12:06 +0100)]
Update British English translation
Marek Černocký [Fri, 16 Sep 2011 22:07:53 +0000 (00:07 +0200)]
Updated Czech translation
Philip Withnall [Fri, 16 Sep 2011 20:56:07 +0000 (21:56 +0100)]
abstract-field-details: Minor documentation fix
Raul Gutierrez Segales [Thu, 1 Sep 2011 18:29:06 +0000 (19:29 +0100)]
e-d-s: test case for changing primary store
Raul Gutierrez Segales [Thu, 1 Sep 2011 18:31:28 +0000 (19:31 +0100)]
e-d-s: allow setting default address books in tests
Raul Gutierrez Segales [Thu, 15 Sep 2011 14:38:11 +0000 (15:38 +0100)]
e-d-s: notify when an address book is configured as default
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=657141
Raul Gutierrez Segales [Thu, 15 Sep 2011 14:33:58 +0000 (15:33 +0100)]
core: add Folks.PersonaStore.user-set-default property
With this property we can tell if a Store (i.e.: an e-d-s address
book) has been marked by the user as his default store (either from
Evo or from GOA, etc).
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=657141
Raul Gutierrez Segales [Thu, 15 Sep 2011 13:43:36 +0000 (14:43 +0100)]
IndividualAggregator: improve naming for primary store related methods
Renamed _set_primary_store () to _configure_primary_store () and refactor
the code that actually sets the primary store into _set_primary_store ().
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=657141
Raul Gutierrez Segales [Wed, 14 Sep 2011 19:48:47 +0000 (20:48 +0100)]
Let each PersonaStore manage its trust-level
Previously, the IndividualAggregator was in charge of
downgrading and upgrading the trust-level of each
PersonaStore. From now on, we let each Store manage its
trust-level since it's the natural way to do it.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=659075
Philip Withnall [Thu, 15 Sep 2011 21:09:36 +0000 (22:09 +0100)]
Bug 659128 — If a persona store goes away we don't remove its personas
Handle removal of the address books backing Edsf.PersonaStores by notifying
of the removal of all the personas in the store, then emitting
PersonaStore.removed.
Test included.
Closes: bgo#659128
Philip Withnall [Wed, 14 Sep 2011 21:26:04 +0000 (22:26 +0100)]
individual: Prefer data from personas with writeable properties
As an addition to the fix for bgo#657783, if two personas come from stores
which have equal is-primary-store values, we now prefer the persona which
lists the given property as writeable. If both personas list (or don't list)
the property as writeable, we fall back to the given ordering function as
before.
Closes: bgo#657783
Raul Gutierrez Segales [Fri, 16 Sep 2011 13:59:09 +0000 (14:59 +0100)]
tracker: configure primary store for tests via env var
No need for GConf to set up primary store for tests, doing it
via en env var is good enough.
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=647909
Raul Gutierrez Segales [Fri, 16 Sep 2011 13:30:12 +0000 (14:30 +0100)]
e-d-s: configure primary store for link-personas test via env var
For tests, it's much simpler to do it via an env variable than via
GConf and we avoid ourselves a dependency.
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=647909
Piotr Drąg [Thu, 15 Sep 2011 18:13:51 +0000 (20:13 +0200)]
Updated Polish translation
Raul Gutierrez Segales [Thu, 15 Sep 2011 13:04:13 +0000 (14:04 +0100)]
Folks.Individual: don't use is-writeable in change_avatar
This is a follow-up for commit
96539acd, using PersonaStore.is_writeable
is deprecated in favour of checking Persona.writeable_properties
Philip Withnall [Wed, 14 Sep 2011 22:54:25 +0000 (23:54 +0100)]
build: Clean the .typelib file in clean rather than maintainer-clean
It's built by `make` not the maintainer, so according to
http://www.gnu.org/software/hello/manual/automake/Clean.html it should be
cleaned by `make clean`.
Also remove it from BUILT_SOURCES, since it doesn't belong there.
Travis Reitter [Wed, 14 Sep 2011 22:34:23 +0000 (15:34 -0700)]
Don't distribute the typelib file.
Typelib files are architecture-specific, so they shouldn't be distributed.
Closes: bgo#659095 - Don't distribute typelib file
Raul Gutierrez Segales [Tue, 13 Sep 2011 16:48:17 +0000 (17:48 +0100)]
Folks.Individual: use is-primary-store instead of is-writeable
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658324
Raul Gutierrez Segales [Tue, 13 Sep 2011 16:35:07 +0000 (17:35 +0100)]
IndividualAggregator: s/writeable_store/primary_store/g
Renamed _writeable_store to _primary_store to augument clarity.
Also, stop listening and setting is-writeable properties and
work with is-primary-store properties.
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658324
Raul Gutierrez Segales [Tue, 13 Sep 2011 16:33:44 +0000 (17:33 +0100)]
Folks.PersonaStore: add is-primary-store and deprecate is-writeable
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658324
Raul Gutierrez Segales [Thu, 8 Sep 2011 17:12:56 +0000 (18:12 +0100)]
core: use always-writeable instead of is-writeable
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658324
Raul Gutierrez Segales [Thu, 8 Sep 2011 16:21:10 +0000 (17:21 +0100)]
core: deprecate FOLKS_WRITEABLE_STORE for FOLKS_PRIMARY_STORE
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=658323
Raul Gutierrez Segales [Wed, 14 Sep 2011 19:50:40 +0000 (20:50 +0100)]
e-d-s: always open address books (regardless of it existing or not)
This helps Gnome Contacts which needs to make sure that at least
the system address book exists.
Philip Withnall [Mon, 22 Aug 2011 22:54:08 +0000 (23:54 +0100)]
Bug 657065 — Cache keeps around contacts from disabled accounts
Add some extra conditions on loading and storing the Tpf.PersonaStore cache,
so as to prevent loading it when the account is disabled or invalid, and to
prevent storing it unnecessarily.
This also adds some extra debug output to Tpf.PersonaStore's caching methods.
Closes: bgo#657065
Philip Withnall [Wed, 14 Sep 2011 17:34:57 +0000 (18:34 +0100)]
Bug 658002 — defective typelib
Pass the libtool dlname for libfolks.so to g-ir-compiler rather than
libfolks.la.
Closes: bgo#658002
Matej Urbančič [Wed, 14 Sep 2011 13:41:20 +0000 (15:41 +0200)]
Updated Slovenian translation
Rodrigo Moya [Tue, 13 Sep 2011 10:17:37 +0000 (12:17 +0200)]
Remove extra definition of BACKEND_EDS
Raul Gutierrez Segales [Tue, 13 Sep 2011 13:51:48 +0000 (14:51 +0100)]
e-d-s: add test for auto linking via emails and IM addresses
Raul Gutierrez Segales [Tue, 13 Sep 2011 11:44:08 +0000 (12:44 +0100)]
e-d-s: assume certain e-mail addresseses are IM IDs too
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=657142
Philip Withnall [Tue, 13 Sep 2011 21:03:02 +0000 (22:03 +0100)]
avatar-cache: Add some more debug output
Piotr Drąg [Tue, 13 Sep 2011 19:22:52 +0000 (21:22 +0200)]
Updated Polish translation
Philip Withnall [Fri, 12 Aug 2011 10:18:16 +0000 (12:18 +0200)]
Bug 633781 — Allow to set avatar on individuals
Make Individual.avatar writeable and write new avatars back to the personas
from writeable persona stores in an individual.
Closes: bgo#633781
Raul Gutierrez Segales [Tue, 13 Sep 2011 09:26:37 +0000 (10:26 +0100)]
build: use AM_MAINTAINER_MODE([enable]) instead of AM_MAINTAINER_MODE
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=658894
Philip Withnall [Mon, 12 Sep 2011 20:55:04 +0000 (21:55 +0100)]
Bug 658730 — ngettext (Plural forms) needed…
Use ngettext() instead of gettext() for a plural string.
Closes: bgo#658730
Philip Withnall [Tue, 13 Sep 2011 07:09:27 +0000 (08:09 +0100)]
Bug 658874 — Typo?
Fix a typo in a translatable string in the Tracker backend.
Closes: bgo#658874
Philip Withnall [Mon, 12 Sep 2011 22:31:06 +0000 (23:31 +0100)]
Bug 658331 — Ensure read-only PersonaStores have empty writeable-properties
Ensure that Edsf.PersonaStore.always-writeable-properties is empty for
EDS address books which are read-only. Similarly, ensure that
Edsf.Persona.writeable-properties is also empty for such address books (which
follows because it passes through the value of always-writeable-properties).
No other backends need modifying for this, since no others have a concept
of “read only” except libsocialweb, which already has empty
writeable-properties properties.
Closes: bgo#658331
Raul Gutierrez Segales [Tue, 13 Sep 2011 10:45:17 +0000 (11:45 +0100)]
e-d-s: only emit notifications if properties have changed
This is a follow-up for what was suggested in:
https://bugzilla.gnome.org/show_bug.cgi?id=658411
about dealing with updating properties and emitting notifications.
Philip Withnall [Mon, 12 Sep 2011 22:09:10 +0000 (23:09 +0100)]
Bug 658631 — crash at empathy startup
In the case that a persona is removed and the individual containing that
persona is replaced by a different non-null individual which doesn't contain
that persona (because it's been removed), we need to set the persona's
individual pointer to null rather than the replacement individual.
This stops us tripping the assertion in the setter for Persona.individual.
Closes: bgo#658631
Philip Withnall [Mon, 12 Sep 2011 22:07:33 +0000 (23:07 +0100)]
individual-aggregator: Add some more debug output
It turns out to be really useful to see what's being emitted by
IndividualAggregator.individuals-changed-detailed.
Daniel Nylander [Mon, 12 Sep 2011 18:26:31 +0000 (20:26 +0200)]
Added Swedish translation
Marek Černocký [Sun, 11 Sep 2011 09:15:34 +0000 (11:15 +0200)]
Czech translation
Marek Černocký [Sun, 11 Sep 2011 09:15:15 +0000 (11:15 +0200)]
Added Czech language
Alexander Larsson [Fri, 9 Sep 2011 12:52:17 +0000 (14:52 +0200)]
e-d-s: Make sure consecutive property changes work
Don't send any notification due to property changes until we've
done updating an entire persona, otherwise code that listens to
such notifies will see the persona in an intermediate state, whic
can cause problems. For instance, if such a callback tries to
change a property it might not recieve change notification for it.
Alexander Larsson [Fri, 9 Sep 2011 08:25:37 +0000 (10:25 +0200)]
e-d-s: Make sure we clear old attributes when setting im_addresses
The previous code called e_contact_get_attributes() which returns
a copy of the attributes, and tried to remove it with
e_vcard_remove_attribute () which matches on pointer values, so
it always failed.
Piotr Drąg [Thu, 8 Sep 2011 20:26:56 +0000 (22:26 +0200)]
Added Polish translation
Raul Gutierrez Segales [Thu, 8 Sep 2011 18:21:21 +0000 (19:21 +0100)]
Post-release version bump
Raul Gutierrez Segales [Thu, 8 Sep 2011 17:51:29 +0000 (18:51 +0100)]
Release version 0.6.2.1
Raul Gutierrez Segales [Thu, 8 Sep 2011 17:19:35 +0000 (18:19 +0100)]
IndividualAggregator: copy the list of stores before looping over it
Because a Backend's list of PersonaStores can change while we are
iterating it, we do a copy before starting.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=658580
Raul Gutierrez Segales [Thu, 8 Sep 2011 09:53:15 +0000 (10:53 +0100)]
NEWS: add new section for next release
Raul Gutierrez Segales [Thu, 8 Sep 2011 09:53:00 +0000 (10:53 +0100)]
Post-release version bump
Raul Gutierrez Segales [Thu, 8 Sep 2011 08:44:16 +0000 (09:44 +0100)]
Release version 0.6.2
Raul Gutierrez Segales [Thu, 8 Sep 2011 08:21:04 +0000 (09:21 +0100)]
Update @since tags
Fran Dieguez [Thu, 8 Sep 2011 02:01:17 +0000 (04:01 +0200)]
Updated galician translations
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:10:38 +0000 (23:10 +0100)]
Updated NEWS file
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:04:07 +0000 (23:04 +0100)]
tracker: update link personas test
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:03:32 +0000 (23:03 +0100)]
tracker: update IM addresses updates test
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:02:28 +0000 (23:02 +0100)]
tracker: update add persona tes
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:01:59 +0000 (23:01 +0100)]
tracker: update set-im-addresses test
Because IM addresses are linkable property, a new Individual
is created when they are modified.
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:01:19 +0000 (23:01 +0100)]
e-d-s: update set-im-addresses test
Because IM addresses are linkable property, a new Individual
is created when they are modified.
Raul Gutierrez Segales [Wed, 7 Sep 2011 22:00:48 +0000 (23:00 +0100)]
e-d-s: only emit notifications if linkable properties changed
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=658411
Raul Gutierrez Segales [Wed, 7 Sep 2011 21:59:41 +0000 (22:59 +0100)]
e-d-s: move Set comparison method into it's own class
This refactoring is so we can reuse the method with other
types.
Philip Withnall [Tue, 6 Sep 2011 21:22:52 +0000 (22:22 +0100)]
Bug 656689 — Re-link personas on linkable properties being changed
Listen for notifications of changes to the linkable properties of every
persona in the IndividualAggregator. When we receive such a notification,
relink that persona by artificially removing them from the aggregator and
immediately re-adding them.
Like many things in the IndividualAggregator, this is ugly — but it appears
to work, and I can get my head around it.
Closes: bgo#656689
Philip Withnall [Tue, 6 Sep 2011 21:20:12 +0000 (22:20 +0100)]
core: Fix individuals_changed_detailed mappings for unlinked individuals
It turns out that we can do a post-processing phase on the mappings to be
emitted by IndividualAggregator.individuals_changed_detailed and ensure that
individuals who've been unlinked are represented by a mapping from themselves
to the set of individuals replacing them, rather than a mapping from
themselves to null, and null to the set of individuals replacing them.
This probably isn't the most efficient way to fix the problem, but it works
and I can just about understand it.
Helps: bgo#656689, bgo#657282
Philip Withnall [Tue, 6 Sep 2011 21:16:44 +0000 (22:16 +0100)]
core: Be more thorough when removing individuals from the link map
Since the values of personas' linkable properties could've changed since we
added them to the link map, we have to be more thorough when removing
individuals from the map. We therefore now remove them by examining all the
values in the map, and removing every mapping to the individual we're
interested in.
Helps: bgo#656689
Philip Withnall [Tue, 6 Sep 2011 21:10:20 +0000 (22:10 +0100)]
core: Add more debug output and validation to the IndividualAggregator
Everyone loves debug output, and validating that we aren't leaving stale
entries in the link map which will later cause whoever's looking into
aggregator bugs to hide in a corner and cry.
Helps: bgo#656689
Philip Withnall [Tue, 6 Sep 2011 21:04:20 +0000 (22:04 +0100)]
core: Clarify that Persona.linkable_properties doesn't change at runtime
Helps: bgo#656689
Philip Withnall [Tue, 6 Sep 2011 20:57:42 +0000 (21:57 +0100)]
core: Ensure we always notify of new Individuals
In the following situation, it was possible for
IndividualAggregator.individuals_changed_detailed to not emit a notification
that an individual was added:
If two personas were added by a given store in the same emission of
PersonaStore.personas_changed, the IA would create an Individual, i1, from
the first and add a mapping (null → i1) to the change set. It would then
process the second, destroying the first individual and creating a new
Individual, i2, (correctly) containing both personas. In doing so, it would
remove the mapping (null → i1) from the change set, but would incorrectly
not add a mapping (null → i2) in its place.
This situation can be extended to others where a single new Individual is
formed from multiple new personas coming from a single emission of
PersonaStore.personas_changed.
Closes: bgo#657282 (again)
Raul Gutierrez Segales [Wed, 7 Sep 2011 14:52:27 +0000 (15:52 +0100)]
e-d-s: kill gconfd-2 after running a test
I thought we were properly cleaning up the GConf entries
generated by each test run but it turns out that sometimes
gconfd-2 exits /after/ we've supposedly nuked it's directory.
So before cleaning up GConf's files we now kill gconfd-2
to prevent it from sync-ing to disc afterwards.
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658327
Travis Reitter [Wed, 7 Sep 2011 21:23:39 +0000 (14:23 -0700)]
Bump required Vala version.
This avoids breaking the build due to valac --fatal-warnings for our
internal code.
Travis Reitter [Wed, 7 Sep 2011 21:17:53 +0000 (14:17 -0700)]
Update for translatable strings in group-details
Travis Reitter [Wed, 7 Sep 2011 18:37:12 +0000 (11:37 -0700)]
Fix birthday calculation in eds tests.
It's not nice to discriminate against people born outside of UTC.
Matej Urbančič [Wed, 7 Sep 2011 13:36:23 +0000 (15:36 +0200)]
Updated Slovenian translation
Bruce Cowan [Wed, 7 Sep 2011 12:47:10 +0000 (13:47 +0100)]
Added British English translation
Raul Gutierrez Segales [Wed, 7 Sep 2011 11:42:31 +0000 (12:42 +0100)]
e-d-s: remove invalid assertion in set-roles test case
Raul Gutierrez Segales [Wed, 7 Sep 2011 11:41:09 +0000 (12:41 +0100)]
e-d-s: free resources properly between tests cases on link-persona test unit
Raul Gutierrez Segales [Wed, 7 Sep 2011 11:32:08 +0000 (12:32 +0100)]
e-d-s: eliminate another case of possible WebServiceFieldDetails with null value
Raul Gutierrez Segales [Wed, 7 Sep 2011 10:55:08 +0000 (11:55 +0100)]
e-d-s: don't instantiate WebServiceFieldDetails with null values
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=658327
Raul Gutierrez Segales [Wed, 7 Sep 2011 10:23:34 +0000 (11:23 +0100)]
libsocialweb: update bug link in lsw for quiescence support
Philip Withnall [Sat, 3 Sep 2011 17:36:24 +0000 (18:36 +0100)]
Bug 657783 — Prefer data from primary store when picking Individual values
Use a consistent high-level order over personas in an individual to choose
which one to use for the value of single-valued properties such as alias,
avatar and gender.
Closes: bgo#657783
Philip Withnall [Sat, 3 Sep 2011 17:35:24 +0000 (18:35 +0100)]
core: Clarify nullability of a few properties
AliasDetails.alias, NameDetails.nickname and NameDetails.full_name must never
be set to null. The empty string represents an unset value for these
properties.
Matej Urbančič [Tue, 6 Sep 2011 20:44:04 +0000 (22:44 +0200)]
Updated Slovenian translation
Matej Urbančič [Tue, 6 Sep 2011 20:42:33 +0000 (22:42 +0200)]
Added sl for Slovenian translation
Matej Urbančič [Tue, 6 Sep 2011 20:42:19 +0000 (22:42 +0200)]
Added Slovenian translation
Philip Withnall [Sun, 4 Sep 2011 17:14:04 +0000 (18:14 +0100)]
aggregator: Fix a typo in emit_individuals_changed()
Philip Withnall [Sun, 4 Sep 2011 16:49:26 +0000 (17:49 +0100)]
aggregator: Remove a useless duplicated set
This appears to be lingering from the dark days when we used
GLib.List<Persona>.
Philip Withnall [Sun, 4 Sep 2011 14:03:15 +0000 (15:03 +0100)]
aggregator: Factor out code to add personas to the link map
This doesn't change behaviour at all (apart from debug messages), but should
make the code a bit more maintainable.
Raul Gutierrez Segales [Tue, 6 Sep 2011 12:05:45 +0000 (13:05 +0100)]
Workaround for Tpf.PersonaStores with no stored channels support
Helps: https://bugzilla.gnome.org/show_bug.cgi?id=656184
Raul Gutierrez Segales [Sun, 4 Sep 2011 14:21:44 +0000 (15:21 +0100)]
e-d-s: add test case for settings roles
Raul Gutierrez Segales [Sat, 3 Sep 2011 19:30:12 +0000 (20:30 +0100)]
e-d-s: extend add persona test to handle Roles
Raul Gutierrez Segales [Sat, 3 Sep 2011 17:28:09 +0000 (18:28 +0100)]
e-d-s: implement support for RoleDetails
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=657969
Raul Gutierrez Segales [Mon, 5 Sep 2011 22:33:08 +0000 (23:33 +0100)]
build: tests don't use <folks/*.h> so add path to folks/
Raul Gutierrez Segales [Mon, 5 Sep 2011 21:25:56 +0000 (22:25 +0100)]
libsocialweb: make PersonaStores immediately quiescent
Because we don't know if a libsocialweb service has 0
contacts or is not well configured or is not authenticated, etc.;
we might end up forever for contacts to arrive and never
achieve quiescence. Until libsocialweb provides us with more
information about the status of service (is it configured and
authenticated? How many contacts should we receive? etc.) we
immediately declare it quiescent after preparing it.
Philip Withnall [Mon, 5 Sep 2011 18:53:45 +0000 (19:53 +0100)]
telepathy: Potentially fix is-quiescent
See: bgo#656184
Philip Withnall [Mon, 5 Sep 2011 20:27:27 +0000 (21:27 +0100)]
eds: Immediately make non-browseable Edsf.PersonaStores reach quiescence
For example, some LDAP servers may not be browseable (i.e. they're search
only), so should reach quiescence immediately. This prevents the
IndividualAggregator waiting for ever for them to become quiescent.
Helps: bgo#656184
Mario Blättermann [Mon, 5 Sep 2011 19:06:19 +0000 (21:06 +0200)]
[l10n] Updated German translation
dmustieles [Mon, 5 Sep 2011 11:45:53 +0000 (13:45 +0200)]
Updated Spanish translation
Fran Dieguez [Sun, 4 Sep 2011 22:17:10 +0000 (00:17 +0200)]
Updated galician translations