Archiv/OpenSync/Plugin-Sunbird

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Benutzung von OpenSync

  3. Einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
  2. Vorbereitung
  3. Konfiguration
    1. Einfaches Skript
    2. Multikalender-System
    3. weitere Optionen
    4. Automatisches Aktualisieren beim Start v...
  4. Links

Das Sunbird-Plugin für OpenSync ermöglicht eine Synchronisation mit den Daten von Archiv/Mozilla Sunbird, einer Kalender-Anwendung aus der Mozilla-Suite [2]. Das Plugin funktioniert aber auch mit Lightning oder jeder beliebigen anderen Anwendung, die ihre Kalender-Daten als iCalendar im .ics-Format absichern oder auf WebDAV zurückgreifen kann. Als eigenständiges Projekt entworfen, wurde das Plugin schließlich in OpenSync [1] aufgenommen - es bietet daher auch einige Spezialitäten, die man bei anderen Plugins vergebens sucht. Dazu gehört insbesondere die Möglichkeit, ein Mehrkalendersystem abzugleichen, also ein Mitglied, das mehrere Kalender enthält (z.B. einen für Privates, einen für Geschäftliches und einen für Ferien und Feiertage). Während bei anderen Plugins jeder Kalender als eigenes Mitglied definiert werden müsste, so dass diese dann auch untereinander abgeglichen würden, kann sich das Sunbird-Plugin merken, was wohin gehört, und verteilt die Daten entsprechend.

Installation

Für die Verwendung des Plugins muss es zusammen mit Archiv/OpenSync installiert worden sein [1]:

Hinweis:

Unter Ubuntu Hardy Heron wurde das Plugin entfernt, da der Sunbird Kalender seit Version 0.3 standardmäßig ein anderes Kalenderformat verwendet (das SQLite-basierte .sdb statt dem iCalendar-Format .ics). Hintergrundinfos siehe hier. Es gibt ein noch im Entwicklungsstadium befindliches Mozilla-Plugin, das es ermöglichen soll, Sunbird/Lightning via OpenSync mit Bluetooth-Geräten zu synchronisieren: BlueZync . Dieses Plugin funktioniert unter Hardy derzeit jedoch laut Aussage des Entwicklers nur mit Lightning/Sunbird bis Version 0.7.

Vorbereitung

Verwirrend ist, dass Sunbird die Kalender nicht automatisch im .ics-Format speichert, sondern in einer Datenbank unter ~/.mozilla/sunbird/IrGeNdWaS.default/storage.sdb. Mit dieser Datenbank sollte nicht abgeglichen werden, da das zu Problemen von der Darstellung der Kalender bis zur Funktionsuntauglichkeit von Sunbird führen kann. Um daher einen Kalender im .ics-Format zu erhalten, muss beim Erstellen eines neuen Kalenders ("Datei" - "Neu" - "Kalender...") die Option "im Netzwerk" und das Format "iCalendar" gewählt werden; als Adresse kann nun unter folgendem Format ein beliebiger Pfad auch zu einem lokalen Verzeichnis angegeben werden: file:///Pfad/zu/einer/Kalender.ics. Bereits bestehende (und in der storage.sdb abgespeicherte) Kalender können mit der Export-Funktion ("Datei → Kalender exportieren") in eine .ics umgewandelt und dann wie eben beschrieben eingebunden werden.

Konfiguration

Einfaches Skript

Weder für KitchenSync unter KDE noch für das Multisync-GUI unter GNOME [1] besteht eine graphische Oberfläche für die Konfiguration des Plugins, weshalb stets ein kleines Skript erstellt werden muss. Es sollte folgendermaßen aussehen, wenn ein lokaler Kalender eingebunden wird:

<?xml version="1.0"?>
<config>
   <file path="/Weg/zur/Kalender.ics" />
</config>

So sieht das Konfigurations-Skript für einen web-basierten Kalender aus, wobei neben der Adresse auch Benutzername und Passwort anzugeben sind.

Achtung!

Benutzername und Passwort werden in diesem Skript unverschlüsselt in Klartext abgespeichert, sind unter Umständen also von anderen Benutzern einsehbar. Sollte dies möglich sein, sollte man die Dateirechte entsprechend anpassen (siehe Rechte).

<?xml version="1.0"?>
<config>
   <webdav username="BENUTZERNAME" password="PASSWORT" url="http://Server.web/Weg/zur/WebDAV.ics" />
</config>

Multikalender-System

Um nun mehrere Kalender mit einem anderen Mitglied abzugleichen, ohne dass diese Kalender untereinander synchronisiert werden, ist die file-, bzw- die webdav-Zeile einfach zu vervielfachen. Hinzukommen muss dazu eine Angabe, welcher Eintrag der Haupteintrag sein soll, damit das Plugin weiß, wohin neue Einträge aus dem anderen Mitglied, die also noch keinem der Sunbird-Kalender zugeordnet sind, einzutragen sind. Dazu dient die Option default="X", wobei "X" als Zahl angibt, als wievielter der betreffende Kalender im Skript aufgeführt ist:

<?xml version="1.0"?>
<config>
   <file path="/Weg/zur/ersten/Kalender.ics" />
   <file default="1" path="/Weg/zur/zweiten/Kalender.ics" />
</config>

Und natürlich lässt sich dies auch mit WebDAV-Kalendern mischen:

<?xml version="1.0"?>
<config>
   <file path="/Weg/zur/ersten/Kalender.ics" />
   <file default="1" path="/Weg/zur/zweiten/Kalender.ics" />
   <webdav username="BENUTZERNAME" password="PASSWORT" url="http://Server.web/Weg/zur/ersten/WebDAV.ics" />
   <webdav username="BENUTZERNAME" password="PASSWORT" url="http://Server.web/Weg/zur/zweiten/WebDAV.ics" />
</config>

weitere Optionen

Automatisches Aktualisieren beim Start von Sunbird (sowie Backup der Kalender.ics)

Um beim Start von Sunbird einen automatischen Abgleich mit dem Google-Calender auszuführen habe ich die /usr/bin/sunbird am Start der Datei um folgenden Codeabschnitt erweitert:

sh /usr/bin/sunbirdsync

und folgende Datei /usr/bin/sunbirdsync angelegt:

#!/bin/bash (-) (-)
DATE=$(date +%Y-%m-%d-%H%M%S)
cp "pfad/kalender.ics" "/pfad/"$DATE-"kalender.ics"
msynctool --sync "Name der Opensync-Gruppe zum Aktualisieren der Kalender.ics"

wobei Zeile 2 und 3 mit # auskommentier bar sind und nur den Zweck eines Backups der kalender.ics dienen. Startet man nun Sunbird so wird automatisch ein Abgleich mit der online verfügbaren Datenbank (sowie das Anlegen eines Backups) durchgeführt.

Ab Sofort kann man die Synchronisation auch über sunbirdsync in der Konsole durchführen.

Für weitere Infos: Readme 🇬🇧