MIT vs. BSD vs. Dual License

87

Mein Verständnis ist, dass:

  • MIT- lizenzierte Projekte können in BSD- lizenzierten Projekten verwendet / weiterverteilt werden.
  • BSD-lizenzierte Projekte können in MIT-lizenzierten Projekten verwendet / weitergegeben werden.
  • Die MIT- und die BSD-2-Klausel-Lizenz sind im Wesentlichen identisch .
  • BSD 3-Klausel = BSD 2-Klausel + die "no endorsement" -Klausel
  • Durch die Ausstellung einer Doppellizenz können Benutzer aus diesen Lizenzen auswählen, ohne an beide gebunden zu sein.

Wenn alle oben genannten Punkte zutreffen, was bringt es dann, eine doppelte MIT / BSD-Lizenz zu verwenden? Auch wenn sich die BSD auf die 3-Klausel-Version bezieht, kann sich ein Benutzer dann nicht legal entscheiden, nur die MIT-Lizenz einzuhalten?

Es scheint, dass, wenn Sie wirklich die "no endorsement" -Klausel anwenden möchten, Sie es als nur BSD (nicht dual) lizenzieren müssen. Wenn Sie sich nicht für die "no endorsement" -Klausel interessieren, ist MIT allein ausreichend und MIT / BSD ist redundant.

Da die MIT- und BSD-Lizenzen beide " GPL-kompatibel " sind und in GPL- lizenzierten Projekten weiterverteilt werden können, erscheint die doppelte Lizenzierung von MIT / GPL ebenfalls überflüssig.

ryanve
quelle
1
Können Sie ein MIT + BSD-Lizenzbeispiel bereitstellen? Es ist normalerweise überflüssig, eine doppelte Lizenz unter zwei ähnlich zulässigen Lizenzen zu verwenden, aber ich habe den Missbrauch der doppelten Lizenz als eine Möglichkeit gesehen, explizit anzugeben, dass Code unter jeder Lizenz neu verteilt werden könnte.
Yannis
@Yannis Ja, ich habe mich gefragt, ob die Leute sie doppelt lizenziert haben, nur um es für Leute zu erklären, die es nicht wissen. Aber ich denke, es macht es für sie nur verwirrender.
Ryanve
Interessant zu lesen: tomhull.com/ocston/docs/mozgpl.html
Dipan Mehta
1
Nach meiner Erfahrung wird hauptsächlich die doppelte Lizenzierung für inkompatible Lizenzen verwendet. zB MPL + (L) GPL oder eine kostenpflichtige Lizenz ohne Copyleft zusammen mit (A) GPL.
CodesInChaos

Antworten:

60

Mein Verständnis ist, dass:

  1. MIT-lizenzierte Projekte können in BSD-lizenzierten Projekten verwendet / weitergegeben werden.
    WAHR (sofern es keine Änderungen gibt, können die Benutzer diese auch aus den Originalquellen beziehen.

  2. BSD-lizenzierte Projekte können in MIT-lizenzierten Projekten verwendet / weitergegeben werden.
    Die FALSE MIT-Lizenz ermöglicht den Vertrieb ohne Beitragsguthaben. BSD nicht.

  3. Die MIT- und die BSD-2-Klausel-Lizenz sind im Wesentlichen identisch.
    FALSE Siehe oben.

  4. BSD 3-Klausel = BSD 2-Klausel + die "no endorsement" -Klausel
    TRUE

  5. Durch die Ausstellung einer Doppellizenz können Benutzer aus diesen Lizenzen auswählen, ohne an beide gebunden zu sein.
    WAHR (ich denke schon!)

Da die MIT- und BSD-Lizenzen beide "GPL-kompatibel" sind und in GPL-lizenzierten Projekten weiterverteilt werden können, erscheint die doppelte Lizenzierung von MIT / GPL ebenfalls überflüssig.

NO . Hier ist ein großer Unterschied. MIT-Lizenz und Apache-Lizenz erfordern nur, dass Sie den ursprünglichen Copyright-Inhabern eine Gutschrift erteilen. Wenn Sie möchten, können Sie die Quelle neu verteilen. Sie können jedoch Ihr neues abgeleitetes Produkt behalten, ohne den Code zu öffnen. Daher ist es möglich, Code zu verwenden, der unter MIT und Apache entwickelt wurde - unter kommerzieller Lizenz.

Wenn Sie jemals Code mit GPL-basierten Lizenz verwenden und passieren , um es zu ändern Sie müssen verteilen Ihre geänderten Code als auch unter der GPL. Mit anderen Worten, sobald eine GPL-Codebasis unter einem Projekt verwendet wird und Sie diese als Produkt veröffentlichen möchten, muss sie zusammen mit dem Quellcode und unter der GPL veröffentlicht werden. Es kann niemals eine kommerzielle Lizenz oder eine Closed-Source-Lizenz sein, und es kann keine andere Lizenz sein, die weniger streng ist als die GPL.

Es ist beispielsweise möglich, MIT-, Apache- oder BSD-Lizenzcodes zu verwenden, die unter der GPL modifiziert und vertrieben werden. Sobald eine Codebasis als GPL vertrieben wird, können ihre weiteren abgeleiteten Versionen nicht mehr unter MIT-, Apache- oder BSD-Lizenz vertrieben werden, sondern müssen nur noch GPL sein.

Bearbeiten:
Beispiel für den Fall einer Doppellizenz: Angenommen, Nice Office ist unter der Doppellizenz MIT und GPL veröffentlicht. Es gibt zwei Möglichkeiten. Einige Leute können NicePro Office erstellen, das kommerziell sein und verkauft werden kann. Während eine andere Open-Source-Community eine Abzweigung zu NiceOpen Office schafft. In diesem Fall kann die GPL-Verteilung (der ursprünglichen Nice Office- und NiceOpen Office-Version) durchgesetzt werden. Wenn Sie also mit NiceOpen Office beginnen, müssen Sie nur die GPL und nicht die MIT-Lizenz einhalten.

Der Punkt ist im Falle einer doppelten Lizenz, dass die erste Person, die eine Lizenz ableitet, eine Wahl hat. Er kann sich für einen der beiden Wege entscheiden - die zweite Person muss sich jedoch an die von der ersten Person getroffene Wahl halten. Er / Sie kann die ursprünglichen Rechte beider Generationen nicht außer Kraft setzen und die Verpflichtung zur Erteilung einer gültigen Lizenz in keiner Weise einschränken.

EDIT 2 Eine interessante Lektüre hinzufügen - GPL- und MPL-Lizenzen haben schwerwiegende Konflikte. Lesen Sie dies. http://www.tomhull.com/ocston/docs/mozgpl.html

Dipan Mehta
quelle
4
@Dipan Wenn ein Projekt unter MIT / GPL zweifach lizenziert ist, kann es in einem proprietären Projekt verwendet werden, bei dem der Benutzer nur das MIT befolgen kann. Wenn ein Projekt nur die MIT-Lizenz enthält, kann es unter anderen Lizenzen, einschließlich der GPL, weitergegeben werden. Das habe ich mit überflüssig gemeint.
Ryanve
11
@ DipanMehta Was meinst du mit "Beitragsguthaben" in # 2? Es hört sich so an, als würden Sie sich auf die BSD 4-Klausel-Lizenz beziehen, die von der FSF nicht wie die 3-Klausel und 2-Klausel verifiziert wird. Ich spreche von der 3-Klausel und der 2-Klausel. In diesem Fall bin ich mir ziemlich sicher, dass alle fünf Aussagen wahr sind .
Ryanve
4
Sie können BSD-lizenzierten Code in Verbindung mit MIT-lizenziertem Code verwenden. Sie müssen in den Projektmaterialien nur erwähnen, dass "BazApp libfoobar verwendet, das unter einer BSD-Lizenz vertrieben wird" oder so etwas. Die BSD- und MIT-Lizenzen werden pro Datei und nicht pro Projekt angewendet.
mipadi
10
@Dipan_Mehta Wie ryanve bereits sagte, handelt es sich um die ursprüngliche 4-Klausel-BSD-Lizenz, während es sich im OP um die überarbeiteten 3- und 2-Klausel-BSD-Lizenzen handelt. Die 2-Klausel-BSD-Lizenz entspricht der MIT-Lizenz. Sogar auf der OSI-Seite heißt es so.
17
Punkt 2 (BSD-Code kann nicht im MIT-Code enthalten sein) widerspricht jeder Information, die ich jemals über BSD mit drei und zwei Sätzen gelesen habe. Punkt Nr. 2 würde in Bezug auf die (inzwischen in Vergessenheit geratene) 4-Klausel-BSD zutreffen, aber das OP hat klargestellt, dass es sich bei dieser Frage nicht um die 4-Klausel-BSD handelt. Es scheint ziemlich schädlich zu sein, eine derart irreführende Information in einer ansonsten sehr guten und glaubwürdigen Antwort zu haben.
Apsillers
4

Ihre fünf Punkte sind alle wahr .

Die andere Antwort scheint zu sein, dass Sie die ältere, selten verwendete 4-Klausel-BSD-Lizenz einbeziehen .

Wenn Sie "BSD-Lizenzen" so interpretieren, dass sie sich auf die häufiger verwendeten 3-Klausel- oder 2-Klausel-Varianten der BSD-Lizenz beziehen, sind alle fünf in der Frage genannten Behauptungen wahr.

Wenn all dies korrekt ist, was bringt es dann, eine doppelte MIT / BSD-Lizenz zu verwenden?

Technisch sollte es nicht nötig sein. Beide können in den gleichen Situationen verwendet werden.

Auch wenn sich die BSD auf die 3-Klausel-Version bezieht, kann sich ein Benutzer dann nicht legal entscheiden, nur die MIT-Lizenz einzuhalten?

Das hört sich richtig an.

Es scheint, dass, wenn Sie wirklich die "no endorsement" -Klausel anwenden möchten, Sie es als nur BSD (nicht dual) lizenzieren müssen. Wenn Sie sich nicht für die "no endorsement" -Klausel interessieren, ist MIT allein ausreichend und MIT / BSD ist redundant.

Stimmt. Wenn Sie sich für diese bestimmte Klausel interessieren, ist es nicht sinnvoll, dasselbe Werk auch unter Lizenzen ohne diese Klausel zu lizenzieren.

Da die MIT- und BSD-Lizenzen beide "GPL-kompatibel" sind und in GPL-lizenzierten Projekten weiterverteilt werden können, erscheint die doppelte Lizenzierung von MIT / GPL ebenfalls überflüssig.

Ja.

Manchmal behauptet ein Softwareprodukt zwar, als MIT und GPL (oder als einige der zulässigen Lizenzen und GPL) doppelt lizenziert zu sein, in Wirklichkeit beziehen sie sich jedoch auf zwei verschiedene Versionen der Software.

Beispielsweise kann einige Software mit einer zulässigen Lizenz wie BSD oder MIT kompiliert und verteilt werden. Wenn Sie jedoch einige Bibliotheken und damit einige Funktionen auslassen, kann sie als GPL verteilt werden. Die ausgelassenen Bibliotheken sind normalerweise Bibliotheken von Drittanbietern, die nicht mit der GPL kompatibel sind, aber dennoch anderweitig verteilt werden könnten.

thomasrutter
quelle