myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Entwicklung (https://www.mycsharp.de/wbb2/board.php?boardid=3)
-- Rund um die Programmierung (https://www.mycsharp.de/wbb2/board.php?boardid=59)
--- GPLv2 Library verwenden ohne das Hauptprogramm ebenfalls unter GPLv2 zu lizensieren (https://www.mycsharp.de/wbb2/thread.php?threadid=121839)


Geschrieben von MorphieX am 03.05.2019 um 13:08:
  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.


Geschrieben von Abt am 03.05.2019 um 21:09:
 
Nur ein Rechtsbeistand kann Dir verlässliche Aussagen zu Lizenzen geben.


Geschrieben von weismat am 04.05.2019 um 07:32:
 
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.


Geschrieben von gfoidl am 04.05.2019 um 09:34:
 
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  [email protected] 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.

Zitat:
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 ;-)).


Geschrieben von MorphieX am 06.05.2019 um 07:19:
 
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 :-)


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 19.08.2019 15:54