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 daß 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 daß sich der Verwalter eines eisfair Systems mit der (übrigens auch sehr heterogenen) Dokumentation eines konkreten Programms auseinandersetzen muß. 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 (http://www.fli4l.de) 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 Benutzerdokumantation entnommen werden)
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. OpenOffice) 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 und die Frage geklärt werden, mit einer eventuellen Einzellizensierung umzugehen ist.
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ücken auch die ersten Buchstaben 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 jede erdenkliche Funktion der Basissoftware zu unterstützt werden. Im Zweifelsfall geht eine einfache Konfiguration vor.
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 wie z.B. SuSE oder Debian 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, 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 in jedem Fall übernommen werden, soweit dies möglich ist. 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.
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 zur Verfügungstellung 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 möglichst 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.
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 (siehe http://www.gnu.org/), 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 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
Yves Schumann 2009-10-10