1 Open-Source Software 2023

Mi, 14:00 bis 15:30, 15:40 bis 17:10, W3.22

Die Klausur ist am 6. Juli 2023 um 17 Uhr (Fernklausur über Moodle und Zoom)

Moodle: https://moodle.hs-augsburg.de/course/view.php?id=6821

Material: oss/ (Zeitungsartikel, Aufsätze, Buchkapitel, etc.)

Fragensammlung: oss/Fragen/index.html

Frühere Veranstaltungen: OSS

Eine Sammlung freier Programme ist im „OSS-Wiki“ (von StudentInnen erstellt im Sommer 2022): https://moodle.hs-augsburg.de/mod/wiki/view.php?id=255554

Anregung zum Schreiben der Hausaufgaben: Pandoc (Markdown) oder Sphinx (reST)

1.1 Grobe Gliederung

Es geht mir bei der Veranstaltung darum, dass Sie ein paar Grundlagen in folgenden Themengebieten im Laufe der Zeit gewinnen. Stellen Sie sich vor, sie müssen in einem zukünftigen Job zum ersten Mal ein freies Softwareprojekt managen, dann sollte der Kurs ihnen die passenden Grundlagen vermittelt haben. Gerne bin ich offen für Anregungen, was Sie für wichtig halten!

  1. Definition der Begriffe „freie Software“ und „offene Software“

  2. Warum gibt man den Quelltext überhaupt freiwillig her, wo doch die klassische kommerzielle Verhaltensweise immer genau das Gegenteil ist (weggesperrte Software im Safe sind fuer manche wie „Goldbarren“).

  3. Vor- und Nachteile von offener und geschlossener Software

  4. Ein paar Einblicke in die geschichtliche Entwicklung (auch die Voraussetzungen zur Entstehung von OSS)

  5. GNU Software und die Free Software Foundation (FSF)

  6. Die Open-Source Bewegung

  7. Wo wird freie und offene Software verwendet? (typische Anwendungsbereiche)

  8. Wie macht man freie und offene Software? Regeln, Werkzeuge, kollaboratives Arbeiten mit git

  9. Aufbauen von Gemeinschaften („community building“)

  10. Beispiele von erfolgreichen OSS-Projekten

  11. Ein wenig Urheberrecht und die wichtigsten Lizenzen

  12. Zusammenstellungen von freien Programmen:

  13. Anwendungsbereiche der offenen Denkweise, die ausserhalb der Softwareentwicklung liegen, z.B. Open-Innovation

  14. Geschäftsmodelle mit freier Software (wie kann ich damit Geld verdienen?)

Eine genauere Gliederung ist hier: OssGliederung

1.2 #1 - Vorbesprechung (22.3.2023)

In Stichpunkten das Wichtigste was wir in der Vorbesprechung angesprochen haben:

Die Rolle von Microsoft früher und jetzt („freie Software ist ein Krebsgeschwür +++ Machtmissbrauch des Monopolisten, „embrace and change“ +++ Haltung um 180 Grad geändert, es geht nur noch mit Open-Source, Kauf von github +++ WSL2, Azure Cloud, …).

Kommerzielle bzw. „proprietäre“ Software <—> Free Software und später Open-Source Software (1998), https://www.opensource.org. „Free“ steht für Freiheit, nicht kostenlos +++ Free Software Foundation (FSF) +++ Beginn 1984 +++ Freie Software unterliegt der General Public License (GPL) +++ „virale“ Eigenschaften, „steckt an“ und kann nicht mehr in proprietäre Software umgewandelt werden +++ Rechtlicher Trick, damit Software frei bleibt. Antwort auf zunehmende Kommerzialisierung der Softwareentwicklung Anfang der 80er Jahre.

Proprietäre Lizenzen (Verbote, z.B. EULA) <—> Offene Lizenzen (Freiheiten, aber auch Einschränkungen)

FLOSS = Free Libre Open Source Software

Free Software Gründer Richard Stallman https://en.wikipedia.org/wiki/Free_as_in_Freedom. einer der ersten, die Software über Internet Kommunikation mit anderen schreibt (FTP, tar Archive, diff, patch).

FSF/FSFE Kampagnen, z.B. „public money, public code“ https://publiccode.eu/en/

Patch: Larry Wall, https://www.facesofopensource.com

„4 Freedoms“ http://www.youtube.com/watch?v=uJi2rkHiNqg

GNU Projekt (1984, freies UNIX, Anfang mit GCC, GDB, Emacs, Kernel sollte zum Schluss kommen)

IT Infrastruktur sehr oft Open-Source (weltweites Internet, aber auch an der Hochschule z.B. im Rechenzentrum)

Linux ist der Kern des GNU/Linux Betriebssystems. Er steht unter GPL Lizenz. Viele Programme aus dem User-Space kommen aus dem GNU Projekt („GNU is not UNIX“). Viele Beteiligte die an Linux Änderungen vornehmen, stark unterschiedliche Qualität der individuellen Arbeiten, Qualitätsmanagement notwendig, hierarchisch gegliedert, downstream, upstream.

Grosse Projekte, die demokratisch verwaltet und weiterentwickelt werden: Internet (RFCs), Python (PEP).

Kommerzielle Software in der Verwaltung und bei anderen staatlichen Einrichtungen. Problem der Abhängigmachung durch Produkte von kommerzielle Firmen („lock-in“). Viele Millionen Euro an Steuergeldern für Lizenzen (Beispiel DLR, Fraunhofer, Max-Plank). Beispiel Stadt München. Lockangebote für kostenlose kommerzielle Programme (Microsoft Office, Matlab, …) an Bildungseinrichtungen, Hochschulen, Universitäten „Abhängigmachung“ von neuen Kunden.

Viele teure kommerzielle Programme könnten ersetzt werden, z.B. Matlab durch Conda Forge (frei) https://conda-forge.org

Geschichte freier Software https://www.kritische-informatik.de/index.htm?fshistl.htm

Eine ausführlichere Behandlung der Geschichte freier Software finden Sie in unserer Materialsammlung, siehe http://hhoegl.informatik.hs-augsburg.de/oss/. Dort ist gleich am Anfang das freie Buch von Volker Grassmuck, klicken Sie auf „Lesetipps“.

Gerne die Veranstaltung nutzen zum Umsteigen von Windows auf Linux. Am einfachsten geht das mit einer „virtuellen“ Installation von Linux auf Windows mit Hilfe von VirtualBox https://www.virtualbox.org. Freie Images gibt es unter https://virtualboxes.org.

Allein einen Quelltext unter offenen Lizenz auf github stellen führt noch nicht dazu, dass andere daran weiterarbeiten. Es muss bereits ein bestimmter Nutzen für andere vorhanden sein. Gelungenes Beispiel, das an der Hochschule Augsburg entstanden ist und das jetzt weltweite Verwendung findet und aktiv weiterentwickelt wird: https://www.openocd.org.

Geschäftsmodelle für Open-Source sind anders als die für proprietäre Software. Zum Beispiel IntelliJ IDE Community Edition, Gitlab Community Edition, Qt

Alternative zu Hyperscaler wie Facebook, Twitter: https://de.wikipedia.org/wiki/Fediverse

Creative Commons Lizenz für Werke die nicht Software sind, also z.B. Texte, Bilder, Audio, Video, … (https://creativecommons.org/licenses)

1.3 #2 - 29.3.2023

OpenLab Augsburg (https://www.openlab-augsburg.de) +++ Linux Infotag (https://www.luga.de/static/LIT-2023) +++ Vim / vimtutor +++ Emacs (Tutor C-h t) +++ „readline“ Bibliothek (libreadline), Navigation in der Shell +++ BSD Unix Geschichte, Berkeley Software Distribution, BSD Lizenz, Bill Joy, Vi Editor, Netzwerk Software, Sun Microsystems, OpenBSD, FreeBSD, NetBSD +++ Vergleich Linux (GPL) mit BSD-Unix (BSD Lizenz), Linux-Code in BSD möglich? +++ https://www.ifross.de Lizenz Center +++ Geschichte, die 6 Prinzipien https://hhoegl.informatik.hs-augsburg.de/hhwiki/OssGliederung#geschichte +++ Foundations (Mozilla-F., Linux-F., Python-F., Open-Document F., …) +++ Alternativen zu kommerziellen Programmen suchen, z.B. Xournal++, VSCodium, Conda-Forge statt Anaconda +++ git, .gitignore, private/intern, ssh public key +++ Warum kommerzielle IDEs wie IntelliJ? +++ zukünftige KI-Erweiterungen bei IDEs, Code-Vervollständigung, Chat-GPT, Github Copilot +++ The Open Source Definition https://opensource.org/osd/

1.4 #3 - 5.4.2023

FOSS Programme analysieren („Code Reading“)

  • Was steht in der README.md?

  • Projekt aktiv oder verwaist?

  • Wer hat es sich ursprünglich ausgedacht?

  • Wer ist der aktuelle Maintainer?

  • Wo wird das Projekt gehostet? (z.B. Github, Gitlab, Savannah https://savannah.gnu.org)

  • Gibt es eine Homepage?

  • Für welche Betriebssysteme ist es geeignet?

  • Unter welcher Lizenz steht das Programm?

  • Ist es ein Kommandozeilen- oder Grafikprogramm?

  • Wie lange existiert es?

  • Wie viele haben in etwa daran gearbeitet?

  • Welche Programmiersprache(n) wird/werden verwendet? (Tipp: https://github.com/XAMPPRocky/tokei)

  • Welches Konfigurations- bzw. Build-System wird verwendet?

  • Wird eine IDE zum Entwickeln verwendet?

  • Gibt es eine Dokumentation, wenn ja, in welchem Textverarbeitungssystem wurde sie geschrieben?

  • Wie viele Anwender verwenden das Programm ungefähr? (schwer herauszubekommen)

  • Gibt es Abspaltungen („forks“)?

  • Wie kann man mitmachen bzw. Änderungen einreichen?

  • Wie aktiv war es in letzter Zeit?

  • Wie werden Branches in Git verwendet? (git Workflow bei der Entwicklung)

  • Wie kann man das Programm installieren? (selber kompilieren, binary, snap, appimage, container, …)

  • In welcher Sprache sind die Meldungen des Programms verfasst, z.B. Englisch, Deutsch, Chinesisch? Gibt es eine Internationalisierung in verschiedenen Sprachen (z.B. GNU gettext)?

  • und so weiter…

Vorschläge für Programme sind hier: https://hhoegl.informatik.hs-augsburg.de/oss/ss23/codereading.txt

Sehr interessant in diesem Zusammenhang das Projekt „Architecture of Open-Source Applications“ (https://aosabook.org/en/index.html). Der Initiator Greg Wilson hat auch das „Software Carpentry“ Projekt (https://software-carpentry.org) gegründet.

1.5 23.4.2023 - Weitere Planung

22.3.   fand statt
29.3.   fand statt
 4.4.   fand statt
12.4.   fand nicht statt (Ostern)
19.4.   fand nicht statt (Krankheit)
26.4.   findet nicht statt (Prof. Högl auswärts bei Workshop)
 3.5.   findet statt
10.5.   findet statt
17.5.   findet nicht statt (Pyramid)
24.5.   findet nicht statt (Prof. Högl auswärts bei Workshop)
31.5.   findet statt
 7.6.   findet statt
14.6.   findet statt
21.6.   findet nicht statt (Prof. Högl auswärts bei Workshop)
28.6.   findet nicht statt

Wir werden noch ein paar Themen behandeln:

  • Soziale Netze und Open-Source: Fediverse.party, dezentrale föderierte Dienste: owncast.online, Peertube, Mastodon, Hubzilla, Disaspora, GNU Social, Friendica, Misskey, Pixelfed, Pleroma.social,

  • Digitale Souveränität

  • Open-Source und Agile Teams („Inner Source“)

  • Software Composition Analysis (SCA)

  • Lizenzen

Zu allen diesen Themen finden Sie Artikel im Material-Ordner http://hhoegl.informatik.hs-augsburg.de/oss/.

1.6 3.5.2023 - LIT Zusammenfassung

  • Einstieg GNU/Linux [5], [9]

  • Digitale Gesellschaft [1], [2], [3]

  • Privatsphaere, Digitale Mündigkeit [2] (https://digitalcourage.de)

  • Nachhaltigkeit, Müllvermeidung [1]

  • Digitale Souveränität [4], [8]

  • Barrierefreiheit [5], [6]

  • OpenData [7], [10]

[1] https://www.luga.de/static/LIT-2023/talks/emmabuntus_eine_distribution_zeigt_wie_opensource_und_freie_software_menschen_in_europa_und_afrika_hilft/

[2] https://www.luga.de/static/LIT-2023/talks/cryptocafe_digitale_selbstverteidigung_fur_einsteigerinnen_und_einsteiger/

[3] https://www.luga.de/static/LIT-2023/talks/open_source_sonne_tanken_wallboxen_mit_evcc_smarter_machen/

[4] https://www.luga.de/static/LIT-2023/talks/bildungssysteme_nachhaltig_digitalisieren/

[5] https://www.luga.de/static/LIT-2023/talks/nachhaltigkeit_und_barrierefreiheit_mit_linux_und_open_source/ (Videoaufzeichnung kommt noch)

[6] https://www.luga.de/static/LIT-2023/talks/adriane/

[7] https://www.luga.de/static/LIT-2023/talks/datenanalyse_mit_python/

[8] https://www.luga.de/static/LIT-2023/talks/debian_live_netboot_on_top/

[9] https://www.luga.de/static/LIT-2023/talks/was_ist_gnulinux_ein_uberblick_fur_einsteiger/ (Videoaufzeichnung kommt noch)

[10] https://www.luga.de/static/LIT-2023/talks/openbikesensor_uberholabstandsmessung_fur_radfahrende/ (Open Citizen Science, Open Innovation, Open Source, Open Hardware, Open Data)

Zum Thema „Elektroschrott“ auch die aktuellen c’t Artikel „Windows 11 Update“ unter http://hhoegl.informatik.hs-augsburg.de/oss/ anschauen.

Zum Thema Digitale Selbstbestimmung

Lokale Mastodon Instanz Augsburg, von Andreas Benkel

1.7 10.5.2023

Leute

Rechtliches

  1. Felicitas Jung, Fürchte nicht den offenen Quellcode - 1x1 des Lizenzmanagements, Pengutronix 2020.

    https://www.pengutronix.de/de/blog/2020-02-25-open-source101.html

  2. Tobias Haar, Was Softwareentwickler über Urheberrecht wissen müssen. iX 6, 2010.

    https://hhoegl.informatik.hs-augsburg.de/oss/Haar/haar-urheberrecht.pdf

  3. Tobias Haar, Rechtsfragen der Open-Source-Compliance (Material, iX, 5/2022, 2 Seiten).

  4. Sylvester Tremmel, Was Open-Source Lizenzen voneinander unterscheidet, c’t 1-2020, https://hhoegl.informatik.hs-augsburg.de/oss/ct.0120.068-069.qxp.pdf

  5. https://opensource.guide/de/legal/ (von Github). Geht auch auf CLA/DCO ein. Der Github Text ist Teil der „Open Source Guides“, https://opensource.guide/de/

  6. Auch im Buch von Vicky Brasseur geht es in Kap. 3 um rechtliche Begriffe, u.a. um CLA/DCO.

  7. https://choosealicense.com

  8. https://ifross.github.io/ifrOSS/Lizenzcenter

  9. The Complete Guide for Open Source Licenses 2022, https://www.mend.io

    https://hhoegl.informatik.hs-augsburg.de/oss/MEND-The-Complete-Guide-for-open-source-Licenses-2022.pdf

  10. Vergleich der MS EULA mit der GPL: https://hhoegl.informatik.hs-augsburg.de/oss/comparing_the_gpl_to_eula.pdf

    Ab Seite 4 geht es um die „Windows XP End User License Agreement“, ab Seite 19 um die GPL. Der Text ist zwar schon etwas älter (2003), hat aber noch Gültigkeit und zeigt deutlich die unterschiedlichen Absichten der beiden Lizenzen.

Siehe Erläuterungen und Fragen zu Open-Source Lizenzen https://hhoegl.informatik.hs-augsburg.de/oss/Fragen/Lizenz-Fragen.html

1.8 Hausaufgaben

1.8.1 #1 - Bis Di, 28.3.23, 23:59

Diese Aufgaben beantworten Sie bereits in Ihrem fortlaufenden Hausaufgabentext, den Sie auf das RZ WWänitW-Home legen. Sie verwenden dazu entweder pandoc, Sphinx oder mdbook. Den Quelltext der Hausaufgabe legen Sie in ein Repository auf unserem Gitlab. Der Link auf Gitlab steht auch im Bericht, so dass ich ihre Abgabe auch in git klonen kann. Fügen Sie eine Lizenz ihrer Wahl hinzu, so dass der Inhalt zumindest frei weiterverbreitet werden darf. Die Link auf Ihr RZ WWW-Home schicken Sie mir per Email zu. Sollte es irgendwo hängen, dann schreiben sie in das Forum im Moodle Kurs.

  1. Das was ich in der Veranstaltung erzählt habe (siehe Notizen oben) sollten Sie nochmal durchdenken und nachbereiten. Sie sollten sich in der Veranstaltung dazu immer Notizen machen. Wenn es Fragen gibt, können wir darüber beim nächsten Treffen sprechen.

  2. Welche Programme verwenden Sie typischerweise für Ihre tägliche Arbeit auf Ihrem Rechner? Stellen Sie die Programme mit ihrer Lizenz in einer Tabelle zusammen. Denken Sie auch an Programme die Sie in Ihrem Studium verwendet haben bzw. verwenden mussten. Spiele können Sie weglassen.

  3. Ergänzen Sie die Geschichte freier Software ab 2000 bis jetzt. Recherchieren Sie selber, welche wichtigen Ereignisse in den letzten 20 Jahren Open-Source Geschichte stattgefunden haben.

    Geschichte freier Software bis 2000: https://www.kritische-informatik.de/index.htm?fshistl.htm

    Im Buch von Grassmuck finden Sie einen gut lesbaren Abschnitt zur Geschichte der Softwareentwicklung, siehe die Lesetipps unter https://hhoegl.informatik.hs-augsburg.de/oss/grassmuck.html.

  4. In [1] Kapitel 1 (Foundations) und 2 (What Free and Open Source can do for You) lesen (25 Seiten).

  5. Herausfinden: Welche Lizenz hat IntelliJ Community Edition (CE) und Gitlab CE

  6. Auf einschlägige Nachrichten (Zeitung, Smartphone) aus dem FLOSS-Bereich achten.

  7. Video anschauen (ca. 2 Minuten): „4 Freedoms“ http://www.youtube.com/watch?v=uJi2rkHiNqg

  8. Video anschauen (ca. 2 Minuten): What is Free Software (Open Source)? https://www.youtube.com/c/FreeSoftwareFoundationEurope

  9. Video anschauen (ca. 45 Minuten): https://hhoegl.informatik.hs-augsburg.de/oss/ss20/Das-Microsoft-Dilemma-2018.mp4

Bei allen Videos bitte den Inhalt in Stichpunkten in die Hausaufgabe schreiben.

1.8.2 #2 - Bis Di, 4.4.23, 23:59

  1. Hausaufgaben korrigieren (README.md mit sinnvollem Inhalt; Fragestellung soll enthalten sein; Build-Skript muss es geben; Dateien die erzeugt werden sollen nicht im Repo sein - .gitignore!; Alle Aufgaben erledigen.)

  2. Unix Geschichte, vor allem BSD, siehe Gliederung

  3. Gemeinsamen Liste der wichtigsten Open-Source Ereignisse von 2000 bis 2023 machen auf https://yopad.eu/p/Oss23

  4. Film ansehen: Software-Rebellen: Die Macht des Teilens Doku (Arte 2018)

    https://www.youtube.com/watch?v=rJ9alHLIthw

  5. In [1] Kapitel 3 (Prepare to contribute) und 4 (Find a project) lesen. S. 25 - 51.

1.8.3 #3 - Bis Di, 11.4.23, 23:59

  1. Suchen Sie sich aus den folgenden Projekten eines aus und analysieren sie es nach unseren Kriterien des Code-Reading:

    https://hhoegl.informatik.hs-augsburg.de/oss/ss23/codereading.txt

  2. Sammeln Sie Projekte und Organisationen die ein Open- im Namen haben, z.B. Open Data, Open Access.

  3. Was ist eigentlich „Freemium“? Schreiben Sie einen zusammenhängenden Text mit etwa 10 Zeilen Länge („Essay“).

  4. Wir haben zwar noch nicht so intensiv über Lizenzen geredet, schauen Sie sich aber trotzdem als Motivation mal den folgenden Lizenz-Quiz an und versuchen sie ihn zu beantworten:

    https://hhoegl.informatik.hs-augsburg.de/oss/ss23/lm_12_2012_lizenzfragebogen.pdf

  5. Auf der Material-Seite finden Sie ganz oben einen aktuellen Artikel von Inga Pöting zu Steuergelder für Open-Source Entwicklung. Lesen und Notizen im Hausaufgaben-Text machen!

  6. In [1] das Kapitel 5 (Make a Contribution) lesen. s. 53 - 72.

  7. Wer Lust und Zeit hat, kann ein altes Winterrätsel aus dem Linux Magazin machen (für Technik-Historiker, es geht aber schon sehr weit in die Vergangenheit. Am besten Oma/Opa fragen!)

    https://hhoegl.informatik.hs-augsburg.de/oss/ss23/Winterr%C3%A4tsel.pdf

Alle Master-Studierenden schicken mir bis 11.4. die Themenvorschläge für die Studienarbeiten.

1.8.4 #4 - Bis Di, 18.4.23, 23:59

1.8.5 #5 - bis Di 2.5., 23:59

  1. LIT2023 am 29.4. - https://www.luga.de/static/LIT-2023/ - Schauen Sie gerne vorbei!

  2. In den letzten Tagen gab es einige Emails an der Hochschule zu „OpenData“ (Kollegin Reuter hält auf einem Event auch einen Vortrag dazu).

    Sie haben OpenData schon in Hausaufgabe #3 genannt. Worum geht es nun bei „OpenData“ genauer? Fassen Sie wesentlichen Ziele in ihrer Hausaufgabe zusammen.

  3. Die Hausaufgabe #4 war eigentlich gedacht, dass Sie einen Eintrag in ihre Hausaufgaben machen, in dem Sie die Begriffe auf dem Stichpunkt-Blatt kurz erklären. Ich stelle garantiert ein paar Fragen zum Debian Projekt in der Klausur.

  4. In [1] das Kapitel 6 (Make a Difference Without Making a Pull Request) S. 73 - 86 und Kapitel 7 (Interact with the Community) S. 87 - 111 lesen und in Stichpunkten in die Hausaufgabe übertragen.

  5. Machen Sie doch mal Urlaub in Finnland. Ich habe drei Artikel gefunden, die aus der Entstehungszeit von Linux berichten (nicht Pflicht, nur wen es interessiert. Helsinki wäre aber echt einen Urlaub Wert)

    Akte-Torvalds-1, Akte-Torvalds-2, Akte-Torvalds-3,

  6. Die Auflösung des Winterrätsels von Hausaufgabe #3 ist hier: https://hhoegl.informatik.hs-augsburg.de/oss/ss23/Winterr%C3%A4tselLsg.pdf

    Zu dem Lizenzfragebogen habe ich den originalen Artikel hierhin getan: https://hhoegl.informatik.hs-augsburg.de/oss/ss23/lm_12_2012_recycling.pdf. Am Ende finde Sie die Auflösung. Man beachte dass der Artikel schon über 10 Jahre alt ist. Die Bedeutung von Open-Source Software ist in der Zeit nochmal sehr stark angestiegen.

1.9 Videos zu Wikipedia

Anlass: 20+1 Jahre Wikipedia

Mal zum Spass mit „mplayer“ abspielen (sudo apt install mplayer), die Tastenkommandos sind z.B. hier erklärt: http://www.keyxl.com/aaa2fa5/302/MPlayer-keyboard-shortcuts.htm)

$ mplayer https://hhoegl.informatik.hs-augsburg.de/video/wikipedia/Das-Wikipedia-Versprechen.m2t

$ mplayer https://hhoegl.informatik.hs-augsburg.de/video/wikipedia/Wikipedia-Die-Schwarmoffensive.m2t

Empfehlenswertes Buch: Pavel Richter, Die Wikipedia Story, https://pavelrichter.de

1.10 Literatur

[1] Vicky Brasseur, Forge Your Future with Open Source, Pragmatic Programmers 2018 (222 Seiten). https://learning.oreilly.com/library/view/forge-your-future/9781680506389/

[2] Gordon Haff, How Open Source Ate Software. Understand the Open Source Movement and So Much More, 2nd ed., Apress 2021, https://hhoegl.informatik.hs-augsburg.de/nonfree/Buecher/Haff2021_Book_HowOpenSourceAteSoftware.pdf

[3] https://www.theopensourceway.org