[SyncEvolution] bridgie syncml server and caldav/card dav server
by Robert Schetterer
Hi, is there a chance to use syncevolution
as a bridge between a syncml server and a caldav/carddav server and vice
versa
i.e horde or funambol server syncml and DAViCal etc
--
Best Regards
MfG Robert Schetterer
Germany/Munich/Bavaria
8 years, 8 months
[SyncEvolution] Syncevolution build system conversion
by Krzesimir Nowak
Hi.
My name is Krzesimir Nowak. I work for Openismus GmbH who asked me to
try to convert Syncevolution's build system to a (simpler) non-recursive
Automake build. I now have something that works, with no obvious
regressions.
I've been working in a remote branch (I branched from Chris Kuehl's
dbus-server-reorganization because that already has some improvements
and it looks like it will get into master first).
https://meego.gitorious.org/~krnowak/meego-middleware/syncevo-autotools-c...
but I have also attached it as one patch, which might be easier to
review.
This should be simpler and more robust (for instance, against weird
linker problems), with less duplication, and it allows faster builds via
make -j.
It also removes the pre/post configure system and the *-gen.am system
which can be unfamiliar to regular users of autotools.
Patrick's minimum requirement was to still have the version number
autogenerated from the git version, and I have managed to keep that.
Patrick also preferred not having to list all the templates and config
files, but I have only partly achieved that.
I think it would be wise to make further step-by-step improvements once
this first step is in master. For instance, see:
https://meego.gitorious.org/~krnowak/meego-middleware/syncevo-autotools-c...
Regards,
Krzesimir
8 years, 11 months
[SyncEvolution] Online contacts in Harmattan
by Ove Kåven
While I'm at it, someone told me that on the N950 (Harmattan), when he
was logged onto Facebook, SyncEvolution would try to include his entire
Facebook friend list in the sync, which is unfortunate.
Before I spend too much time looking into it myself (I don't have much
of it, after all), do you know an obvious way in QtContacts to suppress
such online contacts, so that only contacts that are actually stored in
the device's own database would be synced?
9 years
[SyncEvolution] regular expression library: boost Xpressive?
by Patrick Ohly
Hello!
SyncEvolution does not make use of regular expressions because it wants
to avoid a dependency on libraries which are not common enough to be
relied upon on all target platforms. That rules out Qt RegEx.
It also avoids libraries whose ABI varies too often, because it would
complicate delivering libraries via syncevolution.org. That has ruled
out anything from Boost which is more than a set of header files, like
boost::regex (libboost_regex.so.1.42.0 in Debian Stable, still in
Testing, but bound to be replaced by libboost_regex.so.1.46.0).
Another aspect is C++ support for std::string and the desire to do
search/replace. Otherwise POSIX regex support in GNU libc would be an
option.
I've just come across another alternative: boost::Xpressive.
http://www.boost.org/doc/libs/1_47_0/doc/html/xpressive/user_s_guide.html...
This is old enough (introduced in Boost 1.34.0) to not limit compilation
on older Linux distros and it is header-only.
It supports regular expression syntax, parsed at runtime. It also touts
its own C++ "domain language" for statically compiling regular
expressions as an alternative.
I am less certain about the later. While the approach looks neat, it is
also not going to be familiar for many developers, which makes the code
less approachable.
For example:
sregex re = '$' >> +_d >> '.' >> _d >> _d;
That's the same as:
sregex re = sregex::compile("$\\d\\.\d\d");
Any thoughts about using Boost Xpressive in SyncEvolution from other
developers? Any alternatives?
--
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, 1 month
[SyncEvolution] ActiveSync contact support
by Patrick Ohly
Hello!
I'm currently looking at the eas<->vCard 3.0 conversion in activesyncd.
It is partly broken (one cannot do strcpy of the BDAY value between the
two, the format is different; EMAIL without attribute was ignored).
That's easy enough to fix, but there's a more fundamental issue.
ActiveSync has a fixed data model, which in the case of contacts only
supports:
* three different email addresses (without a way to mark them as
work/home/other)
* two postal addresses (one work, one home)
* ten different phone numbers:
* two business voice
* two home voice
* one business fax
* one business fax
* one cell
* one car
* one radio (whatever that means nowadays)
* one pager
This is a subset of what vCard supports. Conversion to vCard is possible
without data loss.
The challenge now is: should the vCard to EAS conversion try to be smart
and preserve as much data as possible, or should it set what it can and
ignore the rest?
For email, the current approach is to fill the three slots with the
first three EMAIL properties. There's not much that can be done
differently.
For postal addresses it becomes more interesting: if a vCard has two
WORK ADR, should one be stored as business and the other as home
address? At least it would be stored, albeit with the wrong type.
Same for things like cell phone. I'm certain that some of my address
book entries have more than one TEL with TYPE=CELL.
Right now I am leaning towards keeping activesyncd simple. Let it store
vCards that match the EAS data model, but don't worry about those who
don't.
That pushes the problem towards SyncEvolution. It doesn't make it easier
to solve, but that's where the solution conceptually belongs.
On the other hand, SyncEvolution doesn't really know about these
limitations of a specific ActiveSync server. I bet it does depend on the
specific ActiveSync protocol revision, which is not exposed to
SyncEvolution at the moment - at least not via the libeassync API.
I could rant now about the pros and cons of a fixed data model that is
specified as part of a synchronization protocol. There are advantages,
but only as long as you don't need anything that isn't included. With
Evolution<->Google synchronization via ActiveSync we'll have the
"ironic" situation that both sides support arbitrary number of phone
numbers, but they can't synchronize that against each other.
With ActiveSync, that is a limitation of the protocol. With SyncML, the
limitation is often in the implementation - not better in practice, but
at least it could be fixed :-/ For example, Google's SyncML
implementation doesn't support BDAY, although it could.
--
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, 1 month
[SyncEvolution] automatic integration testing (BMC #735)
by Patrick Ohly
Hello!
For those who work with the SyncEvolution upstream repository: I have
implemented a new mechanism for testing patches before integrating them
into a branch.
Any branch which gets pushed as "for-master/<branch name>" will get
merged into the "master" branch by the runtest.py script and thus be
covered by the nightly testing. That also works for older branches, like
syncevolution-1-2-branch.
The commit message below has the details. As an example, the following
test run included a "for-master/pohly" branch which had three commits.
This is reported in the HTML overview page in a new section:
http://syncev.meego.com/latest/head-lucid-amd64-sources/nightly.html
--------------------------------
Source Information
syncevolution
origin/for-master/pohly: okay
syncevolution-1-2 + 195 commit(s) = 1e2a79c
working directory dirty
Patches:
Patrick Ohly - sync modes: added refresh/one-way-from-local/remote (BMC #23537)
Patrick Ohly - phone sync: delete<->delete conflict + phone calendar+todo sync (BMC #23744)
Patrick Ohly - phone sync: delete<->delete conflict + phone calendar+todo sync, part II (BMC #23744)
libsynthesis
libsynthesis_3.4.0.16+syncevolution-1-2 + 4 commit(s) = b7944db
working directory clean
---------------------------------
commit 3e9fc042dc47d090e87b5a7dccce5945128fec65
Author: Patrick Ohly <patrick.ohly(a)intel.com>
Date: Thu Oct 27 16:44:44 2011 +0000
testing: automatically integrate branches (BMC #735)
Branches committed to the libsynthesis or SyncEvolution git repo with
a name of "for-<branch>/<name>" will be automatically merged into
<branch> before starting the testing:
--sourcedir <dir with existing repos> --workdir <dir with merged repos>
The result can be reused as-is in further runtests.py invocation by using
--sourcedir <merged repos> --no-sourcedir-copy
Any local, *uncommitted* changes will be preserved and applied to
the merged sources (git stash). *Committed* changes will *not* be
applied. Always push them immediately.
Because there is a risk of loosing work when these rules are not
followed, the current state of the tree is stored as a branch created
with "git stash create" under the names
<branch>-nightly-before-<date+time> and <branch>-nightly. The latter
gets overwritten during each run.
These branches can be used to cherry-pick commits or restore the tree
as it was before the automatic merging ("git stash branch <branchname>
<branch>-nightly").
Result reporting includes information about the resulting code
revision. This includes the names of all branches which were
available for merging and whether that succeeded or failed. The output
of "git describe" is also included, always with a hash (even when it
matches a tag, in case that the tag gets moved) and whether the
working tree was dirty. All commits applied to the base branch are
listed in "git am" format.
This is done because the merged code is not pushed. This would clutter
the upstream code repository.
The "for-" prefix (instead of just "<branch>/") was added because git
got confused when <branch> was both a real branch and a directory of
other branches.
--
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, 1 month
[SyncEvolution] Recurrences in Maemo 5
by Ove Kåven
I've been looking into why, when I sync my trusty old N900 with Google
Calendar via CalDAV, the calendar shows "duplicate" events when I've
changed an instance of a recurrence in Google Calendar. (One event will
show with the old data, and one with the new data.)
Perhaps the answer would have been obvious if I knew the ical standard
better. It seems that when Google records a changed instance, they add
an event with the same global UID as the original one, and then uses
RECURRENCE-ID to identify the particular instance.
Since the Maemo 5 (Fremantle)'s calendar-backend does not store the
global UID, that was bound to fail. (And, as far as I call tell,
calendar-backend also only stores the RECURRENCE-ID if a RRULE is also
present in the same event, which it isn't - and even when it stores the
ID, it doesn't use it.)
It looks like this calendar-backend will only honor RDATEs and EXDATEs,
which must be stored in the original event (the one with the RRULE).
Then, I suppose, the changed instances would look like single events to it.
Is there any reasonable way SyncEvolution could do that conversion, so I
won't have to keep scratching my head trying to remember which was the
original, superseded event?
9 years, 2 months
[SyncEvolution] Syncing Galaxy S2
by David Hampton
I'm trying to set up my Syncevolution to synchronize my Galaxy S2 to my
local evolution data. I have paired the phone and successfully sent a
file to the device. When I run sync-evo-gtk and click the "select
sync-source" button, I don't see the phone as one of the available
direct sync sources. The phone is currently showing as available in the
gnome bluetooth device manager. What can I do to help track down this
problem?
I've also tried configuring my system to use syncev-http-server and
synchronize the phone that way. I've installed the Synthesis SyncML app
on the phone. Following the directions on the "Http Server Howto" page,
I started the server and attempted a connection. I got a stack trace,
and the statement:
no configuration found for deviceID 123456789ABC-123456789ABCDEF
I followed the recipe by issuing the commands:
export deviceID=123456789ABC-123456789ABCDEF
export peer=GalaxyS2
export username=fred
export password=12345
syncevolution --configure \
--template Synthesis\
syncURL= \
peerIsClient=1 \
remoteDeviceId=${deviceID} \
username=${username} \
password=${password} \
uri= \
sync=none \
${peer}
The only change to the recipe was replacing "--template default" with
"--template synthesis". (I get the same error with the default
template.)
The output I get back is:
SessionChanged: /org/syncevolution/Session/3925539411319060976 1
[ERROR] no such source(s): GalaxyS2 password=12345
peerIsClient=1 remoteDeviceId=123456789ABC-123456789ABCDEF
sync=none uri= username=fred
SessionChanged: /org/syncevolution/Session/3925539411319060976 0
Is this expected output? The howto page doesn't mention it.
Is there something totally obvious that I'm missing?
Thanks.
David
9 years, 2 months
Re: [SyncEvolution] syncevo-dbus-server dies - SIGPIPE
by Frederik Elwert
Hi Patrick,
-----Ursprüngliche Nachricht-----
Von: "Patrick Ohly" <patrick.ohly(a)intel.com>
Gesendet: 25.10.2011 14:02:16
An: "Frederik Elwert" <frederik.elwert(a)web.de>
Betreff: Re: [SyncEvolution] syncevo-dbus-server dies - SIGPIPE
>On Tue, 2011-10-25 at 13:41 +0200, Frederik Elwert wrote:
>> >> 2. On my work machine, where I am still running Ubuntu Lucid, the
>> >> syncevo-dbus-server fails silently. I could manage to sync using
>> >> "--daemon=no", but for everyday use s-d-s is more comfortable.
>SIGPIPE is triggered, apparently by a writev() inside libdbus.
>
>SyncEvolution doesn't do anything with SIGPIPE. I wonder whether libdbus
>expects that the process ignores it. The gdbus example does that.
>
>Can you compile a test executable which adds the following lines to
>SyncContext.cpp SyncContext::initMain()?
>
> struct sigaction sa;
> memset(&sa, 0, sizeof(sa));
> sa.sa_handler = SIG_IGN;
> sigaction(SIGPIPE, &sa, NULL);
Finally, I managed to do so, and it seems it worked. I executed the newly comipled syncevo-dbus-server, and then used the newly compiled syncevolution binary as a client. Syncing worked over bluetooth. However, at the end I got the message "[ERROR] command line execution failure". I don’t know of which kind this failure could be, since everything seems to have worked just fine.
So with that little fix, bluetooth syncing with the built-in capabilities of the N9 seems to be relatively easy. There is just one issue that I could not yet identify: There is always a number of calendar entries in ERR state, which get re-submitted with the next sync, and then again be rejected. On the N9, at a first glance no recent entries seem to be missing, so I did not do too much to triage this issue. On the other hand, this probably makes each sync use more time than necessary. Any ideas where these errors might sttem from? I’ll send you a loglevel=4 log in private, maybe you can make more sense of it than I can.
Regards,
Frederik
___________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192
9 years, 2 months
[SyncEvolution] Bug 13511
by Tino Keitel
Hi,
I can perfectly reproduce https://bugs.meego.com/show_bug.cgi?id=13511,
so the button to add a new service does not work for me at all. I'd
like to get this fixed before scheduling a 1.2 version for Debian. Any
help would be appreciated. What exactly should happen regarding the code
path if the user clicks on this button?
Regards,
Tino
9 years, 2 months