Open-Source Lizenz Management mit dem Tool Fossa

von

Hinweis
Dieser Blog-Post stellt keine Rechtsberatung im Sinne des Rechtsdienstleistungsgesetzes dar, sondern gibt ausschließlich die Meinung des Autors wieder.

In unseren Kundenverträgen stellen wir vermehrt fest, dass gerne versucht wird, die Haftung für den Einsatz von Open-Source-Frameworks auf uns zu übertragen. Dieser Blog-Post möchte nicht die vielfältigen Lizenzmodelle erläutern, stattdessen eine Idee geben, wie man ein automatisiertes Lizenz-Management für Open-Source-Frameworks aufbauen kann. Dies ist nötig, da es nicht reicht nur die Lizenz des hauptsächlich eingesetzten Frameworks zu betrachten, sondern es müssen auch alle darunter enthaltenen Lizenzen mitbetrachtet werden. Der hierbei entstehende »Lizenz-Baum« ist äußerst komplex und demzufolge nicht mehr händisch zu managen.

In einem früheren Blog-Post [1] haben wir bereits über das Open-Source-Tool Scancode Toolkit berichtet. In unseren Kundenprojekten stellte sich jedoch häufig heraus, dass der Funktionsumfang dieses Tools nur rudimentär ist. Wir wollten bspw. bei jedem Build, den wir per Jenkins anstoßen, sehen, ob sich eine unbekannte Lizenz eingeschlichen hat und so etwas ist leider mit Scancode nicht möglich.

Aus diesem Grund evaluierten wir einige professionelle Open-Source-Lizenz-Mangement-Tools.

Schließlich entschieden wir uns für Fossa [2]. Zum einen stellt es eine kostengünstige Variante dar und zum anderen schafften wir es nur mit Fossa auf Anhieb, das Ganze in unsere Jenkins-Build-Pipeline zu integrieren.

Wie funktioniert FOSSA?
Auf dem Markt gibt es unzählige kostenlose Skripts und Programme zum Nachverfolgen der verwendeten Open-Source-Lizenzen, um sich einen schnellen Überblick zu verschaffen - hauptsächlich durch Überprüfen der einzelnen Paketdateien, in der Entwickler das Modul beschreiben und (hoffentlich) die dominante Lizenz für ihren Code angeben.

Um genau zu ermitteln, welche Lizenzen verwendet werden, gibt es jedoch keine andere Möglichkeit, als den gesamten Source-Code zu scannen. Dies bedeutet, dass jede Zeile Code mit ihren teilweise tiefen Abhängigkeiten auf Lizenzinformationen überprüft werden muss (idealerweise pro Commit). Dies mag nach Overkill klingen, aber eine Open-Source-Compliance kann leider nicht durch einen einfachen Scan der verwendeten Open-Source Frameworks erreicht werden.

Hierzu stellt FOSSA ein kleines Programm (FOSSA CLI), zur Verfügung, das wir in unsere Jenkins-Builds integriert haben. Das Ergebnis wird dann in die FOSSA-Cloud mittels eines JSON (nur das JSON und nicht der gesamte Quellcode) übermittelt. In der Web-Oberfläche kann man sich dann die Ergebnisse anschauen und auch Lizenzen als i.O. markieren, die von FOSSA ggf. nicht korrekt analysiert wurden.

Fazit
Durch den Einsatz von Fossa haben wir nun immer eine aktuelle Sicht auf die von uns eingesetzten Lizenzen. Jedoch muss man beachten, dass es hierbei keine absolute Sicherheit gibt, da die Lizenzen als Texte in den Projekten vorhanden sind. Diese Tools analysieren diese Lizenz-Dateien, und falls sich der Lizent-Text nur leicht unterscheidet, kann dies zu einer falsch interpretierten Lizenz führen.

Links:
[1] https://www.exensio.de/news-medien/newsreader-blog/lizenzanalyse-mit-dem-open-source-tool-scancode-toolkit
[2] https://fossa.com/

Kategorien: Open-Source

Zurück