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

Server-URI anpassen

Server-URI anpassen


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 “
add 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.

 

Links

This entry was posted in Ubuntu, ubuntuusers. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback.

8 Comments

  1. Patrick Ohly (via Mail)
    Posted 12. Februar 2010 at 13:32 | Permalink

    „und kopiere den kompletten Ordner
    ~/.config/syncevolution/funambol auf eben diesen PC“

    Vorsicht! Jeder PC muss eine eigene deviceId haben, damit der Server sie unterscheiden kann. Sonst bekommt man ungewollte „slow syncs“, bei denen *innerhalb* eines Kalendars Duplikte entstehen koennen.

  2. Posted 12. Februar 2010 at 19:03 | Permalink

    Noch ein Hinweis: Die syncevolution-Version aus den Karmic-Quellen ist fehlerhaft, es kann dort zu Problemen mit Zeitzonen kommen. Ich würde die Pakete von syncevolution.org empfehlen.

  3. Oliver
    Posted 13. Juni 2010 at 22:31 | Permalink

    Ich habe ein Problem mit dem Standardadressbuch. Auch bei mir wird Ubuntu One standardmäßig gesynct. Ich will das auch nicht und haben gemäß obigem Tutorial in der Datei

    ~/.config/syncevolution/funambol/sources/addressbook/config.ini

    an der Stelle

    # evolutionsource =

    die “#” entfernt und den Adressbuchnamen ‚Persönlich‘ eingetragen.

    Leider weigert sich syncevolution, diesen Paramter auszuwerten.

    Ich wäre so dankbar für einen Hinweis, wo ich weitersuchen und das Prob beheben kann.

    Danke, Oliver.

  4. Oliver
    Posted 15. Juni 2010 at 10:02 | Permalink

    Habe es nun in der Zwischenzeit gelöst:

    + + gconf-editor

    Dann zum Eintrag ‚/apps/evolution/addressbook/‘ navigieren und den Schlüssel ’sources‘ anpassen.

    Ich habe mein lokales Adressbuch ganz nach oben geschoben, damit ist bei mir das lokale Adressbuch zum Default-Adressbuch geworden und wird auch entsprechend gesynct.

  5. Dieter Stinshoff
    Posted 19. September 2010 at 11:56 | Permalink

    Hi,
    vielen Dank für diesen Thread; habe Funambol bisher mit TB, Sunbird benutzt; möchte auf Evolution zurück, auch wegen UbuntuOne; mein Server läuft; leider wird mit der obigen Eingabe („configure“ bei mir keine Datei ~/.config/syncevolution/funambol/config.ini bzw. kein funambol-Ordner in diesem Verzeichnis angelegt;
    hast Du einen Tipp?
    gruß
    Dieter

  6. Thomas
    Posted 16. Oktober 2010 at 10:44 | Permalink

    Habe das gleiche Prob lem wie Dieter Stinshoff (Beitrag #6). Den Unterordner funambol in syncevolution gibt es nicht!

  7. Christian
    Posted 29. November 2010 at 11:32 | Permalink

    Hallo,

    die Ordner haben sich scheinbar geändert.
    jetzt ist der Pfad
    ~/.config/syncevolution/default/peers/funambol/config.ini

    siehe auch

    http://wiki.ubuntuusers.de/funambol

  8. Frank Herrmann
    Posted 31. Juli 2014 at 14:25 | Permalink

    Hallo,
    seit Ubuntu 14.04 komme ich nicht mehr auf meinen Server. Jetzt musste ich auch auf Fritz Box umstellen und habe leider keinen Plan mehr wie ich vorgehen soll. Ärglich, da es mit 12.04 so super funktioniert hatte und ich dachte mit der neuen Version klappt es auch so toll.

    Wäre super, wenn es eine Lösung geben würde.

1 Trackback

  1. By Adressbücher synchronisieren « jayblog on 16. Februar 2010 at 19:19

    […] einen Blogeintrag wurde ich nun auf Funambol aufmerksam, einen SyncML Server, der als zentrale Stelle für die […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Your email address will never be published.