eck*license – Unser Scout durch den Dschungel der Open Source Lizenzen

Moderne Software-Entwicklung ist ohne Open Source Bibliotheken nicht mehr denkbar, gerade im Bereich der Individual-Software. Für nahezu jede Problemstellung gibt es fertige Bibliotheken für die unterschiedlichsten Technologie-Stacks. Die Eigenentwicklung dieser Lösungen macht aus Aspekten der Wirtschaftlichkeit und Sicherheit keinen Sinn.
Der wirtschaftliche Aspekt ist unmittelbar einzusehen: Der Nachbau bestehender Lösungen und Frameworks zur Lösung grundlegender Problemstellungen verschlingt Unmengen an Zeit, die besser für die Entwicklung fachlicher Features eingesetzt wird.
Auch bei der Sicherheit überwiegen die Vorteile: Open Source Software ist für jeden einsehbar und überprüfbar, da die Quellen der Software offengelegt sind. Mängel und Schwachstellen sind unmittelbar erkennbar und werden in der Regel zügig beseitigt.
FOSS – Free and Open Source Software
„Free und Open Source“ suggeriert, dass diese Software beliebig kopiert und eingesetzt werden kann. Dies ist aber nicht der Fall. Die Autoren von Open Source Software knüpfen den Einsatz ihrer Software in der Regel an eine Reihe von Bedingungen, die in den unterschiedlichsten Lizenzen geregelt werden.
Die Bandbreite der Lizenztexte reicht von Einzeilern (Kernbotschaft: Mach damit was du willst, aber mach mich für Schäden nicht haftbar) bis hin zu mehrseitigen Vertragstexten im schönsten Juristen-Amerikanisch, deren Bewertung Laien überfordert.
Die SPDX License List der Linux Foundation (https://spdx.org/licenses/) umfasst derzeit rund 650 aktiv verwendete Lizenzen. Entwicklerinnen und Entwickler benötigen also Orientierungshilfe, um sichergehen zu können, dass sie die eingesetzte Open Source Software regelkonform verwenden.
Lizenzcheck
Wir haben uns daher mit eck*license ein Tool geschaffen, das unseren Teams in der täglichen Arbeit genau diese Orientierungshilfe gibt.
Eine einfache Online-Suche liefert eine übersichtliche Bewertung von Lizenzen und Artefakten (Bibliotheken und Tools) für den jeweiligen Einsatzweck und gibt Hinweise darauf, welche Auflagen und Bedingungen an den Einsatz geknüpft sind.



Automatisierung
Unser Software-Entwicklungsprozess sieht regelmäßige Assessments unserer Projekte vor, in denen überprüft wird, welche Tools und Bibliotheken eingesetzt werden und ob dies lizenzkonform erfolgt. Manuelle Assessments sind nahezu undurchführbar. Schon einfache Web-Frontends weisen direkte und indirekte Abhängigkeiten zu einigen hundert Typescript-Bibliotheken auf.
Wir haben uns daher Plugins für die gängigen Buildsysteme Maven und Gradle geschaffen.

Diese erstellen während des Buildprozesses eine Liste der Abhängigkeiten, ihrer Einsatzzwecke und ihrer Lizenzen.

Diese Liste kann im eck*license Online-Portal hochgeladen werden. Der eck*license Server erzeugt daraus einen umfangreichen Assessment-Bericht, welcher uns und unseren Kunden transparent macht, welche OpenSource-Bibliotheken im Projekt eingesetzt werden und ob dies lizenzkonform erfolgt.
Ausblick
Es ist in Planung, die Automatisierung noch tiefer in den Buildprozess zu integrieren. So sollen die Plugins künftig automatisch selbst Assessments am eck*license Server anfragen und ggf. ein Release der Software vom Buildsystem verhindert werden können, wenn nicht-konforme Lizenzen erkannt werden.

Softwareentwicklung