Welche Lizenz für eigenen Code verwenden

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    mache mir derzeit Gedanken darüber, ob es sinnvoll ist seinem eigenen Code eine Lizenz zu verpassen, und wenn ja, welche Lizenz?!

    Hierbei ist die Auswahl ja sehr groß und jede hat wohl so seine Vor- und Nachteile wie ich as so rauslese. Habe dazu auch schon einiges an Links zusammengetragen:

    1. https://www.c-plusplus.net/forum/topic/344633/welche-lizenz/4
    2. https://www.gnu.org/licenses/license-list.de.html
    3. https://forum.e-recht24.de/12990-eigene-softwarelizenz.html
    4. https://irights.info/artikel/github…-lizenzen/16902
    5. https://www.dev-insider.de/open-source-li…etzen-a-604458/
    6. https://www.wbs-law.de/it-recht/open-…berblick-35752/

    Sehr Interssant finde ich auch den 3. Punkt wo es um die Sprache der Lizenz geht.

    Was ich auch noch nicht raus gelesen habe, wenn ich in meinem (sagen wir mal) Python Skript ein Modul verwende, welches eine bestimmte Lizenz verwendet, kann ich dann durch die Verwendung dazu "gezwungen" werden, ebenfalls diese Lizenz zu verwenden?

    Mich interessiert es jetzt hier im Thread, wie handhabt ihr das mit eurem Code, und wenn ihr eine Lizenz verwendet, welche und wieso genau diese?

    EDIT: Link 5 und 6 eingefügt

  • Da empfehle ich https://choosealicense.com/

    Ich persönlich stelle meine persönlichen Projekte immer unter der weit verbreiteten MIT-Lizenz zur Verfügung.

    Die Lizenz von Bibliotheken, die deine Bibliothek verwendet musst du AFAIK nur beachten , wenn du Code davon mit deiner Bibliothek veröffentlichst. Also solltest du Problemlos eine Python-Bibliothek unter MIT veröffentlichen können, die eine GPL-lizensierte Bibliothek importiert, die der Benutzer per pip installieren muss. Aber wie immer gilt: IANAL.

  • Ich bin ja ein Fan von der GPL bzw. LGPL. Die ist auch in Deutschland schon richterlich bestätigt worden. Es gibt auch eine (inoffizielle) deutsche Übersetzung, die im (gerichtlichen) Streitfall notfalls zur Belegung des Willens des Lizenzgebers herangezogen werden kann.

    Letztlich hängt es aber stark davon ab, welche Lizenz jeweils in den Programmteilen verwendet wird, die man in sein Projekt einbindet. Unter ungünstigen Umständen kann es sein, das einzelne Module mit unterschiedlichen Lizenzen ausgestattet sind, die untereinander nicht vereinbar sind und im GPL-Jargon als incompatible bezeichnet werden. Ein Zusammenfügen solcher Programmteile ist dann schwierig bis unmöglich.

    Deshalb gibt es ja von der FSF die LGPL (Light GPL), deren L aber ursprünglich für Library stand: Der damit lizensierte Code selbst und die darin gemachten Änderungen müssen weiterhin uneingeschränkt im Quellcode veröffentlicht werden, aber davon technisch sauber getrennte Codeteile (insbesondere eigener Code, der eine LGPL-Bibliothek nur nutzt) können dann mit einer gänzlich anderen Lizenz versehen werden, sogar mit einer streng proprietären Lizenz, so wie es die amerikanischen Softwareriesen machen.

    Meine auf github veröffentlichten Projekte habe ich aufgrund der verwendeten Unterprojekte wie folgt lizensiert:

    yamuplay -- GPL v3 (da eigenständiges Programm und keine Bibliothek)

    * python-omxplayer-wrapper -- LGPL v3

    * python3-dbus -- MIT

    * pyudev v0.21.0 -- LGPL v2.1

    * python-magic -- MIT

    * omxplayer -- GPL v2

    --> Schon aufgrund der Lizensierungen der verwendeten Module kommt man hier gar nicht um die GPL v3 herum.

    Raspiblaster: Software audacious 3.9 (Anpassung mit eject-Schaltfläche für den Raspiblaster):

    Hier habe ich logischerweise die abgewandelte freeBSD-Lizenz vom Ursprungsprojekt audacious beibehalten. Bei der Auswahl der letztlich verwendeten Software muss man neben der Funktionalität auch sofort einen Blick auf die Lizenz werfen, um schon mal vorab auszusortieren. Das macht eine Entscheidung für ein bestimmtes Projekt auch bisweilen leichter ;)

    Die GPL benutzt ("missbraucht") das restriktive Urheberrecht der meisten (westlichen?) Staaten, um ein virales Copyleft durchzusetzen, was eigentlich so ziemlich das Gegenteil vom Ziel eines proprietären Urheberrechtes ist, für dessen Schutz dieses Gesetz eigentlich da ist. Damit werden konträre Ziele mit deren eigenen Mitteln gesichert und das ist das Coole daran ;) Im Rechtsfall muss ein Richter diesem Willen offenbar zu seiner Durchsetzung verhelfen, da er mit den Mitteln des Urheberrechtes kundgetan wird.

  • Hallo,

    Hofei: wenn du Code "richtig" veröffentlichst (also bei Github oder so, nicht "nur" als Forenpost), dann solltest du eine Lizenz wählen.

    Die Wahl der Lizenz hängt IMHO in erster Linie davon ab, wie konsequent du eine mögliche rechtliche Durchsetzung verfolgen willst. Eine restriktivere Lizenz ist GPL ist nicht viel Wert, wenn du dir zur Verfügung stehenden rechtlichen Mittel nicht nutzen würdest, im Falle einer Lizenzverletzung.

    Ich habe 2x Code in Form von Python-Modulen veröffentlich und habe die sehr liberale MIT Lizenz gewählt. Zum einem, weil ich die Schöpfungshöhe des Codes jetzt nicht für sooo schützenswert hielt, zum anderen weil ich so wie so kaum einen Rechststreit mit Klage, Anwalt etc anfangen wollte.

    Persönlich hätte ich auch nichts gegen "Public Domain", aber das ist meine ich keine gültige "Lizenz" in Deutschland?

    Die IMHO beste "Startseite" für OSS Lizenzen ist: https://opensource.org/licenses

    Gruß, noisefloor

  • Eine restriktivere Lizenz ist GPL ist nicht viel Wert

    Was vestehst Du in diesem Zusammenhang unter "restriktiver"?

    Ich finde, der folgende Satz aus dem Lizenz-Text beschränkt doch nur die Besitzname (und dann exklusive Rechte) durch irgendwen und beinhaltet für uns User ansonsten gar keine Beschränkungen hinsichtlich der Verwendung:

    The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users.

    Das war damals meine Motivation, alles was ich mache unter Lizence Gnu GPL zu veröffentlichen... weil ich die Idee "freie Software" total klasse finde.

  • Hallo,

    Was vestehst Du in diesem Zusammenhang unter "restriktiver"?

    Das bezieht sich darauf, wie (meinen) Code oder Teile davon in anderen Projekten weiterverwendet werden kann bzw. unter welchen Bedingungen.

    Da ist die GPL ja deutlich restriktiver als z.B. die MIT Lizenz.

    Was keine Wertung der Lizenz ist, nur wenn ich meinen Code unter GPL stellen, eine Lizenzverletzung vorliegt, weil der Code außerhalb des von der GPL erlaubten verwendet wird, ich aber dann keine rechtlichen Schritte unternehmen will (oder kann), dann hätte man sich IMHO auch die GPL als ausgewählte Lizenz sparen können.

    Gruß, noisefloor

  • Ich hatte das auch nicht als Wertung verstanden.... ich versuche nur für mich selber die Konsequenzen zu verstehen. Und natürlich hast Du Recht, ich könnte (und wills auch gar nicht) mich auf einen Rechtsstreit einlassen. Aber ich hatte das bisher so interpretiert, dass die GNU GPL nur verhindert, dass jemand anders den Besitz übernehmen kann und dann die Verwendung beschränkt und das ansonsten eben die vollständige Verwendung unbeschränkt erlaubt ist. Ich sehe es bei meinen Werken eher so, dass ich ganz bestimmt keine computerischen Meisterwerke vollbracht habe, eher das Gegenteil trifft zu... ich bin da ziemlich Bescheiden, also muss da auch nix geschützt werden. Ich bin also völlig zufrieden damit, wenn irgendwas von meinem Kram irgendwem irgendwo hilft und infolgedessen vielleicht sogar Debian und auch die Idee Freie Software als solche damit unterstützt.

    Ich verstehe wahrscheinlich nur nicht, was Du als Restriktionen interpretierst... um darüber dann zu verstehen, was das für meine Absichten bedeutet oder bedeuten kann. Wenn ich ehrlich bin, überfordert mich der Vergleich der Lizenz-Modell einigermaßen und ich bin eher drauf angewiesen, mir gute Begründungen von anderen zu eigen zu machen.

  • Ich finde es schwierig, die Frage, ob und ggf. welche Lizenz gewählt werden soll, allgemein und unabhängig von der Frage des Zwecks der Lizenz zu beantworten. Entscheidend ist ja, wie großzügig man hinsichtlich der Verwendung, Modifikation und Weitergabe des eigenen Codes sein möchte und ob man ggf. wirtschaftliche Interessen hat. Wenn man sich dem Open-Source-Lager zugeschlagen hat, wäre neben GPL, LGPL und MIT vielleicht noch die Apache-Lizenz zu erwähnen, die grob mit MIT vergleichbar, aber detaillierter ausformuliert ist.

  • Ich finde es schwierig,

    Ich empfinde das nicht als schwierig ... :conf: ... es ist mir fast unmöglich zu einem begründeten und abschließenden Urteil zu kommen :no_sad: Ich kann Dir sagen, was meine Gründe für GNU GPL waren... nicht das Verstehen der Materie, sondern der Gedanke "Wenn die das von Debian so machen, wird das schon richtig sein." :shy:

  • Hallo,

    @ThomasL : die GPL regelt ja sehr genau, wie Code, der aus GPL lizenziertem Code abgeleitet ist, zu lizenzieren ist - nämlich auch unter der gleichen Lizenz. Damit bleibt freie Software freie Software. Was auch gut ist. Die MIT Lizenz z.B. ist da liberaler / unkritischer und erlaubt auch die Verwendung von Code in closed Source Software.

    Der Punkt ist: wenn du die GPL nutzt und zufällig raus findest, dass jemand deinen Code modifiziert in closed Source Software verwendet - gehst du dann rechtliche Schritte? Wenn nein hättest du die GPL ja "nur" als Abschreckung genutzt, aber nicht konsequent umgesetzt. Und das ist IMHO der Punkt, wo man sich im klaren drüber sein muss, was man will bzw. bereit ist, zu wollen.

    Wenn man sich mit dem Thema eigentlich gar nicht so richtig beschäftigen möchte, fährt man mit einer liberalen Lizenz IMHO besser.

    Gruß, noisefloor

    • Offizieller Beitrag

    Hallo!

    Und das ist IMHO der Punkt, wo man sich im klaren drüber sein muss, was man will bzw. bereit ist, zu wollen.

    Guter Punkt, Aber mit 20 denkt man (nicht nur finanziell) anders als mit 30 oder 40. Was heute nicht (möglich) ist, könnte morgen schon ganz anders aussehen. Wie soll man da eine klare Entscheidung treffen? :conf:

  • Der Grund warum ich meinen Code unter die GPL gestellt habe ist dass ich möchte dass ein jeder sie for free benutzen kann und nicht irgendeine Firma sie benutzt und Geld dafür dann verlangt.

    Soweit ich weiss setzt die FSF auch Ansprüche rechtlich durch. Allerdings wird sie es sicherlich nur für grosse Verstöße tun.

    Meinen go Code stelle ich unter die MIT Lizenz. Ist common im golang Bereich. Da habe ich mich angepasst.

  • Die Lizenz von Bibliotheken, die deine Bibliothek verwendet musst du AFAIK nur beachten , wenn du Code davon mit deiner Bibliothek veröffentlichst. Also solltest du Problemlos eine Python-Bibliothek unter MIT veröffentlichen können, die eine GPL-lizensierte Bibliothek importiert, die der Benutzer per pip installieren muss.

    Letztlich hängt es aber stark davon ab, welche Lizenz jeweils in den Programmteilen verwendet wird, die man in sein Projekt einbindet. Unter ungünstigen Umständen kann es sein, das einzelne Module mit unterschiedlichen Lizenzen ausgestattet sind, die untereinander nicht vereinbar sind und im GPL-Jargon als incompatible bezeichnet werden. Ein Zusammenfügen solcher Programmteile ist dann schwierig bis unmöglich.

    Kann es sein, dass sich diese beiden Aussagen widersprechen oder verstehe ich etwas falsch?

    Aber der Link zum Copyleft lässt eher vermuten, dass es so ist wie die Aussage von schlizbäda

    Ich bin ja ein Fan von der GPL bzw. LGPL.

    Also nach dem Lesen von Link Nr. 4 #1 hätte ich ja GPL am wenigsten gewählt,

    da wie man sieht, sogar ja der Linux Kernel mit GPLv2 in Konflikt mit V3 kommt.

    Drei Lager in der GPL-Welt

    Momentan gibt es daher drei Lager: Das erste, das bei der GPLv2 geblieben ist. Das zweite, das auf die GPLv3 hochgestuft hat. Und das dritte, in dem je nach Kontext entweder die GPLv2 oder GPLv3 genutzt wird. Ärger über die GPLv3 war am stärksten bei Linux und Busybox zu vernehmen: Beide entschieden, dass die einzig anwendbare Lizenz die GPLv2 ist. Auf der anderen Seite wurde ein Großteil des GNU-Codes vor ein paar Jahren auf GPLv3 überführt.

    Das Ergebnis ist, dass GNU und Linux inzwischen in verschiedenen Welten leben. Ironischerweise steht „GNU/Linux” jetzt für einen Lizenzkonflikt. Da die meisten der GNU-Projekte unter der GPLv3 stehen und Linux immer bei GPLv2 bleiben wird, kann es kein Codesharing mehr zwischen diesen Projekten geben.

    Etwas weiter kommt dann auch noch dazu die Überschrift: Die Anti-GPL-Bewegung


    Hofei: wenn du Code "richtig" veröffentlichst (also bei Github oder so, nicht "nur" als Forenpost), dann solltest du eine Lizenz wählen.

    Habe irgendwo mal gehört/gelesen/aufgeschnapp (warscheinlich sogar mal durch dich und/oder Linus, dass auf alle Fälle empfohlen wird, wenn Code ins Internet gestellt wird eine Lizenz ratsam ist, wie ebenfalls unter dem 4. Link auch geschrieben wird.

    Da ich mit dem Gedanken spiele, den Softwareteil der hier vorgestellten Projekte auf GH (oder GL) auszulagern, befasse ich mich eben auch mit dem Thema Lizenz.

    Natürlich will ich damit kein Geld verdienen, nur eben nichts falsches oder (wie im Link geschrieben wird) bedenkliches machen und den Code Lizenzlos rein stellen.

    Weitere konkrete Frage von mir, reicht eine einzelne Lizenzdatei im Repositorty aus, oder muss in jedem Skript ein Hinweis mit der Lizenz gesetzt werden?

    Ich finde es schwierig, die Frage, ob und ggf. welche Lizenz gewählt werden soll, allgemein und unabhängig von der Frage des Zwecks der Lizenz zu beantworten

    Habe es bewusst recht Allgemein formuliert meinen Eröffnungsthread, da ich finde, dass sich ruhig alle hier im Forum Gedanken über das Thema Lizenz machen sollen, und hier mal eine Art Basis an Informationen und Gedankenaustausch geschaffen werden soll.

    Natürlich muss jemand, der mit dem Code Geld verdienen will eine andere Lizenz wählen, als ein Hobbyprogrammierer (wie ich es bin) dem es erfreut, seinen Code mit anderen zu Teilen und Feedback dazu zu bekommen.

    Wenn man sich mit dem Thema eigentlich gar nicht so richtig beschäftigen möchte, fährt man mit einer liberalen Lizenz IMHO besser.

    Was wohl auf mich persönlich am besten zutrifft.

  • Kann es sein, dass sich diese beiden Aussagen widersprechen oder verstehe ich etwas falsch?

    Aber der Link zum Copyleft lässt eher vermuten, dass es so ist wie die Aussage von schlizbäda

    Zur Klarstellung: Ich bin der Meinung, dass ich folgenden Code Problemlos unter der MIT-Lizenz veröffentlichen könnte:

    Python
    import gpl_lizensiertes_modul
    
    # ...
    # Code, der von "gpl_lizensiertes_modul" Gebrauch macht
    # ...

    In der Installationsanleitung von mir steht dann, dass man vorher pip3 install gpl_lizensiertes_modul ausführen soll, oder es gibt eine setup.py und das geschieht automatisch - vom GPL-lizensierten Code ist jedoch in meinem Repository nichts enthalten. Ich lasse mich da natürlich gerne eines besseren Belehren, aber das würde mir dann Sorgen machen.

    Meinen go Code stelle ich unter die MIT Lizenz. Ist common im golang Bereich. Da habe ich mich angepasst.

    +1 zur Anpassung an das Umfeld/die Community. in der JS-Welt dominiert auch die MIT-Lizenz, bei Python ist es denke ich etwas durchwachsener.

    Habe irgendwo mal gehört/gelesen/aufgeschnapp (warscheinlich sogar mal durch dich und/oder Linus, dass auf alle Fälle empfohlen wird, wenn Code ins Internet gestellt wird eine Lizenz ratsam ist, wie ebenfalls unter dem 4. Link auch geschrieben wird.

    Ich sage das gelegentlich mal, ja. Code, den man ohne Lizenzangabe im Internet findet halte ich für unbrauchbar.

    Weitere konkrete Frage von mir, reicht eine einzelne Lizenzdatei im Repositorty aus, oder muss in jedem Skript ein Hinweis mit der Lizenz gesetzt werden?

    Eine einzelne Datei reicht. GitHub und Co. können diese beim Erstellen des Repositories auch anlegen, in der Regel unter dem Dateinamen LICENSE. Drin steht dann z.B. der Text der MIT-Lizenz mit dem von dir gewählten Namen und dem aktuellen Jahr.

    • Offizieller Beitrag

    Ich empfinde das nicht als schwierig ... :conf: ... es ist mir fast unmöglich zu einem begründeten und abschließenden Urteil zu kommen :no_sad: Ich kann Dir sagen, was meine Gründe für GNU GPL waren... nicht das Verstehen der Materie, sondern der Gedanke "Wenn die das von Debian so machen, wird das schon richtig sein." :shy:

    Dieses Lizenzwirrwar ist wahrscheinlich auch der Grund warum "jeder" diese ignoriert. Ohne Jura-Studium sieht doch kein normal sterblicher mehr durch. Dies nur mit dem, aber bloss nicht das und wenn du blaue Gardinen hast, dann dies auf gar keinen Fall. Irrsinn ist das einzige was mir zu dem Thema wirklich einfällt. Deswegen ist die einzige Lizenz die ich Nutze und deren Einhaltung ich auch garantieren kann die WTFPL.

  • Nur so mal am Rande weil mich das Thema auch tangiert:

    Ich hab hier ne Fräsmaschinensteuerung vom Motortreiber bis zur Bilderkennung vor mir liegen - ich würd die gerne veröffentlichen - aber welche Lizens sollte man benutzen wenn man alles ausser kommerzielle Nutzung erlauben möchte?

    In den Ding stecken 3 Jahre Entwicklungszeit... also einfach so verschleudern will ich das nicht.

  • Auch ich bin wahrlich kein Experte in Lizenzfragen, aber ich glaube nicht, dass meine Aussage der von Linus widerspricht:

    Ich sehe es schon auch so wie Linus, dass der bloße Aufruf einzelner Funktionen eines GPL-lizensierten Codemoduls im eigenen Code nicht dazu führt, dass der eigene Code dadurch ein Derivat des GPL-Moduls wird und deshalb bei Weitergabe/Veröffentlichung ebenfalls unter die GPL gestellt werden müsste. Man muss nur darauf achten, bei der Weitergabe des Gesamtpaketes die GPL des verwendeten Moduls nicht zu verletzen, indem man einen Hinweis auf die GPL für dieses Modul gibt und die Zugänglichkeit zu dessen Quellcode ermöglicht.

    Bei Compilersprachen schadet es nicht, wenn z.B. unter Windows das GPL-Modul in eine eigene DLL ausgelagert wird und die EXE dann diese DLL einbindet. Ich weiß aber nicht, ob dies zwingend so sein muss. Bei Python wiederum entschäft sich dies ja dahingehend, dass in der Regel der Quellcode selbst das ausführbare Programm ist.

    Anders sieht es aus, wenn man (nicht-triviale) Codeteile aus einem GPL-Code direkt in den Quellcode seines eigenen Werkes (verändert oder unverändert) übernimmt. Dann muss der eigene Code unter den Bedingungen der GPL weitergegeben werden. Wenn jetzt noch andere Codequellen hinzukommen, deren Lizenz beispielsweise eine Offenlegung über den Quellcode verbietet, dann ist dieses eigene Werk nicht lizensierbar und eine Verbreitung (über die eigene private Verwendung im stillen Kämmerlein hinaus) nicht machbar.

    So verstehe ich es zumindest im Groben und hoffe jetzt, nicht irgendwelche Kleinigkeiten/Spitzfindigkeiten übersehen zu haben.

    EDIT: vielleicht doch, siehe Beitrag #26

    • Offizieller Beitrag

    aber welche Lizens sollte man benutzen wenn man alles ausser kommerzielle Nutzung erlauben möchte?

    schau mal hier. Ich glaube allerdings nicht, dass das angeben einer Lizenz auch nur irgendwas bringt. Was machst du wenn du sich einer nicht dran hält? Hast du das die Lust und das Geld dein Recht durch alle Instanzen einzuklagen?

  • Hallo,

    schlizbäda: ich auch auch so. Bei den Lizenzen geht es ja um die _Weiter_nutzung des Codes oder Teile daraus in eigenem Code. Wenn man Code "nur" als Modul (oder was auch immer importiert) und den Code laufen lässt, ist das Nutzung, keine _Weiter_nutzung. Und man modifiziert ja auch nichts.

    @K_! : bei dir macht es da schon Sinn, sich mehr Gedanken zu machen. Der Code hat ja scheinbar eine größere Schöpfungshöhe. Wenn du die kommerzielle Nutzung grundsätzlich unterbinden willst, solltest du da IMHO eine Fachanwalt kontaktieren, um da sicher zu sein. Die OSS Lizenzen unterbinden ja nicht die kommerzielle Nutzung.

    Gruß, noisefloor

  • Der Grund warum ich meinen Code unter die GPL gestellt habe ist dass ich möchte dass ein jeder sie for free benutzen kann und nicht irgendeine Firma sie benutzt und Geld dafür dann verlangt.


    Soweit ich weiss setzt die FSF auch Ansprüche rechtlich durch. Allerdings wird sie es sicherlich nur für grosse Verstöße tun.

    Genau das ist auch mein Standpunkt. Dabei interessiert mich noch nicht mal, ob jemand damit Geld verdient, warum sollte es auch. Ich sehe das sogar eher positiv, weil ich eine kommerzielle Verbreiterung von Linux grundsätzlich als positiv einschätze. ich habe nur die Idee, die Eigentums- oder Rechteübernahme zu verhindern. Weil möglicherweise eine Inbesitznahme mit Herausgabe neuer Lizenzen vielleicht das "frei für alle und für alles nutzbar" beschränken könnte.

    Ob ich mich dagegen wären könnte... ?... vermutlich nicht... dazu fehlt mir der Atem.... aber egal... ich bin zufriedem damit, wie es ist.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!