Skip to content

Commit 3c3a4ed

Browse files
authored
Merge pull request #3112 from fpistm/license
docs(license): clarify license scope and third-party attributions
2 parents b634d93 + ffef4fb commit 3c3a4ed

4 files changed

Lines changed: 121 additions & 6 deletions

File tree

‎License.md‎

Lines changed: 85 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,93 @@ This files includes licensing information for parts of this repository.
55
66
[LGPLv2.1](#lgplv21) is used for:
77

8-
* `cores/arduino/*.*` mainly contains modified files from Arduino.
8+
* `cores/arduino/*.*` mainly contains modified files from Arduino, except the
9+
files listed under [BSD 3-Clause License](#bsd-3-clause-license) and
10+
[MIT License](#mit-license)
11+
* `cores/arduino/stm32`
12+
* `cores/arduino/api` (own copy of the license in `cores/arduino/api/LICENSE`),
13+
except the files listed under [MIT License](#mit-license)
14+
* `libraries/EEPROM`, `libraries/IWatchdog`, `libraries/Keyboard`,
15+
`libraries/Mouse`, `libraries/Servo`, `libraries/SoftwareSerial`,
16+
`libraries/SPI`, `libraries/Wire` - except the files listed under
17+
[BSD 3-Clause License](#bsd-3-clause-license)
18+
* `libraries/USBDevice/src/USBSerial.cpp` and `libraries/USBDevice/inc/USBSerial.h`
919

1020
[BSD 3-Clause License](#bsd-3-clause-license) is used for:
1121

1222
* `system/Drivers/STM32*xx_HAL_Driver` folders include the STMicroelectronics HAL Drivers
1323
* `system/Middlewares/OpenAMP`
1424
* `libraries/VirtIO` - except virtio implementation (see [MIT License](#mit-license))
1525
* `libraries/SrcWrapper/inc/PinName*.h`
26+
* `cores/arduino/variant.h`, `cores/arduino/pins_arduino_analog.h` and
27+
`cores/arduino/pins_arduino_digital.h`
28+
* `libraries/EEPROM/src/utility/stm32_eeprom.*`
29+
* `libraries/Wire/src/utility/twi.*`
30+
* `libraries/USBDevice/src/cdc/cdc_queue.c` and `libraries/USBDevice/inc/cdc_queue.h`
31+
* `libraries/I3C`, `libraries/RGB_LED_TLC59731` and `libraries/SubGhz`
32+
* `libraries/SrcWrapper` - files with a BSD 3-Clause header, mainly
33+
`libraries/SrcWrapper/src/stm32` and `libraries/SrcWrapper/inc`
34+
* `variants` - files with a BSD 3-Clause header, such as `PeripheralPins.c`,
35+
`variant_generic.*` and `generic_clock.c`
1636

1737
[Ultimate Liberty License](#Ultimate-Liberty-License) is used for:
18-
* `system/Middlewares/STM32_USB_*_Library` folders
19-
* `libraries/USBDevice` (see header)
38+
* `system/Middlewares/ST/STM32_USB_*_Library` folders
39+
* `libraries/USBDevice` - files with a SLA0044 header, see the
40+
[restrictions](#ultimate-liberty-license) of this license
2041

2142
[Apache License](#apache-license) is used for:
2243
* `system/Drivers/CMSIS` folder includes the STMicroelectronics CMSIS device
23-
* `system/include/include/pinmap.h`
44+
* `libraries/SrcWrapper/inc/pinmap.h`
2445
* `libraries/SrcWrapper/src/stm32/pinmap.c`
2546
* `tools/platformio/platformio-build.py`
2647

27-
[MIT License](#mit-license)
28-
* `libraries/VirtIO/*/virtio*`
48+
[MIT License](#mit-license) is used for:
49+
* `libraries/VirtIO/*/virtio*` and `libraries/VirtIO/*/VirtIOSerial.*`
50+
* `libraries/SrcWrapper/*/HardwareTimer.*`
51+
* `libraries/SrcWrapper/src/new.cpp`
52+
* `cores/arduino/api/Udp.h` and `cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h`
2953

3054
> [!NOTE]
3155
> `system/STM32*xx/system_stm32*xx.c` uses same license than `system/Drivers/CMSIS`
3256
> `system/STM32*xx/stm32*xx_hal_conf_default.h` uses same license than `system/Drivers` subfolders
3357
58+
> [!NOTE]
59+
> Files under different licenses are separate files, each one keeps its own
60+
> license. Only the license of a file applies to that file: the LGPLv2.1 terms
61+
> do not extend to the files under other licenses and vice versa.
62+
> The Apache License 2.0 is compatible with LGPLv3 but not with LGPLv2.1 alone:
63+
> Apache licensed files must not be merged in an LGPLv2.1 licensed file.
64+
65+
> [!NOTE]
66+
> `system/Middlewares/OpenAMP/*/scripts/spelling.txt` is a data file used by the
67+
> OpenAMP development scripts, licensed under GPLv2 (see its header). It is not
68+
> part of the build of the core.
69+
70+
## Third-party components and attributions
71+
72+
The following files are not written by STMicroelectronics or by the
73+
STM32duino contributors. The copyright notice and the permission notice of their
74+
header must be retained:
75+
76+
| Files | Copyright | License |
77+
|-------|-----------|---------|
78+
| `libraries/SrcWrapper/src/new.cpp` | PJRC.COM, LLC (Teensyduino) | [MIT](#mit-license) |
79+
| `libraries/SrcWrapper/*/HardwareTimer.*` | Daniel Fekete (and STMicroelectronics) | [MIT](#mit-license) |
80+
| `libraries/VirtIO/*/virtio*`, `libraries/VirtIO/*/VirtIOSerial.*` | Bumsik Kim | [MIT](#mit-license) |
81+
| `cores/arduino/api/Udp.h` | Bjoern Hartmann | [MIT](#mit-license) |
82+
| `cores/arduino/api/deprecated-avr-comp/avr/pgmspace.h` | Arduino LLC (based on Paul Stoffregen's work) | [MIT](#mit-license) |
83+
| `cores/arduino/api` | Arduino LLC | [LGPLv2.1](#lgplv21) |
84+
| `system/Middlewares/OpenAMP/open-amp` | Mentor Graphics Corporation and contributors | [BSD 3-Clause License](#bsd-3-clause-license) |
85+
| `system/Middlewares/OpenAMP/libmetal` | Xilinx Inc. and contributors | [BSD 3-Clause License](#bsd-3-clause-license) |
86+
87+
The following components are not part of this repository, they are downloaded
88+
as Arduino tools packages (see `platform.txt`) and are licensed by Arm under the
89+
[Apache License](#apache-license):
90+
91+
* CMSIS (`CMSIS`)
92+
* CMSIS-DSP (`CMSIS_DSP`), also used by `libraries/CMSIS_DSP`
93+
* CMSIS-NN (`CMSIS_NN`)
94+
3495
-------------------------------------------------------------------------------
3596
## LGPLv2.1
3697
GNU LESSER GENERAL PUBLIC LICENSE
@@ -577,6 +638,24 @@ SLA0044, the "License"; You may not use this file except in compliance with
577638
the License. You may obtain a copy of the License at:
578639
http://www.st.com/SLA0044
579640

641+
> [!IMPORTANT]
642+
> SLA0044 is not an open source license. The full text is available in
643+
> `system/Middlewares/ST/STM32_USB_Device_Library/LICENSE.md`. Among others:
644+
>
645+
> * The software, including modifications and derivative works, must be used
646+
> and executed solely and exclusively on or in combination with a processing
647+
> unit device manufactured by or for STMicroelectronics.
648+
> * No use, reproduction or redistribution may be done in any manner that would
649+
> subject the software to any Open Source Terms (GPL, EPL, Apache, BSD, MIT
650+
> or any license requiring the distribution of the source code).
651+
> * The name of STMicroelectronics must not be used to endorse or promote
652+
> derived products without prior written permission.
653+
> * Redistribution and use outside the terms of the agreement is void.
654+
>
655+
> Redistributors must check these terms against their own distribution policy.
656+
> The files under this license are kept separate from the files under other
657+
> licenses of this repository.
658+
580659
-------------------------------------------------------------------------------
581660
## Apache License
582661
Apache License

‎libraries/I3C/src/I3C.cpp‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2026, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
113
#include "I3C.h"
214
#include <cstring>
315

‎libraries/I3C/src/I3C.h‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2026, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
113
#pragma once
214

315
#include "Arduino.h"

‎libraries/I3C/src/I3C_I2C.cpp‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2026, STMicroelectronics
4+
* All rights reserved.
5+
*
6+
* This software component is licensed by ST under BSD 3-Clause license,
7+
* the "License"; You may not use this file except in compliance with the
8+
* License. You may obtain a copy of the License at:
9+
* opensource.org/licenses/BSD-3-Clause
10+
*
11+
*******************************************************************************
12+
*/
113
#include "I3C.h"
214
#include <cstring>
315

0 commit comments

Comments
 (0)