/ Software-Entwicklung / the next big thing: npm-Module lizenzieren

the next big thing: npm-Module lizenzieren

developer_facebook_social_graph.png
Gerfried Steube an Dezember 27, 2016 - 2:00 pm in Software-Entwicklung

Das Veröffentlichen eines Moduls auf npm (Node Package Manager) allein genügt nicht, um es anderen zur Verfügung zu stellen. Es gilt zusätzlich, eine Lizenz auszuwählen und sie in der Datei package.json auszuweisen. Was ist dabei zu beachten?

Das Veröffentlichen eines Moduls auf npm ist denkbar einfach. Besitzt man einen entsprechenden Account, genügt der Aufruf des folgenden Kommandos, um die Veröffentlichung durchzuführen:

$ npm publish

Wenige Augenblicke später lässt sich das Modul dann von Dritten verwenden, indem sie es per

$ npm install <module>

installieren. Doch zwischen können und dürfen gibt es einen gravierenden Unterschied. Um zu wissen, unter welchen Bedingungen eine Software verwendet werden darf, spielt deren Lizenz eine wichtige Rolle. Die Lizenz bestimmt die Rechte, aber auch die Pflichten der Verwender.

Der Teufel steckt im Detail

Eine im JavaScript- und Node.js-Kontext ausgesprochen häufig verwendete Lizenz ist die MIT-Lizenz, die sehr freizügig ist. Dennoch ist die MIT-Lizenz nicht so eindeutig, wie man es auf Grund ihres kurzen und einfach verständlichen Texts als juristischer Laie zunächst annehmen würde.

Man begegnet jedoch auch anderen Lizenzen regelmäßig, beispielsweise der Apache-2.0- oder der BSD-Lizenz, von der es gleich drei verschiedene Ausprägungen gibt: Die 2-klauselige, die 3-klauselige und die 4-klauselige Variante, die sich in wichtigen Details voneinander unterscheiden.

Gerade diese Details können jedoch ausgesprochen wichtig sein. Beispielsweise wird die 4-klauselige BSD-Lizenz aufgrund eines solchen Details von der Free Software Foundation (FSF) als problematisch angesehen.

Die Lizenz hinterlegen

Gleichwohl für welche Lizenz man sich entscheidet, gilt es, die Entscheidung deutlich zu machen, um Rechtssicherheit für die Verwender zu schaffen. Dazu besteht die Option, die gewählte Lizenz in der Datei package.json im Abschnitt license zu hinterlegen.

Damit klar ist, welche Lizenz tatsächlich gemeint ist, empfiehlt es sich, für dieses Feld einen entsprechenden SPDX-Schlüssel zu verwenden. Korrekt heißt es daher zum Beispiel

"license": "Apache-2.0"

und nicht:

"license": "apache2"

Die Verwendung des SPDX-Schlüssels ist deshalb wichtig, weil sich Lizenzen dann automatisiert als Teil des Buildvorgangs auslesen und überprüfen lassen. Auf dem Weg lässt sich bei jedem Build sicherstellen, dass keine Lizenzverletzung begangen wird. Denn auch wenn die meisten Open-Source-Projekte sehr freizügig sind, schützt doch Unwissenheit vor Strafe nicht.

tl;dr: Auch im Open-Source-Bereich gilt das Lizenzrecht. Deshalb ist auch hier besonderes Augenmerk darauf zu legen, die Rechte und Pflichten aus den einzelnen Lizenzen zu gewähren und einzuhalten. SPDX-Einträge in der package.json können helfen, Lizenzprüfungen zu automatisieren.

Read more on: Source

Kommentare sind deaktiviert