MIT vs GPL Lizenz [geschlossen]

122

Die MIT-Lizenz ist GPL-kompatibel. Ist die GPL-Lizenz MIT-kompatibel? dh ich kann MIT-lizenzierten Code in ein GPL-lizenziertes Produkt aufnehmen, aber kann ich GPL-lizenzierten Code in ein MIT-lizenziertes Produkt aufnehmen?

Es scheint mir, dass der Hauptunterschied zwischen der MIT-Lizenz und der GPL darin besteht, dass das MIT keine Open-Source-Änderungen erfordert, während die GPL dies tut. Ist das korrekt? Ist die GPL restriktiver als die MIT-Lizenz?

fruzer
quelle
1
en.wikipedia.org/wiki/MIT_License Die Lizenz ist auch GPL-kompatibel, was bedeutet, dass ...
Michael Petrotta

Antworten:

76

Es scheint mir, dass der Hauptunterschied zwischen der MIT-Lizenz und der GPL darin besteht, dass das MIT keine Open-Source-Änderungen erfordert, während die GPL dies tut.

Richtig - im Allgemeinen. Sie müssen nicht haben zu Open-Source - Änderungen , wenn Sie GPL verwenden. Sie können es ändern und für Ihren eigenen Zweck verwenden, solange Sie es nicht vertreiben. ABER ... wenn Sie es verteilen, wird Ihr gesamtes Projekt, das den GPL-Code verwendet, automatisch zur GPL. Das heißt, es muss Open-Source sein, und der Empfänger erhält dieselben Rechte wie Sie - das heißt, er kann sich umdrehen und es verteilen, ändern, verkaufen usw. Und das würde Ihren proprietären Code einschließen, der dann nein wäre länger proprietär sein - es wird Open Source.

Der Unterschied zum MIT besteht darin, dass Sie den Code nicht Open Source machen müssen, selbst wenn Sie Ihren proprietären Code, der den MIT-lizenzierten Code verwendet, tatsächlich verteilen. Sie können es als geschlossene App verteilen, in der der Code verschlüsselt oder binär ist. Das Einschließen des MIT-lizenzierten Codes kann verschlüsselt werden, sofern er den MIT-Lizenzhinweis enthält.

Ist die GPL restriktiver als die MIT-Lizenz?

Ja, sehr gerne.

Ravi Jayagopal
quelle
16
Darf ich nur erwähnen, dass GPL Software nicht zu "Open Source" macht. Software unter GPL wird KOSTENLOS (wie zum Schutz der Freiheit des Benutzers). Freie Software ist eine Bewegung, die älter und bedeutungsvoller ist als das offene Zeug. Hier ist ein Artikel über die Unterschiede: gnu.org/philosophy/open-source-misses-the-point.html . Vielen Dank
Jorge Orpinel
11
Aus den gleichen Gründen könnte man argumentieren, dass MIT restriktiver ist, da es nicht alle Freiheiten des Benutzers schützt und zur Privatisierung von Software führen kann (= Einschränkung und Verlust seiner Kontrolle durch den Benutzer).
Nochmals vielen
3
@tcurdt Warum ist dies nicht der "richtige Ort", um über Freiheit zu sprechen? Warum die Selbstzensur? Und nein, leider bedeutet das nicht "frei". Nicht einmal "offen" bedeutet das. Nur um zu verdeutlichen, dass weder die MIT- noch die GPL-Lizenzen "irgendetwas damit machen". Nur Code ohne Lizenz kann in diese Kategorie fallen. Prost
Jorge Orpinel
3
Wiederum falsch, das ist Stackoverflow für stackoverflow.com/help/on-topic . Jemand, der denkt, dass dies nicht zum Thema gehört, macht es nicht so. Unabhängig davon habe ich freie Meinungsäußerung und dies ist eine Art öffentlicher Raum, also ... Ja. Sie können einfach nicht damit umgehen, falsch zu liegen. In Wirklichkeit versuche ich Ihnen und anderen Lesern zu helfen, wenn ich kann. Wie auch immer, viel Glück
Jorge Orpinel
8
@JorgeOrpinel "Nur Code ohne Lizenz kann in diese Kategorie fallen." Das ist sehr, sehr falsch, Code ohne Lizenz ist PROPRIETARY / "Alle Rechte vorbehalten". Wenn Sie herumgehen und Code weitergeben, den andere Personen ohne Lizenz erstellt haben, riskieren Sie eine Menge rechtlicher Probleme. Sie sagen, Sie versuchen, "Ihnen und anderen Lesern zu helfen", aber es ist nicht gerade hilfreich, Leser verklagen zu lassen. Nur zur Info.
Semikolon
45

Kann ich GPL-lizenzierten Code in ein MIT-lizenziertes Produkt aufnehmen?

Sie können. GPL ist ebenso wie MIT freie Software. Beide Lizenzen beschränken Sie nicht darauf, den Code zusammenzuführen, wobei "include" immer in beide Richtungen erfolgt.

Beim Urheberrecht für ein kombiniertes Werk (dh zwei oder mehr Werke bilden zusammen ein Werk) spielt es keine große Rolle, ob das eine Werk "größer" als das andere ist oder nicht.

Wenn Sie also GPL-lizenzierten Code in ein MIT-lizenziertes Produkt aufnehmen, fügen Sie gleichzeitig ein MIT-lizenziertes Produkt in GPL-lizenzierten Code ein.

Als zweite Meinung listete das OSI die folgenden Kriterien (detaillierter) für beide Lizenzen (MIT und GPL) auf:

  1. Kostenlose Umverteilung
  2. Quellcode
  3. Abgeleitete Werke
  4. Integrität des Quellcodes des Autors
  5. Keine Diskriminierung von Personen oder Gruppen
  6. Keine Diskriminierung von Bestrebungen
  7. Verteilung der Lizenz
  8. Die Lizenz darf nicht produktspezifisch sein
  9. Die Lizenz darf andere Software nicht einschränken
  10. Die Lizenz muss technologieneutral sein

Beide ermöglichen die Erstellung kombinierter Werke, wonach Sie gefragt haben.

Wenn die Kombination der beiden Werke als Derivat betrachtet wird, wird dies nicht durch beide Lizenzen eingeschränkt.

Beide Lizenzen beschränken sich nicht auf die Verbreitung der Software.

Es scheint mir, dass der Hauptunterschied zwischen der MIT-Lizenz und der GPL darin besteht, dass das MIT keine Open-Source-Änderungen erfordert, während die GPL dies tut.

Die GPL verlangt nicht, dass Sie Ihre Änderungen nur freigeben, weil Sie sie vorgenommen haben. Das ist nicht genau.

Sie können dies mit der Verteilung von Software unter der GPL mischen, nach der Sie nicht direkt gefragt haben.

Ist das richtig - ist die GPL restriktiver als die MIT-Lizenz?

So verstehe ich es:

In Bezug auf die Verteilung müssen Sie das gesamte Paket unter die GPL stellen. Der MIT-Code innerhalb des Pakets ist weiterhin unter MIT verfügbar, während die GPL für das gesamte Paket gilt, wenn nicht durch höhere Rechte eingeschränkt.

"Restriktiv" oder "restriktiver" / "weniger restriktiv" hängt stark vom Standpunkt ab. Für einen Software-Benutzer kann das MIT zu einer Software führen, die eingeschränkter ist als die unter GPL verfügbare, selbst wenn manche die GPL heutzutage als restriktiver bezeichnen. Dieser Benutzer nennt das MIT restriktiver. Es ist nur subjektiv, dies zu sagen, und verschiedene Leute geben Ihnen unterschiedliche Antworten darauf.

Da es nur subjektiv ist, über Einschränkungen verschiedener Lizenzen zu sprechen, sollten Sie sich überlegen, was Sie stattdessen erreichen möchten:

  • Wenn Sie die Verwendung Ihrer Änderungen einschränken möchten, kann MIT für die Verteilung restriktiver sein als die GPL, und das ist möglicherweise das, wonach Sie suchen.
  • Wenn Sie sicherstellen möchten, dass die Freiheit Ihrer Software durch die Benutzer, an die Sie sie verteilen, nicht so stark eingeschränkt wird, möchten Sie sie möglicherweise unter GPL anstelle von MIT veröffentlichen.

Solange Sie der Autor sind, können Sie selbst entscheiden.

Die restriktivste Person aller Zeiten ist der Autor, unabhängig davon, für welche Lizenz sich jemand entscheidet;)

hakre
quelle
1
"MIT-Code innerhalb des Pakets wird weiterhin unter MIT verfügbar sein" Ich bin mir nicht ganz sicher. Ein GPL + MIT-Projekt sollte ein Open Source-Projekt einschließlich des MIT-Teils abgeben. Andererseits ist LGPL für das gesamte Projekt weniger aufdringlich.
Magallanes
13
Obwohl Sie später in Ihrer Antwort klarstellen, ist es sehr irreführend, zunächst zu sagen, dass Sie GPL-lizenzierten Code in ein MIT-lizenziertes Projekt aufnehmen können. Ein Projekt, das ursprünglich MIT-lizenziert war, kann nicht mehr als Ganzes unter der MIT-Lizenz verteilt werden, sobald es Code enthält, der nur unter GPL verfügbar ist.
Antinom
3
Es ist auch irreführend zu behaupten, dass Restriktivität subjektiv ist. Es ist eine vernünftige und nicht subjektive Frage zu fragen: "Welche Aktionen kann ich legal mit diesen Dateien durchführen, die ich erhalten habe?" Unter der GPL ist diese Gruppe von Aktionen tatsächlich eine richtige Teilmenge dessen, was diese Aktionen unter MIT gewesen wären.
Antinom
1
@hakra: Die Aufnahme von GPL-lizenziertem Code in ein MIT-lizenziertes Projekt ist nicht möglich, da das resultierende Ganze nicht mehr MIT-lizenziert ist, selbst wenn Sie es nicht verteilen. (Wenn es so wäre, dann sind die Bedingungen der MIT - Lizenz würde ermöglichen es Ihnen , es zu verteilen!)
Antinome
9
tl; dr: Eine MIT-lizenzierte App kann GPL-Code enthalten, die resultierende App ist jedoch nicht MIT-lizenziert.
Antinom
16

Sie haben Recht, dass die GPL restriktiver ist als die MIT-Lizenz.

Sie können keinen GPL-Code in ein MIT-lizenziertes Produkt aufnehmen. Wenn Sie eine kombinierte Arbeit verteilen, die GPL- und MIT-Code kombiniert (außer in bestimmten Situationen, z. B. "bloße Aggregation"), muss diese Verteilung mit der GPL kompatibel sein.

Sie können MIT-lizenzierten Code in ein GPL-Produkt aufnehmen. Die gesamte kombinierte Arbeit muss in einer Weise verteilt werden, die der GPL entspricht. Wenn Sie Änderungen an den MIT-Teilen des Codes vorgenommen haben, müssen Sie die Quelle für diese Änderungen veröffentlichen, wenn Sie eine Anwendung verteilen, die GPL- und MIT-Code enthält.

Wenn Sie der Urheberrechtsinhaber des GPL-Codes sind, können Sie diesen Code natürlich stattdessen unter der MIT-Lizenz freigeben. In diesem Fall handelt es sich um Ihren Code, und Sie können ihn unter so vielen Lizenzen veröffentlichen, wie Sie möchten.

JosephH
quelle
3
es sei denn, das Projekt steht unter einer Doppellizenz, z. B. jquery.
Buggedcom
7
@buggedcom - Sie können die Teile, die unter der MIT-Lizenz standen, doppelt lizenzieren, eine kombinierte MIT / GPL-Bibliothek jedoch nicht doppelt lizenzieren. Sie muss nur unter der GPL lizenziert werden. (Sie können keine GPL-lizenzierten Teile nehmen und unter der MIT-Lizenz erneut lizenzieren, da dies gegen die GPL-Bedingungen verstößt.) Im Fall von jQuery haben die Urheberrechtsinhaber des Codes ihn unter der Doppellizenz veröffentlicht. Dies ist also kein Problem. Wenn sie jedoch einen GPL-Code von einem anderen Ort "ausgeliehen" haben, können sie das kombinierte Werk nicht mehr mit MIT lizenzieren .
Mark H
AFAIK das stimmt nicht ganz. Laut FSF ist die GPL mit der MIT-Lizenz kompatibel [1] Leider ändert dies nichts an der Tatsache, dass das Projekt selbst nicht mehr vollständig unter die MIT-Lizenz fällt ... was die Leute normalerweise erwarten würden. Sie könnten das Projekt nicht mehr als Ganzes in einem kommerziellen Kontext verwenden, ohne den Code freizugeben. Um diese Verwirrung zu vermeiden, ist es besser , GPL-Code nicht in ein MIT-lizenziertes Projekt aufzunehmen. Dass du nicht kannst, ist allerdings falsch. [1] gnu.org/licenses/license-list.html#SoftwareLicenses
tcurdt
... aber ich denke, es hängt davon ab, was Sie als "Produkt" definieren
tcurdt
2
Ein MIT-lizenziertes Produkt (vielleicht wäre "Anwendung" ein besseres Wort) kann keinen GPL-Code enthalten. Sie können einem MIT-Produkt GPL-Code hinzufügen, die resultierende Anwendung kann jedoch nur unter der GPL-Lizenz verteilt werden. Ich habe noch nie jemanden gesehen, der eine Anwendung, die nur unter den Bedingungen der GPL vertrieben werden kann, als "MIT-lizenziertes Produkt" beschreibt. Wenn die Lizenzen nicht "kompatibel" wären, könnten Sie überhaupt kein kombiniertes Werk erstellen. Die Tatsache, dass sie kompatibel sind, bedeutet, dass Sie ein kombiniertes Werk erstellen können, das Sie verteilen können und das über eine GPL-Lizenz verfügt.
JosephH
5

IANAL aber wie ich es sehe ....

Während Sie GPL- und MIT-Code kombinieren können, ist die GPL schädlich. Dies bedeutet, dass das gesamte Paket die Einschränkungen der GPL aufweist. Da dies restriktiver ist, können Sie es nicht mehr in kommerzieller (oder eher Closed Source) Software verwenden. Dies bedeutet auch, dass Sie bei einem MIT / BSD / ASL-Projekt keine Abhängigkeiten zum GPL-Code hinzufügen möchten.

Das Hinzufügen einer GPL-Abhängigkeit ändert nicht die Lizenz Ihres Codes, schränkt jedoch ein, was Benutzer mit dem Artefakt Ihres Projekts tun können. Aus diesem Grund lässt die ASF für ihre Projekte keine Abhängigkeiten zum GPL-Code zu.

http://www.apache.org/licenses/GPL-compatibility.html

tcurdt
quelle
1
+1 Tatsächlich erkennt Microsoft dieses Problem perfekt. Die GPL ist viral, da jedes Projekt in Open Source umgewandelt wird.
Magallanes
10
Das ist kein Problem . GPL ist von Natur aus viral. Es soll von Personen verwendet werden, die ihren Code für andere Benutzer frei machen möchten, wie sie möchten, aber auch von anderen Personen , die Kopien dieser Software oder eines Derivats veröffentlichen , verlangen, dass sie die Benutzer auf die gleiche Weise respektieren. In der GPL geht es um Benutzer . Es geht nicht darum, dass Unternehmen durch staatlich durchgesetzte Monopole den Gewinn maximieren. Die Tatsache, dass es rekursiv ist, ist seine Schönheit und Stärke, kein „Problem“, das Microsoft „perfekt bestimmen“ kann. Es bedarf keiner besonderen Einsicht, um zu erkennen, dass die GPL viral ist ~ Wikipedia ist genug.
Carl Smith