Freie und Open-Source-Software-Projekte

Aus EasyLinux 02/2016

Freie und Open-Source-Software-Projekte

© alphaspirit, 123RF

Mitmachen

Linux und die große Palette an kostenloser und freier oder quelloffener Software leben davon, dass sich viele Entwickler an den Projekten beteiligen. Das können auch Sie: Dazu sind nicht mal Programmierkenntnisse nötig, denn auch Unterstützung bei der Dokumentation, Video-Tutorials, selbst designte Icon-Sammlungen und andere Hilfen werden oft gern gesehen.

Sie nutzen schon seit Jahren ein bestimmtes Programm und sind von den Features begeistert, die sich die Entwickler ausgedacht haben? Dann möchten Sie vielleicht “Danke” sagen – aber nicht durch Überweisung einer Spende (was auch bei vielen Projekten möglich ist), sondern durch aktive Unterstützung. Das wirft schnell die Frage auf, wie das klappen soll; schließlich treffen sich die Entwickler nicht zum wöchentlichen Stammtisch in einer Kneipe Ihrer Stadt, sondern sind meist über die ganze Welt verteilt und nutzen Mailinglisten und Chat-Foren (oft im IRC) oder Google-Hangouts zur Abstimmung.

Oft liefert die Webseite eines Projekts Informationen zu Möglichkeiten der Beteiligung – bei größeren und gut strukturierten Projekten wird dann genau aufgelistet, wo es aktuell Bedarf gibt. Ein gutes Beispiel dafür ist das LibreOffice-Projekt, das auf seiner deutschen Homepage [1] prominent im Hauptmenü einen Link Mitarbeit anzeigt. Wenn Sie den Link anklicken, öffnet sich ein Menü, dessen Unterpunkte über die verschiedenen Kategorien informieren (Abbildung 1), darunter Design, Entwicklung, Dokumentation, Lokalisierung (Übersetzung) und Marketing.

Abbildung 1: Mitmachen bei LibreOffice? Über den Link "Mitarbeit" finden Sie zahlreiche Betätigungsfelder.

Abbildung 1: Mitmachen bei LibreOffice? Über den Link “Mitarbeit” finden Sie zahlreiche Betätigungsfelder.

Das Beispiel macht schon deutlich: Es geht auch, aber nicht nur, um Softwareentwicklung (das eigentliche Programmieren) – auch Beiträge auf anderen Gebieten sind oft erwünscht. Je größer das Projekt, desto formalisierter sind allerdings in der Regel die Strukturen, was auf den ersten Blick abschreckend wirken kann. Am anderen Ende der Skala stehen Ein-Personen-Projekte, bei denen Sie einfach dem Entwickler eine Mail schicken und eine Vorschlag unterbreiten.

Was kann man tun?

Um am Programmcode mitzuarbeiten, sollten Sie ein erfahrener Entwickler sein und zudem die Programmiersprache(n) beherrschen, die im Projekt verwendet werden – oft C++, C, Perl und Python. Das wird wohl nur bei den wenigsten unserer Leser der Fall sein. Wie Ihr individueller Beitrag aussehen kann, hängt davon ab, welche Vorkenntnisse Sie mitbringen – was können Sie richtig gut? Hier ein paar Beispiele:

  • Sind Sie fit in deutscher Rechtschreibung und Grammatik? Dann können Sie sich die deutschsprachige Dokumentation eines Programms vornehmen und auf Fehler untersuchen (also ein “Lektorat” oder “Korrektorat” durchführen). Vielleicht ist das Handbuch auch bisher nur auf Englisch verfügbar, dann ist (nach Rücksprache mit den Entwicklern) eine Übersetzung ins Deutsche eine nützliche Hilfe. Größere Aufgaben (wie etwa die Übersetzung eines umfangreichen Handbuchs) werden oft auch von mehreren Helfern parallel erledigt, so dass jeder nur für ein Kapitel zuständig ist.
  • Hat das Projekt nur eine rudimentäre und lieblos gestaltete Webseite? Wenn Sie sich mit Webdesign auskennen, ist das Team vielleicht daran interessiert, dass Sie die Optik der Seite ins 21. Jahrhundert bringen.
  • Wenn Sie den Eindruck haben, dass die Software (zu Unrecht) eher unbekannt ist, könnten Sie mithelfen, Werbematerial zu erstellen, etwa einen Flyer, der die wichtigsten Features der Anwendung zusammenfasst und bebildert [2]. Einen schön gestalteten Flyer können die Teammitglieder auf Messen und Kongressen auslegen und damit Werbung für das Projekt machen.
  • Ist Ihnen ein Fehler im Programm aufgefallen? Wenn Sie die aktuellste Version der Software verwenden, sind die Entwickler an einem Bug-Report (also der Mitteilung des Fehlers) interessiert. Dafür gibt es oft spezielle Webseiten (so genannte Bug Tracker), auf denen Sie nach Registrierung und Anmeldung in der richtigen Kategorie ein “Ticket” anlegen, das den Fehler beschreibt (Abbildung 2).
Abbildung 2: Ein "Bug Tracker" (hier der für die Linux-Version von Gimp) sammelt nicht nur Fehlerberichte, sondern verwaltet auch weitere Schritte bis zur Fehlerbehebung.

Abbildung 2: Ein “Bug Tracker” (hier der für die Linux-Version von Gimp) sammelt nicht nur Fehlerberichte, sondern verwaltet auch weitere Schritte bis zur Fehlerbehebung.

  • Wenn die Installation und die Ersteinrichtung des Programms kompliziert sind, stellt das eine Hürde für neue Anwender dar – vielleicht haben Sie selbst einige Stunden damit verbracht, das Programm zum Laufen zu bringen. Dann erstellen Sie doch ein Video-Tutorial, in dem Sie alle nötigen Schritte zeigen und erklären – das können Sie dann auf YouTube hochladen (Abbildung 3) und das Projektteam darüber informieren, damit die Entwickler einen Link auf Ihr Video setzen.
Abbildung 3: Auf YouTube finden sich zahlreiche Tutorials für die Einrichtung und Nutzung von Linux-Programmen. Hier ist auch Platz für Ihre Anleitung.

Abbildung 3: Auf YouTube finden sich zahlreiche Tutorials für die Einrichtung und Nutzung von Linux-Programmen. Hier ist auch Platz für Ihre Anleitung.

  • Falls die Benutzeroberfläche des Programms noch nicht auf Deutsch verfügbar ist, die Entwickler es aber für Mehrsprachigkeit vorbereitet haben, können Sie Übersetzungen für Menüpunkte, Dialoge und andere Steuerungselemente erstellen und damit die Gruppe der potenziellen Benutzer vergrößern.

Neben diesen Beispielen finden sich auf vielen Projektwebseiten auch ganz konkrete Hinweise, wo Hilfe benötigt wird. Sie kommen leichter ins Team, wenn Sie auf aktuellen Bedarf reagieren.

Für viele Aufgaben ist es – gerade bei mittelgroßen Softwareprojekten – nötig, dass Sie sich mit den Projektmitgliedern in deren Sprache austauschen können; häufig wird das Englisch sein. Bei sehr großen Projekten gibt es dagegen oft auch eine deutschsprachige Community, so dass auch ohne Englischkenntnisse ein Mitmachen möglich wird.

Kontaktaufnahme

Kleine Projekte haben oft wenig oder keine professionelle Infrastruktur fürs Projektmanagement; in solchen Fällen finden Sie meist eine E-Mail-Kontaktadresse, über die Sie sich bei den Entwicklern melden können. Sobald aber ein größeres Team an der Entwicklung beteiligt ist, gibt es meist Vorgaben, wie eine erste Kontaktaufnahme ablaufen soll, z. B. über eine Mailingliste oder ein Forum.

Mailinglisten sind ein Klassiker der Gruppenkommunikation; auch EasyLinux setzt sie seit über zehn Jahren ein, um Lesern die Möglichkeit zu geben, sich zu Artikeln und anderen Linux-Themen auszutauschen [3]. Vor der aktiven Teilnahme an einer Mailingliste sollten Sie zunächst ältere Beiträge in den Archiven lesen (Abbildung 4): So bekommen Sie ein Gespür dafür, welche Themen auf der Liste diskutiert werden und welcher Umgangston dort üblich ist.

Abbildung 4: Die deutschsprachige Mailingliste des LibreOffice-Dokumentationsteams enthält viele Beiträge.

Abbildung 4: Die deutschsprachige Mailingliste des LibreOffice-Dokumentationsteams enthält viele Beiträge.

Beachten Sie nur, dass Sie mit der Anmeldung an einer Mailingliste Ihr Mailaufkommen deutlich erhöhen, falls es viel “Verkehr” auf der Liste gibt. Darum lässt sich bei einigen Listendiensten auswählen, eine tägliche oder wöchentliche Zusammenfassung (“Digest”) und nicht jede Nachricht als separate E-Mail zu erhalten.

IRC ist kein einzelnes Chatforum; es gibt diverse Betreiber von IRC-Servern. Wenn ein Projekt die Kommunikation via IRC anbietet, gilt es also zunächst herauszufinden, auf welchem Server sich der Kanal befindet. Bei Softwareprojekten aus der Linux-Welt ist das oft irc.freenode.net vom Freenode-Projekt [4], hier finden sich u. a. die Chatkanäle von LibreOffice. Für die Anmeldung am Server wählt man einen Benutzernamen, der aber schon belegt sein kann – dann hängt das Chatprogramm meist automatisch einen Unterstrich an den Wunschnamen an und versucht es damit erneut.

Jeder Kanal hat einen Namen, der mit einer Raute (#) beginnt, so trifft sich z. B. das LibreOffice-Dokumentationsteam auf #libreoffice-doc, während #linux (Abbildung 5) ein allgemeines, englischsprachiges Linux-Forum ist. Welche Channels ein Projekt nutzt, steht auf der Projektwebseite. Um einen Channel zu betreten, verwenden Sie das Kommando

/join Channelname

das Sie im Konsolenreiter des Programms eingeben; dadurch öffnet sich ein neuer Tab: Dort sehen Sie die Kommunikation im Channel und können auch eigene Nachrichten abschicken, die dann die übrigen Anwesenden erhalten.

Abbildung 5: Im Internet Relay Chat (IRC) gibt es viele Linux-bezogene Chaträume (die dort Channels oder Kanäle heißen).

Abbildung 5: Im Internet Relay Chat (IRC) gibt es viele Linux-bezogene Chaträume (die dort Channels oder Kanäle heißen).

Freie Software vs. Open Source Software

Sinnvoll ist die Mitarbeit in der Regel nur bei Softwareprojekten, die ihren Quellcode unter eine Lizenz stellen, welche Zugriff auf und Änderungen am Code erlaubt. Denn das signalisiert in der Regel ein Interesse an externer Hilfe. Hier gibt es mit “Freier Software” und “Open Source Software” zwei Begriffe, die häufig verwechselt werden. Linux und viele Programme aus der Linux-Welt fallen in beide Kategorien (sind also frei und quelloffen), darum wird auch in der Presse selten sauber unterschieden. Hinter beiden Softwarekategorien stecken Philosophien, und es gibt viele Lizenzen für die Verbreitung und Nutzung von Software, die zu einer oder beiden passen.

Freie Software

Freie Software [5, 6] gibt dem Anwender diverse Freiheiten, darunter:

  • die Freiheit, das Programm zu beliebigen Zwecken einzusetzen, auf so vielen Rechnern wie gewünscht,
  • die Freiheit, Kopien des Programms an andere Anwender weiterzugeben, auch in veränderter Form,
  • die Freiheit, an den Quellcode der Software zu gelangen, um diesen zu lesen oder zu verändern und so z. B. durch das Lesen zu lernen, wie die Entwickler bestimmte Probleme gelöst haben. Durch das Verändern lassen sich dann dringend benötigte Funktionen ergänzen, welche die “Hauptentwickler” für unwichtig halten.

Open Source Software

Verfechter freier Software stellen den ethischen Aspekt (die Anwender von Software zu befreien) in den Vordergrund, während Open-Source-Freunde eher praxisorientiert denken und den Open-Source-Entwicklungsprozess für technisch überlegen halten – so beschreibt es Stallman in einem Artikel [7]. Auf Open-Source-Seite gibt es die Open Source Initiative, die festgelegt hat, wann Software als quelloffen gilt [8] – einige Kriterien klingen sehr ähnlich wie die von Freier Software:

  • Freie Verteilung ist erlaubt,
  • der Quellcode ist verfügbar und darf nicht “obfuskiert” (also durch spezielle Techniken schwer lesbar gemacht) sein,
  • der Code darf geändert werden,
  • die Lizenz darf keine Einschränkungen enthalten, was die parallele Nutzung und Verbreitung von Software angeht, die nicht unter einer Open-Source-Lizenz steht.

Vor allem durch den letzten Punkt lässt sich Open-Source-Software leichter mit Programmen kombinieren, die eben nicht frei sind. Bei Freier Software ist das in einigen Fällen nicht möglich. (Die Details sind recht technisch.)

Open-Source- und Freie Software werden häufig unter dem Begriff “Free and Open Source Software” (FOSS) zusammengefasst.

Weder noch

Shareware und Freeware haben übrigens (in letzterem Fall trotz der Namensähnlichkeit) nichts mit Freier Software zu tun: Freeware ist eine klassische Softwarekategorie, die es schon zu MS-DOS-Zeiten, also in der 80er Jahren gab. Freeware-Programme zeichnen sich dadurch aus, dass sie kostenlos erhältlich und nicht (gegenüber einer eventuellen Vollversion) eingeschränkt sind. Damit ist z. B. eine Demoversion einer Textverarbeitung, mit der Sie alle Features ausprobieren, aber keine Dokumente speichern oder drucken können, keine Freeware. In den meisten Fällen gibt es Freeware nur in einer Binärversion, also als ausführbares Programm, und der Quellcode ist nicht erhältlich. Wo es doch Sourcen gibt, kann eine Lizenz zum Beispiel das Verändern der Quellen verbieten – das würde nichts am Freeware-Status ändern. Das Open Directory Project verwaltet eine Liste von Freeware-Programmen [9].

Shareware ist Freeware sehr ähnlich, mit dem Unterschied, dass Shareware-Programme meist nur für einen Testzeitraum vollständig (oder ohne Belästigungen) funktionieren; nach Ablauf dieses Zeitraums verschwinden entweder einzelne zentrale Funktionen, oder es erscheinen regelmäßig störende Hinweise, dass doch bitte jetzt eine Lizenz zu erwerben sei – dann handelt es sich um Nagware (engl. “to nag”: nerven).

GitHub: “Fork & Pull”

Bei Projekten, die ihren Quelltext auf GitHub [10] zum Download anbieten, ist eine spezielle Methode der Beteiligung möglich, die “Fork & Pull” heißt. Sie setzt Verständnis der Konzepte der Versionsverwaltung [11] voraus – hier geben wir eine kurze Erklärung.

GitHub ist eine Webseite, die Softwareentwicklern kostenlosen Webspace und ein komfortables Interface für die Versionsverwaltung Git [12] zur Verfügung stellt. Darüber kann man ein so genanntes Repository anlegen, in das man dann die Dateien hochlädt, die zum Softwareprojekt gehören. Ändern sich einzelne Dateien, werden sie erneut hochgeladen, und die Versionsverwaltung (also Git) vergibt eine neue Versionsnummer. Alle Versionen (alte wie nie) bleiben dauerhaft verfügbar, so dass es auch leicht möglich ist, zu einer älteren Version zurückzukehren, wenn aktuelle Änderungen den Code versehentlich unbrauchbar gemacht haben.

Klassische Modelle der Zusammenarbeit von Entwicklern haben vorgesehen, dass jeder, der mitmachen möchte, einen eigenen Zugang zum Repository (mit Schreibrechten) benötigt. Beim Ansatz “Fork & Pull” kann man darauf verzichten:

  • Zunächst brauchen Sie einen GitHub-Account (also ein Konto, über das Sie sich mit Benutzername und Passwort bei GitHub anmelden können); das ist schnell eingerichtet.
  • Mit der Fork-Operation (engl. fork = Gabel) erstellen Sie eine 1:1-Kopie des Repositorys, das die Software enthält, an der Sie mitarbeiten möchten (Abbildung 6).
Abbildung 6: Von Projekten, deren Quellcode auf GitHub liegt, können Sie über den "Fork"-Button eine eigene Kopie (einen Fork) erstellen.

Abbildung 6: Von Projekten, deren Quellcode auf GitHub liegt, können Sie über den “Fork”-Button eine eigene Kopie (einen Fork) erstellen.

  • Jetzt haben Sie ein eigenes Repository, in dem Sie Schreibrechte haben und Dateien herunterladen (in Git-Sprache: “aus-checken”), verändern und wieder hochladen (Git: “ein-checken”) können. Das hat allerdings zunächst keine Auswirkungen auf das ursprüngliche Original-Repository.
  • Um den Entwicklern anzubieten, Ihre Änderungen zu übernehmen, erstellen Sie einen “Pull-Request”: Dadurch erhält das zuständige Teammitglied eine Aufforderung, Ihre Version in das offizielle Repository zu integrieren.

So ist es möglich, dass sich zahlreiche Unterstützer an der Weiterentwicklung beteiligen können, ohne dass man diesen (meist persönlich nicht bekannten) Personen Schreibzugang zum Repository einrichten muss. Bei einem Pull-Request sehen die Entwickler genau, welche Änderungen vorgeschlagen wurden (müssen also nicht Zeile für Zeile alle Dateien vergleichen) und können dann entscheiden, ob sie die Änderungen akzeptieren.

Eine Reihe von anschaulichen (aber englischsprachigen Videos), welche die Prozesse beschreiben, finden sich auf der GitHub-Training-Seite [13].

Hilfe vor Ort

Wenn Ihnen die ganze internetbasierte Zusammenarbeit nicht zusagt und Sie lieber vor Ort in Ihrer Heimatstadt aktiv werden möchten, wird es zwar in der Regel nicht mit der Mitarbeit am Softwareprojekt Ihrer Wahl klappen, doch auch dann gibt es verschiedene Möglichkeiten, sich zu engagieren. Hier ein paar Vorschläge:

  • Sprechen Sie die Direktoren benachbarter Schulen an und fragen Sie, ob Interesse an einem Linux-, LibreOffice- oder Gimp-Kurs besteht. Den Lehrern fehlt an vielen Schulen einfach die Zeit (oder das Know-how), um eine Computer-AG anzubieten. In dem Fall sollten Sie sich aber darauf einstellen, ein ganzes Schulhalbjahr lang zur Verfügung zu stehen.
  • Finden Sie heraus, ob es in Ihrer Region bereits eine Linux User Group (LUG) gibt (z. B. über das LUG-Verzeichnis auf den letzten EasyLinux-Seiten, das allerdings nur die LUGs auflistet, die uns ihre Kontaktdaten geschickt haben). LUGs freuen sich oft, wenn Sie anbieten, einen Vortrag über ein Thema zu halten, mit dem Sie sich gut auskennen.
  • Wenn es keine LUG in der Nähe gibt, gründen Sie eine. Organisatorisch ist das kein großer Aufwand – hängen Sie ein paar Informationszettel bei örtlichen Supermärkten aus oder schalten Sie ein kleines Inserat im örtlichen Anzeigenblatt. Für ein erstes Treffen reservieren Sie einen Tisch in einem wenig frequentierten Lokal. Sie können die Interessenten auch um Anmeldung per E-Mail bitten, damit Sie bei der Tischreservierung eine Gästezahl angeben können.
  • Fragen Sie bei der örtlichen Volkshochschule (VHS) [14], ob sie Kursleiter für Linux-Themen sucht. Dafür gibt es dann sogar ein wenig Geld, aber die VHS-Honorare sind recht niedrig, so dass auch diese Aktivität noch als ehrenamtlich durchgeht; Sie können auch vereinbaren, auf das Honorar zu verzichten.
  • Sprechen Sie mit einem Ihnen bekannten Lokalpolitiker über das Thema Linux in der Verwaltung. Vielleicht arbeitet Ihre Kommune noch komplett mit Windows, und Sie können damit ein Migrationsprojekt hin zu Linux anregen. (Dazu sollten Sie sich vorher in diese sehr spezielle Materie einlesen.)
  • Brennen Sie ein paar DVDs mit einer einsteigertauglichen Linux-Distribution und verteilen Sie diese im Freundes- und Bekanntenkreis – verbunden mit dem Angebot, für die Erstinstallation mal zu Besuch zu kommen.

Die Möglichkeiten, sich aktiv an einem Softwareprojekt zu beteiligen, sind zahlreich. Den größten Erfolg werden Sie dabei dann haben, wenn Sie ein Projekt auswählen, das Sie wirklich lieben und deswegen vorantreiben möchten.

Glossar

IRC

Internet Relay Chat ist ein in die Jahre gekommenes Chat-System, das die direkte Kommunikation von zwei Anwendern erlaubt, aber auch so genannte Channels (Kanäle) bietet, in denen sich beliebig viele Nutzer treffen und einen Gruppen-Chat führen können.

Infos

[1] LibreOffice: http://de.libreoffice.org/

[2] Artikel zur Flyer-Erstellung mit Scribus: Andreas Reitmaier, “Party-Alarm”, LinuxUser 05/2014, S. 46 ff., http://linux-community.de/31965

[3] EasyLinux-Mailinglisten: http://www.easylinux.de/Mailinglisten

[4] Freenode: http://freenode.net/

[5] Free Software Foundation: http://www.fsf.org/

[6] GNU-Projekt: http://www.gnu.org/

[7] Open Source vs. Free Software: http://www.gnu.org/philosophy/free-software-for-freedom.html

[8] Open Source Initiative: Open-Source-Definition, http://opensource.org/docs/osd

[9] Freeware-Liste: http://www.dmoz.org/Computers/Software/Freeware/

[10] GitHub: https://github.com/

[11] Artikel zur Versionsverwaltung: Hans-Georg Eßer, “Vorher und nachher”, EasyLinux 01/2015, S. 117 ff., http://linux-community.de/32576

[12] Git: https://git-scm.com/

[13] GitHub-Training: https://training.github.com/resources/videos/

[14] Volkshochschulen: https://www.volkshochschule.de/

EasyLinux 02/2016 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben