Wie benutze ich Open Source Lizenzen und was empfehlen Sie mir?

8

Ich habe einen Code, den ich teilen möchte, aber ich möchte ihn mit einer Open Source-Lizenz veröffentlichen. Aber ich weiß nicht, wie Sie diese Lizenzen verwenden müssen.

Wie müssen Sie eine Open Source Lizenz aktivieren? Nur den Text der Lizenz in alle Dateien aufnehmen? Was muss ich noch tun? Muss ich etwas richtig kaufen? Eine readme.txt in alle Verzeichnisse aufnehmen? Ich meine, was muss ich tun, wenn mein Code durch den rechtlichen Test einer Lizenz geschützt werden soll?

Die zweite Frage ist, welche Lizenz für diese Bedingungen besser ist:

  • Es ist mir egal, was die Leute mit meinem Code machen, zu Bildungszwecken, um Geld zu verdienen, es macht mir nichts aus, was sie damit machen wollen.
  • Aber ich möchte, dass die Leute meinen Namen nicht aus dem Code löschen. Wenn sie meinen Code verwenden, zwingen sie sie, mich zu erwähnen. Wenn sie meinen Code ändern und jemand nach diesen Änderungen fragt, gibt er den Code mit den Änderungen an.
  • Aber ich möchte die Leute nicht zwingen, den Code ihrer Anwendungen zu veröffentlichen, selbst wenn sie meinen Code verwenden.

Was ist die beste Lizenz für diese Zwecke?

Pedro Ballesteros
quelle
Ich denke, Sie müssen klarer sein, was Sie wollen. "Wenn sie Ihren Code ändern und jemand nach diesen Änderungen fragt" - meinen Sie das wie in einer Webanwendung oder in einer Desktopanwendung oder in beiden? Dies ist tatsächlich für die Lizenz relevant, überraschenderweise!
Robin Green
Vielen Dank für den Punkt, den ich gerade in späteren Kommentaren klargestellt habe. Ich möchte nur, dass jemand, der meinen Code verwendet, an jeder Stelle (über, im Internet usw.) sagen muss, dass der Code mir gehört. Aber es macht mir nichts aus, wenn sie ihr Projekt nicht in ein Open-Source-Projekt umwandeln möchten, nur weil sie meinen Code verwenden.
Ich denke, es ist klar, dass Sie ein Geschenk machen (den Code), und die Leute können dieses Geschenk als ähnliches verwenden, sie können es sogar verwenden, um Gewinn zu machen, und es macht Ihnen nichts aus. Aber Sie möchten, dass die Leute wissen, dass sie Ihren Code verwenden.
Ich habe bemerkt, dass viele Leute hier tatsächlich die Verwendung des 4-Klausel-BSD vorgeschlagen haben. Technisch gesehen ist diese Lizenz laut OSI nicht einmal Open Source. Ich stimme der Ansicht der GNU-Projekte nicht zu, aber ich denke, dass ihr Artikel über die 4-Klausel-BSD eine Lektüre wert ist. tl; dr - Es führt zu Tausenden von Attributionssätzen in Anzeigen für große Projekte wie Linux- oder BSD-Distributionen.
Nathan2055

Antworten:

13

Hier ist eine praktische Anleitung:

http://i.stack.imgur.com/GvOBw.png

Verweise auf PDF- und Graffle- Versionen des obigen Flussdiagramms finden Sie im Blog von Karl Fogel .

RHPT
quelle
1
[-1]. Obwohl ich voll und ganz verstehe, dass es in erster Linie lustig und nicht informativ sein soll, glaube ich auch, dass es keine Mängel enthalten sollte, die jemanden in einer so komplizierten Sache wie der Lizenzierung irreführen könnten. aber es enthält diejenigen. [Siehe nächste Kommentare]
Dmitry Alexandrov
1
① Die Tabelle trägt den Titel "Welche Open Source-Lizenz?" und berüchtigte 4-Klausel-BSD-Lizenz ist eine der Optionen. Software unter der 4-BSDL wird von OSI jedoch nicht als "Open Source" bezeichnet. Es wird zwar gemäß FSF als "frei" bezeichnet, wird aber dennoch nicht empfohlen .
Dmitry Alexandrov
1
② 'Creative Commons' ist überhaupt keine Lizenz, sondern eine Stiftung, die eine Reihe grundlegend unterschiedlicher Lizenzen veröffentlicht hat, die sich von der gemeinfreien Widmung CC0 bis zur 'kostenlosen Werbelizenz' CC-BY-NC-ND unterscheiden. Die meisten von ihnen sind es Nicht frei.
Dmitry Alexandrov
③ Während der Hintergrund, dass Sie, wenn Sie etwas für die Infrastruktur schreiben (anstatt für ein eigenständiges Programm), die dort akzeptierte Lizenz anwenden sollten, richtig ist, ist Perl- und Mozilla-Software natürlich nicht nur unter Artistic bzw. MPL lizenziert. Perl steht unter Artisic oder GPLv1 +, Mozilla-Software unter MPL oder GPLv2 oder LGPLv2.1, wobei "oder" die Aufhebung von Einschränkungen bedeutet. Wenn Sie also nur eine Lizenz aus der Liste auswählen, schlägt die Kompatibilität fehl.
Dmitry Alexandrov
5

Verwenden Sie die Original -BSD-Lizenz mit 4 Klauseln .

  • Es ist mir egal, was die Leute mit meinem Code machen, zu Bildungszwecken, um Geld zu verdienen, es macht mir nichts aus, was sie damit machen wollen.

  • Aber ich möchte die Leute nicht zwingen, den Code ihrer Anwendungen zu veröffentlichen, selbst wenn sie meinen Code verwenden.

Wie bei den meisten Open-Source-Lizenzen können Benutzer die Quelle ändern und weitergeben. Es ermöglicht ihnen, es für jeden Zweck zu verwenden.

  • Aber ich möchte, dass die Leute meinen Namen nicht aus dem Code löschen. Wenn sie meinen Code verwenden, zwingen sie sie, mich zu erwähnen.

Im Gegensatz zu den meisten modernen, von OSI genehmigten Lizenzen hat diese eine sogenannte "Werbeklausel", was bedeutet, dass Autoren von Software, die Ihre Bibliothek verwenden, erwähnen müssen, dass ihr Produkt von Ihnen entwickelten Code enthält.

Text der Klausel:

"Alle Werbematerialien, in denen Funktionen oder die Verwendung dieser Software erwähnt werden, müssen die folgende Bestätigung aufweisen: Dieses Produkt enthält Software, die von der <organization>. Entwickelt wurde ."

  • Wenn sie meinen Code ändern und jemand nach diesen Änderungen fragt, gibt er den Code mit den Änderungen an.

Das ist irgendwie problematisch. Nur Lizenzen mit Linkskopie erfordern dies. Die Verwendung der Linkslizenz widerspricht den übrigen Anforderungen.

vartec
quelle
1
Die ursprüngliche 4-Klausel-Version wird von der Open Source-Initiative nicht als Open Source-Lizenz aufgeführt (siehe opensource.org/licenses/bsd-license ). Es gibt genug Lizenzverbreitung und Lizenzinkompatibilitäten, ohne alte oder variante Lizenzen einzubringen.
David Thornley
1
@ David: Natürlich wird es nicht vom OSI aufgelistet, die Werbeklausel ist nicht mit der OSI-Definition kompatibel.
Vartec
Die alte BSD-Lizenz wurde eingestellt, weil sie gezwungen war, endlose Namenslisten im endgültigen Copyright-Hinweis zusammenzustellen. Die neue BSD-Lizenz ist in seinem Fall genauso geeignet (und wahrscheinlich noch besser): Der Name des Autors muss im Code selbst bleiben.
Denis de Bernardy
1
OP sagt: "Wenn sie meinen Code ändern und jemand nach diesen Änderungen fragt, gibt er den Code mit den Änderungen an." BSD verlangt das nicht. Es wird nicht kopiert. LGPL könnte besser sein.
MarkJ
3

Ich bin kein Anwalt und das Folgende ist keine Rechtsberatung, sondern das, was ich als Programmierer über das Urheberrecht gesammelt habe.

Wenn Sie eine Software erstellen, haben Sie das Urheberrecht daran, es sei denn, jemand hat Sie dafür bezahlt. Sie sollten das Urheberrecht in der Software oder in a READMEangeben, gefolgt von den Lizenzbedingungen oder, wenn Sie eine ausführliche Lizenz wie die GPL verwenden, einen Zeiger darauf, wo sich die Lizenz befindet. Wenn Sie Ihre Software jetzt veröffentlichen, wird sie von der Lizenz abgedeckt. Sie sollten den Benutzer über die Lizenz informieren, z. B. in einem Installationsprogramm oder im Handbuch.

Die Art von Lizenz, die Sie möchten, klingt wie ein Copyleft, ist aber schwächer als die GPL. Betrachten Sie die GNU Lesser General Public License (LGPL).

Fred Foo
quelle
Ich glaube nicht, dass die (L) GPL eine Attributionsursache hat, die "sie (Leute, die den Code verwenden) dazu zwingen würde, mich (den ursprünglichen Autor) zu erwähnen", wie Pedro erwähnte.
2
@danielkza: Ich glaube, Sie können den Copyright-Hinweis nicht legal von einem urheberrechtlich geschützten Werk entfernen, daher kann der Name des OP nicht entfernt werden.
Fred Foo
1
@larsmans: Ich glaube, er möchte, dass sein Name nicht im Code selbst zitiert wird, sondern im Abspann / über Box / Site-Fußzeile / etc. Ich habe es vielleicht falsch interpretiert.
Vielen Dank für die Antwort. Sehr nützliche Informationen. Es ist wie ich dachte, aber ich war mir nicht sicher. Ich werde einige Open-Source-Projekte sehen, um zu sehen, wie sie den Rechtstext enthalten.
Ich denke, ich werde diese beiden Lizenzen, GPL und LGPL, lesen, um zu sehen, was für mich besser ist.
2

Die Free Software Foundation hat sehr erfolgreich Rechtsstreitigkeiten gegen Personen geführt, die gegen die Bestimmungen ihrer Open Source-Lizenz verstoßen haben. Ich erinnere mich an einen Artikel aus dem Jahr 2006, der zeigte, dass sie zu dieser Zeit 4 für 4 waren. In jüngerer Zeit haben sie Klagen gegen Cisco, Skype und Verizon beigelegt, die alle zu Zahlungen an die FSF führten. Im Allgemeinen beginnt die Klage jedoch erst, nachdem wiederholt versucht wurde, den Angeklagten über seine Verpflichtungen zu informieren. Um Zeit zu sparen, muss der Benutzer in einem Standardlizenzdialog auf die Schaltfläche "Akzeptieren" klicken, die Datei mit den Lizenzbedingungen in einem eigenen "Lizenz" -Ordner speichern und fertig sein.

Was die jeweilige Lizenz anbelangt, hört es sich so an, als ob Sie die LGPL wollen, die alles tut, was Sie verlangen, außer möglicherweise den Attributionsteil - möglicherweise müssen Sie dies separat festlegen.

Matt Phillips
quelle
Danke, ich werde den LGPL-Text lesen, aber es ist so langweilig, juristische Texte zu lesen;)
1
IIUC Die LGPL soll anstelle der GPL verwendet werden, wenn Sie mehr über die Verbreitung Ihrer Bibliothek als über eine Konkurrenzbibliothek besorgt sind und sich in diesem Fall nicht so sehr mit dem Freiheitswinkel befassen. Wenn Sie beispielsweise eine Bildbibliothek geschrieben haben, um mit anderen Bildbibliotheken zu konkurrieren, können andere Benutzer mit der LGPL Ihre Bibliothek einfacher verwenden als mit einer [proprietären] Konkurrenzbibliothek.
Jeff Welling
2

Ich glaube nicht, dass es eine Lizenz gibt, die genau Ihren Anforderungen entspricht. Es hört sich so an, als ob Sie eine Mischung aus AGPL und LGPL wollen. Aber die FSF hat es noch nicht geschafft, eine solche Lizenz zu erstellen! Ihre offizielle Antwort finden Sie hier: /programming/3330792/why-isnt-there-a-lesser-affero-general-public-license/4419776#4419776

Robin Green
quelle
Vielen Dank für die Antwort, ich habe vermutet, dass es keine Lizenz gibt, aber zumindest sehe ich das beste Match aus.
Es gibt einige Lizenzen, die Benutzer dazu zwingen, ihren eigenen Code zu veröffentlichen, wenn sie meinen verwenden. Das heißt, Sie müssen Ihr Projekt in ein Open Source-Projekt verwandeln, wenn Sie Code mit diesen Lizenzen verwenden. Es macht mir nichts aus, wenn sie ihren Code nicht veröffentlichen wollen. Mein Hauptanliegen ist, dass zumindest die Leute jetzt meinen Code verwenden. Das reicht mir
Ich glaube wirklich nicht, dass jemand meinen Code in seinen Projekten verwenden möchte;) Hauptsächlich, weil es sich um Übungen handelt, die zeigen, wie man mit TDD eine dreischichtige Java-Anwendung von Grund auf neu erstellt. Ich möchte diesen Code teilen und ich möchte, dass die Leute ihn verwenden, um TDD zu unterrichten, aber ich möchte, dass sie sagen müssen, dass die Übungen und Beispiele meine sind.
1

Wie müssen Sie eine Open Source Lizenz aktivieren? Nur den Text der Lizenz in alle Dateien aufnehmen?

Ich weiß nicht, was die genaue gesetzliche Anforderung ist, aber es ist üblich, am Anfang jeder Datei einen kleinen Header-Kommentar einzufügen:

  • das besagt, wem das Urheberrecht gehört, und
  • das besagt, dass die Datei von so und so einer Lizenz abgedeckt ist, dem Leser den Namen der Datei mitteilt, die den Text der Lizenz enthält, und ihm mitteilt, wo er den Text finden kann, wenn die Datei fehlt.

Was muss ich noch tun? Muss ich etwas richtig kaufen?

Nein.

Eine readme.txt in alle Verzeichnisse aufnehmen?

Nein. Eine einzelne README-Datei im Stammverzeichnis des Verzeichnisbaums ist eine gute Idee, aber nicht obligatorisch.

Ich meine, was muss ich tun, wenn mein Code durch den rechtlichen Test einer Lizenz geschützt werden soll?

Um ganz sicher zu sein, sprechen Sie mit einem Anwalt.


In Bezug auf Ihre Lizenzanforderungen.

(1) Es ist mir egal, was die Leute mit meinem Code machen, zu Bildungszwecken, um Geld zu verdienen, es macht mir nichts aus, was sie damit machen wollen.

Das ist eine Art Nichtanforderung. Nur sehr wenige Lizenzen verbieten Menschen, Geld zu verdienen, in der Bildung zu verwenden usw.

"Mach was sie wollen" widerspricht jedoch buchstäblich einigen deiner anderen Anforderungen.

(2) Wenn sie meinen Code ändern und jemand nach diesen Änderungen fragt, geben sie den Code mit den Änderungen an.

Die Anforderung, dass sie den Quellcode aller von ihnen vorgenommenen Änderungen bereitstellen, ist in GPL, LGPL, AGPL enthalten, jedoch nicht in Apache, BSD und anderen gängigen Lizenzen.

(3) Aber ich möchte, dass Leute meinen Namen nicht aus dem Code löschen, und wenn sie meinen Code verwenden, zwingen sie sie, mich zu erwähnen.

Die meisten Lizenzen erfordern Zuordnungen im Code, um im Code zu bleiben.

"Zwinge sie, mich zu erwähnen" ist jedoch schwierig, und nur wenige, wenn überhaupt, Lizenzen sagen dies. In der Tat ist die FSF-Position, dass eine solche Anforderung Ihren Code nicht frei macht ...

(4) Aber ich möchte die Leute nicht zwingen, den Code ihrer Anwendungen zu veröffentlichen, selbst wenn sie meinen Code verwenden.

Nur wenige Lizenzen zwingen die Benutzer dazu, den Code ihrer Anwendung selbstverständlich zu veröffentlichen. Selbst der radikalste Teil der GPL-Familie ermöglicht es Ihnen, Software für rein private Zwecke zu verwenden und zu modifizieren.

GPL et al. Zwingen die Benutzer jedoch, die Quelle zu veröffentlichen, wenn Personen eine Anwendung verteilen, die auf Ihrer basiert. (Die genauen Bedingungen hängen von der Lizenz ab. Mit LGPL können Benutzer beispielsweise ihren Code mit Ihrem verknüpfen, ohne sie zur Veröffentlichung ihres Codes zu zwingen. Andererseits verlangt die GPL, dass sie ihren Code unter diesen Umständen veröffentlichen, und AGPL erweitert diesen auf andere Bereiche .)

Beachten Sie auch, dass die Anforderungen (2) und (4) buchstäblich widersprüchlich sind.


Zusammenfassend müssen Sie in der Lage sein, Ihre Anforderungen an eine Lizenz klar auszudrücken. Wenn Sie das nicht können, haben Sie kaum eine Chance, eine Lizenz zu finden, die Ihren Anforderungen entspricht.

Oder vielleicht sollten Sie einfach mit einem Anwalt sprechen. (Er / sie muss Ihnen offensichtlich eine Reihe von Fragen stellen, um Ihre tatsächlichen Anforderungen zu ermitteln.)

Stephen C.
quelle
0

Sie können für die Arbeit, die Ihnen gehört (Sie haben das Urheberrecht), jede gewünschte Lizenz verwenden (sogar Ihre eigene erstellen). Dies erfolgt normalerweise, indem Sie eine Kopie der Lizenz COPYINGzusammen mit dem Quellcode in die Datei aufnehmen .

Was Sie suchen , ist eine Lizenz im XFree86 1.1-Stil ( Dies ist eine zulässige Lizenz ohne Copyleft (Sie müssen die Quelle nicht öffnen, wenn Sie sie verwenden, benötigen jedoch eine Bestätigung) und erfüllt alle Ihre Anforderungen.

  1. Die Endbenutzerdokumentation, die der Weiterverteilung beigefügt ist, muss gegebenenfalls die folgende Bestätigung enthalten: "Dieses Produkt enthält Software, die von The XFree86 Project, Inc (http://www.xfree86.org/) und seinen Mitwirkenden entwickelt wurde" gleicher Ort und Form wie andere Anerkennungen Dritter. Alternativ kann diese Bestätigung in der Software selbst in derselben Form und an demselben Ort wie andere solche Bestätigungen von Drittanbietern erscheinen.

Sie können den Namen xfree86 durch Ihren Namen ersetzen und verteilen.

Lincity
quelle