Achtung

Dieser Beitrag ist schon sehr alt, und die Infos hier sind sicherlich hoffnungslos veraltet…

Mehrere Kalender per syncevolution und funambol synchronisieren: “yet another Dirty Hack”

Ubuntu
ubuntuusers
Autor:in

produnis

Veröffentlichungsdatum

11. Februar 2010

Ich bin mal aus Testzwecken von Thunderbird auf Evolution umgestiegen. In Evolution habe ich neben verschiedenen IMAP-Mailkonten auch meine ganzen Kalender und Adressbücher importiert. In Thunderbird konnte ich mit Hilfe von SyncKolab und Addressbook-Synchronizer meine Daten (Kontakte, Kalender, Termine…) zwischen verschiedenen Rechnern synchronisieren.

Für Evolution nutze ich die Variante Funambol-Server und syncevolution. Der Funambol-Server wird auf meinem Heim-Server installiert, welcher per DynDNS auch aus dem Internet erreichbar ist. Mittels syncevolution gleichen die Clients dann ihre Daten über diesen Server ab.

1. Funambol-Server installieren

Zunächst installiert man den Funambol-Server so, wie im Wiki der Ubuntuusers beschrieben:

wget http://download.forge.objectweb.org/sync4j/funambol-8.0.2.bin sudo sh ./funambol-8.0.2.bin

Hier bestätigt man die Lizenz mit einem “yes”, erlaubt den vorgeschlagenen Installations-Pfad /opt per RETURN-Taste, untersagt jedoch den Start des Servers mit einem “no”.

Mittels

sudo cp /opt/Funambol/bin/funambol /etc/init.d/funambol

kopiert man das Startscript in den Ordner /ect/init.d/ und editiert es anschließend:

sudo vim /etc/init.d/funambol

denn der Eintrag

FUNAMBOL_HOME=`(cd .. ; pwd)`

muss noch geändert werden in

FUNAMBOL_HOME=`(cd /opt/Funambol ; pwd)`

Jetzt kann der Server gestartet werden:

sudo /etc/init.d/funambol start

Damit dies bei jedem Systemstart automatisch geschieht, gibt man ein:

sudo update-rc.d funambol defaults

2. Funambol-Server konfigurieren

Der Server muss nun noch ein wenig konfiguriert werden. Im Terminal tippt man ein:

sudo /opt/Funambol/admin/bin/funamboladmin

Es startet das Konfigurationstool. Per “File => Login” kommt man auf den Server. Im Untermenü “SERVERNAME => Users” kann man nun das Admin-Passwort ändern und auch gleich den ersten User anlegen.

Wichtiger ist aber das Feld “SERVERNAME => Server settings”. Im Bereich “Engine” muss im Feld “Server URI” die komplette URL des Servers angegeben werden. Diese folgt dem Prinzip http://server.ip:8080/funambol/ds [caption id=“attachment_1041” align=“alignnone” width=“300” caption=“Server-URI anpassen”][Server-URI anpassen](../../images/2010/02/screenshot_funambol-Server-URI.png)[/caption] Ab jetzt ist der Server für den Standardbetrieb bereit.

syncevolution installieren

Syncevolution ist im Repository von Ubuntu (derzeit 9.10 Karmic Koala) enthalten. Man installiert es einfach wie gewohnt per

sudo apt-get install syncevolution

Anschließend macht man syncevolution mit dem Funambol-Server bekannt:

syncevolution --configure --sync-property username=BENUTZERNAME --sync-property password=PASSWORT funambol

wobei BENTUZERNAME und PASSWORT durch die Daten des Users zu ersetzen sind, der mit dem Konfigurationstool auf dem Funambol-Server angelegt wurde. Nun muss noch die Datei ~/.config/syncevolution/funambol/config.ini etwas angepasst werden:

vim ~/.config/syncevolution/funambol/config.ini

Hier trägt man unter “syncURL” die URI aus Schritt 2 ein (Engine - Server URI), in unserem Beispiel war das http://server.ip:8080/funambol/ds

Und schon kann es los gehen

4. Synchronisation

Der Aufruf

syncevolution funambol

startet eine Standard-Synchronisation, bei welche jeweils der “Default”-Kalender, -Adressbuch, -Notizen, -Aufgaben aus Evolution mit dem Server abgeglichen werden. Wenn du wissen möchtest, welche die Default-Einstellungen sind, dann tipp einfach “nur”

syncevoltion

ohne weitere Optionen ein. Bei mir sieht das zB u.a. so aus:

(...)
Evolution Address Book = Evolution Contacts = evolution-contacts:
   Ubuntu One (couchdb://127.0.0.1) <default>
   Persönlich (file:///home/produnis/.evolution/addressbook/local/system)
(...)

Wie man sehen kann, wird bei mir nicht das Adressbuch “Persönlich”, sondern “Ubuntu One” per default synchronisiert. Wenn man das ändern möchte (so wie ich), editiert man die Datei ~/.config/syncevolution/funambol/sources/addressbook/config.ini und sucht dort die Stelle

# evolutionsource = 

Hier entfernt man die “#” und trägt den Adressbuchnamen ein, z.B:

evolutionsource = Persönlich

Übrigens hab ich hier mit Umlauten in den Namen keinerlei Probleme. Diese “evolutionsource” funktioniert übrigens auch bei Kalendern oder Aufgaben etc.

Man findet alle Synchronisations-Quellen im Ordner ~/.config/syncevolution/funambol/sources Für jede Quelle existiert ein eigener Ordner, in welchem wiederum eine eigene config.ini liegt, die man ggf. seinen Einstellungen entsprechend anpassen kann.

5. mehrere Kalender und/oder Adressbücher synchronisieren

Ich habe hier zwei Adressbücher und vier Kalender. Da standardmäßig immer nur ein Kalender, ein Adressbuch, eine Notiz usw. synchronisiert werden kann, müssen wir noch weiter Hand anlegen. ACHTUNG, DIE HIER VORGESTELLTE METHODE FUNKTIONIERT LEIDER NICHT!!! FÜR DEN FUNKTIONIERENDEN “DIRTY HACK” MUSST DU UNTEN WEITERLESEN!

5.1. Funambol-Server erweitern Der Funambol-Server benötigt für jede zusätzliche Synchronisationsquelle (Adressbuch, Kalender, Notzien etc.) eine eigene “SyncSource”. Diese können mit dem Konfigurationstool hinzugefügt werden.

sudo /opt/Funambol/admin/bin/funamboladmin

Man logt sich wieder per “File => Login” ein und wechselt dann zu “Modules => foundation => FunambolFoundationConnector”. Um einen neuen Kalender hinzuzufügen, klickt man mit der rechten Maustaste auf “PIM Calendar SynSource” und wählt “Add SyncSourceadd SyncSource (Kalender) Bei mir handelt es sich unter anderem um einen Geburtstagskalender, und daher trage ich ein:

  • Source URI: calbirth

  • Name: calbirth

  • Default type: vCalendar

…und setze ein Häkchen bei “Task” und “Events”.

Diesen Schritt wiederhole ich nun für alle Kalender, wobei ich jeweils andere Source-URI / Namen eintrage (z.B. caluni, calfeier usw.)

Für das zweite Adressbuch klicke ich mit der rechten Maustaste auf “PIM Contact SynSource” und wähle wieder “Add SyncSource” aus. add SyncSource (Adressbuch) In die Felder trage ich ein:

  • Source URI: card2

  • Name: card2

  • Default type: vCard

Auf diese Weise kann man so viele Quellen hinzufügen, wie man möchte.

5.2. syncevolution anpassen Jetzt, da wir die nötigen SyncSourcen angelegt haben, müssen wir syncevolution entsprechend anpassen. Wie bereits erwähnt, geht syncevolution alle Unterverzeichnisse in ~/.config/syncevolution/funambol/sources/ durch und liest die jeweiligen config.ini-Dateien aus.

Man wechselt also zunächst ins Verzeichnis ~/.config/syncevolution/funambol/sources/. Für jede neue SyncSource erstellt man ein neues Verzeichnis. Für meine Kalender caluni, calbirth, calfeier würde ich das so machen:

cd ~/.config/syncevolution/funambol/sources/ mkdir caluni mkdir calbirth mkdir calfeier

In jedem dieser Verzeichnisse muss nun eine config.ini-Datei erstellt werden. Wie diese aussehen, zeig ich mal am Beispiel des Kalenders caluni:

vim ~/.config/syncevolution/funambol/sources/caluni/config.ini
sync = two-way
type = calendar:text/calendar!
evolutionsource = Uni
uri = caluni

Hierbei steht “evolutionsource” für den Kalendernamen in Evolution, und “uri” für den URI-Eintrag in Funambol.

Für das zweite Adressbuch erstelle ich einen Ordner “Adressen2” mit folgender config.ini:

mkdir ~/.config/syncevolution/funambol/sources/Adressen2 vim ~/.config/syncevolution/funambol/sources/Adressen2/config.ini
sync = two-way
type = addressbook
evolutionsource = Beruf
uri = card2

Auch hier steht der Eintrag bei “evolutionsource” wieder für den Adressbuchnamen in Evolution, und “uri” für die SyncSource in Funambol.

Fertig!

Wenn ich nun eintippe:

syncevolution funambol

dann werden alle Kalender und Adressbücher synchronisiert.

Da ich hier mehrere Rechner habe, installiere ich auf den anderen PCs einfach nur syncevolution und kopiere den kompletten Ordner ~/.config/syncevolution/funambol auf eben diesen PC. Wichtig ist, dass anschließend in den config.ini-Dateien jeweils der Eintrag “deviceId” etwas verändert wird, da dieser Wert pro Gerät “unique” sein muss (siehe ersten Kommentar). Standarmäßig beginnt dieser Eintrag mit “sc-pim-xxxxx”. Ich ersetze hier einfach das “pim” durch den PC-Namen.

LEIDER FUNKTIONIERT DIESE METHODE NICHT WIE GEWÜNSCHT! SOBALD EIN ZWEITER RECHNER MIT DER SYNCHRONISATION BEGINNT, WERDEN ALLE KALENDER-EINTRÄGE JEDES KALENDERS IN DIE ANDEREN KALENDER KOPIERT!!! SO HAT MAN ALLE TERMINE DOPPELT UND DREIFACH!!!

5.3 “Dirty Hack” Die einzige Möglichkeit mehrere Kalender und Adressbücher zu synchronisieren besteht darin, im Funambol-Server verschiedene User anzulegen. Jeder User steht für einen Kalender (bzw. Adressbuch). Nachdem die User am Funambol-Server erstellt wurden, kopiert man den Ordner ~/.config/syncevolution/funambol z.B. nach ~/.config/syncevolution/KALENDERNAME, trägt in ~/.config/syncevolution/KALENDERNAME/config.ini den neuen Usernamen ein und editiert im Unterordner sources die entsprechenden Kalendernamen. Natürlich müssen alle überflüssigen Unterordner innerhalb des sources-Ordner gelöscht werden. Der Nachteil dieser Methode besteht darin, dass man nun nicht “in einem Rutsch” syncen kann, sondern für jede Sync-Quelle ein gesondertes

syncevolution KALENDERNAME

aufrufen muss.

6. Diskussion

Mann mann mann mann… Dass die PIM-Synchronisation immer so “unhandlich” sein muss. Ich kann derzeit noch nicht sagen, woran es genau liegt, dass die einzelnen SyncSources nicht sauber auseinander gehalten werden. Liegt es an Funambol oder an SyncEvolution? Zu hoffen bleibt, dass das Feature “Sync multiple instances” endlich gelöst wird. Ich bin Canonical sehr dankbar, dass sie soviel in die Distribution investieren, aber evtl. könnte man den Fokus endlich mal auf einen gescheiten Sync-Service legen. Ich meine sogar mich zu erinnern, dass soetwas in Planung ist. Jedenfalls war das doch u.a. auch der Sinn von Ubuntu-One, oder? Dass man seine Daten überall mit hinnehmen kann… Nuja… kommt Zeit kommt Sync.