Forum: Projekte & Code Open Source µC Lib


von Christian K. (programm-noob)


Lesenswert?

Ich wollt eigentlich nur eine Grafik Bibliothek für ARM und AVR 
schreiben, bin jetzt aber dazu gekommen auch so sachen wie SD/MMC und so 
weiter mit in die Bibloothek mit aufzunehem. der Code wird nicht nur von 
mir geschrieben, sondern ich werde auch Code von anderen mit Erlaubnis 
verwenden. Das ganze Projekt wird doch etwas größer als ich gedacht 
habe, genauer gesagt zu Groß, das ich das alleine schaffen kann. Die 
Bibliothek ist unter der GPL, kann somit von jedem und in allen 
Projekten, auch kommerziellen, verwendet werden. Ich werde Andreas 
bitten das Projekt im SVN server anzulegen. Ich würde mich sehr freuen, 
wenn noch ein paar AVR Spezialisten mithelfen würden, da ich bisher fast 
nur mit ARM gearbeitet habe. Wer Lust hat mitzumachen schreibt mir bitte 
eine PN.

Viele Grüße

PS: Link zum Wiki Artikel: 
http://www.mikrocontroller.net/articles/Mikocontroller_Lib

von Martin Thomas (Gast)


Lesenswert?

>...Die Bibliothek ist unter der GPL, kann somit von jedem und in allen
>Projekten, auch kommerziellen, verwendet werden....
Möglicherweise hällt das nicht nur mich davon ab, die Bibliothek zu 
verwenden. Weitergabe des gesamten Firmware-Quellcodes an alle 
(End-)Anwender eines Gerätes ist insbes. bei kommerziellen Entwicklungen 
oft keine Option. De facto bleibt dann nur, um Code oder GPL einen Bogen 
zu machen. Wenn man die Bibliothek nicht verwendet, wird man sie auch 
kaum erweitern. Hat man keine Erweiterungen, hat man auch nichts um 
beizutragen.

Darüber nachgedacht, eine BSD-Lizenz zu verwenden (analog avr-libc) oder 
zumindest GPL mit einer Ausnahme (ähnlich z.B. FreeRTOS, EFSL, ChibiOS).

von nicht "Gast" (Gast)


Lesenswert?

@ Martin Thomas: Niemand wird Dich zwingen.

Aber mich nervt es z.B. extrem, wenn die I.... es nicht auf die Reihe 
bekommen, die Anzeige einfach nach 600 Sekunden abzuschalten, wenn ich 
die Uhrzeit im Kuechenradio nicht stelle, weil niemand diese braucht. 
Statt desse blinkt das Teil monatelang. Und das ist nur EIN Beispiel, da 
gibt es z.B. Videorekorder, die noch nicht mal ein Video abspielen, wenn 
man die Zeit nicht stellt...

Sowas kann man aber ohne Quellcode nie abstellen, mit vielleicht.

Gast

von Christian K. (programm-noob)


Lesenswert?

Moin

Martin Thomas schrieb:
>>...Die Bibliothek ist unter der GPL, kann somit von jedem und in allen
>>Projekten, auch kommerziellen, verwendet werden....
> Möglicherweise hällt das nicht nur mich davon ab, die Bibliothek zu
> verwenden. Weitergabe des gesamten Firmware-Quellcodes an alle
> (End-)Anwender eines Gerätes ist insbes. bei kommerziellen Entwicklungen
> oft keine Option.

Du musst nur den Quellcode weitergeben, den du nicht selbergeschrieben 
hast. hast du jetzt als ein Messgerät entwickelt, welches hochgeheime 
berechnungen durchführ aber die Display ansteuerung unter der GPL steht 
must du nur die Displayansteuerung freigeben. den Rest nicht.

Viele Grüße

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

@Christian K.
> Du musst nur den Quellcode weitergeben, den du nicht selbergeschrieben
> hast. hast du jetzt als ein Messgerät entwickelt, welches hochgeheime
> berechnungen durchführ aber die Display ansteuerung unter der GPL steht
> must du nur die Displayansteuerung freigeben. den Rest nicht.
Liest sich gut. Soweit ich die GPL verstanden habe, ist dies aber nur 
mit einer Zusatzklausel möglich. Zumindest war das Ergebnis einer 
Diskussion bezüglich einer Library mit ähnlichem Anwendungsfeld, an der 
ich etwas mitgebastelt hatte. War noch zu GPL2-Zeiten, es gab dann eine 
Zusatzklausel. Will oder muss man Elemente der Firmware - ob 
"hochgeheim" oder nicht - unveröffentlicht lassen, ist m.W. selbst die 
LGPL im "bare-metal"-Bereich keine brauchbare Option, da man dem 
Endanwender die Möglichkeit geben muss, die Firmware mit einer anderen 
evtl. moderneren Fassung des LGPL-Codes neu zusammenzubauen (linken). 
Das geht de facto nur mit Weitergabe zumindest von Teilen des 
Object-Codes der übrigen Anwendung. Der liefert "Spickern" mglw. schon 
genug Information.

@nicht "Gast" (Gast)
Klar zwingt mich niemand. Kann die Argumente auch nachvollziehen. 
Vorschlag habe ich nur gemacht, um damit mglw. die Zahl der potentiellen 
Anwender und damit der Firmwareentwickler, die mit dem Code arbeiten und 
Erweiterungen/Korrekturen - dann freiwillig - zurückgeben, zu erhöhen. 
In diesem Forum könnte aber sogar die Zahl derer höher sein, die sich 
aus Prinzip nur in Projekten unter GPL Lizenz einbringen möchten. Dann 
wäre mein Vorschlag nicht von Vorteil.


Wie auch immer, war nur ein Vorschlag. Ist vielleicht hier auch nicht 
die beste Stelle, um Lizenzfragen durchzukauen. Zumal der Code samt 
Lizenztext/-link bis dato ohnehin noch nicht zugänglich ist.

von Christian K. (programm-noob)


Lesenswert?

Martin Thomas schrieb:
> Wie auch immer, war nur ein Vorschlag. Ist vielleicht hier auch nicht
> die beste Stelle, um Lizenzfragen durchzukauen. Zumal der Code samt
> Lizenztext/-link bis dato ohnehin noch nicht zugänglich ist.

Ich habe bisher von Andreas noch keine Meldung erhalten wegen dem 
SVN-Repo. Sobalt ich da was weiß melde ich mich wieder.

von Fer T. (fer_t)


Lesenswert?

Kleine Anmerkung:
GPL ist echt nicht das Richtige, da es eine Bibliothek ist (Lib) wäre 
hier LGPL Angebracht, das ist die GPL Form für Libs.
Die besagt im Groben das selbe wie GPL, nur halt, dass das Endprogramm 
selber später auch eine andere Lizenz haben kann, aber falls Änderungen 
an der Lib gemacht werden, diese auch LGPL sein müssen.
Gruß,
fer_t

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ferdinand T. schrieb:
> GPL ist echt nicht das Richtige, da es eine Bibliothek ist (Lib) wäre
> hier LGPL Angebracht, das ist die GPL Form für Libs.
Falsch: http://www.gnu.org/licenses/why-not-lgpl.html (zumindes aus 
sicht der GNU/GPL)

> Die besagt im Groben das selbe wie GPL, nur halt, dass das Endprogramm
> selber später auch eine andere Lizenz haben kann, aber falls Änderungen
> an der Lib gemacht werden, diese auch LGPL sein müssen.
Nö, wurde doch schon gesagt! Sobald du eine (L)GPL Bibliothek statisch 
linken mußt fällt deine restliche Software ggf. komplett unter die 
(L)GPL:
http://www.gnu.org/licenses/lgpl.html
0(Definitions):
A “Combined Work” is a work produced by combining or linking an 
Application with the Library.
Weil du dem User die möglichkeit geben mußt das entstandene "Werk" mit 
einer neuen Version zu linken! (siehe 4. Combined Works)
Außerdem mußt du Informationen bereitstellen wie man das macht.

von Christian K. (programm-noob)


Lesenswert?

Ich habe auch nichts dagegen, wenn wir die Lib unter der LGPL 
veröffentlichen. Ode rhat jemand noch einen anderen Vorschlag?

Läubi .. schrieb:
> Außerdem mußt du Informationen bereitstellen wie man das macht.

Soll also heißen, man muss dem "dummen" Endanwender eine Anleitung 
mitlifern, wie man aus dem Quellcode der Lib und dem Rest der Firmware 
eine euie Firmware erstellt? Die nötige software auch oder reichts wenn 
man sagt du brauchst einen Compiler und einen Linker?

Unser Router basiert auch auf Linux und der Quellcode ist auf der Seite 
des Herstellers auch einfach nur zum Downlad verfügbar. Ne anleitung 
oder gar die nötigen tools lifern die nicht mit. das einzigste was noch 
mit drin ist sind dir MIPS-gcc sources doch die bringen einem ohne 
anleitung und Compiler gar nichts.

Andreas hat sich leider noch immer nicht gemeldet. Soll ich den Code, 
den ich schon hab einfach mal im Wiki hochladen?

Viele Grüße

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Christian K. schrieb:
> Soll also heißen, man muss dem "dummen" Endanwender eine Anleitung
> mitlifern, wie man aus dem Quellcode der Lib und dem Rest der Firmware
> eine euie Firmware erstellt?
Es muß möglich sein das damit zu machen. Vielleicht erfüllt ein Makefile 
schon diese Anforderung... kA. ggf. mal in obigem Link genauer 
nachlesen. Wegen solchen obskuren Anforderungen nehm ich von GPL Code 
generell abstand und LGPL nur wenn es nicht anders geht und der 
Ersteller explizit die Nutzung als "nur Libary" erlaubt.

> Unser Router basiert auch auf Linux und der Quellcode ist auf der Seite
> des Herstellers auch einfach nur zum Downlad verfügbar.
Wenn du den gesamten Quellcode veröffentlichst gilt obiges nicht. Das 
bezieht sich nur auf die Möglichkeit eine (neuere/alternative) Version 
der Lib zu linken (LGPL) bei GPL musst du eh alles offen machen!
(Was einem aus nix bringt in gewissen Fällen wie du schon festgestellt 
hast)

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Christian K. schrieb:
>...
>Ode rhat jemand noch einen anderen Vorschlag?
>...
Hatte ich oben schon etwas zu geschrieben. Nochmal mit Links:

BSD-Lizenz in d. Version mit drei Klauseln("3BSD"): Fast keine 
Einschränkungen bezüglich Verwendung des Codes. Siehe 
http://de.wikipedia.org/wiki/BSD-Lizenz 
(http://www.opensource.org/licenses/bsd-license.php)

GPL mit Ausnahmeklausel: siehe z.B. http://www.freertos.org -> About 
FreeRTOS -> Licensing, http://ecos.sourceware.org/license-overview.html 
u.a.

von Fer T. (fer_t)


Lesenswert?

Zur Klarstellung:

>Die LGPL setzt ähnlich wie die GPL die Idee des Copyleft ein, um die Freiheit 
>der lizenzierten Software zu schützen.
>Damit sind die Freiheiten gemeint,
>
>    * die Software für einen beliebigen Zweck zu nutzen,
>    * die Software vervielfältigen und weitergeben zu dürfen,
>    * die Software nach eigenen Bedürfnissen zu ändern und
>    * die geänderten Versionen weiterzugeben.


Und zu proprietären Programm Änderungen:

>Im Gegensatz zur GPL dürfen alle Programme, welche die LGPL-lizenzierte Software 
>nur extern benutzen, zum Beispiel als Programmbibliothek, ihre eigene Lizenz 
>behalten.
>Damit eignet sich die LGPL besonders als Lizenz für Bibliotheken, deren 
>Benutzung man auch Programmierern proprietärer Programme erlauben will.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ja aber eine "Biliothek" meint hier eine dynamische/shared Lib oder 
das man den Objektcode+ Anleitung bereitstellt damit sich derjenige das 
"neu linken kann". Und bei einem uC hast du fast immer statisches Linken 
mit einem resultierendem Binärfile was nicht so einfach "neu" gelinkt 
werden kann ohne das Orginal. Die LGPLv2 fordert sogar (wenn man es ganz 
streng auslegt) das das Programm ohne die Bibliothek lauffähig ist!

von Christian K. (programm-noob)


Lesenswert?

Also wenn ich jetzt Wikipedia richtig verstehe ist das hier die normale 
BSD lizenz:
------------------------------------------------------------------------ 
--
Copyright (c) 1982, 1986, 1990, 1991, 1993.

Der Verwaltungsrat der Universität Kalifornien. Alle Rechte vorbehalten.

Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter 
Form, mit oder ohne Veränderung, sind unter den folgenden Bedingungen 
zulässig:

   1. Weiterverbreitete nichtkompilierte Exemplare müssen das obige 
Copyright, diese Liste der Bedingungen und den folgenden 
Haftungsausschluss im Quelltext enthalten.
   2. Weiterverbreitete kompilierte Exemplare müssen das obige 
Copyright, diese Liste der Bedingungen und den folgenden 
Haftungsausschluss in der Dokumentation und/oder anderen Materialien, 
die mit dem Exemplar verbreitet werden, enthalten.
   3. Alle Werbematerialien, die Eigenschaften oder die Benutzung 
erwähnen, müssen die folgende Bemerkung enthalten: „Dieses Produkt 
enthält Software, die von der University of California, Berkeley und 
Beitragsleistenden entwickelt wurde.“
   4. Weder der Name der Universität noch die Namen der 
Beitragsleistenden dürfen zum Kennzeichnen oder Bewerben von Produkten, 
die von dieser Software abgeleitet wurden, ohne spezielle vorherige 
schriftliche Genehmigung verwendet werden.

DIESE SOFTWARE WIRD VOM VERWALTUNGSRAT UND DEN BEITRAGSLEISTENDEN OHNE 
JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÜGUNG GESTELLT, 
DIE UNTER ANDEREM EINSCHLIESSEN: DIE IMPLIZIERTE GARANTIE DER 
VERWENDBARKEIT DER SOFTWARE FÜR EINEN BESTIMMTEN ZWECK. AUF KEINEN FALL 
SIND DIE VERWALTUNGSRÄTE ODER DIE BEITRAGSLEISTENDEN FÜR IRGENDWELCHE 
DIREKTEN, INDIREKTEN, ZUFÄLLIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER 
FOLGESCHÄDEN (UNTER ANDEREM VERSCHAFFEN VON ERSATZGÜTERN ODER 
-DIENSTLEISTUNGEN; EINSCHRÄNKUNG DER NUTZUNGSFÄHIGKEIT; VERLUST VON 
NUTZUNGSFÄHIGKEIT; DATEN; PROFIT ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH 
IMMER VERURSACHT UND UNTER WELCHER VERPFLICHTUNG AUCH IMMER, OB IN 
VERTRAG, STRIKTER VERPFLICHTUNG ODER UNERLAUBTER HANDLUNG (INKLUSIVE 
FAHRLÄSSIGKEIT) VERANTWORTLICH, AUF WELCHEM WEG SIE AUCH IMMER DURCH DIE 
BENUTZUNG DIESER SOFTWARE ENTSTANDEN SIND, SOGAR, WENN SIE AUF DIE 
MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WORDEN SIND.
------------------------------------------------------------------------ 
--

und das hier die 3 Klausel BSD Lizenz:
------------------------------------------------------------------------ 
--
Copyright (c) 1982, 1986, 1990, 1991, 1993.

Der Verwaltungsrat der Universität Kalifornien. Alle Rechte vorbehalten.

Weiterverbreitung und Verwendung in nichtkompilierter oder kompilierter 
Form, mit oder ohne Veränderung, sind unter den folgenden Bedingungen 
zulässig:

   1. Weiterverbreitete nichtkompilierte Exemplare müssen das obige 
Copyright, diese Liste der Bedingungen und den folgenden 
Haftungsausschluss im Quelltext enthalten.
   2. Weiterverbreitete kompilierte Exemplare müssen das obige 
Copyright, diese Liste der Bedingungen und den folgenden 
Haftungsausschluss in der Dokumentation und/oder anderen Materialien, 
die mit dem Exemplar verbreitet werden, enthalten.
   4. Weder der Name der Universität noch die Namen der 
Beitragsleistenden dürfen zum Kennzeichnen oder Bewerben von Produkten, 
die von dieser Software abgeleitet wurden, ohne spezielle vorherige 
schriftliche Genehmigung verwendet werden.

DIESE SOFTWARE WIRD VOM VERWALTUNGSRAT UND DEN BEITRAGSLEISTENDEN OHNE 
JEGLICHE SPEZIELLE ODER IMPLIZIERTE GARANTIEN ZUR VERFÜGUNG GESTELLT, 
DIE UNTER ANDEREM EINSCHLIESSEN: DIE IMPLIZIERTE GARANTIE DER 
VERWENDBARKEIT DER SOFTWARE FÜR EINEN BESTIMMTEN ZWECK. AUF KEINEN FALL 
SIND DIE VERWALTUNGSRÄTE ODER DIE BEITRAGSLEISTENDEN FÜR IRGENDWELCHE 
DIREKTEN, INDIREKTEN, ZUFÄLLIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER 
FOLGESCHÄDEN (UNTER ANDEREM VERSCHAFFEN VON ERSATZGÜTERN ODER 
-DIENSTLEISTUNGEN; EINSCHRÄNKUNG DER NUTZUNGSFÄHIGKEIT; VERLUST VON 
NUTZUNGSFÄHIGKEIT; DATEN; PROFIT ODER GESCHÄFTSUNTERBRECHUNG), WIE AUCH 
IMMER VERURSACHT UND UNTER WELCHER VERPFLICHTUNG AUCH IMMER, OB IN 
VERTRAG, STRIKTER VERPFLICHTUNG ODER UNERLAUBTER HANDLUNG (INKLUSIVE 
FAHRLÄSSIGKEIT) VERANTWORTLICH, AUF WELCHEM WEG SIE AUCH IMMER DURCH DIE 
BENUTZUNG DIESER SOFTWARE ENTSTANDEN SIND, SOGAR, WENN SIE AUF DIE 
MÖGLICHKEIT EINES SOLCHEN SCHADENS HINGEWIESEN WORDEN SIND.
------------------------------------------------------------------------ 
--
Stimmt das so? wenn ja habe ich gegen die 3 Klausel BSD Lizenz nicht 
einzuwenden, wobei die ja laut Wikipeda auch zu GPL kompatibel ist.

Alles in allem ist es mir egal unter welcher Lizenz das ganze 
veröffentlicht werden soll, solange man es auch im komerziellen 
Projekten uneingeschrenkt nutzen darf und nicht den ganzen Quellcode 
veröffentlichen muss.

Was macht Andreas eigentlich noch so alles nebenher. Ich habe gestern 
abend bei ihm angefragt wegen einem SVN Repio und habe bisher noch 
nichts von ihm gehört.

Viele Grüße

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Christian K. schrieb:
> Ich wollt eigentlich nur eine Grafik Bibliothek für ARM und AVR
> schreiben.

Gut.

> bin jetzt aber dazu gekommen auch so sachen wie SD/MMC und so
> weiter mit in die Bibloothek mit aufzunehem.

Vorsicht, wenn man sich zu viel vornimmt passiert oft folgendes:

> Das ganze Projekt wird doch etwas größer als ich gedacht
> habe, genauer gesagt zu Groß, das ich das alleine schaffen kann.

Das ist meistens ein Zeichen dafür dass man sich das Ganze noch mal gut 
überlegen sollte.

> Die Bibliothek ist unter der GPL, kann somit von jedem und in allen
> Projekten, auch kommerziellen, verwendet werden.

Welchen Vorteil bietet so eine Bibliothek, warum sollte sie jemand 
nutzen und dazu beitragen, statt die Komponenten selbst zu integrieren? 
Ist die API besonders durchdacht, sind die Komponenten besonders gut 
aufeinander abgestimmt, ist das ganze für Interaktion mit einem OS 
optimiert, willst du dich jahrelang zur Pflege und Aktualisierung des 
Gesamtpaketes verpflichten, ...?

Mein Tipp: veröffentliche deine Grafikbibliothek (MIT-Lizenz würde ich 
vorschlagen), wenn sie gut ist wird sie Nutzer und Helfer finden; 
veröffentliche deine MMC/SD-Bibliothek (wenn du meinst sie ist besser 
als FatFS etc.); aber versuche nicht die eierlegende Wollmilchsau zu 
erfinden. Ich habe schon genug Projekte hier im Forum miterlebt die 
daran gescheitert sind.

von Christian K. (programm-noob)


Lesenswert?

Andreas ich habe momentan viel zu tun, ich werde am Wochenende deine 
Fragen beantworten.


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