Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 0 additions & 157 deletions Documentation/LICENSE-LGPL-3.0.md

This file was deleted.

2 changes: 1 addition & 1 deletion Documentation/ideas.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Before release

- Add `// SPDX-License-Identifier: LGPL-3.0-only` and similar license mentions to individual files in the project
- Add `// SPDX-License-Identifier: GPL-3.0-only` and `// SPDX-License-Identifier: Apache-2.0` to individual files in the project
- Change ButtonControl to work with interrupts and xQueue
- TCA9534 keyboards should use interrupts
- GT911 drivers should use interrupts if it's stable
Expand Down
40 changes: 15 additions & 25 deletions LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,30 @@ These applications are not part of the Tactility operating system's main firmwar

"end-users" refers to people who install and/or use Tactility software on their devices.

## Licensing Intent

The main intention is to make sure forks of the operating system stay open source,
while external applications can have both open or closed source licenses.

TactilitySDK combines several subprojects and should not have source code with a GPL licenses inside.

## Past & Present

Formerly, there was a mixed usage of [GPL v3.0](Documentation/LICENSE-GPL-3.0.md) for internal subprojects
and [Apache License v2.0](Documentation/LICENSE-Apache-2.0.md) for subprojects that would be used in external apps.

For future subprojects, [LGPL v3.0](Documentation/LICENSE-LGPL-3.0.md) will be chosen for internal subprojects and
Apache License v2.0 will be chosen for header-only projects.
Existing GPL-licensed projects will retain this license, as it cannot be changed to LGPL.

The reason is that LGPL allows for logic in header files, but it comes with limitations (e.g. limit of 10 lines of code in headers).
If we write C++ wrappers for C libraries then we want them to be usable for building external apps, without such LGPL limitations.
For future subprojects, [Apache License v2.0](Documentation/LICENSE-Apache-2.0.md) will be chosen for internal subproject.
Existing GPL-licensed projects will retain this license, as it cannot be changed to a more permissive license.

## Overview

Below is an overview of the licenses of some of the subprojects.

| Project | License |
|--------------------|---------------------|
| Tactility | GPL v3.0 |
| TactilityCore | GPL v3.0 |
| TactilityC | Apache License v2.0 |
| TactilityFreeRTOS | Apache License v2.0 |
| TactilityKernel | LGPL v3.0 |
| Tests | GPL v3.0 |
| Devices/* | GPL v3.0 |
| Drivers/* | (varies) |
| DevicetreeCompiler | Apache License v2.0 |
| Project | License |
|--------------------|-------------------------|
| Tactility | GNU Public License v3.0 |
| TactilityCore | GNU Public License v3.0 |
| TactilityC | Apache License v2.0 |
| TactilityFreeRTOS | Apache License v2.0 |
| TactilityKernel | Apache License v2.0 |
| Tests | GNU Public License v3.0 |
| Devices/* | GNU Public License v3.0 |
| Drivers/* | (varies) |
| DevicetreeCompiler | Apache License v2.0 |
| Platforms/* | Apache License v2.0 |

Subprojects and directories in this project can contain license files.

Expand Down Expand Up @@ -69,4 +59,4 @@ Third-party licenses and copyrights are listed in [THIRD-PARTY-NOTICES.md](THIRD
## FAQ

- Q: Can I build closed source applications?
- A: Yes, external apps can be closed source. All subprojects with an Apache License or LGPL license can be used in this manner. If you fork the project and make an internal app, it must be redistributed under the GPL v3.0 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.
Loading
Loading