Einsatz von quelloffenen Komponenten Stücklisten von Open-Source-Lizenzen pflegen

Ein Gastbeitrag von Mark Lubkowitz *

Anbieter zum Thema

Welche Bedingungen für den Einsatz von Open-Source-Komponenten gelten, hängt von den zugrundeliegenden Lizenzen ab. Deshalb müssen die Verbauenden in Form einer Stückliste aller Open-Source-Komponenten sicherstellen, dass stets klar ist, wo welche Lizenz zum Einsatz kommt und welche Verpflichtungen sich damit ergeben.

Allein aus Gründen der Lizenzierung ist es sinnvoll, eine Software-Stückliste über verwendete Open-Source-Komponenten zu führen.
Allein aus Gründen der Lizenzierung ist es sinnvoll, eine Software-Stückliste über verwendete Open-Source-Komponenten zu führen.
(© Egor - stock.adobe.com)

Darum sind Lizenz-Stücklisten relevant

Es gibt zahllose unterschiedliche Open-Source-Lizenzen. Sie sollen die Prinzipien von quelloffener Software auf ein rechtliches Fundament setzen. Obwohl die Gemeinsamkeiten zwischen den Lizenzen groß sind, gibt es dennoch Unterschiede – mitunter nur Nuancen, die allerdings erhebliche Folgen haben können.

Um zwei Beispiele zu nennen: Kommt die Apache-Lizenz 2.0 zum Einsatz, dann müssen Änderungen am Quellcode dokumentiert und die Änderungen in Form einer NOTICE-Datei mitgeliefert werden. Die GPL v3 kann wiederum dazu führen, dass auch das neue Werk unter GPL veröffentlicht werden muss.

Das Problem ist dabei, dass es eine Open-Source-Komponente quasi im Vorbeigehen in ein Produkt schaffen kann. Der Entwickler benötigte eine schnelle Lösung für ein spezifisches Problem? Eine kurze Suche, die Lizenzbedingungen ignoriert, ein einzelner Kommandozeilenbefehl später und schon ist die Open-Source-Komponente integriert. Die transitiven Abhängigkeiten dieser Komponenten führen wiederum dazu, dass zahlreiche Open-Source-Komponenten im Projekt landen, die der Entwickler gar nicht berücksichtigt hat.

Wohl dem, der hier verantwortungsvolle Entwickler beschäftigt, die diesen Schritt absprechen und kommunizieren. Eine Stückliste der verwendeten Komponenten mitsamt den Lizenzen stellt dann die Ausgangsbasis dar, um diesen Umstand aufzudecken, Probleme zu erkennen und Lösungsmaßnahmen zu ergreifen.

Lizenz-Stücklisten erstellen

Die Lizenz-Stückliste lässt sich sowohl manuell als auch automatisiert erstellen. Schlussendlich bleibt allerdings nur eine Kombination aus beiden Maßnahmen übrig. Denn egal wie ausgefeilt der zum Einsatz kommende Automatismus ist: Es existieren einfach zu viele exotische Lizenzen und Sonderfälle, deren Konsequenzen nicht bekannt oder eindeutig sind. Eine gute Strategie besteht deshalb aus einem hohen automatisierten Anteil kombiniert mit den richtigen, manuellen Maßnahmen.

Automatisierte Maßnahmen

Scancode-Toolkit erstellt eine HTML-Liste aller Komponenten mitsamt den gefundenen Lizenzen. Es unterscheidet sogar zwischen Standard-Lizenz und Copyright-Vermerken.
Scancode-Toolkit erstellt eine HTML-Liste aller Komponenten mitsamt den gefundenen Lizenzen. Es unterscheidet sogar zwischen Standard-Lizenz und Copyright-Vermerken.
(Bild: Scancode Toolkit Dokumentation)

Automatisieren lassen sich sämtliche quantitativen Aufgaben. Zu denen gehört es, alle verbauten oder referenzierten Pakete, Quellen und Abhängigkeiten nach Lizenzen zu durchsuchen. Entsprechende Tools existieren bereits in großer Anzahl, etwa Scancode Toolkit.

Wichtig ist, dieses Tool nicht einmal auszuführen, sondern regelmäßig, spätestens vor jeder Auslieferung, idealerweise aber mit jedem erstellten Build oder Deployment. Das Ergebnis einer solchen Prüfung ist in der Regel eine Liste, die eine Übersicht aller Komponenten und Lizenzen bildet. Die verbreitetsten Open-Source-Lizenzen schreiben vor, dass die ursprüngliche Lizenz in abgeleiteten Werken mitgegeben werden muss.

Über chrome://credits lässt sich im Webbrowser eine Liste aller verbauten Open-Source-Komponenten samt Verlinkung auf Webseite und Lizenztext abrufen.
Über chrome://credits lässt sich im Webbrowser eine Liste aller verbauten Open-Source-Komponenten samt Verlinkung auf Webseite und Lizenztext abrufen.
(Bild: Lubkowitz)

Im nächsten Schritt muss die Liste paketiert und in das abgeleitete Werk integriert werden. Entweder alle Lizenztexte werden im Original beigefügt oder – einfacher und auch bei großen Projekten wie Chrome üblich – als Liste mit Verlinkungen, unter denen sich der Lizenztext nachlesen lässt und das Projekt finden lässt. Die Liste sollte dann alphabetisch nach Komponente sortiert sein.

Manuelle Maßnahmen

Nicht-automatisieren lassen sich hingegen die qualitativen Arbeiten. Hierzu gehört es, die Liste der gefundenen Lizenzen auf Ausreißer oder Exoten zu durchsuchen. Gibt es Exoten, dann müssen diese eingehend fachlich respektive juristisch geprüft werden. Exoten können dabei veraltete oder ungültige Lizenzen sein. Es können auch abgewandelte Lizenzen sein, die eine ganz spezifische Nutzung untersagen oder vorschreiben. Fehlt gar eine Lizenz, dann greift unter Umständen das Urhebergesetz, das je nach Land unterschiedlich geregelt ist.

Spätestens bei solchen Lizenzen sollte die gesamte Komponenten-Architektur überprüft werden. Aus diesem Audit muss klar hervorgehen, ob die Komponente direkt in das erstellte Produkt integriert und somit Bestandteil ist. Oder ob die Komponente lediglich aufgerufen wird. Bei einem bloßen Aufruf entfallen nämlich fast alle Restriktionen, die eine Open-Source-Lizenz normalerweise vorgibt.

Im Zuge des Audits – aber auch unabhängig davon – lassen sich verbaute Komponenten selbstverständlich auch durch solche ersetzen, die eine Lizenz nutzen, die einfacher einzuhalten ist. Das erfordert dann aber wiederum einen Umbau im Projekt, der wiederum zahlreiche weitere Maßnahmen notwendig machen kann.

Eine Frage der Pflege

Eine gute Strategie besteht aus automatisierten sowie manuellen Prüfungsschritten. Entscheidend sind dabei mindestens diese sechs Maßnahmen.
Eine gute Strategie besteht aus automatisierten sowie manuellen Prüfungsschritten. Entscheidend sind dabei mindestens diese sechs Maßnahmen.
(Bild: Lubkowitz)

Kurzum: Lizenz-Stücklisten sind eine Frage der Pflege, bestehend aus automatischen und manuellen Maßnahmen. Die Stückliste der Open-Source-Lizenzen ist kein optionales Element, es ist ein Pflichtbestandteil heutiger Software- und Hardware-Produkte. Denn in nahezu allen Produkten kommen Open-Source-Komponenten zum Einsatz. Nur wer einen klaren Überblick über die Lizenzen hat und sämtliche Konsequenzen kennt, kann guten Gewissens Produkte ausliefern.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Mark Lubkowitz
Mark Lubkowitz
(Bild: msg)

* Mark Lubkowitz ist Lead IT Consultant bei msg. Er ist Software-Entwickler sowie Journalist und ausgewiesener Experte für die Themen Digitale Souveränität, Open Source, Webtechnologien und Digitale Transformation.

(ID:48287065)