Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation
 [image of a Brave GNU World]
Brave GNU World - Ausgabe 19
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[DE | EN | FR | JA | ES]

Willkommen wieder einmal bei Georg's Brave GNU World. Beginnen möchte ich mit einem recht kleinen aber doch sehr nützlichen Projekt.

Sel

Bei sel [5] von Thomas Kluge handelt es sich um einen komfortablen Dateimanager für Shellskripte. Mit Hilfe von sel können Dateien oder Verzeichnisse ausgewählt werden, um bestimmte Kommandos auf diese auszuführen. Wird als Kommando ein einfaches Echo der Auswahl verwendet, so ist es möglich, die Namen der ausgewählten Dateien und Verzeichnisse über die Standardausgabe in beliebiger Art und Weise weiterzuverarbeiten.

Diese Funktionalität war bisher in Shellscripten nicht oder nur über relativ komplizierte und fehleranfällige Dialog-Skripte möglich. Mit sel steht nun ein kleines - das C-Sourcecode Archiv umfaßt mit Manpage & Hilfe gerade mal 20 Kilobytes - auf der curses Bibliothek aufbauendes Tool zur Verfügung.

Die Verwendung der curses Bibliothek stellt momentan auch die einzig echte Schwachstelle dar. Sel untersteht der GNU General Public License, es ist demnach Freie Software, und der Autor lädt ausdrücklich dazu ein, es nach den eigenen Bedürftnissen weiterzuentwickeln.

Übrigens möchte ich an dieser Stelle noch eine persönliche Bemerkung loswerden. Es ist mittlerweile schon häufig vorgekommen, daß Autoren solch kleiner Projekte sich nicht an mich gewandt haben, da sie diese als nicht erwähnenswert ansahen. Da bin ich anderer Meinung. Für mich stellen gerade diese kleinen Projekte einen wesentlichen Bestandteil der Bewegung dar - auch wenn sie häufig in der Flut der Neuentwicklungen unbemerkt bleiben.

Daher sehe ich die Kolumne als geeigneten Ort, diesen kleinen Projekten ein Forum zu bieten. Nur kann auch ich nicht immer alles sehen und überall sein - daher bin ich auf Eure Mithilfe angewiesen. Solltet ihr Autor eines solchen Projektes sein oder aber über ein interessantes Projekt stolpern, dann gebt mir bescheid. Die Email-Adresse [1] sollte ja mittlerweile hinreichend weit gestreut sein.

LinCVS

LinCVS [6,7] ist bereits ein deutlich größeres Projekt. Es handelt sich dabei um ein Frontend für den Client des Concurrent Version System (CVS). Seinen Ursprung hatte das Projekt Anfang 1999, als Tilo Riemer feststellte, daß es kein CVS Frontend unter GNU/Linux gab, das seinen Ansprüchen in Sachen Funktionalität und Stabilität genügte. Wie so oft begann dieses Projekt also auch mit dem Wunsch, ein persönliches Problem zu lösen.

Der Maßstab war dabei WinCVS, wobei seiner Ansicht nach auch dort dem Benutzer zu viele Informationen abgefragt wurden, obwohl doch nahezu alle Daten in den CVS-Verwaltungsdateien vorhanden sind. Zudem sehen es viele Frontends nicht vor, mehrere Projekte gleichzeitig zu verwalten. Tilo Riemer war zum Beginn des Projektes selber CVS Neuling und hat daher den Anspruch formuliert, daß LinCVS einfach zu bedienen und außerordentlich stabil sein sollte.

Die Bedienung von LinCVS ist in der Tat sehr simpel und zu seinen besten Eigenschaften gehört, daß nur beim Import oder Checkout von Projekten überhaupt Daten eingegeben werden müssen. Was viele CVS-Benutzer erfreuen wird, ist, daß LinCVS auch auf Anfrage ganze Verzeichnisstrukturen nach CVS Projekten dursuchen kann und diese dem Arbeitsplatz automatisch hinzufügt, wobei es keine Obergrenze für die Anzahl der verwalteten Projekte gibt. Sehr übersichtlich ist die Aufteilung in CVS und nicht-CVS kontrollierte Dateien und die Kontext-Menüs in den verschiedenen Fenstern, die wie üblich mit der rechten Maustaste aufgerufen werden können.

Die Autoren des unter der GNU General Public License vertriebenen LinCVS sind Tilo Riemer, Wim Delvaux, Helmut Koll sowie Sven Trogisch. Ihr momentan größtes Problem ist die Verbesserung der Autodetektion von Änderungen überwachter Dateien durch Programme außerhalb von LinCVS, da diese im Augenblick noch zuviel Rechenzeit in Anspruch nimmt. Auf ihrer ToDo-Liste steht weiterhin der volle Support für ssh, die Vereinfachung des Checkouts älterer Revisionen, einfaches Mergen der Branches und ein WinXX-Port. Da keiner der Autoren hauptberuflich an LinCVS arbeitet, werden übrigens noch Entwickler aber auch vor allem Autoren für die Dokumentation gesucht.

Alles in allem gefällt mir persönlich LinCVS ziemlich gut. Einziger Wermutstropfen ist die Wahl des Toolkits, da die Autoren sich für Qt entschieden haben. Das und die fehlende Autoconf/Automake Konfigurierbarkeit waren jedoch die einzigen Dinge, die mich störten.

Dia

Gerade wer beruflich auf stukturierte Diagramme angewiesen ist, wird Dia [8] vermutlich viel abgewinnen können. Das Projekt wurde ursprünglich von Alexander Larsson ins Leben gerufen, doch seit Ende letzten Jahres ist James Henstridge der Maintainer. Im Laufe der Entwicklung haben natülich noch viel mehr Leute daran mitgearbeitet, die ich hier aus Platzgründen aber nicht alle aufzählen kann.

Die Funktionalität von Dia ist mit dem proprietären Programm "Visio" vergleichbar. Es dient dazu, strukturierte Diagramme aufzubauen, die aus Standardobjekten zusammengesetzt sind. So gibt es unter Anderem Modi für Flowcharts, Netzwerk- und UML-Diagramme. Es gibt jedoch auch einige generische Funktionen, mit denen einfache Zeichnungen erstellt werden können.

Das Programm verfügt über eine solide Zahl an Ausgabeformaten, die beispielsweise EPS, SVG, CGM und PNG beinhalten und durch die win32 Portierung des GTK+ Toolkits, auf dem es aufbaut, ist es auch unter win32 einsetzbar. Probleme bei der Kommunikation sind also nicht zu befürchten.

Sehr positiv fällt die Erweiterbarkeit auf. Sollte ein bestimmter Diagrammtyp noch nicht unterstützt sein, so können neue Objekttypen über einfache XML Dateien hinzugefügt werden, was in den allermeisten Fällen keinerlei Programmierkenntnisse erfordert. Schwierig ist im Moment jedoch die Arbeit an den Importfiltern für fremde Formate - an der Vereinfachung hiervon wird jedoch gearbeitet.

Speziell ein Importfilter für Visio-Diagramme wird von vielen Benutzern vermißt, doch da es sich um ein proprietäres Programm mit proprietären Formaten handelt, gestaltet sich der Importfilter recht schwierig. Ein typischer Fall in dem die Daten eines Benutzers in einem für ihn undurchsichtigen Datenformat "eingesperrt" werden.

Die Autoren von Dia haben keine freien Kapazitäten, um dieses Format zu knacken, es gibt jedoch auf dem Free Software Bazaar under der ID 990524A eine Belohnung für denjenigen, der es schafft, eine freie Bibliothek zu schreiben, die Visio Files lesen und schreiben kann [9]. Während ich diesen Artikel schreibe, sind 3000 USD geboten - wer also gerade etwas Freizeit hat, sich für das Thema interessiert und ein bißchen Taschengeld gebrauchen kann, der kann ja mal einen Blick darauf werfen.

Die weiteren Pläne beinhalten, mehr Diagramm-Typen zu implementieren und die Python-Anbindung zu vollenden. Außerdem benötigt Dia dringend mehr Dokumentation - Freiwillige sind herzlich willkommen. Für weitere Informationen ist die Dia Mailingliste vermutlich der richtige Ort [10].

Da die nächsten beiden Projekte eng miteinander verbunden sind, werde ich sie gemeinsam behandeln. Auch wenn es eher ein Artikel über die kommenden Technologien ist, denke ich doch, daß es den Einen oder die Andere interessieren dürfte.

libCIM & PaulA

Bei libCIM & PaulA [11] handelt es sich um die aktuellen Vorzeigeprojekte der deutschen Firma iD-PRO - beide stehen dabei im Geiste der Freien Software Bewegung unter der GNU General Public License.

Um diesen Beitrag allgemein verständlich zu halten, sollte ich vermutlich ein wenig auf den Hintergrund eingehen. CIM steht für Common Information Model. Es handelt sich dabei um einen objektorientierten Ansatz zur Modellierung von Systeminformationen. Seinen Ursprung hat es in den sogenannten Network Management Systems (NMS) wie z.B. Tivoli, OpenView oder anderen. Dabei geht es darum, in großen Netzwerken Informationen über die Systeme auszutauschen und diese Systeme zu administrieren.

Um nun den Datenaustausch zwischen den verschiedenen NMS zu ermöglichen, brauchte man ein gemeinsames Protokoll. Aus diesem Bedarf heraus entstand die "Web-Based Enterprise Management" (WBEM) Initiative, die zu diesem Zweck die CIM Standards sowie deren Abbildung in XML und die Übertragung via HTTP definiert hat. Die Veröffentlichung dieser Standards erfolgt über die "Distributed Management Task Force" (DTMF) [12]. Soviel zum Hintergrund.

Tauschen zwei Netwerk-Verwaltungssysteme (NMS) Informationen aus, so wird der eine zum Client und der andere zum Server, dem sogenannten "CIM Object Manager" (CIMOM). Sofern er über einen Zugriff auf den Server verfügt, kann der Client dort Systeminformationen abfragen und verändern. Da es nahezu beliebige Netzwerke abbilden können muß, ist das CIM etwas zu kompliziert, um es hier näher zu erläutern. Was für das Verständnis des Prinzips wichtig ist, ist nur, daß im CIM bestimmte Basis- und abgeleitete Klassen definiert werden. Die Objekte, die aus diesen Klassen instantiiert wurden, werden vom Client abgefragt und manipuliert.

Wem das zu technisch war, dem sei Folgendes gesagt. Dieses Prinzip erlaubt es, Netzwerke zu administrieren ohne dabei die Besonderheiten (Hardware/Betriebssystem) kennen zu müssen.

Die libCIM ist eine Perl Library, die die Programmierung in CIM Objekten ermöglicht. Außerdem verfügt sie über Funktionen für die Serialisierung in XML und den Transport. Die libCIM kann also für die Entwicklung von CIM Clients und Servern (CIMOM) verwendet werden.

PaulA ist ein Server/CIMOM, der die libCIM für die Implementation der CIM Objekte verwendet. Über PaulA können dann beispielsweise GNU/Linux Systeme ohne Kenntnis der unterliegenden Distribution einheitlich verwaltet werden, was vielen Administratoren das Leben erleichtern sollte.

Der aktuelle Status ist noch "pre-alpha", also noch ein Weilchen von der tagtäglichen Verwendbarkeit entfernt. Die Entwickler von libCIM & PaulA, Axel Miesen, Volker Moell, Eva Bolten, Friedrich Fox und Marcel Hild, hoffen, innerhalb von einigen Monaten ein stabiles Produktionssystem zu haben, mit dem dann auch die Interoperabilität zu anderen CIM Systemen getestet werden kann. Augenblicklich müssen zunächst jede Menge Provider (der Programmcode, der die eigentliche Arbeit verrichtet) geschrieben werden.

Dies ist sicherlich ein heißes Gebiet. Lizenzen für Software wie Tivoli sind extrem teuer und Fachleute für diese Technologie sind rar. Entwickler, die Lust haben, sich hieran zu beteiligen, sind ausdrücklich dazu eingeladen.

Die verbleibenden Zeilen möchte ich gerne einer Frage widmen, die mir von Hans Fuchs gestellt wurde, da diese schon früher so oder so ähnlich aufgetaucht ist.

Was soll ich von Sourceforge halten?

In einer Email äußerte Hans Fuchs sich besorgt über den Erfolg der Sourceforge Rechner [13], die vielen Entwicklern von Freier Software kostenlos Infrastuktur wie beispielsweise Webspace, FTP-Server, Mailinglisten oder eine "Projektname.sourceforge.net" Domain bieten. Sein ungutes Gefühl beruht dabei auf der Tatsache, daß die Server der Firma VA Linux gehören und von ihnen betrieben werden.

Nun bin ich immer für eine gesunde Skepsis zu haben, wenn es um den Altruismus von Firmen geht - auch wenn Unternehmen im GNU/Linux Bereich tatsächlich oft von dem Wunsch beseelt sind "etwas zurückzugeben". Wie auch die anderen Firmen in diesem Gebiet, lebt VA Linux letztendlich von der gesunden und lebendigen Entwicklung Freier Software. Mit dem Sourceforge Service helfen sie also, ihr eigenes Fundament zu stärken. Zudem ist es sehr werbewirksam und gibt ihnen die Möglichkeit, viele interessante Projekte im Blick zu behalten.

Doch stellt dies eine potentielle Bedrohung dar, die man eventuell durch Spiegeln der Projekte auf anderen Servern abwenden muß?

Das Risiko halte ich für sehr gering. Zunächst gibt es für VA Linux wenig zu gewinnen, wenn sie versuchen, ihren Zugriff auf die Projekte zu mißbrauchen. Der dabei entstehende Imageschaden übersteigt meiner Ansicht nach den potentiellen Gewinn um ein Vielfaches.

Außerdem haben die Autoren ja immer noch lokale Kopien ihres Sourcecodes (ganz zu schweigen von den Releases, die über das ganze Netz verteilt sind), die sie problemlos auch an anderer Stelle weiterentwickeln können.

Daher denke ich persönlich, daß Sourceforge durchaus ein sinnvoller Service ist, der die Entwicklung Freier Software fördert. Es könnte aber sicher nicht schaden, wenn dieses Konzept auch anderswo Anwendung fände, um eine breitere Streuung zu erreichen.

...und ab in den Flieger

So, das war's wieder für diesen Monat, in ein paar Stunden werde ich im Flieger nach Kalifornien sitzen. Emails [1] mit Themenvorschlägen, Ideen, Anregungen, Fragen und Projektvorstellungen erreichen mich aber trotzdem. Also nur zu.

Infos

[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@gnu.org
[2] Homepage des GNU-Projektes: http://www.gnu.org/
[3] Homepage von Georg's Brave GNU World: http://www.gnu.org/brave-gnu-world/
[4] "We run GNU" Initiative: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html
[5] Sel Homepage http://www.rhein-neckar.de/~darkstar/sel.html
[6] LinCVS Homepage http://www.lincvs.de/
[7] LinCVS auf Sourceforge http://lincvs.sourceforge.net
[8] Dia Homepage http://www.lysator.liu.se/~alla/dia/
[9] Free Software Bazaar http://visar.csustan.edu/bazaar/bazaar_catoffers.html#graphics
[10] Dia Mailingliste - eintragen via Mail an <dia-list-request@lysator.liu.se>
[11] PaulA Homepage http://paula.id-pro.de
[12] Distributed Management Task Force http://dtmf.org
[13] Sourceforge http://sourceforge.net


[ vorherige Ausgabe | Brave GNU World Homepage | nächste Ausgabe ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2000 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified: Fri Oct 13 16:07:49 CEST 2000