Hallo,
bei Mikrocontroller Projekten setze ich häufig fremde librarys ein.
Nun möchte ich ein Projekt veröffentlichen (Homepage oder GITHub) in dem
ich Beispielsweise eine LCD-Lib von Autor A (der keine Lizenz angegeben
hat) und die IRMP Lib hier aus dem Forum eingesetzt habe.
Das ganze möchte ich open source / lizenzfrei zur Verfügung stellen.
Dafür muss ich ja die Lizenzen der anderen Software-Teile beachten.
Was ist mit den, die ihren Code einfach frei anbieten?
Wie sieht das aus wenn ein Code unter CC/GNU/GPL/Copyleft/Beerware/etc
engeboten wird?
Kann ich eine Lib unter "CC-BY-SA" zusammen mit meinem
"macht-doch-was-ihr-wollt" Code einfach so veröffentlichen?
Muss ich im eigenen Code darauf hinweisen das alles nur "Bastelcode" ist
und ich keinerlei Haftung übernehme?
Ich hoffe ihr könnt mir für mehr Durchblick verhelfen.
Danke und Gruß
Mr. Moe
> Das ganze möchte ich open source / lizenzfrei zur Verfügung stellen.
Das kannst du für deinen code tun wie du lustig bist.
> Dafür muss ich ja die Lizenzen der anderen Software-Teile beachten.
Ja
> Was ist mit den, die ihren Code einfach frei anbieten?
Der Urheber hat nicht nur das Urheberrecht sondern auch das voll
umfängliche Nutzungsrecht. Das heißt unter anderem er entscheidet wie
und wo der Code nutzen werden darf. Ob und wer ihn veröffentlichen darf.
etc
Das diese Rechte hat man per Gesetz und bedürfen keiner Lizenz.
In einer Lizenz werden die in der Lizenz genannten Rechte an dritte
übergeben/abgetreten.
> Wie sieht das aus wenn ein Code unter CC/GNU/GPL/Copyleft/Beerware/etc> engeboten wird?
Das steht in der jeweiligen Lizenz drin was man darf.
Und speziell ist GPL schon mehrfach von Gerichten bestätigt worden.
Was meinst du weshalb es z.B. openwrt gibt.
> Kann ich eine Lib unter "CC-BY-SA" zusammen mit meinem> "macht-doch-was-ihr-wollt" Code einfach so veröffentlichen?
Steht in der Lizenz der Lib.
Danke für die Hinweise Jannyboy
Also zusammengefasst:
Ich nutze eine LCD Lib ohne Hinweise auf eine Lizensierung.
Daher baue ich sie so ein wie sie ist mit dem Autor im Header.
Dazu IRMP:
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
Also auch einfach so einbauen wie sie ist.
Meinen Code setze ich unter Beerware rein:
/*
*
------------------------------------------------------------------------
----
* "THE BEER-WARE LICENSE" (Revision 42):
* <phk@FreeBSD.ORG> wrote this file. As long as you retain this notice
you
* can do whatever you want with this stuff. If we meet some day, and you
think
* this stuff is worth it, you can buy me a beer in return Poul-Henning
Kamp
*
------------------------------------------------------------------------
----
*/
Alles zusammen könnte ich dann ruhigen gewissens veröffentlichen.
Doch was ist mit der Haftung?
Also Worst Case: Jemand nutzt meinen Code und kurz daraufhin geht sein
Gefrickel in Flammen auf, da ein Bug in meinem Code ist. Kann er mir
was? Kann ich mich überhaupt gegen sowas schützen? Muss ich das
überhaupt?
Muss ich drauf hinweisen das alles nur "Bastelcode ist"?
Vg
Mr. Moe
Mr. Moe schrieb:> und ich keinerlei Haftung übernehme?
Dafür gibt es in der GPL einen extra absatz (hier der letzte Absatz)
1
How to Apply These Terms to Your New Programs
2
3
If you develop a new program, and you want it to be of the greatest
4
possible use to the public, the best way to achieve this is to make it
5
free software which everyone can redistribute and change under these terms.
6
7
To do so, attach the following notices to the program. It is safest
8
to attach them to the start of each source file to most effectively
9
state the exclusion of warranty; and each file should have at least
10
the "copyright" line and a pointer to where the full notice is found.
11
12
13
14
<Programmname>
15
Copyright (C) 2016 <Name des Authors>
16
17
This program is free software: you can redistribute it and/or modify
18
it under the terms of the GNU General Public License as published by
19
the Free Software Foundation, either version 3 of the License, or
20
(at your option) any later version.
21
22
This program is distributed in the hope that it will be useful,
23
but WITHOUT ANY WARRANTY; without even the implied warranty of
24
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25
GNU General Public License for more details.
Die FSF (Free Software Foundation) hat Tabellen, welche freien/offenen
Lizenzen kompatibel sind usw.
https://www.gnu.org/licenses/license-list.htmlMr. Moe schrieb:> Was ist mit den, die ihren Code einfach frei anbieten?
Wenn der Code "frei" ist (free as in free speech not free beer) ist doch
alles tako.
Wenn es im Code keine Angaben zur Lizenz gibt, so ist der Code nicht
frei! Der Code steht auch nicht automatisch unter Public Domain!
Siehe hier: https://www.gnu.org/licenses/license-list.html#NoLicense
1
No license
2
3
If source code does not carry a license to give users the four essential
4
freedoms, then unless it has been explicitly and validly placed in the
5
public domain, it is not free software.
6
7
Some developers think that code with no license is automatically in the
8
public domain. That is not true under today's copyright law; rather, all
9
copyrightable works are copyrighted by default. This includes programs.
10
Absent a license to grant users freedom, they don't have any. In some
11
countries, users that download code with no license may infringe copyright
12
merely by compiling it or running it.
13
14
In order for a program to be free, its copyright holders must explicitly
15
grant users the four essential freedoms. The document with which they do
16
so is called a free software license. This is what free software licenses
17
are for.
18
19
Some countries allow authors to put code in the public domain, but that
20
requires explicit action. If you wish to do that, the method we recommend
21
is to use CC0, which also works in other countries by putting on a license
22
that is more or less equivalent to public domain. However, in most cases
23
it is better to copyleft your code to assure that freedom reaches all
24
users of the code.
25
26
Code written by employees of the US government is a special exception,
27
since US copyright law explicitly puts that in the public domain; but this
28
does not apply to works that the US pays a company to write. It also does
29
not apply to other countries, many of which do allow the state to have a
Mr. Moe schrieb:> Was ist mit den, die ihren Code einfach frei anbieten?
Sehr unglückliche Lösung. Das bedeutet nämlich, daß man keine Lizenz
dafür hat. Theoretisch kann der Autor dann jeden, der den Code nutzt,
wegen Urheberrechtsverstoß verklagen.
Das Minimum, was der Autor reinsetzen sollte, ist eine permissive
Lizenz. Dann erst haben andere überhaupt das Recht, den Code zu nutzen.
In den USA gibt es dann noch "public domain", wo man also die
Urheberrechte aufgibt und es der Allgemeinheit zur Verfügung stellt. SDo
etwas gibt es nach deutschem Recht aber nicht. Mit einer permissiven
Lizenz wird das wasserdicht.
> Wie sieht das aus wenn ein Code unter CC/GNU/GPL/Copyleft/Beerware/etc> engeboten wird?
Steht in der jeweiligen Lizenz, wie das dann aussieht. Nachlesen. Im
Falle der GPL gibt's auf der FSF-Seite auch Betrachtungen, welche
Lizenzen kompatibel zur GPL sind und welche nicht.
Generell sind permissive Lizenzen (also solche mit schwachem Copyleft)
da harmlos, weil sie wenig Forderungen stellen. Die GPL stellt da mehr
Forderungen, und zwar insbesondere, daß das Gesamtergebnis von
GPL-haltigem Code auch wieder unter der GPL stehen muß.
Wenn man nun Code mit einer Lizenz hat, die mit der GPL inkompatibel
ist, dann kann man diesen Code eben deswegen nicht unter der GPL
veröffentlichen. Somit kann man solchen Code nicht in ein Projekt
einbringen, welches bereits unter der GPL steht.
Umgedreht kann man GPL-Code nicht in Projekte einbringen, die nicht
unter der GPL stehen, solange man nicht die komplette Projektlizenz
ändert.
Was geht: Man hat ein GPL-Projekt und will Code unter BSD-Lizenz
einsteuern.
Was nicht geht: Man hat ein BSD-Projekt und will GPL-Code einbringen.
> Kann ich eine Lib unter "CC-BY-SA" zusammen mit meinem> "macht-doch-was-ihr-wollt" Code einfach so veröffentlichen?
CC-Lizenzen sind für Code schon sehr ungewöhnlich; die werden
normalerweise für Sachen wie Musik, Texte und Bilder verwendet.
Grundsätzlich, wenn Du eine Codebasis aus Fragmenten unter verschiedenen
Lizenzen hast, mußt Du jeder einzelnen dieser Lizenzen Genüge tun.
> Muss ich im eigenen Code darauf hinweisen das alles nur "Bastelcode" ist> und ich keinerlei Haftung übernehme?
Nach deutschem Recht ist es nicht möglich, jede Haftung komplett
auszuschließen. Im Falle von gratis zur Verfügung gestellten Code ist
die Haftung allerdings nur sehr eingeschränkt. Also wenn der Code
beispielsweise Malware beinhaltet, die Du da reingesetzt hast, dann
haftest Du auch bei Gratiscode dafür. Das ist dann aber auch schon
Vorsatz.
Nop schrieb:> Was nicht geht: Man hat ein BSD-Projekt und will GPL-Code einbringen.
Das hängt von der BSD-Lizenz ab.
Nur die 4-Klausel-BSD Lizenz (Original BSD license) ist nicht mit der
GPL kompatibel.
Die 2-Klausel (FreeBSD license) und 3-Klausel-BSD Lizenz (Modified BSD
license) sowie die "The Clear BSD License" sind aber kompatibel. :)
Ich handhabe das für gewöhnlich so, dass ich entweder nur Libraries
verwende, die eine kompatible Lizenz haben, oder eine mit der ich es
nutzen darf. In letzterem Fall liefere ich die Library jedoch nicht
selbst mit, sondern binde diese als git submodul ein, sofern es ein
öffentliches git repo ist. Dann muss sich der Benutzer dann mit
git submodule init selbst runterladen. Wenn es svn ist, mache ich
einen Link ins Readme. Ausserdem Packe ich derartiges in ein anderes
Verzeichnis, und erwähne in der Readme und Lizenz datei, das für Dinge
darin womöglich andere Lizenzen gelten. Zusätzlich mache ich die
Libraries optional. Bei Projekten ohne Lizenz info schreibe ich dem
Author einfach eine Mail.
Solange du die Library nicht mitlieferst, und du keine Konstrukte aus
deren Headern benötigst, bist du in den USA auf der sicheren Seite. Eine
API kann (zumindest in der USA) nämlich nicht Patentiert oder Lizensiert
werden. Siehe
https://en.wikipedia.org/wiki/Oracle_America,_Inc._v._Google,_Inc.
In diesem fall könnte man nähmlich jede Library nehmen, die der API
genügt, und brauchte den Code der Library nicht. Somit nutzt die
Software praktisch gesehen die Library nicht, aber der User kann sich
entscheiden diese zu verwenden. Ich würde bei libraries, die nicht frei
nutzbar sind, einfach eine eigene Dummy library mitliefern, und sagen
das andere Libraries (als die dummy library) statdessen verwendbar
wären.
In Europa muss man aber bei IT und Rechtsgeschichten etwas aufpassen,
die Richter usw. verstehen dort nichts von Technik. Dies sieht man ja
gerade wiedermal am neuen copyright für links quatsch:
https://en.wikipedia.org/wiki/Copyright_aspects_of_hyperlinking_and_framing#European_Union
Deshalb verwende ich nur Libraries mit freien Lizenzen, und so wenige
wie möglich. Ich entscheide mich eigentlich immer schon gegen die
Verwendung von Libtraries befor ich die Entwichlung anfange.
Ansonsten, wenn alles nichts nützt, und man das Projekt nicht
veröffentlichen dürfte, kann man dies ja auch einfach anonym tun. Dabei
muss man nur darauf achten, etwas wie Tor & sigaint zu verwenden, denn
GitHub und Co. loggen die IPs, und falls man Geld sammelt, z.B. über
Bitcoin, diese nicht verwenden um sich etwas direckt zu kaufen und nicht
über direckt über tauschbörsen auf Bankkonto. Bitcoins haben eine
öffentliche Blockchain, sobad man etwas Macht wodurch man sich mit einer
Transaktion in verbindung bringt, kann man potentiell zurückverfolgt
werden. Aber ich schweife hier glaube ich gerade vom Thema ab...
Kaj schrieb:> Nop schrieb:>> Was nicht geht: Man hat ein BSD-Projekt und will GPL-Code einbringen.> Das hängt von der BSD-Lizenz ab.
Nein, das geht mit keiner BSD-Lizenz, weil das Hindernis da die GPL ist
und nicht BSD. Was Du meinst, ist die umgedrehte Richtung.
> Nur die 4-Klausel-BSD Lizenz (Original BSD license) ist nicht mit der> GPL kompatibel.
Das ist richtig, die ist aber heute ausgestorben. BSD ist heute in der
Praxis nur noch 2- oder 3-clause.
Nop schrieb:> Nein, das geht mit keiner BSD-Lizenz, weil das Hindernis da die GPL ist> und nicht BSD. Was Du meinst, ist die umgedrehte Richtung.
Aaaahhh, mein Fehler. Ich bin fälschlicherweise davon ausgegangen, das
wenn die BSD Lizenzen mit der GPL kompatibel sind, dass das auch anders
herum gelten würde. (Lizenz)Asche auf mein Haupt. :-/