Bye, bye Open-Xchange

Habe vor kurzem ein laufendes Opensuse 12.3-System auf Opensuse 13.1 upgegradet. Das ging bis auf einige Schwierigkeiten mit der neuen Apache 2.4 Version relativ problemfrei - nur ein lokaler Open-Xchange 6.22 Server hat das nicht überlebt. Na ja, ganz stimmt das so nicht - eigentlich überlebte nur das vom Server bereitgestellte Web-Interface nicht. Aus welchen Gründen auch immer - das für OX6 reservierte Verzeichnis im Bereich "/srv/www/htdocs" war nach dem Update und einem Neustart von OX6 von allen relevanten Dateien befreit, obwohl die Verzeichnisstruktur erhalten geblieben war.

Ich konnte den ursprünglichen Zustand aus Backups zwar wieder restaurieren. Da das Problem mit Open-Xchange und Opensuse-Upgrades aber nicht zum ersten Mal aufetreten, freunde ich mich gerade mit dem Gedanken an, ganz auf diese Groupware-Lösung zu verzichten. Das hat neben der Anfälligkeit gegenüber System-Updates noch mehrere andere Gründe:

Grund 1: Keine Lizenz-Variante für SLES unter 25 User
Ich habe nicht vergessen, wie uneinsichtig sich OX bzgl. eines Upgrades von einer 5-User-Lösung unter SLES beim Wechsel von OX 5 auf OX 6 zeigte. Damals bekam ich klar Bescheid, dass ich entweder auf einen UC-Server umsteigen oder eben eine 25 User-Lizenz erwerben müsse. Dabei war mir der Umstieg auf eine 5-User-Lizenz von einer ursprünglichen 25 User umfassenden SLOX-Lösung von OX selbst empfohlen worden. OK, die Botschaft kam an - OX wollte ab den ersten Erfolgen mit 1&1 offenbar nur noch hinreichend große Kunden haben und entsprechend Geld verdienen. Das auch kleine Unternehmen einen SLES oder RHEL einsetzen, war den Strategen in den USA wohl egal. Als Konsequenz habe ich mit der Community-Version von OX6 dann sehr gut ein paar Jahre unter Opensuse und ohne jede Lizenzgebühr gelebt. Jetzt ist auch damit Schluss.

Grund 2: Verschwindender Support für die Community Edition
Wie wenig die Community Edition noch Bedeutung hat, kann man auch dem Inhalt und Aufbau der aktuellen OX-Website entnehmen. Eine spezielle Seite für die CE gibt es nicht mehr. Die Anzahl der CE-Forenbeiträge pro Zeiteinheit wird auch immer dünner. Am schlimmsten ist aber der aus meiner Sicht katastrophale Zustand der OX-Repositories für Opensuse. Dafür scheint sich wirklich niemand mehr zu interessieren.

Grund 3: Ausrichtung auf soziale Medien und weiter zunehmende Kommerzialisierung
Mir passt die zum Programm erhobene Ausrichtung von OX ≥ V7 auf die sogenannten "sozialen" Medien nicht. Das hat aus meiner Sicht in einer Firmen-Groupware schon aus Sicherheitsgründen wenig bis gar nichts zu suchen. Nicht alles, was populär ist und dem Kommerz - speziell von SaaS-Anbietern - dient, ist auch gut.

Grund 4: Unübersichtliches Backend
Technisch wirkt auch das Java/OSGI-Backend-Konstrukt zunehmend zu komplex bis unübersichtlich, um damit weiter in einer nicht kommerziellen Server-Umgebung herumzudoktern. Ich verstehe, dass man hochgradig skalierbare Lösungen für den Einsatz in großen Unternehmen und speziell für SaaS benötigt. Aber irgendwie wirkt der Einsatz einer vollen Java-Architektur wie ein Overkill für die Ansprüche kleiner, mittelständischer Firmen an eine Groupware.

Grund 5: Einarbeitungszeit
Die Zeit, die man typischerweise in eine funktionierende Installation unter Opensuse 12.3 für die 7-er Version des Open-Xchange-Servers stecken muss, ist nach meinem Gefühl genauso groß wie die, sich in Alternativen einzuarbeiten.

Grund 6: Fehlende Replikationsmöglichkeiten
Meine erste eingesetzte Groupware war Lotus Notes 5/6 unter Linux. Ein Riesenvorteil von Lotus war die Server-Replikationsfähigkeit. Etwas Entsprechendes habe ich bei Open-Xchange immer vermisst.

Vor kurzem ist Opensuse 13.1 erschienen. Diese soll einen deutlich längeren Support erhalten als andere Opensuse-Versionen. Ein Umstieg auf eine neue opensource-basierte Groupware-Lösung, die unter OS 13.1 funktioniert, erscheint mir daher als ein vernünftiger Schritt.

Was werde ich an OX vermissen ? Vielleicht Info-Store, vielleicht auch das gut organisierte Web-Interface .... aber bzgl. der Organization und Versionierung von wichtigen Dokumenten setzen wir seit ca. einem Jahr mit gutem Erfolg SVN und ein Wiki ein. Und als Groupware-Interface haben wir meist Kontact und nicht das Web-Interface benutzt ..... Und Ajax können auch andere Groupware-Hersteller ....

Vermissen werde ich vielleicht auch die kritischen Kommentare vom aktuellen OX CEO Rafael Laguna zur zunehmenden Kontrolle des Internets - durch staatliche Institutionen, aber nicht zuletzt auch durch und mit Hilfe der zugehörigen großen Monopol-Firmen des Internets ..... Wie schreibt er so schön:

"Before you blame the government for the filthy roads, clean your own yard! "

Stimmt ! Aber warum sollte ausgerechnet eine Firma, die ihre Entwicklungskapazitäten zunehmend genau an den Vorgaben der kritisierten Giganten ausgerichtet hat und vor allem große und landesweit bis länderübergreifende SaaS-Partner umwirbt, besonders glaubwürdig dafür sein, die Rechte und Interessen der am meisten betroffenen normalen Nutzer und kleiner Firmen zu vertreten ?

Opensuse 12.3 – OX 6.22 lässt sich mit systemd nicht starten

Nach dem Upgrade von Opensuse 12.2 auf Opensuse 12.3 musste ich leider feststellen, dass der Dienst "/etc/init.d/open-xchange" nicht mehr automatisch gestartet werden kann. Im Gegensatz zu Opensuse 12.2 führt ein "systemctl start open-xchange" nun leider ins Nirwana:

mysystem:/etc/init.d # systemctl status open-xchange.service
open-xchange.service - LSB: Open Xchange Daemon
Loaded: loaded (/etc/init.d/open-xchange)
Active: inactive (dead) since Wed, 2013-03-27 12:30:19 CET; 5min ago
Process: 13365 ExecStop=/etc/init.d/open-xchange stop (code=exited, status=0/SUCCESS)
Process: 13349 ExecStart=/etc/init.d/open-xchange start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/open-xchange.service
Mar 27 12:30:19 mysystem.mydomain.de systemd[1]: Starting LSB: Open Xchange Daemon...
Mar 27 12:30:19 mysystem.mydomain.de open-xchange[13349]: Starting open-xchange ..done
Mar 27 12:30:19 mysystem.mydomain.de systemd[1]: Started LSB: Open Xchange Daemon.
Mar 27 12:30:19 mysystem.mydomain.de su[13360]: (to open-xchange) root on none
Mar 27 12:30:19 mysystem.mydomain.de open-xchange[13365]: Shutting down open-xchange ..done

Jeder Start mit systemd führt also auch zu einem sofortigen Stop. Und der Service ist danach regelmäßig "dead".Was dem User beim Versuch, sich in OX 6 einzuloggen mit 503-Fehlermeldungen quittiert wird.

Na da freuen wir uns doch mal wieder herzlich über die "wunderbare" Welt von systemd! Was für OX 6.22 unter Opensuse 12.2 anstandslos lief, läuft unter Opensuse 12.3 nicht mehr. Und die Fehleranalyse ist für systend so kompliziert und unüberschaubar, dass ich im Moment keinerlei Lust verspüre, auf Fehlersuche zu gehen.

Workaround
Netterweise geht aber nach wie vor ein direkter Start über das Skript:

mysystem:/etc/init.d # ./open-xchange start
redirecting to systemctl start
Starting open-xchange done
mysystem:/etc/init.d # ./open-xchange status
Checking for service open-xchange running
Checking for service open-xchange running
mysystem:/etc/init.d # systemctl status open-xchange
open-xchange.service - LSB: Open Xchange Daemon
Loaded: loaded (/etc/init.d/open-xchange)
Active: inactive (dead) since Wed, 2013-03-27 12:57:05 CET; 1min 39s ago
Process: 15646 ExecStop=/etc/init.d/open-xchange stop (code=exited, status=0/SUCCESS)
Process: 15636 ExecStart=/etc/init.d/open-xchange start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/open-xchange.service
Mar 27 12:57:05 mysystem.mydomain.de systemd[1]: Starting LSB: Open Xchange Daemon...
Mar 27 12:57:05 mysystem.mydomain.de open-xchange[15636]: Starting open-xchange ..done
Mar 27 12:57:05 mysystem.mydomain.de open-xchange[15646]: Shutting down open-xchange ..done
Mar 27 12:57:05 mysystem.mydomain.de systemd[1]: Started LSB: Open Xchange Daemon.
mysystem:/etc/init.d #

Man beachte die Kleinigkeiten und erfreue sich an dieser berauschenden Logik: Das Startscript wird angeblich an systemctl redirected. Open-Xchange wird danach auch erfolgreich gestartet. Der Status ist bei normaler Abfrage per Script auch running. Man kann sich regulär per Browser in seinen OX6-Account einloggen. Aber systemd kann mit dem erfolgreichen Start offenbar gar nichts anfangen und sieht nicht mal, dass der Service läuft! Was für ein grandioses Chaos!

Jedenfalls läuft der Dienst nur nach einem normalen Start - also über /etc/init.d/open-xchange start regulär. Nicht aber das Rauf- und Runterfahren über systemd. Damit kann man den inzwischen auf ein Minimum reduzierten "Runlevel-Editor" von YaST für eine Aktivierung von OX 6.22 schlicht vergessen. Runlevels gibt es dort nicht mehr - und für OX funktioniert das Starten beim Hochfahren in das Systemd-Default-Target mit systemd nicht.

Also gilt bis auf weiteres unter Opensuse 12.3: OX 6.22 händisch starten und vor dem Runterfahren auch wieder stoppen.
Schöne neue Welt .... Seufz ....

Nachtrag 08.06.2013 und Lösung:
Die Opensuse-Leute haben mir inzwischen wirklich geholfen, das Problem analysiert und ein service-file für den "open-xchange"-Service zusammengestellt. Dadurch ist nun ein Hochfahren von open-xchange beim Systemstart möglich.
Siehe
https://bugzilla.novell.com/show_bug.cgi?id=813767
Man beachte auch die gute Erklärung der Problem-Ursache.

Vielen Dank an Frederic Crozat !!

OX 6 – Upgrade von OX 6.20.7 auf OX 6.22.1 unter OS 12.2

Habe mich seit längerem nicht mehr um Upgrades des bei mir unter Opensuse 12.2 laufenden OX 6 kümmern können. Mein letzter Schritt war im letzten Jahr ein Update auf die Version 6.20.7 gewesen. Seitdem hat sich doch einiges geändert und demnächst steht auch die OX 7 App Suite vor der Tür.

Mögliche Upgrade-Pfade

Laut den Infos auf den einschlägigen Open-Xchange Webseiten sind folgende Upgrade-Pfade vorgesehen:

  • v6.20.7 auf v6.22.0 (man beachte die 0 bei der 6.22-er version!)
  • v6.22.x auf OX App Suite 7

Siehe hierzu:
http://oxpedia.org/wiki/index.php?title=Update_to_6_22
http://oxpedia.org/wiki/index.php?title=AppSuite:Upgrade_from_6.22_for_SLES11

Alle Wege führen also zwingend über die Version 6.22.0 !

Version 6.22 klingt harmlos. Diese Applikation bringt allerdings gegenüber den Versionen 6.20.X wesentliche Neuerungen mit sich. Insbesondere die Aufsplittung der Repositories für Server-Komponenten und das Ajax-Frontend. Zudem werden die bisher 2 Dämonen zum Starten des OX6-Systems zu einem zusammengefasst. Es verschwinden auch etliche der vielen bisherigen Pakete. Offenbar werden hier Änderungen vorgenommen, die in eine noch stärkere Rollenaufteilung zwischen einem komponentenbasierten Backend und mehreren unterschiedlich ausgeprägten Frontends in der App Suite münden werden.

Das machte mir dann doch ein wenig Angst vor einem Update des OX6 unter Opensuse 12.2. Die zugehörigen Infos in den OX-Webseiten entsprechen mehr denen eines echten Upgrades als eines kleineren Updates. Aber die nachfolgende Abbildung beweist, dass alles am Schluss glatt lief. Gezeigt wird der Blick von Kontact/Korganizer auf Kalender-Einträge auf meinem OX6 v6.22.1.

ox622_cal_600

Dennoch gab es ein paar kleinere Hürden zu überwinden, auf die ich nachfolgend eingehe.

Fehlendes Opensuse 12.2 Repository für die als Zwischenschritt erforderliche OX-Version 6.22.0

Unter den Repositories für Opensuse 12.2 findet man zwar bereits ein Verzeichnis für die App Suite. Das enthält aber noch keine Dateien. Also wollte ich auf meinem Opensuse 12.2-System zunächst nur das sowieso erforderliche Upgrade auf die Version v6.22 vornehmen.

Nun drohte dieses Vorhaben daran zu scheitern, dass sich im Moment kein Opensuse 12.2 Repository mit RPMs zur OX Version 6.22.0 mehr finden lässt. Vorhanden ist nur ein Repository zur Version v6.22.1. Dorthin führt aber z.B. von OX 6 V6.20.7 kein direkter Weg !

Umweg über ein 6.22.0 Repository für den SLES 11

Ich habe dann notgedrungen das Experiment gewagt, ein Repository für den SLES 11 zu benutzen. Ein solches Vorgehen ist nicht risikofrei. Bevor andere das nachmachen, empfehle ich unbedingt ein Backup der OX6 Datenbank auf seinem MySQL-Server, ein Backup der OX6-Verzeichnisse auf dem Apache-Server und ein Backup der OX6-Dateien - bei mir unter "/opt/open-xchange".

Das von mir genutzten SLES11-Repositories findet man unter:
OX 6.22.0 Backend: http://software.open-xchange.com/OX6/6.22/6.22.0/backend/SLES11/
OX 6.22.0 Frontend: http://software.open-xchange.com/OX6/6.22/6.22.0/frontend/SLES11/

Diese Repositories bindet man in die Paket-Verwaltung unter YaST2 ein. Unter YaST2's Software-Update-Modul wechselt man dann am besten in die Ansicht für die "Installationsquellen". Dort prüfe man für das Repository zum OX6-Backend und im Repository zum Frontend, welche Pakete als update-fähig angezeigt werden und hake die Einträge entsprechend ab. (Weiter unten findet man 2 Listen zu den erforderlichen Paketen). Man wundere sich beim Auflösen der Paketabhängigkeiten durch YaST2 nicht, dass dann sehr viele alte Pakete für als zu löschen markiert werden. Das hat tatsächlich seine Richtigkeit!

Ändern des OX6-Daemon-Starts über den Run-Level-Editor

Nachdem der Update gelaufen ist, muss man den Start des OX6-Daemons ändern. Die ursprünglich 2 Dämonen für die OX6-Groupware und die OX6-Administration sind nun zu einem Dämon zusammengezogen worden. Man nimmt die Änderungen am schnellsten über den YaST2-Runlevel-Editor vor. Ja, das geht auch unter den neuen systemd-Verhältnissen. YaST2 übersetzt die alten sysvinit-Angaben für diese konventionellen LSB-Applikationen unter systemd schon passend:

update_ox622_daemon_600

Nach dem Update funktioniert der OX6-Login über die Web-Oberfläche erstmal nicht - 503-Fehler

Hat man den OX6-Groupware-Server dann erneut gestartet, darf man sich ein kleines Frustrationserlebnis abholen. Versucht man sich nach den bisherigen Operationen auf dem OX6-Server über die OX6-Weboberfläche einzuloggen, so geht das schief. Egal, welchen User man probiert, man erhält eine "503-Meldung": "Service temporarily not available".

Zusätzlich tauchen in den OX6-Logs Fehlermeldungen zu fehlenden Sprachfiles auf.

Bevor du nun das Fluchen anfängt:
Prüfe erstmal, ob die Anbindung der Kalender-Clients unter OX6 funktioniert! Von dort klappt nämlich die Anbindung zum backend anstandslos, wie ich überrascht feststellen musste. So schlimm konnte der Fehler also nicht sein. Einige Minuten später stellte sich nach einem Blick auf den Webserver folgendes heraus:

Der Fehlschlag mit der OX6-Web-GUI liegt daran, dass für das 6.22-Frontend neue Pakete installiert werden müssen! Sieht man sich unter den OX6-Verzeichnissen seines Apache-Servers mal die Datumsangaben der installierten OX6-Files an, so wird man feststellen, dass der bisherige, oben beschriebene Update-Prozess die HTML- und Javascript-Files der früheren 6.20-Installation nicht angetastet hat. Der alte Client passt aber schlicht nicht zum neuen Backend! Wir korrigieren dieses Problem gleich im Zuge eines Upgrades auf die Version 6.22.1!

Upgrade auf die Version OX 6.22.1

Wir deaktivieren unter YaST2's Paketverwaltung nun die OX 6.22.0-Repositories. Zusätzlich binden wir die aktuellen OX6-Repositories für OS 12.2 ein:

http://download.opensuse.org/repositories/server:/OX:/ox6.22:/frontend/openSUSE_12.2/
http://download.opensuse.org/repositories/server:/OX:/ox6.22:/backend/openSUSE_12.2/

Und nun stellen wir folgende Listen an Paketen für den Upgrade zusammen:

OX6-Backend (V6.22.1)
update_ox622_backend_600

Hier kommt zu den bisherigen Paketen eines für die "de_DE"-Sprachunterstützung des Backends hinzu: open-xchange-l10n-de-de.

OX6-Frontend (V6.22.1)
update_ox622_frontend_600

Dies sind etliche Pakete mehr als beim Upgrade zu v6.22.0 ! Am wichtigsten ist das Paket "open-xchange-gui" ! Hinzu kommen Pakete zur deutschen Sprachunterstützung sowie zu Hilfe-Funktionen. Benötigt werden außerdem separate Pakete für die E-Mail-Account-Verwaltung und Plugin-Wizards:

open-xchange-gui-help-plugin, open-xchange-gui-help-plugin-gui, open-xchange-gui-l10n, open-xchange-gui-l10n-de-de, open-xchange-online-help-de-de, open-xchange-gui-themes-default, open-xchange-gui-loading-theme-default, open-xchange-gui-login-theme-default, open-xchange-gui-mail-accounts-plugin, open-xchange-gui-wizard-plugin, open-xchange-gui-wizard-plugin-gui

Man führe dann per YaST2 den Update zu diesen Paketen durch. Ein kurzer Blick auf den Webserver zeigt danach, dass dort jetzt aktuelle OX6-Web-GUI-Files mit einem neueren Datum vorliegen. Ferner ist jetzt auch das Verzeichnis "/opt/open-xchange/i18n" gefüllt.

Und jetzt klappt endlich auch der Web-Login für den OX6!

ox622_mail_600

Das Bild zeigt den Zugriff auf einen (separaten) IMAP-Server über den OX6! Der WE-GUI-Zugriff auf die im OX6 selbst verwalteten Kalender-Einträge, Aufgaben, den Infostrore, etc. funktionierten bei mir ebenso völlig anstandslos wie der Rest der upgedateten Web-GUI!

Ich musste nur bei einem einzigen User in die Datenbank eingreifen und dort den Email-Account für die Unified Mail ("unifiedinbox") löschen. Bevor ich das tat, verweigerte OX6.22 für diesen speziellen Account jegliche Mail-Anzeige und deaktivierte das Mail-Modul. Die Ursache blieb unklar; aber das war mir auch egal, da dieser lokale Account sowieso nicht benutzt wurde. Bei keinem anderen User trat ein solches Problem auf!

Erfolgreicher Check des OX6-Zugriffs mit Kontact-Komponenten von KDE 4.10

Bleibt abschließend nur, den Zugriff von Kontakt/Organizer und vom Kontact/Addressbook (eiens aktuellen KDE 4.10) auf den OX6.22 zu prüfen. Der Zugriff läuft über Akonadi und da ist man bekanntlich nie vor Überraschungen gefeit.
Aber: Alles funktionierte auf Anhieb und ohne jede Änderungen oder Eingriffe. Der OX6-Konnektor von Akonadi funktioniert also auch mit OX 6.22.1 ! Interessant, dass auch die "Address Auto Completion" von Kmail 4.10 beim Zugriff auf das OX6-Adressbuch keine größeren Zicken machte. Soweit ich sehen kann, werden die vorhandenen Adressen genauso gut (oder schlecht) wie zuvor angezeigt. Sehr gut funktionierte CUH der Web-Dav-Zugriff auf die Verzeichnisse des InfoStore über Dolphin!

Geht doch !