This page describes how KDE users can use SyncEvolution to synchronize their PIM data without depending on Evolution or Evolution Data Server (EDS). The design of SyncEvolution explicitly allows to read/write data from different storages via backends, and one such backend uses the the Akonadi API.
The core SyncEvolution code also runs well in KDE. However, usage of KWallet instead of GNOME keyring has to be enabled explicitly when SyncEvolution's modules for both are are installed, because SyncEvolution cannot determine automatically whether the user runs KDE or GNOME. The only remaining dependency on GNOME is libsoup-gnome, which works in KDE but depends on GNOME settings to detect the system's proxy settings. If this is a problem, then proxy settings can also be changed in the SyncEvolution configuration [1] itself.
However, KDE support is work in progress. Help by someone in the KDE developer community [2] is needed to finish this feature and support if and when normal users start to use it.
Install any of the 1.2.99.x pre-releases of SyncEvolution 1.3 from the downloads directories [3] (.tar.gz, .rpm) or from the unstable apt repositories [4] (replace "stable" with "unstable"). Install the syncevolution-kde packages. This will pull in the core syncevolution-bundle, which contains all the real files.
Alternatively one can compile from source (master branches of SyncEvolution and libsynthesis) with --enable-kwallet and --enable-akonadi. To avoid the dependency on EDS, use --disable-ecal and --disable-ebook.
Automatically detecting that the user wants to use Akonadi instead of EDS and which databases to use by default in Akonadi is not implemented. Therefore a KDE user has to tell SyncEvolution about that as a first. Once that part is configured, all further steps are the same as for Evolution users. See the HOWTOs [5] to get an idea of what can be done with SyncEvolution.
Once installed, run the following command
$ syncevolution --print-databases
...
KDE Address Book = KDE Contacts = kde-contacts:
Database "akonadi" opened using driver "QMYSQL"
akonadi_vcard_resource_0 (akonadi:?collection=8) <default>
KDE Calendar = kde-calendar:
akonadi_ical_resource_0 (akonadi:?collection=9) <default>
KDE Task List = KDE Tasks = kde-tasks:
akonadi_ical_resource_0 (akonadi:?collection=9) <default>
KDE Memos = kde-memos:
Memos don't seem to have any database unless created manually somehow in KDE. There's some code in the SyncEvolution Akonadi backend for memos, but is uncertain how complete the support is.
Pick the Akonadi URI of each database that you want to synchronize and configure the @default context so that those databases are used. At the same time ensure that KWallet is used for passwords from now on:
$ syncevolution --configure \
keyring=KDE \
addressbook/backend=kde-contacts \
addressbook/database=akonadi:?collection=8 \
calendar/backend=kde-calendar \
calendar/database=akonadi:?collection=9 \
todo/backend=kde-tasks \
todo/database=akonadi:?collection=9 \
@default addressbook calendar todo
Now any configuration for a SyncML peer (server [6] or phone [7]) or setup of CalDAV/CardDAV [8]/ActiveSync syncing in the @default context will use these settings. As the name implies, the @default context is used implicitly unless specified otherwise. In particular, the GTK based sync-ui [9] uses it, so until the Qt UI is ready, the GUI included in the SyncEvolution binaries can be used as fallback.
Once the @default context is configured, it should be possible to access all of the data in the four data default databases:
$ syncevolution --print-items @default addressbook
81
$ syncevolution --export - @default addressbook
BEGIN:VCARD
ADR;TYPE=home:Test Box #1;;Test Drive 1;Test Village;Lower Test County;1234
5;Testovia
ADR:Test Box #3;;Test Drive 3;Test Megacity;Test County;12347;New Testonia
ADR;TYPE=work:Test Box #2;;Test Drive 2;Test Town;Upper Test County;12346;O
ld Testovia
BDAY:2006-01-08
CATEGORIES:TEST
EMAIL:[email protected] [10]
FN:John Doe
N:Doe;John;;;
NICKNAME:user1
NOTE:This is a test case which uses almost all Evolution fields.
ORG:Test Inc.;Testing
PRODID:-//Synthesis AG//NONSGML SyncML Engine V3.4.0.0//EN
ROLE:professional test case
TEL;TYPE=HOME;TYPE=VOICE:home 2
TEL;TYPE=FAX;TYPE=HOME:homefax 5
TEL;TYPE=CELL:mobile 3
TEL;TYPE=CAR;TYPE=VOICE:car 7
TEL;TYPE=PREF:primary 8
TEL;TYPE=VOICE;TYPE=WORK:business 1
TEL;TYPE=FAX;TYPE=WORK:businessfax 4
TEL;TYPE=PAGER:pager 6
TEL;TYPE=VOICE:primary 8
TITLE:Senior Tester
UID:TDt77SeFdO
URL:VERSION:3.0
X-KADDRESSBOOK-ANNIVERSARY:20060109
X-KADDRESSBOOK-MANAGER:John">http://john.doe.com
VERSION:3.0
X-KADDRESSBOOK-ANNIVERSARY:20060109
X-KA... [11] Doe Senior
X-KADDRESSBOOK-SPOUSE:Joan Doe
END:VCARD
$ syncevolution --print-items @default calendar
...
$ syncevolution --print-items @default todo
...
Note that SyncEvolution does not try to start Akonadi daemons if they are not running yet. A D-Bus session with those daemons already running is required. See akonadictl. Previous releases tried to start Akonadi, but that occasionally had problems and wouldn't be right if the user doesn't want to use Akonadi, for example in --print-databases.
To debug problems between SyncEvolution and Akonadi daemons, run SyncEvolution like this:
$ SYNCEVOLUTION_DEBUG=1 syncevolution --daemon=no ...
dbus-monitor may also show something interesting.
[ERROR] stderr: syncevolution(9962)/libakonadi Akonadi::AgentManagerPrivate::createDBusInterface: AgentManager failed to get a valid AgentManager DBus interface. Error is: 1 "org.freedesktop.DBus.Error.NameHasNoOwner" "Could not get owner of name 'org.freedesktop.Akonadi.Control': no such name"
KDE Address Book = KDE Contacts = kde-contacts:
[ERROR] stderr: syncevolution(10193)/libakonadi Akonadi::AgentManagerPrivate::createDBusInterface: AgentManager failed to get a valid AgentManager DBus interface. Error is: 1 "org.freedesktop.DBus.Error.NameHasNoOwner" "Could not get owner of name 'org.freedesktop.Akonadi.Control': no such name"
[ERROR] Couldn't Start Akonadi Server: hence the akonadi backend of syncevolution wont work ..
Database "akonadi" opened using driver "QMYSQL"
Links
[1] http://syncevolution.org/documentation/syncevolution-usage#configuration-properties
[2] https://bugs.meego.com/show_bug.cgi?id=23782
[3] http://downloads.syncevolution.org/syncevolution/evolution/
[4] http://downloads.syncevolution.org/apt/README.txt
[5] https://syncevolution.org/wiki/HOWTO
[6] http://syncevolution.org/documentation/getting-started
[7] http://syncevolution.org/wiki/sync-your-phone-bluetooth
[8] http://syncevolution.org/wiki/howto#CalDAV/CardDAV
[9] http://syncevolution.org/documentation/synchronization-guis
[10] mailto:[email protected]
[11] http://john.doe.com<br