Wie werden Software-Patches lizenziert?
Betrachten Sie das Softwareprojekt dwm von Suckless . Das Projekt ist eindeutig unter der MIT / X Consortium-Lizenz lizenziert, die die Klausel enthält
Der oben genannte Copyright-Hinweis und dieser Erlaubnishinweis sind in allen Kopien oder wesentlichen Teilen der Software enthalten.
Das Projekt wird üblicherweise durch Quellcode-Patches erweitert . Angenommen, jemand möchte entweder seine Änderungen an oder seine modifizierte Version von dwm verteilen. Ohne die Zustimmung von Suckless ist mir klar, dass jede Gabel von dwm auch unter einer MIT / X-kompatiblen Lizenz lizenziert werden muss. Da es sich bei den Patches jedoch um neues Material handelt, scheint es mir, dass die Patches selbst (pathologisch) eine inkompatible Lizenz erhalten könnten, die es jedem verbieten würde, eine dwm-Gabel zu erstellen oder zu vertreiben, die diese Patches enthält. Ich gehe nicht davon aus, wie umfangreich die Patches sind - sie könnten eine geringfügige Änderung sein oder die Art des Programms vollständig verändern.
Ich bin neugierig auf verschiedene Situationen:
Angenommen, Alice schreibt einen Patch von dwm und lizenziert ihre Änderungen explizit unter einer restriktiven Copyright-Lizenz. Alice konnte ihre Änderungen an jeden verteilen, den sie mag, aber sie konnte keine Gabel von dwm verteilen, die diese Änderungen enthielt [1]. Bob (der rechtmäßig die Änderungen von Alice erhält) könnte sie auf dwm anwenden, wäre jedoch nicht in der Lage, diese Änderungen oder ihre Version von dwm an andere weiterzugeben. Ist das richtig?
Angenommen, Alice schreibt einen Patch und lizenziert ihn überhaupt nicht explizit. Wenn wir überhaupt nichts von Alices Arbeit annehmen, dann liegt das Urheberrecht bei ihr und ihr allein , und wir befinden uns in der gleichen Situation wie 1. Angenommen, es ist "bekannt" [2], dass Alices Arbeit ein Patch von dwm sein soll . Ändert sich in diesem Fall die Standardsituation oder ist eine ausdrückliche Zustimmung von Alice erforderlich?
Angenommen, Alice schreibt einen Patch und lizenziert ihn explizit unter einer Lizenz wie der GPL, die auch eine Klausel enthält, nach der geänderte Versionen unter derselben Lizenz stehen müssen [3]. Sind gegabelte Versionen in der Praxis verboten, genau wie in Situation 1?
Diese Einschränkungen scheinen ein großes Hindernis für das Patchen von Open Source-Programmen zu sein und erfordern die Zustimmung aller Mitwirkenden, um die übergeordnete Lizenz einzureichen. Sind solche Vereinbarungen in Projekten üblich, die Beiträge annehmen?
Klarstellungen
[1]: Alice könnte natürlich eine Gabel von dwm verteilen, vorausgesetzt , sie enthält eine Kopie der MIT / X-Lizenz. Ich glaube, dies würde in der Praxis dazu führen, dass die Änderungen selbst derselben Lizenz unterliegen, wodurch ihre gleichzeitig restriktive Lizenz effektiv ungültig wird.
[2]: Mit "bekannt" meine ich jedes genaue Kriterium, das darauf hinweist, dass eine Software als Modifikation eines vorhandenen Programms und nicht als neues Projekt an und für sich verwendet werden soll. Zum Beispiel, wenn auf der offiziellen Hostseite des Patches etwas mit dem Effekt "Diese Datei besteht aus einem Patch auf Version 6.1 von dwm" steht. Etwas, das direkt erwähnt, dass das Werk eine Modifikation ist, aber keine spezifischen Aussagen über das Urheberrecht des Werkes macht.
[3]: Ich habe den Eindruck, dass Code nicht gleichzeitig unter MIT / X und GPL lizenziert werden kann.
Antworten
Mir ist klar, dass jede Verzweigung von dwm auch unter einer MIT / X-kompatiblen Lizenz lizenziert werden muss
Das ist in der Tat nicht klar. Erstens, wenn Sie diese Frage lesen , werden Sie feststellen, dass es eine ganze Reihe von Meinungen gibt, die besagen, dass es durchaus akzeptabel ist, die Lizenzbedingungen für Code zu ändern, wenn er Ihnen zu Bedingungen mitgeteilt wurde, die dies nicht verbieten. Die Copyleft-freien Lizenzen erfordern, dass Kopien und Derivate unter derselben Lizenz verteilt werden (siehe z. B. GPLv3 ss 4 und 5c, GPLv2 ss 1 und 2b), aber die nicht-copyleft-freien Lizenzen haben einfach keine ähnliche Sprache - sie erfordern nur die Verteilung des angegebenen Textes. Sicher ist bekannt, dass Derivate von BSD-lizenziertem Code in kommerziellen Produkten verwendet werden, die unter proprietären Lizenzen vertrieben werden.
Zweitens lösen Sie nicht das Problem, dass es sehr schwierig ist, einen Patch für eine Software zu schreiben, ohne diese Software sorgfältig zu untersuchen und die Schnittstellen zu kopieren, damit Ihr Patch vorhandenen Code sauber ersetzen oder ergänzen kann. Dies sind sehr starke Argumente dafür, dass der Patch urheberrechtlich ein Derivat ist, unabhängig davon, ob er mit der ursprünglichen Software geliefert wird oder nicht. Was dies für den Vertrieb bedeutet, hängt von der ursprünglichen Lizenz ab.
Lassen Sie uns Ihre spezifischen Fragen untersuchen.
Angenommen, Alice schreibt einen Patch von dwm und lizenziert ihre Änderungen explizit unter einer restriktiven Copyright-Lizenz. Alice konnte ihre Änderungen an jeden verteilen, den sie mag, aber sie konnte keine Gabel von dwm verteilen, die diese Änderungen enthielt
Unter der Annahme, dass dwm unter einer nicht copyleftfreien Lizenz (wie MIT) lizenziert ist, ist Alice völlig frei, eine solche Gabel zu vertreiben. Es ist, wie gesagt, eine allgemein übliche Geschäftspraxis.
Angenommen, Alice schreibt einen Patch [von dem sie beabsichtigte, ein Patch von dwm zu sein] und lizenziert ihn überhaupt nicht explizit.
Wie bereits erwähnt , können Sie keine Annahmen darüber treffen, was Sie tun können, wenn Code ohne bestimmte Lizenzbestimmungen verteilt wird und nicht frei sein muss, z. B. weil er ein Derivat eines starken Copyleft-Werks eines Drittanbieters ist es. Der Patch ist proprietär und daher für die Community der freien Software unbrauchbar.
Angenommen, Alice schreibt einen Patch und lizenziert ihn explizit unter einer Lizenz wie der GPL ... Sind gegabelte Versionen in der Praxis verboten, genau wie in Situation 1
Nein, das wäre in Ordnung. Solche Kombinationen sind zulässig, sofern die ursprüngliche Lizenz mit der GPL kompatibel ist .
Ohne die Zustimmung von Suckless ist mir klar, dass jede Gabel von dwm auch unter einer MIT / X-kompatiblen Lizenz lizenziert werden muss.
Da die MIT / X-Lizenz den Empfängern auch das Recht einräumt, die Arbeit unterlizenzieren zu lassen, ist es fast trivial, diese Anforderung zu erfüllen.
Die einzigen Lizenzen, die nicht kompatibel wären, würde ich The One That Rules All nennen. Alle Lizenzen: Lizenzen, für die alle Kopien des Codes unter derselben Lizenz, The One License, erforderlich sind. Meines Wissens existiert eine solche Lizenz derzeit nicht und es würde sehr wenig Anklang finden, wenn jemand eine solche Lizenz erstellen würde.
Angenommen, Alice schreibt einen Patch von dwm und lizenziert ihre Änderungen explizit unter einer restriktiven Copyright-Lizenz. Alice konnte ihre Änderungen an jeden verteilen, den sie mag, aber sie konnte keine Gabel von dwm verteilen, die diese Änderungen enthielt [1]. Bob (der rechtmäßig die Änderungen von Alice erhält) könnte sie auf dwm anwenden, wäre jedoch nicht in der Lage, diese Änderungen oder ihre Version von dwm an andere weiterzugeben. Ist das richtig?
Nein, das ist nicht richtig.
Die MIT-Lizenz gilt nicht für Code, der nicht damit lizenziert wurde. Solange Alices Lizenz nicht verbietet, die Arbeit von Alice mit dwm zu kombinieren, ist es kein Problem, eine Gabel zu haben, die das Ergebnis der Anwendung von Alices Änderungen auf dwm enthält. Verschiedene Teile dieser Gabel unterliegen unterschiedlichen Lizenzbestimmungen. Damit Bob diese Gabel (oder auch nur die Änderungen von Alice) vertreiben kann, muss die von Alice verwendete Lizenz dies zulassen.
Angenommen, Alice schreibt einen Patch und lizenziert ihn überhaupt nicht explizit. Wenn wir überhaupt nichts von Alices Arbeit annehmen, dann liegt das Urheberrecht bei ihr und ihr allein, und wir befinden uns in der gleichen Situation wie 1. Angenommen, es ist "bekannt" [2], dass Alices Arbeit ein Patch von dwm sein soll . Ändert sich in diesem Fall die Standardsituation oder ist eine ausdrückliche Zustimmung von Alice erforderlich?
Es gibt nur eine Situation, in der sich die Standard-Urheberrechtslizenz ändert, wenn bekannt ist, dass die Änderungen als Patch für ein anderes Werk gedacht sind. Dies ist der Fall, wenn die Änderungen in einer Pull-Anfrage an ein Repository angeboten werden, das die Richtlinie hat, dass die eingehende Lizenz (die Lizenz der Beiträge) mit der ausgehenden Lizenz (der Lizenz, unter der das Repository angeboten wird) identisch ist. In diesem Fall hat Alice durch eine Pull-Anfrage zugestimmt, ihre Änderungen unter der Lizenz des Repositorys zu lizenzieren, auch wenn dies nicht ausdrücklich in den Änderungen angegeben ist.
Auf GitHub gehostete Repositorys sind ein Beispiel für Repositorys mit dieser Richtlinie.
Angenommen, Alice schreibt einen Patch und lizenziert ihn explizit unter einer Lizenz wie der GPL, die auch eine Klausel enthält, nach der geänderte Versionen unter derselben Lizenz stehen müssen [3]. Sind gegabelte Versionen in der Praxis verboten, genau wie in Situation 1?
[3]: Ich habe den Eindruck, dass Code nicht gleichzeitig unter MIT / X und GPL lizenziert werden kann.
Ihr Eindruck von der gleichzeitigen Lizenzierung unter MIT / X und GPL ist falsch.
Einerseits wird allgemein davon ausgegangen, dass die MIT / X-Lizenz die Weitergabe des Codes mit zusätzlichen Bedingungen nicht verbietet. Für die GPL ist es auch nicht erforderlich, dass Sie den gesamten Code neu lizenzieren, um unter der GPL-Lizenz zu stehen.
Die GPL verlangt das
- Das Ergebnis der Kombination von GPL-Code und Nicht-GPL-Code wird unter der GPL verteilt
- dass die Anforderungen an die Verteilung des Quellcodes aus der GPL auch für den Nicht-GPL-Code eingehalten werden
Andere dieser Punkte sind in der MIT / X-Lizenz zulässig, wodurch sie mit der GPL-Lizenz kompatibel ist, sodass Sie Werke unter beiden Lizenzen in einer einzigen Codebasis kombinieren können.
Und wenn das nicht genug ist, ermöglicht die Unterlizenzgewährung, die die MIT / X-Lizenz gewährt, die Verteilung von dwm unter der GPL-Lizenz selbst.