Lizenzen bei nuget-Paketen

Lizenzen bei nuget-Paketen

In meinen Seminaren und Beratungen oft Thema: Was genau bedeuten eigentlich die Lizenzen, die jedem nuget-Paket mitgegeben werden? Muss man sich darum kümmern?

Die zweite Frage beantwortet sich eigentlich ganz einfach: Wenn Lizenzbedingungen nicht wichtig wären, wären sie nicht angeben! Da die meisten meiner Kunden gewerblich Software entwickeln, kann die Nichtbeachtung von Drittlizenzen richtig teuer werden.

Die Lizenzangaben zu den nuget-Paketen regeln, inwieweit und zu welchen Bedingungen ein nuget-Paket in einem Softwareprodukt verwendet werden darf, ob und zu welchen Bedingungen ein Paket verändert werden darf, und in einigen Fällen auch, wie die Weitergabe des Pakets im Deployment auszusehen hat.

Liste der häufigsten Lizenzmodelle

Hier die am häufigsten verwendeten Lizenzen auf nuget.org, ohne Anspruch auf Vollständigkeit:

MIT Lizenz

Beschreibung: Sehr permissive Lizenz. Die Software darf frei genutzt, verändert, kopiert und sogar in kommerziellen Produkten verwendet werden.

Bedingungen: Der Lizenztext muss beigefügt werden.

Eignung: Unproblematisch für kommerzielle und nicht-kommerzielle Nutzung.

Apache License 2.0

Beschreibung: Sehr frei, erlaubt Nutzung, Modifikation und Vertrieb, auch kommerziell.

Bedingungen: Lizenztext und Copyright-Hinweis müssen erhalten bleiben. Bei Änderungen muss angegeben werden, was geändert wurde. Es gibt eine explizite Patentklausel.

Eignung: Unproblematisch für kommerzielle und nicht-kommerzielle Nutzung.

BSD License (meist 2-Clause oder 3-Clause)

Beschreibung: Sehr ähnlich wie MIT, mit leichten Unterschieden bei Haftungsausschluss und Werbung (Details im Lizenztext).

Bedingungen: Lizenztext muss unverändert weitergegeben werden, es darf keine Werbung mit dem Paket oder dem Namen des Rechteinhabers gemacht werden (3-Clause).

Eignung: Unproblematisch für kommerzielle und nicht-kommerzielle Nutzung.

GPL (General Public License)

Beschreibung: Strikte Copyleft-Lizenz. Jede Software, die GPL-Code nutzt, muss selbst unter der GPL veröffentlicht werden!

Bedingungen: Wer ein GPL-Paket verwendet und die Software verteilt, muss den Quellcode seiner Software ebenfalls unter GPL offenlegen!

Eignung: Nicht geeignet für proprietäre oder kommerzielle Software, wenn man den Quellcode nicht veröffentlichen will. Für Open Source-Projekte geeignet.

LGPL (Lesser General Public License)

Beschreibung: Weniger strikt als GPL. Erlaubt die Nutzung in proprietärer Software, solange die LGPL-Komponente getrennt bleibt (z. B. als DLL).

Bedingungen: Änderungen am LGPL-Code müssen veröffentlicht werden.

Eignung: Mit Einschränkungen für kommerzielle Nutzung möglich, solange man sich an die Bedingungen hält.

Proprietäre/Eigene Lizenzen

Beschreibung: Der Rechteinhaber gibt individuelle Bedingungen vor. Häufig sind Einschränkungen bei kommerzieller Nutzung oder Verteilung enthalten. Hier hilft nur Lesen!

Eignung: Nur nach Prüfung der Lizenzbedingungen bedenkenlos nutzbar!

Public Domain

Beschreibung: Software ohne jegliche Lizenzbeschränkungen („gemeinfrei“).

Eignung: Bedenkenlos für alle Anwendungsfälle.


TL;DR

Zusammenfassend lässt sich sagen: Für kommerzielle Softwareentwicklung eignen sich MIT, Apache 2.0, BSD und Public Domain.

Mit Vorsicht zu verwenden sind LGPL und proprietäre Lizenzen, in beiden Fällen sollte eingehend geprüft werden, ob sich diese Lizenzen verwenden lassen. Ggf. wäre hier die Prüfung durch die Rechtsabteilung (wenn vorhanden) oder einen Fachanwalt ratsam.

GPL kommt nur dann in Frage, wenn der eigene Quellcode auch bedenkenlos unter GPL veröffentlicht werden kann. Dies ist bei kommerzieller Software selten der Fall.


Tipp: Viele Entwicklerteams legen sich ein eigenes, lokales nuget-Repository an, in dem nur die Pakete zur Verfügung gestellt werden, deren Lizenzbedingungen zu den Produkten des Hauses passen, und entfernen in Visual Studio das standardmäßig vorhandene nuget.org-Repository.