[SyncEvolution] synchronizing using vcalendar1.0
by Roger KeIrad
Hello,
I remark also that when setting syncevolution to synchronize using
vcalendar1.0 the alarm field is not synced it's totally ignored, what should
i do to activate it ?
THX
9 years, 4 months
[SyncEvolution] ActiveSync + detached recurrence without parent
by Patrick Ohly
Hello!
Consider the following situation:
1. User A sets up a recurring meeting.
2. He invites user B for one (but not all) recurrences, which
happens to be modified (say, different summary).
3. User B receives the meeting invitation. It gets added to his
Exchange calendar.
4. User A invites him for the recurring meeting.
5. User B receives that meeting invitation.
The key question is: at step 3, is the meeting stored as a detached
recurrences, or whatever the corresponding Exchange semantic is?
If it is not, then how do Outlook/Exchange deal with the second meeting
invitation? If the existing event is not marked as a detached
recurrence, then the invitation looks like an update, which should
overwrite the old data instead of adding the parent event to it.
In SyncEvolution's client-test, this situation is covered by:
CLIENT_TEST_UNIQUE_UID=1 CLIENT_TEST_SERVER=exchange ./client-test Client::Source::eas_event::LinkedItems_0::testLinkedItemsParentChild
Note that you need an up-to-date SyncEvolution and activesyncd source; I
changed the naming recently and fixed some aspects of the LinkedItems
testing.
What I now see is that SyncEvolution sends a VCALENDAR with one VEVENT
which has a RECURRENCE-ID. What comes back is that same event without
RECURRENCE-ID. I suspect that this will cause Evolution to fall into the
trap that I outlined above.
It depends a bit on what kind of meeting invitations are sent: is it one
for the parent, or one for parent and all detached recurrences? I don't
know, and the point is that different programs may deal with this
differently. I don't think the iCalendar 2.0 standard mandates a
particular behavior.
--
Best Regards
Patrick Ohly
Senior Software Engineer
Intel GmbH
Open Source Technology Center
Pützstr. 5 Phone: +49-228-2493652
53129 Bonn
Germany
9 years, 4 months
Re: [SyncEvolution] SyncEvolution on Harmattan
by Roman Morawek
On 05.08.2011 21:15, Ove K?ven wrote:
> I've successfully built a version (without DAV, since libneon is not yet
> available).
I tried calendar and addressbook sync.
1. Caldendar sync:
Works well. It is already in productive use - thanks again!
During syncing, when there are changes on the server that need to be
migrated to the N950, it prints an error message:
"[ERROR] stderr: extendedstorage.cpp: 862 - cannot remove the set of
alarms false QDBusError("", "")"
However, I cannot see any resulting problem. The syncing just seems to
work fine.
If I interpret the error message correctly, syncevolution cannot access
the DBUS (what does it do there?). This may be related to the Harmattan
security framework. You need to add an syncevolution.aegis file into the
debian package to allow this (credential: TrackerReadAccess?,
TrackerWriteAccess?). See also:
http://forum.meego.com/showthread.php?t=3955
http://www.developer.nokia.com/Community/Wiki/Harmattan:Developer_Library...
2. Addressbook sync:
As I try to sync the addressbook, syncevolution hangs. The last line of
the log file (attached) tells "creating
/home/user/.cache/syncevolution/epia-2011-08-07-12-50-a/addressbook.before".
Then nothing more happens and only a kill -9 can stop syncevolution.
Regards,
Roman
9 years, 4 months
Re: [SyncEvolution] Multi-point sync
by Ross Vandegrift
On Tue, 2011-09-06 at 07:58 +0200, Tino Keitel wrote:
> ------- Original message -------
> > From: Ross Vandegrift <ross(a)kallisti.us>
> > To: syncevolution(a)syncevolution.org
> > Sent: 5.9.'11, 22:59
> > What's the best way to do this without messing up data or creating
> > duplicates? If I just take the synced phone and sync it with the
> > laptop, will that work?
>
> It should work. I did this once to test server operation. In my production
> setup, I use a dedicated syncevolution server that my desktop, laptop and
> phone use for syncing via HTTPS.
A bad thing: if you aren't familiar with syncevolution's quirky naming
scheme, you might think you should run "--sync refresh-from-server" on
the laptop. After all, the phone appears in the list of servers. This
of course deletes all of your data, since the phone is the client, even
if it is listed under "servers"...
Good: this made me learn about the automatic syncevolution backups and
how to restore. This works very well. I had no idea I had such good
backups!
After syncing with the laptop, going back to the desktop works, but
forces a slow sync. Repeating this seems to indicate that it always
needs to slow sync calendar+todo, even if there are no changes. Is this
expected behavior?
Ross
--
Ross Vandegrift <ross(a)kallisti.us>
9 years, 4 months
[SyncEvolution] Templates and matching scores
by Chris Kühl
Hi,
I've been working on retrieving the immutable vendor and product id
provided by the Bluetooth Device ID profile (DIP). See my
bluetooth-device-id branch[1] for what's been pushed so far.
Being that we now have a means of getting reliable device information
it seems to me that in the cases where this information was
attainable, a matching score is no longer needed. If the fingerprint
matches the product name from the look-up table exactly (and it will
because we've created the lookup table and the template fingerprints)
we suggest just that one template instead of several. If we didn't get
this product name from the look-up table then everything should behave
as normal because we can't trust the user-modifiable device name
string.
Does this sound reasonable or are there other reasons you'd want more
than one template to choose from even when you're sure which device
you're dealing with?
Cheers,
Chris
[1] https://meego.gitorious.org/meego-middleware/syncevolution/commits/blueto...
9 years, 4 months
[SyncEvolution] Multi-point sync
by Ross Vandegrift
Hi everyone,
I want to have my desktop's and my laptop's Evolution synced with my
phone. Right now, I have syncevolution working to sync the phone and
the desktop Evolution.
What's the best way to do this without messing up data or creating
duplicates? If I just take the synced phone and sync it with the
laptop, will that work?
Thanks for tips,
Ross
--
Ross Vandegrift <ross(a)kallisti.us>
9 years, 4 months
Re: [SyncEvolution] SyncEvolution on Harmattan
by Roman Morawek
On Mo, 2011-09-05 at 02:14 +0200, Ove K?ven wrote:
> I've built SyncEvolution 1.1.99.6 for Harmattan, and put it up on
> http://people.debian.org/~ovek/harmattan/ as before. I've tried to add a
> simple Aegis manifest file that requests access to the calendar and
> contacts databases.
I successfully synced calendar and addressbook with my N950 (2-way
syncs). Also, there was no error message anymore at calendar sync.
Thanks for your efforts!
Regards,
Roman
9 years, 4 months
[SyncEvolution] ActiveSync + Calendar status
by Patrick Ohly
Hello!
After updating the ical2eas and eas2ical conversion paths and some of
the SyncEvolution test cases, all of the eas_event source tests pass.
However, there are some open questions/gaps:
1. removing Exceptions as part of an Update (aka removing a
detached recurrence) is ignored by Exchange (BMC #22849)
2. support by Exchange for all-day events is poor (BMC #22780)
3. the ical2eas code only works if there is a parent event (BMC
#22831)
If anyone has some bright idea or suggestions how 1 and 2 can be solved,
then I am all ears. The last one is a fairly obvious gap in the code,
but first I need to check for the right way to represent detached
recurrences without parent.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
9 years, 4 months
[SyncEvolution] ActiveSync StandardName/DaylightName
by Patrick Ohly
Hello Andy!
Some questions about the following code:
/**
* Process the VTIMEZONE component during parsing of an iCalendar
*
* @param vtimezone
* Pointer to the iCalendar VTIMEZONE component
* @param appData
* Pointer to the <ApplicationData> element to add parsed elements to
*/
static void _ical2eas_process_vtimezone (icalcomponent* vtimezone, xmlNodePtr appData)
{
if (vtimezone) {
EasTimeZone timezoneStruct;
icalcomponent* subcomponent = NULL;
gchar* timezoneBase64 = NULL;
// Only one property in a VTIMEZONE: the TZID
icalproperty* tzid = icalcomponent_get_first_property (vtimezone, ICAL_TZID_PROPERTY);
if (tzid) {
// Get the ASCII value from the iCal
gchar* tzidValue8 = (gchar*) icalproperty_get_value_as_string (tzid);
// Convert to Unicode, max. 32 chars (including the trailing 0)
gunichar2* tzidValue16 = g_utf8_to_utf16 (tzidValue8, 31, NULL, NULL, NULL);
// Copy this into the EasTimeZone struct as both StandardName and DaylightName
2645 =>>> memcpy (& (timezoneStruct.StandardName), tzidValue16, sizeof (timezoneStruct.StandardName));
memcpy (& (timezoneStruct.DaylightName), tzidValue16, sizeof (timezoneStruct.DaylightName));
g_free (tzidValue8);
g_free (tzidValue16);
}
// Now process the STANDARD and DAYLIGHT subcomponents
for (subcomponent = icalcomponent_get_first_component (vtimezone, ICAL_ANY_COMPONENT);
subcomponent;
subcomponent = icalcomponent_get_next_component (vtimezone, ICAL_ANY_COMPONENT)) {
_ical2eas_process_xstandard_xdaylight (subcomponent, &timezoneStruct, icalcomponent_isa (subcomponent));
}
Isn't the TZNAME property of the STANDARD and DAYLIGHT subcomponent a
better match for the StandardName and DaylightName?
What drew my attention to this is a valgrind warning:
==26768== Invalid read of size 1
==26768== at 0x4C25F98: memcpy (mc_replace_strmem.c:497)
==26768== by 0x7005CB9: _ical2eas_process_vtimezone (eas-cal-info-translator.c:2645)
==26768== by 0x7005F11: eas_cal_info_translator_parse_request (eas-cal-info-translator.c:2709)
==26768== by 0x6FF9603: eas_sync_msg_build_message (eas-sync-msg.c:265)
==26768== by 0x7009E49: eas_add_item_req_Activate (eas-add-item-req.c:207)
==26768== by 0x404304: eas_sync_add_items (eas-sync.c:400)
==26768== by 0x403613: dbus_glib_marshal_eas_sync_VOID__STRING_UINT64_STRING_STRING_BOXED_POINTER (eas-sync-stub.h:149)
==26768== by 0x55F29DA: ??? (in /usr/lib/libdbus-glib-1.so.2.1.0)
==26768== by 0x582578D: ??? (in /lib/libdbus-1.so.3.4.0)
==26768== by 0x581930B: dbus_connection_dispatch (in /lib/libdbus-1.so.3.4.0)
==26768== by 0x55EEBB4: ??? (in /usr/lib/libdbus-glib-1.so.2.1.0)
==26768== by 0x6AE5D3B: g_main_dispatch (gmain.c:2500)
==26768== Address 0xf129d6f is not stack'd, malloc'd or (recently) free'd
That's the memcpy(). I suspect it reads past the end of the allocated
string because of the fixed size, although I find it a bit puzzling that
valgrind does report that explicitly - usually it does.
What's the right way to determine the number of bytes to be copied?
strlen() is guaranteed to work for utf-8, but for utf-16 I am not so
sure.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
9 years, 4 months