Forum: Mikrocontroller und Digitale Elektronik STM32 Cube Lizenz GitHub


von STM32 User (Gast)


Lesenswert?

Hallo,

ich habe eine Frage zum STM32Fxxx_HAL_Driver, speziell der Cube HAL 
(nicht StdPeriph HAL). Wenn ich ein Open Source Projekt habe, welches 
nur die ST Cube HAL nutzt (keine 3rd Party Libs oder Middleware/RTOS), 
kann ich dieses Projekt inkl. dieser Libs auf GitHub der Öffentlichkeit 
zur Verfügung stellen?

Soweit ich die Lizenz verstanden habe, scheint das wohl kein Problem zu 
sein, solang man den ST Copyright Header in den Files belässt, in der 
Doku/ GitHub ReadMe die Verwendung dokumentiert und ST Marken und Namen 
nicht für Werbung/Promotion Zwecke nutzt....

Wie macht ihr das? Kann mir jemand gegenteiliges berichten oder meine 
Interpretation bestätigen?

Danke im Vorraus

Anbei ein typischer Lizenz Header von ST:
1
/**
2
  ******************************************************************************
3
  * @file    stm32f4xx_hal_tim.h
4
  * @author  MCD Application Team
5
  * @version V1.5.2
6
  * @date    22-September-2016
7
  * @brief   Header file of TIM HAL module.
8
  ******************************************************************************
9
  * @attention
10
  *
11
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
12
  *
13
  * Redistribution and use in source and binary forms, with or without modification,
14
  * are permitted provided that the following conditions are met:
15
  *   1. Redistributions of source code must retain the above copyright notice,
16
  *      this list of conditions and the following disclaimer.
17
  *   2. Redistributions in binary form must reproduce the above copyright notice,
18
  *      this list of conditions and the following disclaimer in the documentation
19
  *      and/or other materials provided with the distribution.
20
  *   3. Neither the name of STMicroelectronics nor the names of its contributors
21
  *      may be used to endorse or promote products derived from this software
22
  *      without specific prior written permission.
23
  *
24
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
  *
35
  ******************************************************************************
36
  */

von Stefan F. (Gast)


Lesenswert?

Solche Fragen würde ich direkt an die Firma ST Microelectronics richten.

von Oliver S. (oliverso)


Lesenswert?

Die nicht gestellte, aber eigentliche Frage ist, unter welcher Lizenz du 
dein Programm der Öffentlichkeit zur Verfügung stellen möchtest.

Oliver

von STM32 User (Gast)


Lesenswert?

Oliver S. schrieb:
> Die nicht gestellte, aber eigentliche Frage ist, unter welcher
> Lizenz du
> dein Programm der Öffentlichkeit zur Verfügung stellen möchtest.
>
> Oliver

Im Prinzip würde ich die BSD Lizenz nutzen, halt typische für Open 
Source Software.

Die ST Lizenz scheint ja der BSD Lizenz auch sehr sehr ähnlich zu sein. 
Ich weiß aber nicht genau, ob ich BSD verwenden darf wenn Teile des Code 
halt von ST kommen und die ST Lizenz benötigen?

Anbei mal zum Vergleich die BSD Lizenz:
1
Copyright (c) ... 
2
The Regents of the University of California. All rights reserved.
3
4
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6
2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
7
3.All advertising materials mentioning features or use of this software must display the following acknowledgement: “This product includes software developed by the University of California, Berkeley and its contributors.”
8
4.Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9
10
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

von Bernd K. (prof7bit)


Lesenswert?

STM32 User schrieb im Beitrag #4990092:
> *   2. Redistributions in binary form must reproduce the above
> copyright notice,
>   *      this list of conditions and the following disclaimer in the
> documentation
>   *      and/or other materials provided with the distribution.

Mindestens ebenso interessant finde ich die Frage was mit Geräten ist 
die man baut und vertreibt und in denen irgendwo ein Controller steckt 
in dessen Firmware Teile mit dieser Lizenz stecken (redistribution in 
binary form).

Das ist ja nicht nur bei ST der Fall sondern auch bei anderen hab ich 
diese Lizenz schon gesehen, zum Beispiel bei Freescale in deren 
Headerdateien steht Wort für Wort der identische Text wie bei ST, nur 
der Name der Firma ist ausgetauscht, da schreibt wohl einer beim andern 
ab ohne sich die geringsten Gedanken über den Sinn oder den praktischen 
Nutzen oder auch die Konsequenzen zu machen.

Genausogut könnte da wahrscheinlich stehen "Ene mene miste, es rappelt 
in der Kiste. Ene mene muh, und die Lizenz hast Du. Aber erwähn bloß 
nicht unseren Namen, wir wollen nichts mit Deinem Murks zu tun haben! 
Jedoch schreib unbedingt dazu daß da Hirnschmalz von uns drinsteckt, das 
soll jeder wissen!" und es hätte den selben Sinn oder Unsinn.

Ich hab mal bei Freescale angefragt was unter "binary distribution" zu 
verstehen ist, ob ich nun bei jedem verkauften Gerät einen Flyer 
beilegen muss mit dem obigen Copyright im Volltext, es kam keine 
Antwort, wahrscheinlich haben die das an dem Tag selber zum ersten Mal 
gelesen und waren genauso ratlos wie ich.

: Bearbeitet durch User
von STM32 User (Gast)


Lesenswert?

... Niemand eine Meinung zum Thema? Ignoriert ihr alle einfach das 
Lizenzthema?

von Noch einer (Gast)


Lesenswert?

> Redistribution ... are permitted ...

Du willst lediglich den Leuten, die dein Projekt selbst kompilieren, den 
Download erleichtern? So etwas sieht man doch öfters.

Warum sollte ST etwas dagegen haben? Die erlauben den Download von ihrem 
Server. Und die erlauben, dass du ihren Quellcode weiterverbreitest.

Du machst doch etwas, was im Interesse von ST liegt. Warum sollten die 
dich mit irgendwelchen juristischen Spitzfindigkeiten verklagen?

von Stefan F. (Gast)


Lesenswert?

Bevor ich etwas frei downloadbares kopiere und wiederum zum Download 
anbiete (oder verkaufe) bitte ich immer vorher den jeweiligen Copyright 
Inhaber um Erlaubnis. Diese wurde mir bisher immer problemlos erteilt.

Das ist mir persönlich so lieber, als komplizierte Lizenztext zu deuten, 
wozu ich mich nicht imstande fühle. Ich bin kein Rechtsanwalt.

Daher war meine erste Antwort:
> Solche Fragen würde ich direkt an die Firma ST Microelectronics richten.

von eagle user (Gast)


Lesenswert?

Noch einer schrieb:

> Warum sollte ST etwas dagegen haben? Die erlauben den Download von ihrem
> Server. Und die erlauben, dass du ihren Quellcode weiterverbreitest.

Da bin ich nicht so sicher. Wenn du die einzelne Datei 
stm32f4xx_hal_tim.h legal von ST bekommen hast, darfst du mit dieser 
Datei praktisch alles machen. Der Lizenztext dadrin ist doch original 
BSD.

Aber: Kannst du stm32f4xx_hal_tim.h einzeln runter laden? Ich habe sie 
nur in einem Cube Paket gefunden, das man nur gegen Anmeldung bekommt. 
Das Paket hat eine eigene, restriktivere Lizenz als die Datei. Das 
könnte heissen, dass man die Datei nicht legal bekommen kann.

> Du machst doch etwas, was im Interesse von ST liegt. Warum sollten die
> dich mit irgendwelchen juristischen Spitzfindigkeiten verklagen?

Weil es Juristen sind ;) Der Verkauf könnte auch ein Interesse daran 
haben, dass die Dateien nicht frei verteilt werden.

Die Register-Definitionen hab' ich aus den Reference und Programming 
Manuals abgetippt. Selbst getippte Header-Dateien müsste man auch 
verteilen dürfen, in den beiden Manuals von ST finde ich keinen 
Lizenztext, der das verbietet. Ganz im Gegensatz zu den ARM Manuals, 
selbst wenn man die irgendwo findet, darf man sie evt. nicht einmal 
lesen. Deshalb gibt es hier eine Datei, die so anfängt:
1
// undocumented.h -- nützliche Bits, die ARM und ST geheim halten
2
3
// aus den unendlichen Weiten des Internet...
4
5
/* Note: This was originally posted on 11th December 2009 at http://forums.arm.com

von Markus F. (mfro)


Lesenswert?

eagle user schrieb:
>> Du machst doch etwas, was im Interesse von ST liegt. Warum sollten die
>> dich mit irgendwelchen juristischen Spitzfindigkeiten verklagen?
>
> Weil es Juristen sind ;)

Weil's auch für den Fisch ein Unterschied ist, ob er noch frei 
rumschwimmt oder ob er den Haken schon verschluckt und bloß noch keiner 
dran gezogen hat.

von Stefan F. (Gast)


Lesenswert?

> Warum sollten die dich mit irgendwelchen juristischen
> Spitzfindigkeiten verklagen?

Weil Juristen nach solchen Gelegenheiten suchen, wenn sie nicht besseres 
zu tun haben.

Manche Firmen machen das auch, wenn sie in Geld-Not geraten. SCO war 
dafür mal ganz besonders bekannt.

Und auch Oracle legte die "freie" Lizenz von Sun's Java plötzlich ganz 
anders aus, nachdem man das Produkt gekauft hatte und bemerkte, dass es 
nur wenig Gewinn einbringt. Frage mal Google, welchen Streß die mit 
Android hatten (ich glaube das Thema ist immer noch nicht final 
gerklärt).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

STM32 User schrieb im Beitrag #4990164:
> Anbei mal zum Vergleich die BSD Lizenz:

Die Klausel 3 wurde von der UCB vor vielen Jahren ganz offiziell
gestrichen, auch rückwirkend für all ihren Code.

Insofern ist das, was STM da benutzt, die BSD-Lizenz, folglich
gibt es keinen Grund, warum du deinen Code nicht ebenfalls unter
einer solchen weitergeben können solltest.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> Ich hab mal bei Freescale angefragt was unter "binary distribution" zu
> verstehen ist, ob ich nun bei jedem verkauften Gerät einen Flyer
> beilegen muss mit dem obigen Copyright im Volltext

Das hängt davon ab, wie du deine „accompanying documentation“ dem
Kunden gibst.  Verlangt ja niemand, dass du sie ihm ausgedruckt in
die Hand drückst, und auf elektronische Weise ist es ja wohl simpel,
da einen Anhang mit „Rechtlichen Hinweisen“ oder dergleichen zu
machen.

Die BSD-Lizenz hat ja im Gegensatz zur GPL zumindest noch einen Umfang,
wo man sie auch problemlos (klein-)gedruckt mit beilegen kann, wenn man
will.

von Christopher J. (christopher_j23)


Lesenswert?

STM32 User schrieb im Beitrag #4990092:
> Soweit ich die Lizenz verstanden habe, scheint das wohl kein Problem zu
> sein, solang man den ST Copyright Header in den Files belässt, in der
> Doku/ GitHub ReadMe die Verwendung dokumentiert und ST Marken und Namen
> nicht für Werbung/Promotion Zwecke nutzt....

Würde ich auch so sehen, wobei du meiner Meinung nach in der Doku bzw. 
Readme keinen Lizenz-Text brauchst, weil der ja schon in den 
Source-Files drin steht.
Wenn du Binaries zum Download anbietest, dann pack da halt irgendwo noch 
so eine Readme/License/Copying-Datei mit dem Geschwurbel von ST dazu.

STM32 User schrieb im Beitrag #4990164:
> Die ST Lizenz scheint ja der BSD Lizenz auch sehr sehr ähnlich zu sein.
> Ich weiß aber nicht genau, ob ich BSD verwenden darf wenn Teile des Code
> halt von ST kommen und die ST Lizenz benötigen?

Das was ST da als Lizenztext reinschreibt sollte 1:1 der 3-clause-BSD 
entsprechen. Die von dir genannte "original" BSD-Lizenz ist dann die 
4-clause-BSD, die heute eigentlich so keiner mehr verwendet. Außerdem 
gibt es noch die 2-clause-BSD, bei der der 3. Punkt im Lizenztext von ST 
(bzw. der 3-clause-BSD) nicht existiert.

Sehr ähnlich zur BSD aber meiner Meinung nach viel einfacher und klarer 
wäre wohl die MIT/X11-Lizenz. Damit hätte sich dann auch der folgende 
Punkt erledigt weil dort anstatt "[...] must reproduce the above 
copyright notice [...]" nur "[...] permission notice shall be included 
[...]" steht.

Bernd K. schrieb:
> Ich hab mal bei Freescale angefragt was unter "binary distribution" zu
> verstehen ist, ob ich nun bei jedem verkauften Gerät einen Flyer
> beilegen muss mit dem obigen Copyright im Volltext, es kam keine
> Antwort, wahrscheinlich haben die das an dem Tag selber zum ersten Mal
> gelesen und waren genauso ratlos wie ich.

Das ist tatsächlich mal eine interessante Frage und es wundert mich 
überhaupt nicht, dass du darauf keine Antwort bekommen hast. Im 
Endeffekt wärst du wahrscheinlich auf der rechtlich sicheren Seite wenn 
du als Hersteller auf der Produktwebseite irgendwo in der hintersten 
Ecke diese Copyright-Geschichten platzierst und auf der 
Produktverpackung bzw. in der Bedienungsanleitung einen Link zur 
Webseite abdruckst. Im Endeffekt interessiert das aber doch keinen 
Mensch, da ja immer gilt "wo kein Kläger, da auch kein Richter" und 
warum sollte ST oder Freescale einen verklagen wollen und was wären dann 
die juristischen Konsequenzen? Das du nachträglich Flyer drucken musst? 
Das wäre PR-technisch schon fast auf United-Niveau.


eagle user schrieb:
> Weil es Juristen sind ;) Der Verkauf könnte auch ein Interesse daran
> haben, dass die Dateien nicht frei verteilt werden.

Ich glaube das der Anmeldezwang für Downloads von der ST-Webseite vor 
allem daher rührt, dass sie deine E-Mail-Adresse haben wollen um dich 
mit Werbung zuzuspammen.

eagle user schrieb:
> Aber: Kannst du stm32f4xx_hal_tim.h einzeln runter laden? Ich habe sie
> nur in einem Cube Paket gefunden, das man nur gegen Anmeldung bekommt.
> Das Paket hat eine eigene, restriktivere Lizenz als die Datei. Das
> könnte heissen, dass man die Datei nicht legal bekommen kann.

Man kann einen Großteil der CubeMX-Dateien z.B. auch von 
https://www.keil.com/dd2/pack/ bekommen. Natürlich muss man auch da erst 
wieder einem EULA zustimmen bevor man das runterladen kann aber das EULA 
ist in dem Fall von ARM und zielt eher darauf ab, das du auch ja deren 
MDK korrekt lizenziert hast.


Markus F. schrieb:
> Weil's auch für den Fisch ein Unterschied ist, ob er noch frei
> rumschwimmt oder ob er den Haken schon verschluckt und bloß noch keiner
> dran gezogen hat.

Das würde meiner Meinung nach aber eher auf den Lizenztext zutreffen, 
den sie vor der BSD-Lizenz verwendet hatten. Da war dann der Protest 
seitens der Kundschaft aber scheinbar zu groß, weshalb sie da 
nachgegeben haben.

Da stand nämlich so etwas drin wie "STMicroelectronics (“ST”) grants You 
a non-exclusive, worldwide, non-transferable (whether by assignment or 
otherwise unless expressly authorized by ST) non sub-licensable, 
revocable, royalty-free limited license of the Licensed Software to: 
[...]".

Insbesondere das "revocable" dürfte einem geschluckten Haken 
entsprechen.

von Dr. Sommer (Gast)


Lesenswert?

eagle user schrieb:
> Ganz im Gegensatz zu den ARM Manuals,
> selbst wenn man die irgendwo findet, darf man sie evt. nicht einmal
> lesen. Deshalb gibt es hier eine Datei, die so anfängt:
So ein Quatsch... Schau mal hier:

https://developer.arm.com/products/architecture/m-profile/docs/ddi0403/e/armv7-m-architecture-reference-manual

Kann man einfach so runter laden. Da steht nicht drin, dass man das 
nicht lesen darf. Da sind alle Register-Definitionen vom ARMv7M (d.h. 
Cortex-M3/4/7) & Adressen drin, da ist nix dran geheim. Oder kennst du 
noch irgendwelche Spezial-Register, zum Übertakten oder so?
In den ARM-eigenen Header-Dateien ist auch so eine BSD-artige Lizenz 
drin, kann man also genau wie die ST-Header relativ problemlos 
weitergeben.

von eagle user (Gast)


Lesenswert?

Dr. Sommer schrieb:

> So ein Quatsch... Schau mal hier:
>
> https://developer.arm.com/products/architecture/m-...

Ja, so ein Quatsch, warum finde ich das nicht? Ist das evt. ganz neu? 
Ich hab' ungefähr im Februar zum letzten Mal gesucht. Jedenfalls danke 
für den Link!

> Kann man einfach so runter laden.

Ja, jetzt auf einmal :(

> Da steht nicht drin, dass man das nicht lesen darf.

Na gut, lesen ist schon noch erlaubt, aber:
1
This ARM Architecture Reference Manual is protected by
2
copyright (...) No part of this ARM Architecture Reference Manual
3
may be reproduced in any form by any means without the express
4
prior written permission of ARM.

Wo ist die Grenze für 'in any form by any means'?
Copy&Paste in eine Header-Datei?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

eagle user schrieb:
> Copy&Paste in eine Header-Datei?

Solange es hinreichend kleine Teile sind, dürfte das durch ein
so genanntes Kleinzitat gemäß Urheberrechtsgesetz abgedeckt sein.

von Dr. Sommer (Gast)


Lesenswert?

eagle user schrieb:
> Ja, so ein Quatsch, warum finde ich das nicht? Ist das evt. ganz neu?
> Ich hab' ungefähr im Februar zum letzten Mal gesucht. Jedenfalls danke
> für den Link!
Nöö, das ist schon Jahre online. Die URL wurde allerdings letztens 
geändert (Restrukturierung der Website). Zugegebenermaßen ist nicht ganz 
offensichtlich wo das zu finden ist, aber das schreibe ich eher 
Inkompetenz als bösem Willen zu.
>
>> Kann man einfach so runter laden.
>
> Ja, jetzt auf einmal :(
Nene schon lange ;-)
>
>> Da steht nicht drin, dass man das nicht lesen darf.
>
> Na gut, lesen ist schon noch erlaubt, aber:This ARM Architecture
> Reference Manual is protected by
> copyright (...) No part of this ARM Architecture Reference Manual
> may be reproduced in any form by any means without the express
> prior written permission of ARM.
> Wo ist die Grenze für 'in any form by any means'?
> Copy&Paste in eine Header-Datei?
Wäre doch völlig Banane, wenn niemand ARM-Prozessoren programmieren 
dürfte weil das Kopieren von Register-Adressen verboten ist. Das kann 
ARM wohl kaum damit gemeint haben. Gesunder Menschenverstand darf 
manchmal auch angewendet werden...

von STM32 User (Gast)


Lesenswert?

Danke für das Feedback. Im groben habe ich das als Bestätigung meiner 
Thesen wahr genommen. Vielleicht werde ich ST mal zur Thematik befragen.

von Der Flatulenzgeplagte (Gast)


Lesenswert?

Die (konservative) Industrie faselt immer was von "Rechtssicherheit" und 
misstraut FOSS; besteht dann auf kommerziellen Lizenzen, Patente u. 
andere unproduktive Zeitfresser.

Threads wie dieser zeigen dass egal welcher Kategorie die einzelnen 
Lizenzen zuzuordnen sind, diese (und Patente, aber darum geht es hier 
nicht) so überflüssig sind wie ein Kropf.

Beim ganzen Stack der in diesem konkreten Fall reinspielenden 
Vereinbarungen (ARM, ST, Compiler, Libs, APIs, OS, ...) niemand weder 
Durchblick hat noch die Absicht des urspr. Vereinbarungsschreibers hat, 
geschweige denn was gestern/heute/morgen effektiv rechtskräftig ist und 
was er in seinem Projekt tun darf herausfinden kann.

Das musste nun mal auch von mir gesagt werden.  :-/

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.