1. Charta für Paketentwickler

1.1. Vorwort

Als Entwickler eines eisfair-Paketes sollte man einige Grundregeln beachten, um den Ideen und der Philosophie des eisfair-Projektes gerecht zu werden. Dazu bietet sich als erstes die Vorstellung von eisfair aus dem Oktober 2002 an:

eisfair ist ein einfach zu installierender Internet-Server, der als zugrundeliegendes Betriebssystem Linux verwendet. Es wird ausschließlich freie Software verwendet. Die Installation und der Betrieb von eisfair setzen jedoch keine Linux-Kenntnisse voraus und ist mit einfachen und - besonders wichtig - einheitlichen Mitteln möglich.`
eisfair soll keine weitere Linux-Distribution sein, davon gibt es schon viel zu viele. Intention ist die Installation eines Internet- Servers, bei dem die angebotenen Applikationen und Dienste im Vordergrund stehen sollen - nicht das Betriebssystem.
Ein durchschnittlicher Anwender wird durch die enorme Funktionsvielfalt einer modernen Linux-Installation (wie z.B. SuSE) regelrecht erschlagen und ist schon bei der Auswahl der nötigen Pakete schlichtweg überfordert. Genau hier soll eisfair den Anwender unterstützen. Die für Linux/Unix verfügbaren Applikationen zeichnen sich dadurch aus, dass sie einerseits sehr ausgereift sind und stabil laufen, andererseits jedoch alle verschieden zu installieren und zu konfigurieren sind. Hier wurde für jedes Software-Paket ein eigenes Süppchen gekocht. Die für eisfair angebotenen Anwendungen verfügen über eine einheitliche Konfigurationsschnittstelle, so dass sich der Aufwand für die Einarbeitung/Konfiguration auf ein Minimum reduzieren lässt.
Um dies mit den verfügbaren Applikationen für Linux zu realisieren, wurde in die Konfigurationsschnittstelle zwischen eisfair Systemverwalter und den jeweiligen Applikationen eine Schicht eingefügt, welche eine typische eisfair Konfiguration in die applikationsspezifischen Konfigurationen der jeweiligen Dienste (z.B. eines Mailservers) umsetzt. Damit wird der Einsatz von gängigen Internet-Diensten möglich, ohne dass sich der Verwalter eines eisfair Systems mit der (übrigens auch sehr heterogenen) Dokumentation eines konkreten Programms auseinandersetzen muss. Dass eventuell dabei Abstriche bei speziellen Anforderungen gemacht werden müssen, weil nicht jedes Feature eines Programms allgemein umgesetzt werden kann oder wird, ist ein Nachteil, der jedoch hinnehmbar ist, wenn die Funktionalität einer typischen Serverumgebung ausreichend ist.
Die eisfair Konfiguration wird auf ASCII-Dateien abgebildet, die einem einheitlichen Format unterliegen. Sie entsprechen im wesentlichen einer Konfigurationsdatei, wie sie im fli4l Projekt verwendet wird. Eine graphische Benutzeroberfläche ist in Entwicklung. Mit dieser wird man zukünftig die eisfair Applikationen über ein Web-Interface konfigurieren können. Nichtsdestotrotz ist jederzeit die Bearbeitung der ASCII-Dateien mit einem normalen Editor möglich.
(Text gekürzt, der vollständige Text kann der eisfair Benutzerdokumentation entnommen werden)

1.2. Welche Software ist für eisfair geeignet?

Zunächst sollte man sich überlegen, ob das geplante eisfair-Paket überhaupt zum eisfair-Konzept passt, d.h. mit diesem harmoniert. Ist das der Fall, müssen einige Überlegungen angestellt werden, wie das Paket für eisfair portiert werden kann.

Da eisfair selbst keine weitere Linux-Distribution sein soll, sondern explizit als Serversystem ausgelegt ist, eignen sich grundsätzlich die für Linux verfügbaren Server-Applikationen. Klassische Client-Software wie ein Office-Paket (z.B. LibreOffice) oder ein Webbrowser (z.B. Firefox) scheiden daher aus. Auch X11 sowie Pakete wie KDE oder Gnome sind primär als Client-Userinterface ausgelegt und eignen sich somit nicht als eisfair-Pakete.

Ebenso sind Pakete wie ein komplettes LAMP (Linux, Apache, MySQL, PHP) nicht als Ganzes für eisfair geeignet. eisfair ist modular aufgebaut, daher sollten solche Applikationen auch als eigene Programmpakete angeboten werden. Tatsächlich existieren für eisfair die oben aufgeführten Pakete bereits seit langer Zeit. Eine Kombination der Einzelpakete Apache, MySQL und PHP ist hier viel flexibler und leichter zu beherrschen.

Da eisfair selbst komplett auf freier Software basiert, passen sicher auch freie Applikationen am besten zu eisfair. Bei der Verwendung von nicht-freien Applikationen in einem Paket muss unbedingt darauf geachtet werden, dass der Inhaber der Rechte an dieser Software eine Weiterverbreitung als eisfair-Paket auch gestattet. Zusätzlich muss die Frage geklärt werden, wie mit einer eventuellen Einzellizensierung umzugehen ist.

1.3. Portierung einer Server-Applikation auf eisfair

Die wichtigste Regel, die bei der Umsetzung eines Paketes zu beachten ist: die Installation, Konfiguration und die Bedienung der Applikation muss möglichst einfach sein. Dies drückt insbesondere der erste Buchstabe von eisfair aus: EASY - für den Anwender. Dabei sollte man auf exotische Konfigurationen, welche die Server-Anwendung leisten könnte, aber die Konfiguration des Paketes verkomplizieren würde, besser verzichten. Wenn der Großteil der potentiellen Anwender mit dem Standardumfang arbeiten kann, sollte man solche Schmankerl`` weglassen. Es sollte also nicht unbedingt jede erdenkliche Funktion der Basissoftware unterstützt werden. Im Zweifelsfall geht eine einfache Konfiguration vor. Anhand des Feedbacks der User lässt sich im Laufe der Zeit viel besser feststellen, welche Features tatsächlich benötigt werden. Diese Features können dann Schritt für Schritt in das Paket eingearbeitet werden und lassen zudem das Leben des Projektes erkennen.

Einfache und übersichtliche Konfigurationen sind die Grundvoraussetzungen für ein eisfair-Paket. Dabei muss unbedingt die eisfair-Konfigurationsschicht beachtet werden. Diese darf unter keinen Umständen umgangen werden. Das Paket muss sich möglichst nahtlos ins Gesamtsystem integrieren. Untergräbt man als Entwickler die Philosophie von eisfair, wird die ganze Idee, die hinter eisfair steckt, hinfällig. In diesem Fall ist für den Paketentwickler eine Standard-Linux-Distribution besser geeignet.

Neben der Konfiguration sollte man auch der Installation des eisfair Paketes ein größeres Augenmerk widmen. Die Installation sollte möglichst einfach, geradlinig und performant über die Bühne gehen. Es sollte auch auf jeden Fall vermieden werden, einen Reboot des eisfair-Servers zu erzwingen. Ein Server zeichnet sich durch seine Verfügbarkeit aus. Ist ein Reboot des Servers notwendig, um die Software zu initialisieren, wird diese Grundregel verletzt. Ausnahmen kann es natürlich geben, sie sollten jedoch vermieden werden.

Wichtig ist auch die Möglichkeit, ein Update eines Paketes installieren zu können. Dabei muss auf Abwärtskompatibilität geachtet werden. Bisherige Konfigurationen sollten bei einem Package-Update soweit wie möglich übernommen werden. Das beinhaltet auch die korrekte Handhabung mglw. entfallener oder umbenannter Konfigurationsparameter. Das Paket muss ebenso vom Anwender beliebig oft installiert werden können, ohne dass sich dabei plötzlich Dubletten von Daten/Konfigurationen einstellen. Der Paketentwickler muss also jederzeit damit rechnen, dass der Anwender das Paket im Falle einer Fehlfunktion „drüberinstalliert“. Installiert werden die Pakete für eisfair grundsätzlich über das eisfair Setup-Menü. Eine davon abweichende Installation ist nicht erlaubt!

Genauso wichtig wie die Entwicklungsarbeit, die man in die Portierung eines eisfair-Paketes steckt, ist auch die Erstellung einer entsprechenden Dokumentation. Diese sollte man nicht vernachlässigen. Eine der wichtigsten Säulen von eisfair ist die Dokumentation. Man sollte mindestens die Zeit, die für die Portierung der Applikation auf eisfair benötigt wurde, auch in die Erstellung der Dokumentation stecken. Je besser das Handbuch ist, desto größer wird die Akzeptanz der Anwender.

1.4. QUALITÄT - Pflichten eines Paketautors

Die Einhaltung der in diesem Dokument aufgeführten Richtlinien dient der Sicherstellung eines gewissen Qualitätsniveaus. Die Stabilität und die Qualität von eisfair steht und fällt mit der Disziplin des Paketautors.

Mit der Veröffentlichung eines eisfair-Paketes endet jedoch nicht die Tätigkeit des Entwicklers. Dieser sollte auch gegenüber den Anwendern eine gewisse Verantwortung zeigen. Dazu gehört neben der kontinuierlichen Pflege des Paketes auch die Bereitschaft, Support zu bieten. Sollte das die Möglichkeiten des Entwicklers überschreiten, sollte sich dieser nach Personen umsehen, die bereit sind, entsprechenden Support zu leisten. Nichts ist für einen Anwender schlimmer, als wenn er auf sich alleine gestellt ist.

Zur Pflege des Paketes gehören selbstverständlich auch Bugfixes. eisfair soll nicht nur Easy sein, sondern auch sicher. Werden Sicherheitslücken in der Software bekannt, sollte der Entwickler diese schließen und ein Update zur Verfügung stellen. Es ist niemandem gedient, einen Server zu betreiben, der Löcher wie ein Schweizer Käse hat.

1.5. Urheberrechte

Der Entwickler hat neben seinen Pflichten natürlich auch Rechte - nämlich zumindest die Urheberrechte an seiner Portierung. Da eisfair als Plattform grundsätzlich auf der Basis von freier Software steht, sollte man - wenn möglich - auch sein Paket als freie Software deklarieren, d.h. unter die GNU PUBLIC LICENSE, kurz GPL, stellen. Am besten deklariert man dies in sämtlichen selbst erstellten Klartext-Dateien (Konfigurationen, Shell-Scripts usw.) durch einen entsprechenden Absatz als Kommentar. Beispiele dafür findet man unter eisfair zuhauf, z.B. in den Konfigurationsdateien unter /etc/config.d.

Ist es aus urheberrechtlichen Gründen nicht möglich, das Paket unter die GPL zu stellen, sollte man dies auch klarstellen. Das sollte am besten bereits bei der Installation geschehen. Viele Anwender legen Wert darauf, ausschließlich freie Software zu verwenden. Dieses Anliegen sollte man als Paketentwickler auf jeden Fall respektieren.

So, genug der Vorrede, jetzt geht es ans Eingemachte: Viel Spaß bei der Lektüre dieser Dokumentation und dann … beim Entwickeln :-)

Frank Meyer, im Juni 2005

Überarbeitet, aktualisiert und erweitert vom eisfair-Team 2020