Forum: PC Hard- und Software Softwareprojekte mit fremden Libs veröffentlichen


von Mr. Moe (Gast)


Lesenswert?

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

von Jannyboy (Gast)


Lesenswert?

> 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.

von Mr. Moe (Gast)


Lesenswert?

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

von Kaj (Gast)


Lesenswert?

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.html

Mr. 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
30
copyright on government writings.
Also: Author anschreiben und fragen.

von Nop (Gast)


Lesenswert?

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.

von Kaj (Gast)


Lesenswert?

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. :)

von Daniel A. (daniel-a)


Lesenswert?

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...

von Nop (Gast)


Lesenswert?

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.

von Kaj (Gast)


Lesenswert?

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. :-/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.