Forum: Offtopic Open Source Lizenzen praktisch angewendet


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

kennt jemand eine Übersicht, wie ich bei der Verwendung von Quelltexten 
aus unterschiedlichen Quellen und evtl. mit unterschiedlichen 
Open-Source-Lizenzen vorgehen muß, wenn ich mein Projekt selbst als Open 
Source veröffentlichen will?

Wichtig wäre mir insbesondere das Vorgehen,
 a) bei Fremd-Anteilen, die auf Dateiebene unverändert bleiben und 
problemlos in einem eigenen Verzeichnis gehalten werden können (z.B. ARM 
CMSIS),

 b) bei Fremd-Libraries, die leicht verändert werden, aber auch noch 
separat gehalten werden können (z.B. Standard Peripheral Libaries) und

 c) bei Fremd-Quelltext, der zur Anpassung an die eigenen Bedürfnisse 
komplett auf links gedreht und mit eigenem Header etc. vermengt wurde.


Das Ganze suche ich natürlich unter der Berücksichtigung der gängigen 
Open-Source Lizenzen und dann auch noch so gut (deutsch oder englisch) 
erklärt, daß der nicht-Jurist nicht nach der ersten Stunde lesen 
frustriert aufgibt und beschließt, nie wieder Open Source zu machen.

Keine einfache Sache. Kennt jemand eine Quelle?

Viele Grüße
W.T.

P.S.: Muss nicht kostenlos und darf auch ruhig auf totem Papier sein. 
Nur für den Nicht-Juristen lesbar ist eine harte Anforderung.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Mit einer Quelle kann ich nicht dienen, aber ich weiß aus eigener 
Erfahrung wie mühsam das sein kann. Natürlich hängt es sehr stark davon 
ab, welche fremden Lizenzen du hast, und unter welcher Lizenz du selbst 
veröffentlichen willst.

ich hatte vor ~15 Jahren mit LCD4Linux das Problem, dass ich eine fremde 
Quelle verwenden wollte, in deren Header folgendes zu finden war:
1
** You are free to incorporate this code into your own works, even if it **
2
** is a commercial application. However, you may not charge anyone else **
3
** for the use of this code! If you intend to distribute your code, **
4
** I'd appreciate it if you left this message intact. I'd like to **
5
** receive credit wherever it is appropriate. Thanks! **

das unscheinbare *you may not charge...* ist zur GPL (die ich verwendet 
habe) inkompatibel, den (mir bekannten) Autor habe ich nicht erreicht 
bzw. er hat nicht geantwortet, also blieb mir nichts anderes übrig als 
den Code rauszuwerfen, und selbst eine "clean room implementation" zu 
machen.

Was habe ich daraus gelernt: die Lizenzbedingungen von fremdem Code 
genau lesen, und wenns nach Problemen riecht, lieber weglassen.

von Walter T. (nicolas)


Lesenswert?

Hallo Michsel,

Michael R. schrieb:
> und unter welcher Lizenz du selbst veröffentlichen willst.

Der Punkt ist bei mir noch ungeklärt. Im Moment will ich noch abstecken, 
ob ich überhaupt Energie hineinstecken will, das Ganze Open-Source-fähig 
zu machen. Dabei ist der lizenzrechtliche Teil nur ein Teilaspekt.



Stichwort "lieber weglassen"/"clean room implementation": Kann das eine 
Einzelperson überhaupt leisten? Wenn ich den Wikipedia-Artikel richtig 
verstanden habe, bedeutet das: Eine Gruppe erarbeitet aus dem 
Quelltext/Produkt eine Spezifikation. Eine Gruppe erarbeitet aus der 
Spezifikation neuen Quelltext. Die Gruppen dürfen keine Überschneidung 
haben.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Walter T. schrieb:
> Stichwort "lieber weglassen"/"clean room implementation": Kann das eine
> Einzelperson überhaupt leisten? Wenn ich den Wikipedia-Artikel richtig
> verstanden habe, bedeutet das: Eine Gruppe erarbeitet aus dem
> Quelltext/Produkt eine Spezifikation. Eine Gruppe erarbeitet aus der
> Spezifikation neuen Quelltext. Die Gruppen dürfen keine Überschneidung
> haben.

Vielleicht ist "clean room" in meinem Fall auch der (juristisch) falsche 
Ausdruck. ich wusste was ich brauche (einen "expression evaluator") 
hatte einen gefunden, diesen verworfen und selbst neu (ohne Anlehnung an 
den anderen Code) implementiert.

von Sven B. (scummos)


Lesenswert?

Im Detail ist das alles immer kompliziert, aber eins ist sicher: du hast 
viel weniger Probleme damit, was du wie verwenden darfst, wenn du am 
Schluss den Quelltext veröffentlichst. Klar, die blöden 
GPL-Kompatiblitätsprobleme etc. hast du immer noch ...

von Walter T. (nicolas)


Lesenswert?

Sven B. schrieb:
> du hast
> viel weniger Probleme damit, was du wie verwenden darfst, wenn du am
> Schluss den Quelltext veröffentlichst

Nö. Solange ich nichts verkaufen will, habe ich die wenigsten Probleme, 
wenn ich meine Sachen für mich behalte und niemandem einen Einblick in 
die Funktionsweise gebe.

Alles andere ergibt Mehraufwand und eventuell Ärger. Wie groß 
Mehraufwand und Ärger sind - das gilt es vorab festzustellen.

von Stefan F. (Gast)


Lesenswert?

Deswegen ist es im Enterprise Umfeld gängige Praxis, Anwenderspezifische 
Software zu entwickeln und im selben Haus zu betreiben (beim Anwender 
oder beim Entwickler).

von Rolf M. (rmagnus)


Lesenswert?

Walter T. schrieb:
> Wichtig wäre mir insbesondere das Vorgehen,
>  a) bei Fremd-Anteilen, die auf Dateiebene unverändert bleiben und
> problemlos in einem eigenen Verzeichnis gehalten werden können (z.B. ARM
> CMSIS),
>
>  b) bei Fremd-Libraries, die leicht verändert werden, aber auch noch
> separat gehalten werden können (z.B. Standard Peripheral Libaries) und
>
>  c) bei Fremd-Quelltext, der zur Anpassung an die eigenen Bedürfnisse
> komplett auf links gedreht und mit eigenem Header etc. vermengt wurde.

Ich glaube, bei den meisten Lizenzen gibt es keine Unterscheidung für 
diese drei Fälle.

von S. R. (svenska)


Lesenswert?

Hallo,

erstmal musst du alle verwendeten Lizenzen zusammensuchen und ihre 
grundsätzliche Kompatiblität zueinander feststellen. Für die üblichen 
Verdächtigen gibt es da Tabellen. Dazu gehört auch die Lizenz des 
Ergebnisses, denn die ergibt sich meist von selbst.

> Wichtig wäre mir insbesondere das Vorgehen,
>  a) bei Fremd-Anteilen, die auf Dateiebene unverändert bleiben und
> problemlos in einem eigenen Verzeichnis gehalten werden können (z.B. ARM
> CMSIS),

Entweder in diesem Verzeichnis oder im Stammverzeichnis des Projektes 
findet sich eine LICENCES.TXT oder sowas, wo die einzelnen Bedingungen 
der Teilprojekte festgehalten sind.

>  b) bei Fremd-Libraries, die leicht verändert werden, aber auch noch
> separat gehalten werden können (z.B. Standard Peripheral Libaries) und

Bei uns ist das übliche Vorgehen, den Lizenzheader zu erweitern (im 
Sinne von "(c) 1998 Originalautor; changes (c) 2002 wir". Bei 
Dual-Lizenzierung des Originals (z.B. BSD/GPL) legst du außerdem fest, 
welche Lizenz des Originals greifen soll. Das kommt ebenfalls in die 
LICENCES.TXT.

>  c) bei Fremd-Quelltext, der zur Anpassung an die eigenen Bedürfnisse
> komplett auf links gedreht und mit eigenem Header etc. vermengt wurde.

Da wird's schwierig, hab ich keine Erfahrung mit.

> Das Ganze suche ich natürlich unter der Berücksichtigung der gängigen
> Open-Source Lizenzen und dann auch noch so gut (deutsch oder englisch)
> erklärt, daß der nicht-Jurist nicht nach der ersten Stunde lesen
> frustriert aufgibt und beschließt, nie wieder Open Source zu machen.

Gibt's da von der FSF oder ähnlichen Organisationen nichts zu? Das ist 
doch in deren Interesse, sowas verständlich zu machen...

Walter T. schrieb:
> Nö. Solange ich nichts verkaufen will, habe ich die wenigsten Probleme,
> wenn ich meine Sachen für mich behalte und niemandem einen Einblick in
> die Funktionsweise gebe.

Was übrigens auch ein Grund ist, Dienste in die Cloud zu verlegen.

von Walter T. (nicolas)


Lesenswert?

Rolf M. schrieb:
> Ich glaube, bei den meisten Lizenzen gibt es keine Unterscheidung für
> diese drei Fälle.

Ich finde zumindest keine Infos. Aber es klingt unlogisch.

Beispiel:
Ich nehme eine Quelltext-Library, 2-clause BSD: Copyright 2012 by Werner 
Meier, no warranty etc.: Ich darf also mit dem Quelltext grob erst 
einmal alles machen, was ich will, wenn ich die Lizenz-Information 
unverändert weitergebe.

Jetzt bastele ich am Quelltext herum. Passe es so an, daß es besser zu 
meinem Rest-Projekt paßt. Baue frische Fehler hinein. Mache alles 
unlesbar und häßlich. Bin halt nicht der tolle Programmierer. Dann 
kopiere ich oben in den Quelltext wieder den ursprünglichen Lizenztext. 
Also weiß jeder Leser: Werner Meier hat 2012 diesen Mist verzapft und 
lehnt jede Verantwortung ab.

Ist das so gemeint?

von Bernd K. (prof7bit)


Lesenswert?

Walter T. schrieb:
> Werner Meier hat 2012 diesen Mist verzapft und
> lehnt jede Verantwortung ab.
>
> Ist das so gemeint?

Ja.

Freescale zum Beispiel hat das Problem erkannt und geht bei ihrem CMSIS 
noch einen Schritt weiter indem sie noch eine weitere Klausel zur 
normalen unveränderten BSD hinzugefügt haben. Jetzt steht dort im 
Wesentlichen:

* [BSD] Du mußt dazuschreiben daß unser [Freecale] Code enthalten ist
* [FSL] Du darfst auf keinen Fall unseren Namen nennen.

Man sollte meinen so ein Konzern hätte wenigstens einen Teilzeit-Anwalt 
der beim Aufsetzen von rechtlichen Dokumenten aushilft.

von Walter T. (nicolas)


Lesenswert?

Verschoben in "Offtopic"?

Ich hätte behauptet daß die Frage, wie ich mein Embedded Projekt für 
Open Source vorbereite, ins Kernthema gehört und eigentlich von jedem 
Hobby-Entwickler berücksichtigt werden sollte.

Sicher: Für AVR ist das banal. Da kann ich oft auf das schön geschnürte 
Paket des AVR-GCCs zurückgreifen und einfach meinen eigenen Quelltext, 
ohne Fremd-Header veröffentlichen.

Aber den Luxus habe ich hier nicht mehr.

von Sven B. (scummos)


Lesenswert?

Walter T. schrieb:
> Sven B. schrieb:
>> du hast
>> viel weniger Probleme damit, was du wie verwenden darfst, wenn du am
>> Schluss den Quelltext veröffentlichst
>
> Nö. Solange ich nichts verkaufen will, habe ich die wenigsten Probleme,
> wenn ich meine Sachen für mich behalte und niemandem einen Einblick in
> die Funktionsweise gebe.
>
> Alles andere ergibt Mehraufwand und eventuell Ärger. Wie groß
> Mehraufwand und Ärger sind - das gilt es vorab festzustellen.

Ja ach ne. Wenn du es niemandem geben willst, kannst du immer machen was 
du willst. Ich habe angenommen, dass das Programm danach entweder 
verkauft oder sonstwie verteilt werden soll.

von Bernd K. (prof7bit)


Lesenswert?

Er wird vermutlich einfacher wenn Du die Frage nicht so allgemein 
stellst, denn allgemein sind beliebige Kombinationen möglich (oder 
rechtlich unmöglich) sondern stattdessen konkret auflistest welche 
Lizenzen alle in das konkrete Produkt mit reingelinkt werden sollen so 
daß man das konkret betrachten kann.

von Walter T. (nicolas)


Lesenswert?

Bernd K. schrieb:
> Er wird vermutlich einfacher wenn Du die Frage nicht so allgemein
> stellst,

Das Problem ist: Ich suche die Infos allgemein. Als Übersicht. Am besten 
ein Buch "Was ich bei Open Source Lizenzen beachten muß für Dummies auf 
500 Seiten."

Ich will wissen, welchen Aufwand ist als Hobbyprogrammierer in die 
Open-Source-Veröffentlichung stecken müßte, um eine informierte 
Entscheidung zu treffen, ob es das Wert ist, ins Detail zu gehen.

von S. R. (svenska)


Lesenswert?

Walter T. schrieb:
> Ich will wissen, welchen Aufwand ist als Hobbyprogrammierer in die
> Open-Source-Veröffentlichung stecken müßte, um eine informierte
> Entscheidung zu treffen, ob es das Wert ist, ins Detail zu gehen.

Im allgemeinen Fall setzt das mindestens ein spezifisches Jurastudium 
pro Land voraus, in dem die Veröffentlichung erreichbar sein soll, sowie 
Kenntnis der existierenden Rechtsprechung, soweit vorhanden. Damit 
lautet die Antwort grundsätzlich und immer "nein, den Aufwand ist es 
nicht wert".

In der Realität triffst du aber nur auf vereinfachte Fälle:
- du bist der alleinige Rechteinhaber;
- du hast die Erlaubnis aller anderen Rechteinhaber;
- du mischst nur übliche Lizenzen;
- du machst nichts kommerzielles damit;
- etc.pp.

Walter T. schrieb:
> Ich hätte behauptet daß die Frage, wie ich mein Embedded Projekt für
> Open Source vorbereite, ins Kernthema gehört und eigentlich von jedem
> Hobby-Entwickler berücksichtigt werden sollte.

Im einfachsten Fall kupferst du von vorhandenen Embedded-Projekten für 
deine Plattform ab. Irgendwie sehe ich da jetzt kein riesiges Problem, 
wenn du nicht gerade 5 verschiedene Lizenzen mischst und noch 
zusätzliche, unspezifische Anforderungen hast.

Walter T. schrieb:
> Am besten ein Buch "Was ich bei Open Source Lizenzen beachten muß
> für Dummies auf 500 Seiten."

Eine 500 Seiten lange Checkliste, von denen viele Punkte weder von mir 
noch vom derzeitigen Entwickler geprüft werden können, geschweige denn 
von einem Fachanwalt, fände ich jetzt auch nicht besonders nützlich...

Der ehemalige Maintainer von Busybox hatte da schon genug Spaß dran, und 
machte nicht ohne Grund Toybox, was für Android inzwischen Standard ist. 
Überhaupt geht Android von der GPL weg, weil sie Probleme hat (GPLv3 ist 
dort übrigens schlicht verboten).

von Rolf M. (rmagnus)


Lesenswert?

Walter T. schrieb:
> Bernd K. schrieb:
>> Er wird vermutlich einfacher wenn Du die Frage nicht so allgemein
>> stellst,
>
> Das Problem ist: Ich suche die Infos allgemein. Als Übersicht. Am besten
> ein Buch "Was ich bei Open Source Lizenzen beachten muß für Dummies auf
> 500 Seiten."
>
> Ich will wissen, welchen Aufwand ist als Hobbyprogrammierer in die
> Open-Source-Veröffentlichung stecken müßte, um eine informierte
> Entscheidung zu treffen, ob es das Wert ist, ins Detail zu gehen.

Ich finde, du gehst hier falsch vor. Du versuchst hier zuerst, für 
sämtliche theoretisch möglichen Konstellationen aus Lizenzen zu 
überlegen, wie man damit umgeht, um danach dann die Entscheidung zu 
treffen, ob du überhaupt jemals ein OpenSource-Programm veröffentlichen 
möchtest oder der Aufwand für die Lizenzen zu hoch ist.
Bis du mal soweit bist, hast du schon mindestens zehn mal soviel Aufwand 
in diese ganzen Überlegungen gesteckt, wie der durchschnittliche 
OpenSource-Entwickler.
Wenn du ein konkretes Projekt hast (bzw. planst), schaue dir an, welche 
Lizenzen vorkommen, und dann überlege dir, wie man damit umgehen kann. 
Alles andere bringt dich nicht weiter.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Walter T. schrieb:
> Ich will wissen, welchen Aufwand ist als Hobbyprogrammierer in die
> Open-Source-Veröffentlichung stecken müßte, um eine informierte
> Entscheidung zu treffen, ob es das Wert ist, ins Detail zu gehen.

Das wird so einfach nicht funktionieren, dafür gibt es zu viele 
Lizenzen.

Hilfreich wäre eine Liste der bestehenden Lizenzen von wiederverwendeten 
Komponenten, und eine grobe Zielrichtung welche Lizenz du für dein 
Projekt anstrebst.

Nichtsdestotrotz finde ich es gut dass du dich damit beschäftigst. 
Sensibilität für Lizenzen halte ich für wichtig, ich finde aber dass das 
speziell hier zu wenig Beachtung findet.

Schönes Beispiel ist die (wunderbare) Entprell-Routine von Peter D. wo 
die Lizenzfrage komplett ungeklärt ist.

von Walter T. (nicolas)


Lesenswert?

Rolf M. schrieb:
> Du versuchst hier zuerst, für
> sämtliche theoretisch möglichen Konstellationen aus Lizenzen zu
> überlegen, wie man damit umgeht, um danach dann die Entscheidung zu
> treffen, ob du überhaupt jemals ein OpenSource-Programm veröffentlichen
> möchtest oder der Aufwand für die Lizenzen zu hoch ist.

Nein. Ich versuche mir eine Übersicht am Anfang zu schaffen.

S. R. schrieb:
> Im einfachsten Fall kupferst du von vorhandenen Embedded-Projekten für
> deine Plattform ab.

Woher will ich, ohne die nötige Übersicht, wissen, ob die anderen das 
sinnvoll gemacht haben?

von S. R. (svenska)


Lesenswert?

Walter T. schrieb:
> Woher will ich, ohne die nötige Übersicht, wissen, ob die anderen das
> sinnvoll gemacht haben?

Was ist "sinnvoll"?

Wenn ich Code schreibe und oben "BSD-lizenziert" ranpappe, dann ist das 
meine eigene Entscheidung. Wenn ich Fremdcode einbinde, dann muss ich 
aufpassen, dass ich dessen Lizenz nicht verletze.

Im Normalfall ist das ein sehr übersichtlicher Prozess, und es gibt 
Tabellen, ob sowas grundsätzlich zulässig ist.

Wenn es dir um einen absoluten Spezialfall geht, also z.B. eine Mischung 
aus 5 verschiedenen (mehr oder weniger) Opensource-Lizenzen, vielleicht 
noch einem proprietärem Buildtool und besonderer Hardware, dann lass das 
gerichtlich klären. Das ist eine juristische Frage, da ist nichtmal ein 
Richterspruch wasserdicht.

Nachtrag:
Hier geht's los: https://en.wikipedia.org/wiki/License_compatibility

von Walter T. (nicolas)


Lesenswert?

S. R. schrieb:
> Hier geht's los: https://en.wikipedia.org/wiki/License_compatibility

Danke! Das ist ein Anfang.

von Gregor G. (gregkk)


Lesenswert?

Bernd K. schrieb:
> Freescale zum Beispiel hat das Problem erkannt und geht bei ihrem CMSIS
> noch einen Schritt weiter indem sie noch eine weitere Klausel zur
> normalen unveränderten BSD hinzugefügt haben. Jetzt steht dort im
> Wesentlichen:
>
> * [BSD] Du mußt dazuschreiben daß unser [Freecale] Code enthalten ist
> * [FSL] Du darfst auf keinen Fall unseren Namen nennen.
>
> Man sollte meinen so ein Konzern hätte wenigstens einen Teilzeit-Anwalt
> der beim Aufsetzen von rechtlichen Dokumenten aushilft.

Wo genau steht die Lizenz von Freescale? Interessiere mich dafür, konnte 
aber die Quelle noch nicht finden. Wäre Dir über einen Link/Hinweis 
dankbar.
Grüße

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.