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 ~/.local/share/evolution/
directories.
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
~/.local/share/evolution/calendar/system/calendar.ics
and
~/.local/share/evolution/tasks/system/tasks.ics
)
Installation
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/syncevolution/default/peers/MyHorde
folder.
First edit config.ini
to setup the main connexion to the SyncML server
of Horde.
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
synchronization.
Adaptation of the names of the PIM resources
Inside the 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 sync
specify if the resource should be sync and how (one way, two-way, etc…). The
second one uri
give the name of the resource on the server.
Here are the setting I tested:
addressbook
andmemo
:
sync = disabled
calendar
with
sync = two-way
uri = event
todo
with
sync = two-way
uri = task
To launch the synchronization simply launch syncevolution with the name of the profile to use:
$ syncevolution MyHorde
That is!