Umschreiben des GPL-Codes zum Ändern der Lizenz


23

Ich habe eine GPL-Bibliothek gefunden (keine doppelte Lizenz), die genau das tut, was ich brauche. Leider ist die GPL-Lizenz für die Bibliothek nicht mit der Lizenz einer anderen von mir verwendeten Bibliothek kompatibel. Ich habe mich daher entschlossen, die GPL-Bibliothek neu zu schreiben, damit die Lizenz geändert werden kann.

Meine Frage ist: Wie umfangreich müssen die Änderungen an der Bibliothek sein, um die Lizenz ändern zu können? Mit anderen Worten, was ist der billigste Weg, dies zu tun?


3
Es kann billiger sein, den Autor der GPL-Bibliothek zu bezahlen, um sie unter einer anderen Lizenz an Sie herauszugeben.
quant_dev

3
Anstatt zu fragen, wie es am GÜNSTIGSTEN ist, warum nicht die ganze Geschichte erzählen und fragen: "Was ist das Richtige?"
John R. Strohm

4
Wenn die andere Bibliothek nicht mit der GPL kompatibel ist, müssen Sie diese Bibliothek möglicherweise ändern.
Paul Butcher

1
Welche Lizenz hat die andere Bibliothek?
Andres F.

Antworten:


34

Ich bin kein Anwalt, aber AFAIK, wenn Sie den GPL-Bibliothekscode gesehen haben, wird jede von Ihnen geschriebene Emulationsbibliothek beschädigt und kann von einem Richter als abgeleitetes Werk deklariert werden, wenn es seiner Einschätzung nach zu ähnlich ist.

Der Prozess wäre also, eine Funktionsspezifikation zu schreiben und jemanden, der den GPLed-Code nicht gesehen hat, die Bibliothek schreiben zu lassen.

Bearbeiten: Beachten Sie, dass bei der Formulierung Ihrer Frage "Wie umfangreich müssen die Änderungen in der Bibliothek sein, um die Lizenz ändern zu können?" Die Antwort ist AFAIK klar: Was auch immer Sie tun, wenn Sie nur die Bibliothek ändern, müssen Sie die Laufzeit der Lizenz einhalten, damit Sie sie überhaupt ändern können.


3
Das Problem der Schädigung ist in der Praxis wahrscheinlich kein sehr ernstes Problem. In Fällen, in denen Sie den Code einer kommerziellen Entität zurückentwickeln, ist die Firewall zwischen dem Leser und dem Implementierer für die (im Wesentlichen unvermeidliche) Vertragsverletzungsklage erforderlich, sodass Sie nachweisen können, dass keine Möglichkeit bestand, Code aus der anderen Version zu kopieren . Bei den meisten GPL-Codes wird niemand Sie verklagen, es sei denn, Sie verletzen offenkundig, da dies nicht in ihrem Interesse liegt.
Mark Bessey

1
Sie mögen vielleicht russisches Roulette, es ist Ihre Wahl. Wenn Sie aus irgendeinem Grund verklagt und verurteilt werden - ein Wettbewerb, der den Kodex auf die eine oder andere Weise erbt, oder nur ein Wettbewerb, der entscheidet, die Klage zu finanzieren -, kann dies Ihr Unternehmen zum Ertrinken bringen. Selbst wenn Sie nicht verklagt werden, kann der schlechte Ruf bekanntermaßen ein Problem sein.
Programmierer

2
Ich denke, dass das "verdorbene" Problem hauptsächlich für NDAs gilt. Aus urheberrechtlichen Gründen macht es kaum Sinn. Bedenken Sie, dass das Urheberrecht auch für Bücher, Zeitungen, Filme usw. gilt. George Lucas hat die Star Trek-Serie wahrscheinlich vor der Entstehung von Star Wars im Fernsehen gesehen. Macht das Star Wars zu einem Derivat? Wenn ein Zeitungsreporter etwas im Radio hört, hindert ihn das daran, über dasselbe Ereignis zu schreiben?
user281377

6
Der Reinraumansatz ist nur ein Beweis dafür, dass Sie nicht gegen das Urheberrecht verstoßen haben. Nach meinem Verständnis - und ich bin auch kein Anwalt - verstoßen Dinge, die ohne Kenntnis des Originalwerks entwickelt wurden, möglicherweise nicht gegen das Urheberrecht (aber möglicherweise gegen Patente). Dinge, die mit diesem Wissen entwickelt wurden, können das Urheberrecht verletzen oder auch nicht - es ist nur schwieriger zu beweisen, dass Ähnlichkeiten auf zufällige Ereignisse oder auf die Art des Problems zurückzuführen sind, die einen Ansatz natürlich machen.
Programmierer

1
@ammoQ: In den USA gab es vor langer Zeit eine Klage wegen Urheberrechtsverletzung (ein statistisches Softwarepaket?), in der ein Unternehmen als Urheberrechtsverletzung eingestuft wurde, obwohl jede Codezeile neu geschrieben worden war. Beachten Sie, dass Star Wars Star Trek nicht besonders ähnlich ist und dass ein Zeitungsreporter keine Geschichte nur aus dem schreibt, was er oder sie im Radio gehört hat.
David Thornley

21

Der übliche Weg, um dieses Problem zu umgehen, besteht darin, zuerst den Besitzer der Bibliothek zu kontaktieren und zu fragen, ob er es Ihnen unter einer anderen Lizenz freigeben wird.

Wenn Sie an einem Open-Source-Projekt arbeiten, bei dem die GPL nicht kompatibel ist, besteht eine gute Chance, dass sie dies tun. Einige Projekte erhalten eine GPL-Lizenz, nur weil dies die beste Wahl zu sein scheint.

Dies gilt natürlich für beide Bibliotheken. Es sollte kein Problem sein, die Doppellizenz mit einer weniger zulässigen Lizenz zu erwerben.

Wenn Sie mit einem kommerziellen Produkt arbeiten, geben Ihnen viele Bibliotheksautoren eine Freigabe unter einer anderen Lizenz, wenn Sie diese angemessen kompensieren.


8
Es ist einen Versuch wert, aber dies funktioniert nicht, wenn der Eigentümer der Bibliothek GPL-Beiträge akzeptiert oder verwendet hat, was für viele Bibliotheken der Fall ist.
Brian

^ Es sei denn, sie hatten eine "Contributer" -Vereinbarung, die das Urheberrecht wieder auf die ursprünglichen Autoren
Jonathan

17

Ich verstehe, dass, wenn Sie mit einem Werk beginnen und es modifizieren, unabhängig davon, wie umfangreich die Modifikationen sind, das Endergebnis ein abgeleitetes Werk des Originals ist. Sie müssen die Bibliothek von Grund auf neu schreiben. Wenn Sie die Bibliothek von Grund auf neu schreiben, aber den Code gesehen haben, können Sie erneut wegen Urheberrechtsverletzung angeklagt werden, wenn sie zu ähnlich ist.

Diese Regeln sind nicht spezifisch für Software, sondern gelten für urheberrechtlich geschützte Dinge aller Art.

Ich bin kein Anwalt und dies ist kein Rechtsrat. Ich bin möglicherweise auch nicht in Ihrem Zuständigkeitsbereich, und Sie sollten immer zweifelhaft sein, welche Rechtsberatung im Internet angeboten wird. Wenn Sie eine zuverlässige Rechtsberatung wünschen, müssen Sie einen Anwalt bezahlen.


4

IANAL, aber ich weiß, dass in den USA keine Modifikation zu einem nicht-derivativen Werk führt. Wenn Code aus der alten Bibliothek kopiert wurde oder eine ausreichende interne Ähnlichkeit besteht, durch die Sie Probleme mit Plagiaten in einer Universitätsklasse bekommen, sind Sie bei weitem nicht in der Nähe einer neuen Arbeit. Das Ändern einiger Funktions- oder Variablennamen hat keine Auswirkungen, und das Verschieben von Codestücken in der Quelle wird ebenfalls nicht bewirkt. Sie müssten es selbstständig neu erstellen, um überhaupt eine Chance zu haben. IOWs, Sie müssen sich nur die Schnittstellen ansehen, die sie bereitstellen, und entscheiden, wie Sie diese Funktionalität bereitstellen und auf diese Weise neu erstellen, um eine Chance zu haben. Selbst dann bist du vielleicht immer noch nicht aus dem Wald, wenn es jemanden wirklich interessiert und erbost.

Am besten wenden Sie sich am Ende an den Autor der Bibliothek und hoffen, dass Sie ein Arrangement für eine freizügigere Lizenzierung der Bibliothek finden.


1

Wenn alles andere, was hier vorgeschlagen wird (nach doppelter Lizenz fragen, umschreiben), nicht akzeptabel ist, denken Sie bitte daran, dass es immer noch nicht klar ist, ob die dynamische Verknüpfung mit proprietären Programmen / Bibliotheken als abgeleitete Arbeit gilt oder nicht. Laut FSF ist dies der Fall, aber viele Anwälte (einschließlich Lawrence Rosen) haben dies in Frage gestellt.

Sie können also Ihre Software mit der GPLed-Bibliothek verknüpfen und dann sicherstellen, dass der Quellcode für sie mit jeder Kopie Ihrer Software verteilt wird. Wenn dich jemand verklagt, muss er beweisen, dass sein Verständnis für diesen kniffligen und trüben GPL-Aspekt korrekt ist. Wie es scheint (zB Galoob vs Nintendo), können Sie nicht absolut sicher sein, was Derivat Arbeit macht und was nicht.


oder zumindest fragen, ob die lib auch eine LGPL sein kann.
Johan

2
Das Problem der dynamischen Verknüpfung ist schwierig, aber Sie können sich nicht darauf verlassen, dass ein Richter Ihren Weg vorsieht. Der Richter könnte durchaus entscheiden, dass Sie die Gnu-Definitionen akzeptieren, wenn Sie die Gnu-Lizenz verwenden, und Sie möchten Ihr Softwareprodukt wahrscheinlich nicht auf das Ergebnis eines Gerichtsverfahrens stützen, das noch nicht stattgefunden hat.
David Thornley

1

Der einzige Weg, auf dem es keine abgeleitete Arbeit wäre, wäre, wenn Sie den gesamten Code selbst neu schreiben würden, ohne den Originalcode zu verwenden. Welches ist wahrscheinlich unmöglich.

Es gibt viel einfachere Wege, um die GPL zu umgehen:

  • Im Klaren: Nehmen Sie es in Betrieb, greifen Sie über eine Steckdose darauf zu. Socket ist eine Grenze zur GPL-Lizenz (es sei denn, es ist eine berüchtigte GPLv3 mit Affero-Klausel ).
  • In der Grauzone: Verknüpfe sie dynamisch. Es gibt viele Kontroversen darüber, ob das dynamische Verknüpfen an abgeleitete Arbeiten gebunden ist oder nicht. Einige Gesichtspunkte hier . Dies kann auch von der Gerichtsbarkeit abhängen, in der Sie sich befinden.

Beachten Sie auch, dass es sich bei der GPL um eine Distributionslizenz handelt , sodass Sie Ihre Arbeit nur lizenzieren müssen, wenn Sie Binärdateien an Dritte verteilen. Und Sie sind nur verpflichtet, den Quellcode für sie freizugeben, nicht verpflichtet, ihn für die breite Öffentlichkeit freizugeben, es sei denn, Sie geben Binärdateien für die breite Öffentlichkeit frei. Wenn Sie Ihren Code beispielsweise nur auf Ihren Servern verwenden, sind Sie nicht verpflichtet, Code freizugeben. So macht es zum Beispiel Google mit seinen optimierten Linux-Kerneln.


Ich bin mir nicht sicher, ob die Steckdose eine Barriere ist. Laut unseren Anwälten sind die Ingenieure zu sehr auf technische Maßnahmen fokussiert, während die globale Wirkung vom Gesetz geprüft wird. Das Veröffentlichen einer Socket-Schnittstelle und das Angeben eines Beispiels für die Verwendung in emacs lisp war für sie in Ordnung. Aber die Möglichkeit, Emacs automatisch zusammen mit unserem Programm zu installieren, gab es nicht. Sie sind richtig für die Verteilung. Beachten Sie jedoch, dass Sie nicht verhindern können, dass derjenige, an den Sie verteilen, weiter verteilt wird.
Programmierer

@AProgrammer: Sogar FSF sagt, wenn es sich um einen separaten Prozess handelt, handelt es sich um separate Programme, die also keine Arbeit ableiten. Häufig gestellte Fragen zu
vartec

Die Frage nach Plug-In und Plug-In sind naturgemäß nicht unabdingbar. Ich wette nicht, dass es legitim ist, ein Programm in zwei Prozesse zu strukturieren, einen GPL-Prozess, weil er GPL-Bibliotheken verwendet, den anderen nicht, weil wir die Quelle privat halten wollen. Besonders wenn beide zusammen verteilt werden. Aber das ist dein Anruf.
Programmierer

1
@A: Die Verteilung mit anderen Programmen ist "Aggregation" und von der GPL ausdrücklich erlaubt. Und nein, das ist nicht meine Berufung. Persönlich würde ich die GPL-Bibliothek nicht einmal mit einem 3 Meter langen Stock berühren.
Vartec

1

IANAL und auf jeden Fall das mag rechtlich nichts heißen, aber ich glaube, dass er in Steven Levys Buch "Hackers" beschreibt, wie RMS einmal tagsüber * nix Code für Geld geschrieben hat und nachts dasselbe geschrieben hat Sachen zu Hause, damit es Teil von ... GNU? ... war, bevor Linux ... ein freies Unix-System. Ich glaube, er musste den Home-Code anders als den Day-Code machen, aber er tat im Grunde genau das, was Sie vorschlagen.

Dies ist wahrscheinlich auch rechtlich nicht von Bedeutung, aber ... Ich bin nicht sicher, ob Apple und / oder Microsoft die Erlaubnis / Lizenz oder etwas anderes erhalten haben, aber Bell Labs haben die Desktop- / Symbol- / Maus-Schnittstelle, die für Macs verwendet wurde, nicht erfunden (oder Lisa?) die dann von Microsoft benutzt wurde.


Das wäre Xerox PARC, nicht Bell Labs.
Marnen Laibow-Koser

Und Jobs hat mit Xerox einen Vertrag abgeschlossen, durch den Apple das Labor in Palo Alto aufsuchen konnte. Zu der Zeit kümmerte sich niemand bei Xerox um diese Technologie.
Aledalgrande

0

Es gibt keine Antwort darauf, außer für ein Gerichtsverfahren vor einem Richter in Ihrer speziellen Gerichtsbarkeit. Aber willst du es riskieren? Oder machen Sie sich an die Arbeit, die GPL-Bibliothek, die Tests usw. neu zu schreiben. Sind Sie sicher, dass die andere Bibliothek nicht mit der GPL kompatibel ist? Dies ist eigentlich ziemlich ungewöhnlich, es sei denn, Sie möchten beide Bibliotheken unter den Bedingungen von Nicht-GPL-Bibliotheken verteilen.


Sie können die Gnu- Lizenzliste unter gnu.org/licenses/license-list.html abrufen, und Sie werden feststellen, dass sie in freie GPL-kompatible Lizenzen, freie nicht-GPL-kompatible Lizenzen und freie Lizenzen unterteilt ist. Die GPL stellt einige spezifische Anforderungen, denen andere Lizenzen häufig nicht entsprechen, und eines der Ziele von GPLv3 war es, die Kompatibilität zu vereinfachen.
David Thornley

0

Wie umfangreich müssen die Änderungen in der Bibliothek sein, um die Lizenz ändern zu können?

In den meisten Teilen der Welt muss man von vorne anfangen und nichts abschneiden und hinter sich lassen. Sie benötigen neue Namen für Funktionen / Klassen / Variablen usw. usw., und die Struktur sollte anders sein. Dann bist du in Sicherheit.

Auf der anderen Seite, wenn ein Diff-Tool keine Ähnlichkeiten findet, dann ...


2
Wenn ein diff-Tool keine Ähnlichkeiten findet, liegt möglicherweise dennoch eine Urheberrechtsverletzung vor. Betrachten Sie es von einem nicht programmierbaren Standpunkt aus: Ich schreibe ein Buch, Sie übersetzen es ins Schwedische, und nach US-amerikanischem (und wahrscheinlich schwedischem) Urheberrecht haben Sie ein abgeleitetes Werk geschaffen.
David Thornley

@ David Thornley Ja, Sie haben Recht mit abgeleiteten Arbeiten.
Johan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.