Wie wird freie Software entwickelt?

Hallo Leute!!!
Ich hab letztens erfahren was Projekt “schul-frei” ist. Allerdings weiß ich nicht genau wie man freie Software entwickelt. Daher würde ich mir wünschen das mir jemand genauer erklärt wie man freie Software z.B. in einem großem Projekt erestellt und wie das dann auf einem Laptop ankommt (und ggf. auch wo ich möglicherweise bei Projekt "schul-frei " mithelfen kann).

Freie Software bedeutet, dass dein Programm unter einer Lizenz veroeffentlicht ist, die es den Nutzern (d)einer Software erlaubt:

  1. Das Programm fuer alle Zwecke zu nutzen (natuerlich darfst du nichts Illegales machen, aber das verbieten Gesetze, nicht die Lizenz)
  2. Den Code zu lesen, um zu verstehen, wie das Programm funktioniert
  3. Das Programm beliebig weiterzuverbreiten
  4. Auch veraenderte Versionen des Programms zu verbreiten

Freie Software zu entwickeln heisst also eigentlich nur Software entwickeln und diese frei zu lizensieren.
ABER: Haeufig ist unfreie Software auf bestimmte Systeme angepasst, der Code ist unflexibel und nicht wiederverwendbar.
Diese Eigenschaften kann Freie Software natuerlich auch haben, allerdings wird hier grosser Wert auf sauberen Code gelegt, weil ja auch andere Menschen diesen lesen, verstehen und im besten Fall verbessern koennen sollen.

Damit du an Projekten wie schul-frei mithelfen kannst, brauchst du den Quellcode der Software, fuer die du dich interessierst. Das koennte als Einstieg z.B. die schul-frei.org-Website sein. Diese steht als git-Repository auf EduGit.org zur Verfuegung.
Mit git kannst du dir das Repository dann auf dein Laptop clonen, dir anschauen, verbessern und deine Aenderungen auch als Vorschlag anbieten; eine Merge-Request oeffnen.

Die Lizenzierung ist eine Sache — das reicht aber nicht aus. Damit wir Software als “frei” betrachten, müssen diese Freiheiten auch faktisch gewährleistet sein. Es gibt vor allem zwei Probleme, die häufig auftreten:

  • Der Programmcode ist obfusziert bzw. Kommentare wurden aus dem Code entfernt, um diesen absichtlich schwer zu lesen oder zu verändern zu machen. Ein Beispiel ist das Original-App zum Messenger Telegram, das zwar der Lizenz nach frei ist, aber fast nicht zu verstehen oder anzupassen.
  • Die Entwickler (oder Maintainer) schikanieren Benutzer und wollen ihnen abseits der Lizenz Beschränkungen auferlegen. Ein Beispiel ist der Messenger Signal, dessen Hauptentwickler z.B. damit droht, Nutzer, die den Code selber kompilieren, von den Servern auszusperren und damit auch freie App-Stores wie F-Droid unter Druck setzt

In solchen Fällen hilft die Lizenz dann auch nicht. Deshalb…

…ist das eben nicht alles, sondern die Struktur des Projektes und die Beteiligung der Community spielen eine wichtige Rolle. Echte freie Software lebt von der Zusammenarbeit der Gemeinschaft aus Entwicklern und Nutzern, hat Mechanismen, die Nutzer bei der Entwicklung einzubinden, usw.

Ich würde dazu mal 1-2 Sessions anbieten, in denen wir uns Beispiele von FOSS-Projekte nangucken und auch mal, wie so der Lifecycle von “Code schreiben” bis “Flusskrebs kann es mit apt installieren” aussieht.

Wer interessiert sich dafür? Bitte reagiert mit dem “Daumen hoch”-Emoji, wenn ihr an so eine rSession teilnehmen würdet.