Device license changes (#596)

See https://github.com/TactilityProject/Tactility/pull/596 for author consent.
This commit is contained in:
Ken Van Hoeylandt
2026-07-30 17:19:11 +02:00
committed by GitHub
parent 1cb661469d
commit 606b918f9c
60 changed files with 9793 additions and 23 deletions
+35 -5
View File
@@ -17,21 +17,51 @@ The intentions behind picking the licenses for the subprojects:
2. It should be possible to make closed source external applications using TactilitySDK and the libraries it includes (it must exclude software with a GPL license).
3. It should be possible to make closed source forks that only contain TactilityKernel, the platform implementations (`Platforms/*`) and most of the device and driver implementations. As few as possible driver and device combinations should prevent this.
## License texts
The license texts that are relevant to this document:
- [Apache License v2.0](Documentation/LICENSE-Apache-2.0.md).
- [GPL v3.0](Documentation/LICENSE-GPL-3.0.md).
## Summary
**IMPORTANT:** Make sure you double-check the license(s) of each subproject if you intend to make a derived project that is not offered with a GPL license.
**IMPORTANT:** This document may have inaccuracies. It mainly exists to create awareness about license differences.
The top-level projects `Firmware/` and `Tactility/` are licensed under [GPL v3.0](Documentation/LICENSE-GPL-3.0.md).
The top-level projects `Firmware/` and `Tactility/` are licensed under `GPL v3.0`.
Most drivers have an [Apache License v2.0](Documentation/LICENSE-Apache-2.0.md), but exceptions such as `Drivers/gps-meshtastic-module/` exist.
Most devices are licensed with `Apache License v2.0` while some are implemented as `GPL v3.0` until author consent is given to change the license.
New device implementations should be licensed under `Apache License v2.0`.
Most drivers have an `Apache License v2.0`, with exceptions such as `Drivers/gps-generic-module/`.
Licensing may also differ for subprojects intended for use in external applications.
All projects under `Modules/` have an Apache license.
Driver subprojects aren't generally used directly in external app projects, but if they are, make sure to check their licenses.
All projects under `Modules/` have an `Apache License v2.0`.
## GPL v3.0 to Apache License v2.0
Some code has changed license from GPL to Apache due to one or more of:
### 1. Consent of Authors
Consent of all authors involved in a specific subproject.
This consent is confirmed in writing (e.g. [here](https://github.com/TactilityProject/Tactility/pull/596)).
### 2. Rewriting the code entirely
Some projects were rewritten entirely. Some examples:
- Drivers that were written for the `Tactility/` subproject (C++ interface, GPL) and were rewritten from scratch based on `TactilityKernel/` (C interface, Apache)
- Device subprojects were rewritten from a purely code-focused configuration project to an empty module declaration (can't really copyright this) and a DTS file.
## Overview
Below is an overview of the licenses of some of the subprojects.
| Project | License |
|--------------------|-------------------------|
| Tactility | GNU Public License v3.0 |
@@ -39,7 +69,7 @@ All projects under `Modules/` have an Apache license.
| TactilityFreeRTOS | Apache License v2.0 |
| TactilityKernel | Apache License v2.0 |
| Tests | (varies) |
| Devices/* | GNU Public License v3.0 |
| Devices/* | (varies) |
| Drivers/* | (varies) |
| Modules/* | Apache License v2.0 |
| DevicetreeCompiler | Apache License v2.0 |
@@ -72,4 +102,4 @@ Third-party licenses and copyrights are listed in [THIRD-PARTY-NOTICES.md](THIRD
## FAQ
- Q: Can I build closed source applications?
- A: If the applications were built with the Tactility SDK, then they can have a proprietary license. Applications inside the Tactility firmware can't be released with a proprietary license.
- A: If the applications were built with the Tactility SDK, then they can have a proprietary license. Applications inside the Tactility firmware can't be released with a proprietary license.