Horde is a groupware framework that combine a lot of PIM data. One of the major problem with PIM data is to get them synchronized among different device. One of the most used to do so is SyncML that allow the two-way synchronization of PIM. Horde embeds a SyncML interface.
evolution and its PIM data storage
syncevolution is a software that allow the synchronization of the data contained inside the evolution PIM data management software through SyncML. However, there is no need to install evolution software to be able to synchronize the data, the storage used is independent to the presence or not of evolution and is using widely used standard like iCalendar files for calendars.
By default, they are stored in
For example calendars are stored in the calendar sub-folder and tasks in the
tasks sub-folder, each of them as an unique iCalendar file (respectively
On Debian, syncevolution is packaged. Therefore, to install it :
# apt-get install syncevolution
It will also install [[!debpkg evolution-data-server]] package that will the handling of the data in the format used by evolution.
By default, syncevolution will synchronized the data between the different peers and the evolution database. We will see how to synchronized it with Horde database.
The first thing is to create a new peer. For that we will use a template. To get the list of all templates available just enter the following command:
$ syncevolution --template ? test
You can put what ever you want after the
? but something should be
specified otherwise you will get an error. Maybe a bug of the version used.
It should return something like this:
[INFO] [INFO] Available configuration templates (clients and servers): [INFO] template name = template description [INFO] eGroupware = http://www.egroupware.org [INFO] Funambol = http://my.funambol.com [INFO] Google_Calendar = event sync via CalDAV, use for the 'target-config@google-calendar' config [INFO] Google_Contacts = contact sync via SyncML, see http://www.google.com/support/mobile/bin/topic.py?topic=22181 [INFO] Goosync = http://www.goosync.com/ [INFO] Memotoo = http://www.memotoo.com [INFO] Mobical = https://www.everdroid.com [INFO] Nokia_N900 = Template for all Nokia phones which support contacts, notes and combined tasks+events [INFO] Oracle = http://www.oracle.com/technology/products/beehive/index.html [INFO] Ovi = http://www.ovi.com [INFO] ScheduleWorld = server no longer in operation [INFO] Sony_Ericsson_K750i = Template for old Sony Ericsson phones, with separate databases for contacts/events/tasks/memos and SyncML 1.1 [INFO] Sony_Ericsson_W595 = Template for all current Sony Ericsson phones, with separate databases for contacts/events/tasks/memos and SyncML 1.2 [INFO] SyncEvolution = http://www.syncevolution.org [INFO] SyncEvolution_Client = SyncEvolution server side template [INFO] Synthesis = http://www.synthesis.ch [INFO] WebDAV = contact and event sync using WebDAV, use for the 'target-config@<server>' config [INFO] Yahoo = contact and event sync using WebDAV, use for the 'target-config@yahoo' config
Configuration of the access to the Horde server.
No template already exist for Horde, but the one for Funambol is working nicely
with minor adaptations. To create a new pear called
MyHorde based on
Funambol template just run the following command:
$ syncevolution --template Funambol MyHorde
It will set up several files and folders under the
config.ini to setup the main connexion to the SyncML server
The first value to change is
syncURL that specify the URL of the SyncML
server. Just addaped it to fit your horde server:
syncURL = https://my.server.com/horde3/rpc.php
Then set the
username to be used to connect to the server and finally
choose to set up the
password either as plain text in the configuration
as the name of an environmental variable or as nothing to be asked for each
Adaptation of the names of the PIM resources
sources/ are configured the different PIM data that can be
synchronized. syncevolution is able to synchronize the address book, the
calendar, the memos and the todo list each of them configured in the
config.ini file of the corresponding folder.
Two main variables are set in these different files the first one
specify if the resource should be sync and how (one way, two-way, etc…). The
uri give the name of the resource on the server.
Here are the setting I tested:
sync = disabled
sync = two-way uri = event
sync = two-way uri = task
To launch the synchronization simply launch syncevolution with the name of the profile to use:
$ syncevolution MyHorde