Willkommen zu einer neuen Ausgabe von Georg's Brave GNU World. Diesen Monat stellen mal wieder die philosophischen Hintergründe einen Schwerpunkt dar, wobei vor allem die Frage kommerzieller freier Software angesprochen wird. Vorher sollen jedoch ein paar Projekte vorgestellt werden.
Tuxfamily.org
Julien Ducros hat gemeinsam mit einer Gruppe von Leuten "Tuxfamily.org" [5] ins Leben gerufen. Vorbild war das amerikanische SourceForge [6]. Dieses stellt Projekten die zur Entwicklung und Präsentation benötigte Infrastruktur (Webserver, FTP-Server, CVS-Server, ...) an einem gemeinsamen Ort zur Verfügung.
Nach dem Verständnis von Julien Ducros benötigt auch die europäische und afrikanische Community einen derartigen Service. Dies möchte das in Frankreich beheimatete Tuxfamily-Projekt bieten.
Dabei trifft Tuxfamily eine klare Aussage zu Gunsten freier Software. Die für das Hosting eingesetzte Software Vhffs untersteht selbstverständlich der GNU General Public License. Zudem werden von der Tuxfamily nur Projekte akzeptiert, die sich als freie Software qualifizieren.
Die kommende Anlaufstelle für Open Source-Projekte in Europa und Afrika?
Projekte, die im Moment auf der Suche nach einem Zuhause sind, könnten also durchaus der Tuxfamily beitreten.
Chrooted-SSH-CVS-Server-Howto
Es gibt häufig kleine Firmen, die zwar außerhalb ihres eigenen Landes fast vollkommen unbekannt sind, aber wertvolle Beiträge zur freien Software leisten. Die französische Firma Idealx ist eine davon.
Auf der Community-Seite von Idealx [7] finden sich interessante Module und Dokumente zu freier Software, die einige Standardprobleme lösen. Zur Anwendung kommt dabei die GNU General Public License für Software und die GNU Free Documentation License für Dokumente.
Unter den Paketen ist beispielsweise ein Python-Modul, das Kalender in CGI-Skripten erzeugt. Ein in XML sehr weit konfigurierbares CVS-Notify-Skript, mit dem Aktionen während des Eincheckens neuer Versionen leicht automatisiert werden, ist ebenso zu finden wie eine Anbindung der Programmiersprache Erlang [8] an Python.
Gut gefallen hat mir ein Howto von Olivier Berger und Olivier Tharan, das sich mit dem Aufbau eines sehr sicheren und vom System gut isolierten CVS-Servers beschäftigt [9].
Programmierer wissen im Allgemeinen um die Stärken und den Nutzen des "Concurrent Versions System" (CVS) [10]. Dennoch ist CVS ist ein von vielen noch unterschätztes Tool, weshalb ich eine kurze Einführung folgen lasse.
Bekanntlich wird Software in Form von Sourcecode durch einen oder mehrere Autoren entwickelt. Problematisch wird es, wenn die Arbeit mehrerer Entwicklern koordiniert werden muss.
Für diesen Zweck verwaltet das CVS (wie auch andere Versions-Kontroll-Systeme) eine zentrale Sammelstelle, das "Repository". Jeder Entwickler kommuniziert ausschließlich direkt mit dem Repository. Er lässt sich dadurch die Änderungen der Anderen mitteilen und gibt eigene Änderungen bekannt.
Das CVS-Repository speichert nicht nur die aktuelle Version, sondern auch jede Änderung. So lässt sich die Entwicklung schrittweise nachvollziehen, und der Entwickler kann zu älteren Versionen zurückkehren. Ein Projekt kann auch gespalten werden und verschiedene Entwicklungsrichtungen können parallel laufen, um sie eventuell später wieder zu vereinen.
Hält man sich vor Augen, dass Sourcecode im Normalfall aus ASCII-Dateien besteht, so wird klar, dass dieselben Möglichkeiten auch anderen Daten zugute kommen können - speziell, wenn sie sich textbasiert darstellen lassen. Webseiten, Dokumente, E-Mail-Archive und einiges mehr sind ideale Gebiete für den Einsatz von CVS.
Der neuralgische Punkt eines CVS-Servers sind seine Zugriffsrechte. Es gibt verschiedene Möglichkeiten, die unterschiedlich sicher sind. In den meisten Fällen entspricht ein Account auf dem CVS-Server einem Account auf dem System. Einige Methoden der Authentifizierung übertragen die Passwörter im Klartext, diese können also leicht von Dritten mitgelesen werden. Auch wenn das etwa durch den Einsatz von SSH vermieden wird, ist es in vielen Fällen nicht gewünscht, jedem Teilnehmer mit CVS-Account auch unmittelbar vollen Zugriff auf das System zu gestatten.
Das erwähnte Howto [9] beschreibt ausführlich, wie auf einem Rechner beliebig viele CVS-Server parallel konfigurierbar sind. Auf diesen Servern können die Nutzer dann ausschließlich auf das spezifische Repository zugreifen. Damit sollte der durchschnittlich erfahrene Anwender in der Lage sein, auf dem eigenen Rechner einen sicheren CVS-Server zu installieren, um guten Gewissens die geschilderten Vorteile von CVS nutzen zu können.