Laden...

GPLv2 Library verwenden ohne das Hauptprogramm ebenfalls unter GPLv2 zu lizensieren

Erstellt von MorphieX vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.646 Views
M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 4 Jahren
GPLv2 Library verwenden ohne das Hauptprogramm ebenfalls unter GPLv2 zu lizensieren

Hallo zusammen,

kurz zu unserem Vorhaben:
Ich möchte meine Software (.NET Core 2.2) erweitern, um Maschinendaten über OPC UA zu monitoren.

Die Software ist in einzelne Plugins (als eigene Assemblies) aufgeteilt und ist soweit closed source.
Nun möchte ich das NuGet Paket "OPCFoundation.NetStandard.Opc.Ua" verwenden um die OPC-UA-Kommunikation zu realisieren.
Dieses Paket steht allerdings unter der GPLv2. (und als 2. Möglichkeit unter einer anderen Lizenz für Jährlich knapp 4.800$)

Ich weiß, hier kann ich keine Rechtsberatung erwarten, aber vielleicht hat ja jemand schon Erfahrungen mit meinem Problem.

Darf ich ein Plugin (eigene PCL) dafür erstellen, welches ich dann unter der GPLv2 lizensiere und in meiner Hauptanwendung zur Laufzeit lade? Kann ich meine Hauptanwendung dann weiterhin unter einer anderen Lizenz vertreiben?
Falls das funktioniert, muss ich dann beim Laden des Plugins irgendwelche Klimmzüge machen, damit ich rechtskonform bin?

Alternativ wäre ich natürlich auch an einer anderen Möglichkeit zur OPC-UA-Kommunikation interessiert. Also quasi ein anderes SDK...? Ich weiß dass es da welche im kommerziellen Bereich gibt, z.B. von Softing. Ich suche aber - wie so oft - eine möglichst günstige Möglichkeit.

16.807 Beiträge seit 2008
vor 4 Jahren

Nur ein Rechtsbeistand kann Dir verlässliche Aussagen zu Lizenzen geben.

W
872 Beiträge seit 2005
vor 4 Jahren

Gibt doch ein paar freie Alternativen.
Die würde ich an Deiner Stelle benutzen. Ich würde aber die Bibliothek gut nach außen abkapseln, so daß man im Zweifel leicht die Bibliothek wechseln kann, wenn sich da etwas ändert.

6.911 Beiträge seit 2009
vor 4 Jahren

Hallo MorphieX,

grundsätzlich ist die GPLv2 viral.

Zitat von: GPL2
Die GPL besagt, dass das gesamte kombinierte Programm unter der GPL freigegeben werden muss. Also muss das Modul für die Verwendung unter der GPL verfügbar sein.

Zitat von: GPL2
Ja, denn das Programm, so wie es tatsächlich ausgeführt wird, enthält die Bibliothek.

Aber es gibt Grauzonen:

Zitat von: GPL2-FAQ
Die GPL erfordert nicht Ihre modifizierte Version freizugeben. Sie sind frei, Modifizierungen vorzunehmen und diese privat anzuwenden, ohne sie jemals freizugeben. Das gilt auch für Organisationen (einschließlich Unternehmen); eine Organisation kann eine modifizierte Version erstellen und intern verwenden, ohne sie jemals außerhalb der Organisation freizugeben.

Aber wenn man die modifizierte Version in irgendeiner Weise der Öffentlichkeit freigibt, verlangt die GPL, dass man den modifizierten Quellcode Programmnutzern ebenso unter der GPL bereitstellt.

Vllt. lässt sich damit deine Anforderung schon abdecken, wenn dein Projekt unter GPLv2 gestellt wird, aber du es nicht veröffentlichst.

Allerdings könnte das aus praktischen Gründen schwierig werden:

Zitat von: GPL2-FAQ
Die GPL besagt, dass jedermann, der eine Kopie von Ihnen erhält, das Recht hat, Kopien weiterzugeben, entweder modifiziert oder unmodifiziert. Das Werk darf nicht unter einer restriktiven Grundlage vertrieben werden.

Wenn jemand Sie bittet, eine Vertraulichkeitsvereinbarung für den Empfang von GPL lizenzierter Software zu unterzeichnen, mit einem Copyright der FSF versehen ist, informieren sie uns bitte unverzüglich schriftlich unter
>
darüber.

Der letzte Punkte kann aber durch "Entwicklung" umgangen werden:

Zitat von: GPL2
you can accept a contract to develop changes and agree not to release your changes until the client says ok. This is permitted because in this case no GPL-covered code is being distributed under an NDA.

You can also release your changes to the client under the GPL, but agree not to release them to anyone else unless the client says ok. In this case, too, no GPL-covered code is being distributed under an NDA, or under any additional restrictions.

The GPL would give the client the right to redistribute your version. In this scenario, the client will probably choose not to exercise that right, but does have the right.

Darf ich ein Plugin (eigene PCL) dafür erstellen, welches ich dann unter der GPLv2 lizensiere und in meiner Hauptanwendung zur Laufzeit lade? Kann ich meine Hauptanwendung dann weiterhin unter einer anderen Lizenz vertreiben?

Du darfst dafür ein Plugin erstellen. Unter welcher Lizenz deine Hauptanwendung vertrieben wird, hängt davon ab wie das Plugin geladen wird.
Wird es in den Prozess der Hauptanwendung geladen (z.B. per Activator.CreateInstance), so muss die Hauptanwendung auch unter der GPL2 stehen.
Wird das Plugin in einem eigenen Prozess als eigenständige Anwendung ausgeführt, so ist die Lizenz für das Hauptprogramm wurscht. Die Kommunikaton mit dem Plugin muss dann per IPC erfolgen.
Allerdings:

Zitat von: GPL2
Wenn das Programm Plug-ins dynamisch verbindet, aber die Kommunikation zwischen beiden darauf beschränkt ist die Hauptfunktion des Plug-ins mit einigen Optionen aufzurufen und auf die Rückgabe zu warten, ist das ein Grenzfall.

mfG Gü

PS: ich bin kein Anwalt, daher Abts Rat berücksichtigen (wenn du nicht weismats Rat berücksichtigst 😉).

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

M
MorphieX Themenstarter:in
184 Beiträge seit 2012
vor 4 Jahren

Vielen Dank für eure Antworten 😃

Die Liste mit Alternativen kannte ich noch nicht - hier scheint mir LibUA, welche unter Apache 2.0 lizensiert ist, recht interessant.
Ich werde die Lib mal ausprobieren 😃