Mehrere Kalender per syncevolution
und funambol
synchronisieren: “yet another Dirty Hack”
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”][](../../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 SyncSource” 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. 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.