<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SyncEvolution - The Missing Link &#187; Uncategorized</title>
	<atom:link href="http://www.estamos.de/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.estamos.de/blog</link>
	<description>About SyncEvolution, writing software and more.</description>
	<lastBuildDate>Thu, 02 Feb 2012 10:12:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1-beta1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SyncEvolution 1.1.99.5 &#8220;beyond SyncML&#8221; released</title>
		<link>http://syncevolution.org/blogs/pohly/2011/syncevolution-11995-beyond-syncml-released</link>
		<comments>http://syncevolution.org/blogs/pohly/2011/syncevolution-11995-beyond-syncml-released#comments</comments>
		<pubDate>Fri, 15 Jul 2011 09:22:33 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">107 at http://syncevolution.org</guid>
		<description><![CDATA[<p>Release 1.1.99.5 is the first release candidate for 1.2. It has gone
through a long stabilization period and thus is suitable for normal users.</p>

<p>The major new feature of the 1.2 release is support for non-SyncML
protocols in general and CalDAV/CardDAV in particular. ActiveSync
support is in development.
<!--break--></p>

<h1>Changes 1.1.1 -&#62; 1.1.99.5</h1>

<p>The major new feature of the 1.2 release is support for non-SyncML
protocols in general and CalDAV/CardDAV in particular. ActiveSync
support is in development. These protocols are implemented as backends
which are combined with other backends by SyncEvolution in a so called
"local sync". The GTK sync-ui does not yet support configuring
non-SyncML protocols. See the <a href="/documentation/syncevolution-usage">README and man page</a> for more information
on how to use the new feature via the command line.</p>

<p>Properties not supported by SyncML servers can now be preserved
locally in two-way synchronization (<a href="http://bugs.meego.com/show_bug.cgi?id=15030">BMC #15030</a>). This depends on
information about what properties a SyncML server supports ("CtCap"),
which is typically not provided by servers. SyncEvolution contains a
copy of that information for Google Contacts (<a href="http://bugs.meego.com/show_bug.cgi?id=15029">BMC #15029</a>).</p>

<p>Akonadi backend and KWallet support were merged. They are not included
yet in syncevolution.org binaries. To use them compile from source.</p>

<p>The configuration format was updated to solve a conceptual problem
inherited with the legacy property names: the "type" property had
multiple, sometimes conflicting roles. For example, setting the
preferred data format for sync with one peer might have changed the
backend selection for some other peer (<a href="http://bugs.meego.com/show_bug.cgi?id=1023">BMC #1023</a>). Now
"backend/databaseFormat/syncFormat/forceSyncFormat" replace
"type". "type" is still accepted by the command line as alias.</p>

<p>Old configurations can still be read. But writing, as it happens
during a sync, must migrate the configuration first. In contrast to
earlier, more experimental releases in the 1.2 series, 1.1.99.5 and
later automatically migrate configurations. The old configurations
will still be available (see "syncevolution --print-configs") but must
be renamed manually to use them again under their original names with
older SyncEvolution releases.</p>

<p>Other changes:</p>

<ul>
<li>a problem with enabling release mode required replacing 1.1.99.5
with a fixed 1.1.99.5a release</li>
<li>syncevo-http-server was enhanced considerably. See the <a href="/wiki/http-server-howto">HTTP server HOWTO</a></li>
<li>support NetworkManager API &#62;= 0.9 (<a href="http://bugs.meego.com/show_bug.cgi?id=19470">BMC #19470</a>)</li>
<li>Sync mode is recorded when running in SyncML server mode (<a href="http://bugs.meego.com/show_bug.cgi?id=2786">BMC #2786</a>).</li>
<li>syncevo-dbus-server automatically stops when some of its libraries
are updated and restarts if auto-syncing is on (<a href="http://bugs.meego.com/show_bug.cgi?id=14955">BMC #14955</a>).</li>
<li>Using the --sync-property and --source-property command line options is
optional, just specifying the property assignment is enough.</li>
<li>Added support for Buteo, mKCal and QtContacts in MeeGo.
Buteo and mKCal were removed again from MeeGo, so the code
is obsolete. The QtContacts backend may be still be useful
to access items via that API, but for syncing on MeeGo
the normal EDS backend is used since MeeGo reverted back
to EDS as PIM storage.</li>
<li>code cleanup and various minor fixes/improvements, see ChangeLog</li>
</ul>

<h1>Source, Installation, Further information</h1>

<p>Source snapshots are in
  <a href="http://downloads.syncevolution.org/syncevolution/sources" title="http://downloads.syncevolution.org/syncevolution/sources">http://downloads.syncevolution.org/syncevolution/sources</a></p>

<p>i386, amd64 and lpia binaries for Debian-based distributions are available via the "unstable" syncevolution.org repository. Add the following entry to your /apt/source.list, then install "syncevolution-evolution":
<div class="codeblock"><code>&#160; deb <a href="http://downloads.syncevolution.org/apt" title="http://downloads.syncevolution.org/apt">http://downloads.syncevolution.org/apt</a> unstable main</code></div></p>

<p>These binaries include the "sync-ui" GTK GUI and were compiled for Ubuntu 8.04 LTS (Hardy). Older distributions like Debian 4.0 (Etch) can no longer be supported with precompiled binaries because of missing libraries, but the source still compiles when not enabling the GUI (the default).</p>

<p>The same binaries are also available as .tar.gz and .rpm archives in <a href="http://downloads.syncevolution.org/syncevolution/evolution" title="http://downloads.syncevolution.org/syncevolution/evolution">http://downloads.syncevolution.org/syncevolution/evolution</a>. In contrast to 0.8.x archives, the 1.0 .tar.gz archives have to be unpacked and the content must be moved to /usr, because several files would not be found otherwise.</p>

<p>After installation, follow the <a href="/documentation/getting-started">getting started</a> steps.</p>
]]></description>
			<content:encoded><![CDATA[<p>Release 1.1.99.5 is the first release candidate for 1.2. It has gone
through a long stabilization period and thus is suitable for normal users.</p>

<p>The major new feature of the 1.2 release is support for non-SyncML
protocols in general and CalDAV/CardDAV in particular. ActiveSync
support is in development.
<!--break--></p>

<h1>Changes 1.1.1 -&gt; 1.1.99.5</h1>

<p>The major new feature of the 1.2 release is support for non-SyncML
protocols in general and CalDAV/CardDAV in particular. ActiveSync
support is in development. These protocols are implemented as backends
which are combined with other backends by SyncEvolution in a so called
"local sync". The GTK sync-ui does not yet support configuring
non-SyncML protocols. See the <a href="http://syncevolution.org/documentation/syncevolution-usage">README and man page</a> for more information
on how to use the new feature via the command line.</p>

<p>Properties not supported by SyncML servers can now be preserved
locally in two-way synchronization (<a href="http://bugs.meego.com/show_bug.cgi?id=15030">BMC #15030</a>). This depends on
information about what properties a SyncML server supports ("CtCap"),
which is typically not provided by servers. SyncEvolution contains a
copy of that information for Google Contacts (<a href="http://bugs.meego.com/show_bug.cgi?id=15029">BMC #15029</a>).</p>

<p>Akonadi backend and KWallet support were merged. They are not included
yet in syncevolution.org binaries. To use them compile from source.</p>

<p>The configuration format was updated to solve a conceptual problem
inherited with the legacy property names: the "type" property had
multiple, sometimes conflicting roles. For example, setting the
preferred data format for sync with one peer might have changed the
backend selection for some other peer (<a href="http://bugs.meego.com/show_bug.cgi?id=1023">BMC #1023</a>). Now
"backend/databaseFormat/syncFormat/forceSyncFormat" replace
"type". "type" is still accepted by the command line as alias.</p>

<p>Old configurations can still be read. But writing, as it happens
during a sync, must migrate the configuration first. In contrast to
earlier, more experimental releases in the 1.2 series, 1.1.99.5 and
later automatically migrate configurations. The old configurations
will still be available (see "syncevolution --print-configs") but must
be renamed manually to use them again under their original names with
older SyncEvolution releases.</p>

<p>Other changes:</p>

<ul>
<li>a problem with enabling release mode required replacing 1.1.99.5
with a fixed 1.1.99.5a release</li>
<li>syncevo-http-server was enhanced considerably. See the <a href="http://syncevolution.org/wiki/http-server-howto">HTTP server HOWTO</a></li>
<li>support NetworkManager API &gt;= 0.9 (<a href="http://bugs.meego.com/show_bug.cgi?id=19470">BMC #19470</a>)</li>
<li>Sync mode is recorded when running in SyncML server mode (<a href="http://bugs.meego.com/show_bug.cgi?id=2786">BMC #2786</a>).</li>
<li>syncevo-dbus-server automatically stops when some of its libraries
are updated and restarts if auto-syncing is on (<a href="http://bugs.meego.com/show_bug.cgi?id=14955">BMC #14955</a>).</li>
<li>Using the --sync-property and --source-property command line options is
optional, just specifying the property assignment is enough.</li>
<li>Added support for Buteo, mKCal and QtContacts in MeeGo.
Buteo and mKCal were removed again from MeeGo, so the code
is obsolete. The QtContacts backend may be still be useful
to access items via that API, but for syncing on MeeGo
the normal EDS backend is used since MeeGo reverted back
to EDS as PIM storage.</li>
<li>code cleanup and various minor fixes/improvements, see ChangeLog</li>
</ul>

<h1>Source, Installation, Further information</h1>

<p>Source snapshots are in
  <a href="http://downloads.syncevolution.org/syncevolution/sources" title="http://downloads.syncevolution.org/syncevolution/sources">http://downloads.syncevolution.org/syncevolution/sources</a></p>

<p>i386, amd64 and lpia binaries for Debian-based distributions are available via the "unstable" syncevolution.org repository. Add the following entry to your /apt/source.list, then install "syncevolution-evolution":
<div class="codeblock"><code>&nbsp; deb <a href="http://downloads.syncevolution.org/apt" title="http://downloads.syncevolution.org/apt">http://downloads.syncevolution.org/apt</a> unstable main</code></div></p>

<p>These binaries include the "sync-ui" GTK GUI and were compiled for Ubuntu 8.04 LTS (Hardy). Older distributions like Debian 4.0 (Etch) can no longer be supported with precompiled binaries because of missing libraries, but the source still compiles when not enabling the GUI (the default).</p>

<p>The same binaries are also available as .tar.gz and .rpm archives in <a href="http://downloads.syncevolution.org/syncevolution/evolution" title="http://downloads.syncevolution.org/syncevolution/evolution">http://downloads.syncevolution.org/syncevolution/evolution</a>. In contrast to 0.8.x archives, the 1.0 .tar.gz archives have to be unpacked and the content must be moved to /usr, because several files would not be found otherwise.</p>

<p>After installation, follow the <a href="http://syncevolution.org/documentation/getting-started">getting started</a> steps.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/blogs/pohly/2011/syncevolution-11995-beyond-syncml-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The state of syncing in open source</title>
		<link>http://syncevolution.org/blogs/pohly/2011/state-syncing-open-source</link>
		<comments>http://syncevolution.org/blogs/pohly/2011/state-syncing-open-source#comments</comments>
		<pubDate>Fri, 15 Apr 2011 14:25:25 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">101 at http://syncevolution.org</guid>
		<description><![CDATA[<p>There have been two blog posts recently who point out that data synchronization using open source tools still doesn't work as well as it should:</p>

<ul>
<li><a href="http://www.happyassassin.net/2011/04/13/the-continuing-state-of-contact-calendar-synchronization-suck">Adam Williamson: "The continuing state of contact + calendar synchronization suck"</a></li>
<li><a href="http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/">Matěj Cepl: Synchronization sucks!</a></li>
</ul>

<p>As someone who has worked hard on making synchronization suck less I can't let this stand without commenting... in particular not when SyncEvolution is mentioned as not being reliable! ;-)
<!--break--></p>

<h1>Nitpicking</h1>

<p>First let me point out some factual mistakes in Adam's post: <em>"Maemo's whole synchronization story"</em> has never been based on SyncEvolution. SyncEvolution is an add-on, supported entirely on a volunteer basis by Ove Kaveh on the device. If people do not get help for SyncEvolution in the Maemo forums, then I can't do anything about it because I don't have the time to keep up with everything that is said (or asked) on the web about SyncEvolution. It's up to the Maemo community to help their peers. SyncEvolution on Linux to N900 <a href="https://bugs.meego.com/show_bug.cgi?id=4835">broken somewhere outside of SyncEvolution</a> (device, Bluetooth stack) and without support by Nokia for their closed-source sync component on the device I don't see much chances to fix it, short of some Bluetooth experts getting involved.</p>

<p>The statements about MeeGo are also incorrect. Evolution Data Server was not the preferred PIM storage for MeeGo 1.2 until recently, so depending on it for CalDAV/CardDAV support was not an option. Adam points to <a href="https://bugs.meego.com/show_bug.cgi?id=319">a bug report</a> where I captured some thoughts around the technical aspects. Perhaps this was too brief to be understand without context, but I still think that the arguments and conclusion are valid. More on that below.</p>

<h1>What exactly is the complaint?</h1>

<p>Adam tried SyncEvolution with Horde and eGroupware. Other people were
able to get these combinations working, for example just a few days
ago <a href="http://www.ruinelli.ch/how-to-sync-egroupware-with-a-tablet-n900-with-syncevolution">George Runelli with
eGroupware</a>. It
seems to depend a lot on the exact setup on the server side. I had
offered Adam to help with diagnosing his problem with Horde
(unexpected slow syncs), but he never replied to my email.</p>

<p>I'm still convinced that the problem is not in SyncEvolution, but
rather on the server side, because SyncEvolution works fine with a
variety of other SyncML servers (Funambol, Memotoo, Synthesis,
Mobical, to name just those that I test with nightly). It is not
SyncEvolution's fault that the open source groupwares seem to have
less stable SyncML support.</p>

<p>I tried to work with Horde and eGroupware developers a while back when
I started with SyncEvolution. I had a hard time getting anyone to
reply to my questions and emails, even when contacting the original
developers directly. If the situation is different today, then I'd be
happy to restart that effort.</p>

<p>I'm not sure what kind of problem Matěj had with SyncEvolution. He
doesn't say in his blog post, only that it does not allow him to
reliably sync with his server running Zarafa. I'm not surprised. To
the best of my knowledge, the two are unable to synchronize against
each other by design, because SyncEvolution is based on SyncML and
Zarafa on ActiveSync. So is the complaint that SyncEvolution uses an
open protocol and not a patent-encumbered proprietary protocol?</p>

<h1>Proposed solutions</h1>

<p>Adam then continues to suggest that the data synchronization model
itself is flawed and should be replaced with client/server model where
changes are always stored on the server immediately, as in Evolution's
CalDAV and CardDAV backends. This became more clear in an email
discussion after he contacted me regarding his blog post.</p>

<p>The key difference is this:</p>

<ul>
<li>True synchronization allows offline modification of the data.</li>
<li>Capable devices by design store a complete copy of the data, without depending on one particular server to remain online.</li>
</ul>

<p>Adam argued that a client/server model can be combined with caching of
items and changes. But then the client/server model <strong>becomes</strong>
synchronization and must deal with the same kind of problems that it was meant to avoid, like
conflicts between items on client and server. Adam <a href="http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/#comment-37">later
said</a>
that changes that cannot be stored anymore should simply be
discarded. That doesn't sound like a very useful approach, because
users won't be able to remember what changes might have been lost and
if they do, would most likely be forced to redo them manually. PIM data is
more complex then plain text, so the merge strategies that programers know
how to use with source code and revision control systems do not apply.
Normal users will be even more challenged.</p>

<p>The point about not depending on a central server is important,
too. In the SyncML world we have recently seen that ScheduleWorld shut
down. No data was lost, because by design all users always had a full
copy of their data on their own storage. The same can't be said for
all the popular Web 2.0 cloud services...</p>

<p>My devices are not always online, for practical and economical
reasons. Therefore I want the ability to make changes while offline
and will continue to work on the more capable model.</p>

<h1>SyncML</h1>

<p>One other aspect is the question whether the data synchronization
model itself is flawed, just some protocols implementing it, or only
specific implementations of these protocols.</p>

<p>I think the approach itself is sound and useful. Adam's own
observation that other implementations of the concept seem to work
better confirms that.</p>

<p>But SyncML definitely has its flaws, both in the protocol itself
and in implementations. SyncML tries to be too
flexible for its own good. It allows the implementation of very dumb devices. The
downside is an increased complexity on the server side.</p>

<p>Because of its open nature, there have been a variety of
implementations with varying degrees of capabilities both in the data
that is supported and in the quality of the protocol implementation
itself. That makes it challenging today to support the whole range of
SyncML capable peers. In that sense, SyncML is a victim of its own success.</p>

<h1>The silver lining</h1>

<p>I have some hopes today for CalDAV/CardDAV based
synchronization. SyncEvolution 1.2 will have support for that,
natively. A native implementation has the conceptual advantage that it
can use meta data (resource URI + eTag) to speed up change detection,
something that wouldn't be possible when going through Evolution Data
Server.</p>

<p>CalDAV enforces that each item must have a globally unique ID, which
is a considerable simplification for implementing
synchronization. CardDAV unfortunately still doesn't.</p>

<p>Good open source implementations exist, for example Apple's Calendar
server. It passes all of the automated SyncEvolution tests. I also
hear good things about DAViCal; unfortunately I haven't found the time
to test with it yet. What might be missing in both cases is good
integration into a groupware solution, for those who need that.</p>
]]></description>
			<content:encoded><![CDATA[<p>There have been two blog posts recently who point out that data synchronization using open source tools still doesn't work as well as it should:</p>

<ul>
<li><a href="http://www.happyassassin.net/2011/04/13/the-continuing-state-of-contact-calendar-synchronization-suck">Adam Williamson: "The continuing state of contact + calendar synchronization suck"</a></li>
<li><a href="http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/">Matěj Cepl: Synchronization sucks!</a></li>
</ul>

<p>As someone who has worked hard on making synchronization suck less I can't let this stand without commenting... in particular not when SyncEvolution is mentioned as not being reliable! ;-)
<!--break--></p>

<h1>Nitpicking</h1>

<p>First let me point out some factual mistakes in Adam's post: <em>"Maemo's whole synchronization story"</em> has never been based on SyncEvolution. SyncEvolution is an add-on, supported entirely on a volunteer basis by Ove Kaveh on the device. If people do not get help for SyncEvolution in the Maemo forums, then I can't do anything about it because I don't have the time to keep up with everything that is said (or asked) on the web about SyncEvolution. It's up to the Maemo community to help their peers. SyncEvolution on Linux to N900 <a href="https://bugs.meego.com/show_bug.cgi?id=4835">broken somewhere outside of SyncEvolution</a> (device, Bluetooth stack) and without support by Nokia for their closed-source sync component on the device I don't see much chances to fix it, short of some Bluetooth experts getting involved.</p>

<p>The statements about MeeGo are also incorrect. Evolution Data Server was not the preferred PIM storage for MeeGo 1.2 until recently, so depending on it for CalDAV/CardDAV support was not an option. Adam points to <a href="https://bugs.meego.com/show_bug.cgi?id=319">a bug report</a> where I captured some thoughts around the technical aspects. Perhaps this was too brief to be understand without context, but I still think that the arguments and conclusion are valid. More on that below.</p>

<h1>What exactly is the complaint?</h1>

<p>Adam tried SyncEvolution with Horde and eGroupware. Other people were
able to get these combinations working, for example just a few days
ago <a href="http://www.ruinelli.ch/how-to-sync-egroupware-with-a-tablet-n900-with-syncevolution">George Runelli with
eGroupware</a>. It
seems to depend a lot on the exact setup on the server side. I had
offered Adam to help with diagnosing his problem with Horde
(unexpected slow syncs), but he never replied to my email.</p>

<p>I'm still convinced that the problem is not in SyncEvolution, but
rather on the server side, because SyncEvolution works fine with a
variety of other SyncML servers (Funambol, Memotoo, Synthesis,
Mobical, to name just those that I test with nightly). It is not
SyncEvolution's fault that the open source groupwares seem to have
less stable SyncML support.</p>

<p>I tried to work with Horde and eGroupware developers a while back when
I started with SyncEvolution. I had a hard time getting anyone to
reply to my questions and emails, even when contacting the original
developers directly. If the situation is different today, then I'd be
happy to restart that effort.</p>

<p>I'm not sure what kind of problem Matěj had with SyncEvolution. He
doesn't say in his blog post, only that it does not allow him to
reliably sync with his server running Zarafa. I'm not surprised. To
the best of my knowledge, the two are unable to synchronize against
each other by design, because SyncEvolution is based on SyncML and
Zarafa on ActiveSync. So is the complaint that SyncEvolution uses an
open protocol and not a patent-encumbered proprietary protocol?</p>

<h1>Proposed solutions</h1>

<p>Adam then continues to suggest that the data synchronization model
itself is flawed and should be replaced with client/server model where
changes are always stored on the server immediately, as in Evolution's
CalDAV and CardDAV backends. This became more clear in an email
discussion after he contacted me regarding his blog post.</p>

<p>The key difference is this:</p>

<ul>
<li>True synchronization allows offline modification of the data.</li>
<li>Capable devices by design store a complete copy of the data, without depending on one particular server to remain online.</li>
</ul>

<p>Adam argued that a client/server model can be combined with caching of
items and changes. But then the client/server model <strong>becomes</strong>
synchronization and must deal with the same kind of problems that it was meant to avoid, like
conflicts between items on client and server. Adam <a href="http://luther.ceplovi.cz/blog/2011/04/synchronization-sucks/#comment-37">later
said</a>
that changes that cannot be stored anymore should simply be
discarded. That doesn't sound like a very useful approach, because
users won't be able to remember what changes might have been lost and
if they do, would most likely be forced to redo them manually. PIM data is
more complex then plain text, so the merge strategies that programers know
how to use with source code and revision control systems do not apply.
Normal users will be even more challenged.</p>

<p>The point about not depending on a central server is important,
too. In the SyncML world we have recently seen that ScheduleWorld shut
down. No data was lost, because by design all users always had a full
copy of their data on their own storage. The same can't be said for
all the popular Web 2.0 cloud services...</p>

<p>My devices are not always online, for practical and economical
reasons. Therefore I want the ability to make changes while offline
and will continue to work on the more capable model.</p>

<h1>SyncML</h1>

<p>One other aspect is the question whether the data synchronization
model itself is flawed, just some protocols implementing it, or only
specific implementations of these protocols.</p>

<p>I think the approach itself is sound and useful. Adam's own
observation that other implementations of the concept seem to work
better confirms that.</p>

<p>But SyncML definitely has its flaws, both in the protocol itself
and in implementations. SyncML tries to be too
flexible for its own good. It allows the implementation of very dumb devices. The
downside is an increased complexity on the server side.</p>

<p>Because of its open nature, there have been a variety of
implementations with varying degrees of capabilities both in the data
that is supported and in the quality of the protocol implementation
itself. That makes it challenging today to support the whole range of
SyncML capable peers. In that sense, SyncML is a victim of its own success.</p>

<h1>The silver lining</h1>

<p>I have some hopes today for CalDAV/CardDAV based
synchronization. SyncEvolution 1.2 will have support for that,
natively. A native implementation has the conceptual advantage that it
can use meta data (resource URI + eTag) to speed up change detection,
something that wouldn't be possible when going through Evolution Data
Server.</p>

<p>CalDAV enforces that each item must have a globally unique ID, which
is a considerable simplification for implementing
synchronization. CardDAV unfortunately still doesn't.</p>

<p>Good open source implementations exist, for example Apple's Calendar
server. It passes all of the automated SyncEvolution tests. I also
hear good things about DAViCal; unfortunately I haven't found the time
to test with it yet. What might be missing in both cases is good
integration into a groupware solution, for those who need that.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/blogs/pohly/2011/state-syncing-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ScheduleWorld shut down &#8211; R.I.P</title>
		<link>http://syncevolution.org/blogs/pohly/2010/scheduleworld-shut-down-rip</link>
		<comments>http://syncevolution.org/blogs/pohly/2010/scheduleworld-shut-down-rip#comments</comments>
		<pubDate>Tue, 14 Dec 2010 13:14:04 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">91 at http://syncevolution.org</guid>
		<description><![CDATA[<p>End of November, the scheduleworld.com service shut down. As a user
<a href="http://article.gmane.org/gmane.comp.mobile.syncevolution/1868">confirmed
later</a>,
a notification had been sent earlier to paying customers. So the
site is really gone and not just encountering some temporary
problems. There does not seem to be any publicly accessible statement
about the shutdown, hence this blog post.</p>

<p>I have no information about the reasons for discontinuing the
service. The notification to users did not give an explanation
either. My guess is that the business side of the service did
not work out. Syncing is a very challenging, technically difficult
problem. I suspect that many users do not understand how much hard
work goes into it and thus are less willing to pay for it. Then there
is the competition with free services. If users are happy with online
access Google Calendar, why should they bother paying for a
synchronization service? There are reasons (see below), but perhaps not enough users care.</p>

<h1>This is really sad, for several reasons.</h1>

<p>First, ScheduleWorld offered a technically superior SyncML
implementation for calendar synchronization by supporting the full
iCalendar 2.0 semantic, including <a href="http://www.estamos.de/blog/2008/06/30/icalendar-20-detached-recurrences/">UID and
RECURRENCE-ID</a>. When describing these properties in 2008, I wrote that not supporting them "looks like a rather significant gap
for SyncML-based calendar synchronization compared to proprietary
solutions. Hopefully SyncML server vendors will wake up and do
something about it..." I don't think they have - or can anyone point
to a SyncML server which supports this today, over one and a half year
later? I'm not aware of any.</p>

<p>Second, although ScheduleWorld used the open source Funambol server
code, none of the extensions or modifications were ever made
available. That's perfectly compliant with the license of the code that
was used (GPL instead of AGPL as today), but it implies that the ScheduleWorld
source code is now lost and no-one can use or study it.</p>

<p>Third, I believe that storing my data on my own hardware and
synchronizing it via open standards is crucial. ScheduleWorld made
that possible for users who did not want to run their own SyncML
server. With true syncing instead of just online access, data is
available while offline - pretty obvious, but worth spelling out explicitly. When
syncing is based on open standards, users can decide which service
they want to use. They don't depend on that service to store their data; important,
because any service might go away unexpectedly and take the data with it. With
ScheduleWorld, all data was always and by design also stored locally,
so no data was lost when the site shut down. The same is not true for
many (if not all) of the now popular Web 2.0 services.</p>

<h1>Replacements for ScheduleWorld</h1>

<p>I'm not sure yet what I should recommend as replacement. Memotoo seems
to be popular, but it does not support UID/RECURRENCE-ID semantic, so
there are <a href="http://bugs.meego.com/show_bug.cgi?id=1180">issues when synchronizing complex iCalendar 2.0 calendar
data</a>. For advanced users
the <a href="http://syncevolution.org/development/http-server-howto">SyncEvolution server
mode</a> might be
an alternative, but it is in a very rough state at this point and
requires a publicly accessible machine for anytime, anywhere
synchronization.</p>
]]></description>
			<content:encoded><![CDATA[<p>End of November, the scheduleworld.com service shut down. As a user
<a href="http://article.gmane.org/gmane.comp.mobile.syncevolution/1868">confirmed
later</a>,
a notification had been sent earlier to paying customers. So the
site is really gone and not just encountering some temporary
problems. There does not seem to be any publicly accessible statement
about the shutdown, hence this blog post.</p>

<p>I have no information about the reasons for discontinuing the
service. The notification to users did not give an explanation
either. My guess is that the business side of the service did
not work out. Syncing is a very challenging, technically difficult
problem. I suspect that many users do not understand how much hard
work goes into it and thus are less willing to pay for it. Then there
is the competition with free services. If users are happy with online
access Google Calendar, why should they bother paying for a
synchronization service? There are reasons (see below), but perhaps not enough users care.</p>

<h1>This is really sad, for several reasons.</h1>

<p>First, ScheduleWorld offered a technically superior SyncML
implementation for calendar synchronization by supporting the full
iCalendar 2.0 semantic, including <a href="http://www.estamos.de/blog/2008/06/30/icalendar-20-detached-recurrences/">UID and
RECURRENCE-ID</a>. When describing these properties in 2008, I wrote that not supporting them "looks like a rather significant gap
for SyncML-based calendar synchronization compared to proprietary
solutions. Hopefully SyncML server vendors will wake up and do
something about it..." I don't think they have - or can anyone point
to a SyncML server which supports this today, over one and a half year
later? I'm not aware of any.</p>

<p>Second, although ScheduleWorld used the open source Funambol server
code, none of the extensions or modifications were ever made
available. That's perfectly compliant with the license of the code that
was used (GPL instead of AGPL as today), but it implies that the ScheduleWorld
source code is now lost and no-one can use or study it.</p>

<p>Third, I believe that storing my data on my own hardware and
synchronizing it via open standards is crucial. ScheduleWorld made
that possible for users who did not want to run their own SyncML
server. With true syncing instead of just online access, data is
available while offline - pretty obvious, but worth spelling out explicitly. When
syncing is based on open standards, users can decide which service
they want to use. They don't depend on that service to store their data; important,
because any service might go away unexpectedly and take the data with it. With
ScheduleWorld, all data was always and by design also stored locally,
so no data was lost when the site shut down. The same is not true for
many (if not all) of the now popular Web 2.0 services.</p>

<h1>Replacements for ScheduleWorld</h1>

<p>I'm not sure yet what I should recommend as replacement. Memotoo seems
to be popular, but it does not support UID/RECURRENCE-ID semantic, so
there are <a href="http://bugs.meego.com/show_bug.cgi?id=1180">issues when synchronizing complex iCalendar 2.0 calendar
data</a>. For advanced users
the <a href="http://syncevolution.org/development/http-server-howto">SyncEvolution server
mode</a> might be
an alternative, but it is in a very rough state at this point and
requires a publicly accessible machine for anytime, anywhere
synchronization.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/blogs/pohly/2010/scheduleworld-shut-down-rip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SyncEvolution 1.0.1 released</title>
		<link>http://syncevolution.org/blogs/pohly/2010/syncevolution-101-released</link>
		<comments>http://syncevolution.org/blogs/pohly/2010/syncevolution-101-released#comments</comments>
		<pubDate>Sat, 17 Jul 2010 07:08:23 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">77 at http://syncevolution.org</guid>
		<description><![CDATA[<h1>SyncEvolution 1.0.1</h1>

<p>A bug fix release. The main reason for releasing it is that
SyncEvolution 1.0 no longer worked on recent distros (Fedora Core 13,
Debian testing) because of a name clash between the Bluez D-Bus
utility code and recent glib.</p>

<p>Details:</p>

<ul>
<li><p>compile fix for FC 13 (and possibly others): use private copy of gdbus (<a href="http://bugs.meego.com/show_bug.cgi?id=3556">BMC #3556</a>)</p></li>
<li><p>sync-ui: prevent overwriting device configs by accident (<a href="http://bugs.meego.com/show_bug.cgi?id=3566">BMC #3566</a>,<a href="http://bugs.meego.com/show_bug.cgi?id=1194">BMC #1194</a>)
Setting up a phone used the template name as config name and overwrote
an existing configuration of another phone that was created using that
same template. Now the code uses the Bluetooth device name as set on the
device and checks for (less likely) collisions. It also sanitizes the
name to avoid complicated config names (only relevant when also using
the command line).</p></li>
<li><p>syncevo-dbus-server: accept 'application/vnd.syncml+xml; charset=UTF-8' for starting an HTTP session (<a href="http://bugs.meego.com/show_bug.cgi?id=3554">BMC #3554</a>) 
The redundant charset specification was set by the Funambol
Thunderbird client. Because of a literal comparison against
'application/vnd.syncml+xml' the messages were rejected.</p></li>
<li><p>config fix: operations on non-peer configs failed (<a href="http://bugs.meego.com/show_bug.cgi?id=3157">BMC #3157</a>)
When running operations on a non-peer configuration (like --restore @default
addressbook), the operation fails with
[ERROR] : type 'select backend' not supported</p></li>
<li><p>ZYB.com: service goes away end of June 2010, template removed (<a href="http://bugs.meego.com/show_bug.cgi?id=3310">BMC #3310</a>)</p></li>
<li>some build (<a href="http://bugs.meego.com/show_bug.cgi?id=2586">BMC #2586</a>, <a href="http://bugs.meego.com/show_bug.cgi?id=3557">BMC #3557</a>) and language updates</li>
</ul>

<h1>Source, Installation, Further information</h1>

<p>Source snapshots are in
  <a href="http://downloads.syncevolution.org/syncevolution/sources" title="http://downloads.syncevolution.org/syncevolution/sources">http://downloads.syncevolution.org/syncevolution/sources</a></p>

<p>i386, amd64 and lpia binaries of 1.0 for Debian-based distributions are available via the "stable" syncevolution.org repository. Add the following entry to your /apt/source.list, then install "syncevolution-evolution":
<div class="codeblock"><code>&#160; deb <a href="http://downloads.syncevolution.org/apt" title="http://downloads.syncevolution.org/apt">http://downloads.syncevolution.org/apt</a> stable main</code></div></p>

<p>These binaries include the "sync-ui" GTK GUI and were compiled for Ubuntu 8.04 LTS (Hardy). Older distributions like Debian 4.0 (Etch) can no longer be supported with precompiled binaries because of missing libraries, but the source still compiles when not enabling the GUI (the default).</p>

<p>The same binaries are also available as .tar.gz and .rpm archives in <a href="http://downloads.syncevolution.org/syncevolution/evolution" title="http://downloads.syncevolution.org/syncevolution/evolution">http://downloads.syncevolution.org/syncevolution/evolution</a>. In contrast to 0.8.x archives, the 1.0 .tar.gz archives have to be unpacked and the content must be moved to /usr, because several files would not be found otherwise.</p>

<p>After installation, follow the <a href="/documentation/getting-started">getting started</a> steps.</p>
]]></description>
			<content:encoded><![CDATA[<h1>SyncEvolution 1.0.1</h1>

<p>A bug fix release. The main reason for releasing it is that
SyncEvolution 1.0 no longer worked on recent distros (Fedora Core 13,
Debian testing) because of a name clash between the Bluez D-Bus
utility code and recent glib.</p>

<p>Details:</p>

<ul>
<li><p>compile fix for FC 13 (and possibly others): use private copy of gdbus (<a href="http://bugs.meego.com/show_bug.cgi?id=3556">BMC #3556</a>)</p></li>
<li><p>sync-ui: prevent overwriting device configs by accident (<a href="http://bugs.meego.com/show_bug.cgi?id=3566">BMC #3566</a>,<a href="http://bugs.meego.com/show_bug.cgi?id=1194">BMC #1194</a>)
Setting up a phone used the template name as config name and overwrote
an existing configuration of another phone that was created using that
same template. Now the code uses the Bluetooth device name as set on the
device and checks for (less likely) collisions. It also sanitizes the
name to avoid complicated config names (only relevant when also using
the command line).</p></li>
<li><p>syncevo-dbus-server: accept 'application/vnd.syncml+xml; charset=UTF-8' for starting an HTTP session (<a href="http://bugs.meego.com/show_bug.cgi?id=3554">BMC #3554</a>) 
The redundant charset specification was set by the Funambol
Thunderbird client. Because of a literal comparison against
'application/vnd.syncml+xml' the messages were rejected.</p></li>
<li><p>config fix: operations on non-peer configs failed (<a href="http://bugs.meego.com/show_bug.cgi?id=3157">BMC #3157</a>)
When running operations on a non-peer configuration (like --restore @default
addressbook), the operation fails with
[ERROR] : type 'select backend' not supported</p></li>
<li><p>ZYB.com: service goes away end of June 2010, template removed (<a href="http://bugs.meego.com/show_bug.cgi?id=3310">BMC #3310</a>)</p></li>
<li>some build (<a href="http://bugs.meego.com/show_bug.cgi?id=2586">BMC #2586</a>, <a href="http://bugs.meego.com/show_bug.cgi?id=3557">BMC #3557</a>) and language updates</li>
</ul>

<h1>Source, Installation, Further information</h1>

<p>Source snapshots are in
  <a href="http://downloads.syncevolution.org/syncevolution/sources" title="http://downloads.syncevolution.org/syncevolution/sources">http://downloads.syncevolution.org/syncevolution/sources</a></p>

<p>i386, amd64 and lpia binaries of 1.0 for Debian-based distributions are available via the "stable" syncevolution.org repository. Add the following entry to your /apt/source.list, then install "syncevolution-evolution":
<div class="codeblock"><code>&nbsp; deb <a href="http://downloads.syncevolution.org/apt" title="http://downloads.syncevolution.org/apt">http://downloads.syncevolution.org/apt</a> stable main</code></div></p>

<p>These binaries include the "sync-ui" GTK GUI and were compiled for Ubuntu 8.04 LTS (Hardy). Older distributions like Debian 4.0 (Etch) can no longer be supported with precompiled binaries because of missing libraries, but the source still compiles when not enabling the GUI (the default).</p>

<p>The same binaries are also available as .tar.gz and .rpm archives in <a href="http://downloads.syncevolution.org/syncevolution/evolution" title="http://downloads.syncevolution.org/syncevolution/evolution">http://downloads.syncevolution.org/syncevolution/evolution</a>. In contrast to 0.8.x archives, the 1.0 .tar.gz archives have to be unpacked and the content must be moved to /usr, because several files would not be found otherwise.</p>

<p>After installation, follow the <a href="http://syncevolution.org/documentation/getting-started">getting started</a> steps.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/blogs/pohly/2010/syncevolution-101-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memotoo</title>
		<link>http://syncevolution.org/wiki/memotoo</link>
		<comments>http://syncevolution.org/wiki/memotoo#comments</comments>
		<pubDate>Sun, 25 Apr 2010 08:09:45 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">56 at http://syncevolution.org</guid>
		<description><![CDATA[<p>Server with very good support for SyncEvolution, see <a href="http://www.memotoo.com/index.php?rub=infoSyncML" title="http://www.memotoo.com/index.php?rub=infoSyncML">http://www.memotoo.com/index.php?rub=infoSyncML</a>. It is part of SyncEvolution's nightly testing and included in the list of configuration templates that come with SyncEvolution.</p>
]]></description>
			<content:encoded><![CDATA[<p>Server with very good support for SyncEvolution, see <a href="http://www.memotoo.com/index.php?rub=infoSyncML" title="http://www.memotoo.com/index.php?rub=infoSyncML">http://www.memotoo.com/index.php?rub=infoSyncML</a>. It is part of SyncEvolution's nightly testing and included in the list of configuration templates that come with SyncEvolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/memotoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eGroupware</title>
		<link>http://syncevolution.org/wiki/egroupware</link>
		<comments>http://syncevolution.org/wiki/egroupware#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:56:47 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">53 at http://syncevolution.org</guid>
		<description><![CDATA[<p>Contributed on 10.09.2006 by Mathias Weyland, who also graciously provided access to a server for testing for a while. Not currently tested.</p>
<p>SyncEvolution can handle synchronization with <a href="http://www.egroupware.org/">eGroupware (eGW)</a>, starting with 0.4-pre2 plus one patch, which was included in 0.4.</p>
<p>Make sure eGW fits the needs for correct operation with syncML, in particular php5 and Pear::Log. See <a href="http://www.egroupware.org/index.php?page_name=sync&#38;wikipage=SyncMLInstallHowto">here</a> for information about requirements and settings.</p>
<p>The SyncEvolution setup is rather straightforward. Although the SyncML code of eGW is based on horde (see above), there's no need to restrict authentication to auth-basic.</p>
<p>Set syncURL to <a href="http://&#60;host&#62;/&#60;egw-base&#62;/rpc.php" title="http://&#60;host&#62;/&#60;egw-base&#62;/rpc.php">http://&#60;host&#62;/&#60;egw-base&#62;/rpc.php</a>. Set "type = text/calendar" and "uri = ./calendar" for the calendar and "type = text/x-vcard" and "uri = ./contacts", respectively for the address book.</p>
<p><strong>Warning:</strong> "uri = ./calendar" apparently is the official uri, but several users reported that with that setting events created in eGW were not copied into Evolution while "uri = calendar" worked alright. Until this is clarified, the recommendation is to use "uri = calendar".</p>
<p>All in all, synchronization is working well, but I'd like to mention some things I noticed not to work:</p>
<ul>
<li>Recurring events don't stop at a final date in eGW, even when this final date has been set in evolution.
<p><em>"A <a href="/documentation/known-issues">known issue</a> of old Evolution versions." -- Patrick</em></p></li>
<li>Recurrence exceptions are not respected.
<p><em>"eGW seems to rely on storing the remaining instances of an event, but does not include this information in the data it sends to SyncEvolution. On the other hand, SyncEvolution also does not yet support this either. Exceptions defined in Evolution's dialog are stored as simple properties and are sent to the server, but eGW does not seem to use that information."</em></p></li>
<li>New appointments in eGW are not sync'ed to evolutions. But updates are.
<p><em>"Could not reproduce. If it still occurs, please submit a bug report."</em></p></li>
<li>With SyncEvolution 0.6, Ioannis Ioannou had a problem with <a href="http://sourceforge.net/tracker/index.php?func=detail&#38;aid=1796086&#38;group_id=146288&#38;atid=764733">lost or messed up telephones</a>. Part of the problem was in SyncEvolution (it did not correctly detect types as sent by eGW, fixed in 0.7), part of the problem was in eGW (it does not handle the vCards sent by SyncEvolution correctly). Ioannis found out that eGW has hard-coded mappings for incoming data, which might have to be adapted on a case-by-case basis for clients. He <a href="http://www.nabble.com/Syncevolution,-Evolution,-and-EGW-t4603937s3741.html"> submitted a patch</a> (thanks!) which adds a SyncEvolution mapping to eGW. Hopefully this problem will be fixed. The <a href="http://server.hellespont.com/egroupware.patch">original version of his patch</a> changes <span class="codefrag">class.vcaladdressbook.inc.php</span> in <span class="codefrag">egroupware/addressbook/inc</span> and was tested on 1.4.001, 1.4.002, and the trunk of 2007-09-25th.</li>
<li>If communication with eGW stops with a <span class="codefrag">Server Failure: server returned error code -1</span> error, then the reason is most likely a parser problem in eGW. Some information about this can also be found in the <a href="http://www.nabble.com/Syncevolution,-Evolution,-and-EGW-t4603937s3741.html">same discussion thread</a>.</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<p>Contributed on 10.09.2006 by Mathias Weyland, who also graciously provided access to a server for testing for a while. Not currently tested.</p>
<p>SyncEvolution can handle synchronization with <a href="http://www.egroupware.org/">eGroupware (eGW)</a>, starting with 0.4-pre2 plus one patch, which was included in 0.4.</p>
<p>Make sure eGW fits the needs for correct operation with syncML, in particular php5 and Pear::Log. See <a href="http://www.egroupware.org/index.php?page_name=sync&amp;wikipage=SyncMLInstallHowto">here</a> for information about requirements and settings.</p>
<p>The SyncEvolution setup is rather straightforward. Although the SyncML code of eGW is based on horde (see above), there's no need to restrict authentication to auth-basic.</p>
<p>Set syncURL to <a href="http://&lt;host&gt;/&lt;egw-base&gt;/rpc.php" title="http://&lt;host&gt;/&lt;egw-base&gt;/rpc.php">http://&lt;host&gt;/&lt;egw-base&gt;/rpc.php</a>. Set "type = text/calendar" and "uri = ./calendar" for the calendar and "type = text/x-vcard" and "uri = ./contacts", respectively for the address book.</p>
<p><strong>Warning:</strong> "uri = ./calendar" apparently is the official uri, but several users reported that with that setting events created in eGW were not copied into Evolution while "uri = calendar" worked alright. Until this is clarified, the recommendation is to use "uri = calendar".</p>
<p>All in all, synchronization is working well, but I'd like to mention some things I noticed not to work:</p>
<ul>
<li>Recurring events don't stop at a final date in eGW, even when this final date has been set in evolution.
<p><em>"A <a href="http://syncevolution.org/documentation/known-issues">known issue</a> of old Evolution versions." -- Patrick</em></p></li>
<li>Recurrence exceptions are not respected.
<p><em>"eGW seems to rely on storing the remaining instances of an event, but does not include this information in the data it sends to SyncEvolution. On the other hand, SyncEvolution also does not yet support this either. Exceptions defined in Evolution's dialog are stored as simple properties and are sent to the server, but eGW does not seem to use that information."</em></p></li>
<li>New appointments in eGW are not sync'ed to evolutions. But updates are.
<p><em>"Could not reproduce. If it still occurs, please submit a bug report."</em></p></li>
<li>With SyncEvolution 0.6, Ioannis Ioannou had a problem with <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1796086&amp;group_id=146288&amp;atid=764733">lost or messed up telephones</a>. Part of the problem was in SyncEvolution (it did not correctly detect types as sent by eGW, fixed in 0.7), part of the problem was in eGW (it does not handle the vCards sent by SyncEvolution correctly). Ioannis found out that eGW has hard-coded mappings for incoming data, which might have to be adapted on a case-by-case basis for clients. He <a href="http://www.nabble.com/Syncevolution,-Evolution,-and-EGW-t4603937s3741.html"> submitted a patch</a> (thanks!) which adds a SyncEvolution mapping to eGW. Hopefully this problem will be fixed. The <a href="http://server.hellespont.com/egroupware.patch">original version of his patch</a> changes <span class="codefrag">class.vcaladdressbook.inc.php</span> in <span class="codefrag">egroupware/addressbook/inc</span> and was tested on 1.4.001, 1.4.002, and the trunk of 2007-09-25th.</li>
<li>If communication with eGW stops with a <span class="codefrag">Server Failure: server returned error code -1</span> error, then the reason is most likely a parser problem in eGW. Some information about this can also be found in the <a href="http://www.nabble.com/Syncevolution,-Evolution,-and-EGW-t4603937s3741.html">same discussion thread</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/egroupware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Horde</title>
		<link>http://syncevolution.org/wiki/horde</link>
		<comments>http://syncevolution.org/wiki/horde#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:54:54 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">52 at http://syncevolution.org</guid>
		<description><![CDATA[<p>Contributed on 08.05.2006 by <a href="mailto:tppytel@sophrosune.org">Todd Pytel</a> based on an early 0.4 CVS snapshot.</p>
<p>The <a href="http://www.horde.org/">Horde framework</a> includes a SyncML component compatible with SyncEvolution and other SyncML clients. This component is built in to the core framework and does not need to be separately installed. For synchronization to work, you need to do a few things....</p>
<ol>
<li>Use fresh Horde sources: Many SyncML changes are applied only to Horde's CVS HEAD branch. The stable branch does include some SyncML support, but it's not as complete as what's found in CVS HEAD. If you really don't want to use CVS HEAD sources entirely, you might be able to get away with updating just the files /horde/rpc.php and /horde/turba/lib/api.php. Try the versions from the stable CVS branch first before trying HEAD, and don't complain if they don't work correctly on top of a release installation. Much better to just use CVS HEAD altogether.</li>
<li>Configure authentication: On the Horde server, the only thing that might require configuration is authentication. By default, SyncEvolution will use md5 authentication, which is nice when you're using HTTP rather than HTTPS. Support for md5 was very recently added to Horde, and will almost certainly have changed by the time you read this. At the moment, see the comments in SyncML/Backend.php around line 404 for details. Alternatively (and more easily), run SyncML over HTTPS and tell SyncEvolution to use basic, non-md5 authentication, by adding
<p><div class="codeblock"><code>clientAuthType = syncml:auth-basic serverAuthType = syncml:auth-basic</code></div></p>
<p>to the <span class="codefrag">~/.sync4j/evolution/horde/spds/syncml/config.txt</span> file (see below).
  </p></li>
<li>Configure SyncEvolution: Read the generic SyncEvolution docs, then come back here. Copy one of the prepackaged configuration directories (like etc/scheduleworld_1) to ~/.sync4j/evolution/horde as a starting point. It doesn't matter much which template directory you use. They're not very different, and there's not much to configure. You need to modify (or create) the following items. In ~/.sync4j/evolution/horde/spds/syncml/config.txt:
<p><div class="codeblock"><code>syncURL = https://your.horde.site.com/horde/rpc.php</code></div></p>
<p>Adjust http/https appropriately and make sure the address matches the webroot configuration on the server.</p>
<p><div class="codeblock"><code>deviceId = sc-api-nat-&#38;lt;identifier&#38;gt;</code></div></p>
<p>Each computer/username combo that syncs should have a different identifier, for example, using an identifier like "home-myusername" makes sense. The username and password lines should match your Horde username and password. Add the AuthType lines from #2, if you don't want md5 authentication. Next, decide which Evolution databases you want to synchronize. I use only the addressbook, but the others should be similar. In ~/.sync4j/evolution/horde/spds/sources/addressbook_1/config.txt set</p>
<p><div class="codeblock"><code>uri = contacts</code></div></p>
<p>That's it. The other components use "calendar" (Kronolith), "notes" (Mnemo), and "tasks" (Nag). If you don't want to synchronize a particular database, be sure to set "sync = none" in its config file.</p></li>
<li>Try it out:
<p><div class="codeblock"><code>syncevolution horde</code></div></p>
<p>If you get errors, check out <a href="http://wiki.horde.org/SyncHowTo">the Horde Sync wiki</a> for more information on debugging. The <a href="http://www.horde.org/mail/">sync@lists.horde.org mailing list</a> is also very useful. Check the archives there, to see if there's any info about your problem.</p></li>
</ol>
<p><strong>Enhancement</strong> (Note: This may be unnecessary when Turba 3 is released.)</p>
<p>The default configuration for Turba (Horde's address book component) is less than ideal for SyncML, because the turba_objects database table is somewhat oversimplified (for example, all components of an address are combined in a single field). This leads to vcards that are missing some fields when they're synced between Horde and Evolution. Fortunately, Turba is very clever, when it comes to reading its database, and can automagically adjust to many nondefault configurations. If you're creating a fresh Turba installation, you can improve its SyncML capabilities greatly by using <a href="http://www.estamos.de/projects/SyncML/sources.php.txt">this custom sources.php file</a>. If you do this, then you'll also need to make sure the appropriate fields are available in the turba_objects table in your database. Using <a href="http://www.estamos.de/projects/SyncML/turba_objects.pgsql.sql">this postgres script</a>, instead of the one included with Horde, will create an appropriate turba_objects from scratch. For MySQL, there is no such script available, so make the changes manually. Nothing else needs to be done with Turba, apart from using the custom sources.php and creating an appropriate turba_objects table. The Turba code will automatically recognize the new fields and use them correctly in SyncML transactions. Thanks to Karsten Fourmont for providing this solution.</p>
]]></description>
			<content:encoded><![CDATA[<p>Contributed on 08.05.2006 by <a href="mailto:tppytel@sophrosune.org">Todd Pytel</a> based on an early 0.4 CVS snapshot.</p>
<p>The <a href="http://www.horde.org/">Horde framework</a> includes a SyncML component compatible with SyncEvolution and other SyncML clients. This component is built in to the core framework and does not need to be separately installed. For synchronization to work, you need to do a few things....</p>
<ol>
<li>Use fresh Horde sources: Many SyncML changes are applied only to Horde's CVS HEAD branch. The stable branch does include some SyncML support, but it's not as complete as what's found in CVS HEAD. If you really don't want to use CVS HEAD sources entirely, you might be able to get away with updating just the files /horde/rpc.php and /horde/turba/lib/api.php. Try the versions from the stable CVS branch first before trying HEAD, and don't complain if they don't work correctly on top of a release installation. Much better to just use CVS HEAD altogether.</li>
<li>Configure authentication: On the Horde server, the only thing that might require configuration is authentication. By default, SyncEvolution will use md5 authentication, which is nice when you're using HTTP rather than HTTPS. Support for md5 was very recently added to Horde, and will almost certainly have changed by the time you read this. At the moment, see the comments in SyncML/Backend.php around line 404 for details. Alternatively (and more easily), run SyncML over HTTPS and tell SyncEvolution to use basic, non-md5 authentication, by adding
<p><div class="codeblock"><code>clientAuthType = syncml:auth-basic serverAuthType = syncml:auth-basic</code></div></p>
<p>to the <span class="codefrag">~/.sync4j/evolution/horde/spds/syncml/config.txt</span> file (see below).
  </p></li>
<li>Configure SyncEvolution: Read the generic SyncEvolution docs, then come back here. Copy one of the prepackaged configuration directories (like etc/scheduleworld_1) to ~/.sync4j/evolution/horde as a starting point. It doesn't matter much which template directory you use. They're not very different, and there's not much to configure. You need to modify (or create) the following items. In ~/.sync4j/evolution/horde/spds/syncml/config.txt:
<p><div class="codeblock"><code>syncURL = https://your.horde.site.com/horde/rpc.php</code></div></p>
<p>Adjust http/https appropriately and make sure the address matches the webroot configuration on the server.</p>
<p><div class="codeblock"><code>deviceId = sc-api-nat-&amp;lt;identifier&amp;gt;</code></div></p>
<p>Each computer/username combo that syncs should have a different identifier, for example, using an identifier like "home-myusername" makes sense. The username and password lines should match your Horde username and password. Add the AuthType lines from #2, if you don't want md5 authentication. Next, decide which Evolution databases you want to synchronize. I use only the addressbook, but the others should be similar. In ~/.sync4j/evolution/horde/spds/sources/addressbook_1/config.txt set</p>
<p><div class="codeblock"><code>uri = contacts</code></div></p>
<p>That's it. The other components use "calendar" (Kronolith), "notes" (Mnemo), and "tasks" (Nag). If you don't want to synchronize a particular database, be sure to set "sync = none" in its config file.</p></li>
<li>Try it out:
<p><div class="codeblock"><code>syncevolution horde</code></div></p>
<p>If you get errors, check out <a href="http://wiki.horde.org/SyncHowTo">the Horde Sync wiki</a> for more information on debugging. The <a href="http://www.horde.org/mail/">sync@lists.horde.org mailing list</a> is also very useful. Check the archives there, to see if there's any info about your problem.</p></li>
</ol>
<p><strong>Enhancement</strong> (Note: This may be unnecessary when Turba 3 is released.)</p>
<p>The default configuration for Turba (Horde's address book component) is less than ideal for SyncML, because the turba_objects database table is somewhat oversimplified (for example, all components of an address are combined in a single field). This leads to vcards that are missing some fields when they're synced between Horde and Evolution. Fortunately, Turba is very clever, when it comes to reading its database, and can automagically adjust to many nondefault configurations. If you're creating a fresh Turba installation, you can improve its SyncML capabilities greatly by using <a href="http://www.estamos.de/projects/SyncML/sources.php.txt">this custom sources.php file</a>. If you do this, then you'll also need to make sure the appropriate fields are available in the turba_objects table in your database. Using <a href="http://www.estamos.de/projects/SyncML/turba_objects.pgsql.sql">this postgres script</a>, instead of the one included with Horde, will create an appropriate turba_objects from scratch. For MySQL, there is no such script available, so make the changes manually. Nothing else needs to be done with Turba, apart from using the custom sources.php and creating an appropriate turba_objects table. The Turba code will automatically recognize the new fields and use them correctly in SyncML transactions. Thanks to Karsten Fourmont for providing this solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/horde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synthesis</title>
		<link>http://syncevolution.org/wiki/synthesis</link>
		<comments>http://syncevolution.org/wiki/synthesis#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:54:02 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">51 at http://syncevolution.org</guid>
		<description><![CDATA[<p>The <a href="http://www.synthesis.ch">Synthesis server</a> is a very configurable server which stores its data in a database. Contact data can be exchanged in vCard 2.1 and 3.0 format when using the default configuration, but due to how it is stored, several attributes used by Evolution get lost or modified. It might be possible to protect against loss of those attributes, by tuning the Synthesis server setup. More work would also be required to exchange calendar entries and tasks, because in the default configuration they are not accepted in the iCalendar 2.0 format of Evolution.</p>
]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.synthesis.ch">Synthesis server</a> is a very configurable server which stores its data in a database. Contact data can be exchanged in vCard 2.1 and 3.0 format when using the default configuration, but due to how it is stored, several attributes used by Evolution get lost or modified. It might be possible to protect against loss of those attributes, by tuning the Synthesis server setup. More work would also be required to exchange calendar entries and tasks, because in the default configuration they are not accepted in the iCalendar 2.0 format of Evolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/synthesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ovi</title>
		<link>http://syncevolution.org/wiki/ovi</link>
		<comments>http://syncevolution.org/wiki/ovi#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:52:24 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">50 at http://syncevolution.org</guid>
		<description><![CDATA[<p><a href="http://ovi.com">OVI.com</a> is Nokia's set of web services, including among them complete PIM data handling and synchronization with phones via SyncML. <a href="http://bugzilla.moblin.org/show_bug.cgi?id=3182" title="support ovi.com (Nokia sync service)">Formal interoperability testing</a> has not been done yet, but a user of SyncEvolution 0.9.1 reports that it works for him. Getting the necessary setting information for SyncEvolution is a bit tricky, so check out his nice report for a <a href="http://mobileyog.blogspot.com/2009/11/how-to-sync-contactscalendar-from.html">step-by-step guide</a>.</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://ovi.com">OVI.com</a> is Nokia's set of web services, including among them complete PIM data handling and synchronization with phones via SyncML. <a href="http://bugzilla.moblin.org/show_bug.cgi?id=3182" title="support ovi.com (Nokia sync service)">Formal interoperability testing</a> has not been done yet, but a user of SyncEvolution 0.9.1 reports that it works for him. Getting the necessary setting information for SyncEvolution is a bit tricky, so check out his nice report for a <a href="http://mobileyog.blogspot.com/2009/11/how-to-sync-contactscalendar-from.html">step-by-step guide</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/ovi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funambol</title>
		<link>http://syncevolution.org/wiki/funambol</link>
		<comments>http://syncevolution.org/wiki/funambol#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:51:36 +0000</pubDate>
		<dc:creator>Patrick Ohly</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">49 at http://syncevolution.org</guid>
		<description><![CDATA[<p>Since SyncEvolution 0.9 with calendar and task support. Funambol supports iCalendar 2.0   in the current server, so this is enabled in the configuration template.  Not all iCalendar 2.0 features are supported by the server,   most notably support for meetings (drops attendees), meeting  invitations (drops UID), detached recurrences (drops RECURRENCE-ID). See README.funambol for details.</p>
<p>Interoperability with the Funambol server was improved in SyncEvolution 0.9 by adding support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY, #2418). Lost ACTION property has a work around (#2422).</p>
<p>To enable the full support for all data in a configuration created with SyncEvolution &#60; 0.9, so that it exchanges items in the more suitable iCalendar 2.0 format, use:<br />
<div class="codeblock"><code>&#160; syncevolution --configure \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; --source-property sync=two-way \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; funambol calendar todo<br />&#160; syncevolution --configure \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; --source-property type=&#39;calendar:text/calendar!&#39; \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; funambol calendar<br />&#160; syncevolution --configure \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; --source-property type=&#39;todo:text/calendar!&#39; \<br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; funambol todo</code></div></p>
<p>Without the exclamation mark, format auto-negotiation would pick the less capable vCalendar 1.0 format because that is marked as preferred by the server.</p>
]]></description>
			<content:encoded><![CDATA[<p>Since SyncEvolution 0.9 with calendar and task support. Funambol supports iCalendar 2.0   in the current server, so this is enabled in the configuration template.  Not all iCalendar 2.0 features are supported by the server,   most notably support for meetings (drops attendees), meeting  invitations (drops UID), detached recurrences (drops RECURRENCE-ID). See README.funambol for details.</p>
<p>Interoperability with the Funambol server was improved in SyncEvolution 0.9 by adding support for some vCard extensions (X-MANAGER/ASSISTANT/SPOUSE/ANNIVERSARY, #2418). Lost ACTION property has a work around (#2422).</p>
<p>To enable the full support for all data in a configuration created with SyncEvolution &lt; 0.9, so that it exchanges items in the more suitable iCalendar 2.0 format, use:<br />
<div class="codeblock"><code>&nbsp; syncevolution --configure \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --source-property sync=two-way \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; funambol calendar todo<br />&nbsp; syncevolution --configure \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --source-property type=&#039;calendar:text/calendar!&#039; \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; funambol calendar<br />&nbsp; syncevolution --configure \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --source-property type=&#039;todo:text/calendar!&#039; \<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; funambol todo</code></div></p>
<p>Without the exclamation mark, format auto-negotiation would pick the less capable vCalendar 1.0 format because that is marked as preferred by the server.</p>
]]></content:encoded>
			<wfw:commentRss>http://syncevolution.org/wiki/funambol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

