no-OS license rules
no-OS is, by default, permissively licensed under BSD-3-Clause. Individual files may be under different terms, always stated in the file's own header. This page explains how licenses are declared and organized so that the license of any file is clear and, where possible, machine readable.
The top-level COPYING file is a short pointer to this default and to
this page. The license of any individual file is stated by its own SPDX
tag or header; that tag is authoritative.
Declaring a license in a source file
Every source file declares its license with an SPDX identifier in its header comment, in a form appropriate to the file type. For C sources and headers:
/* SPDX-License-Identifier: BSD-3-Clause */
For scripts and other #-comment files:
# SPDX-License-Identifier: BSD-3-Clause
The SPDX tag is authoritative for that file, and is required for new no-OS code because it is precise and machine parsable. Analog Devices' own no-OS sources carry this tag (usually alongside a copyright line) rather than the full BSD boilerplate.
The LICENSES/ directory
The full text of every license used by Analog Devices' own no-OS code is
collected under LICENSES/, one file per license, grouped by role:
LICENSES/preferred/BSD-3-Clause(the default and the only license for new no-OS code).LICENSES/permissive/Permissive licenses that are allowed but are not the default:
Apache-2.0andMIT(the latter used by some bundled libraries and vendor SDKs).LICENSES/proprietary/Non-permissive ADI vendor device-API licenses, each confined to its driver subtree (detailed below):
LicenseRef-ADI-API-License,LicenseRef-ADI-ADRV9025-SLA,LicenseRef-ADI-ADRV9001-SLAandLicenseRef-ADI-AD937X-Firmware-CTSLA.
Each license file begins with a Valid-License-Identifier: line (the
SPDX or repository-local LicenseRef- identifier), an optional
SPDX-URL: for standard licenses, a Usage-Guide: describing when
the license may be used, and the full License-Text:.
Repository-local LicenseRef- identifiers
Some licenses used by no-OS are not standard SPDX licenses, so they use REUSE-style repository-local identifiers:
LicenseRef-ADI-API-License— the ADI CTSLA vendor API license.LicenseRef-ADI-ADRV9025-SLA— the ADI "Software License Agreement"20180813-ADI-N3PT-CTSLAcarried by the ADRV9025 (madura) vendor API files; the same non-permissive ADI "API license" family. It expressly forbids subjecting the software to source-disclosure terms.LicenseRef-ADI-AD937X-Firmware-CTSLA— the ADI "Software License Agreement"20180301-AD937X-CTSLAcarried by the Talise (AD937x) ARM and stream firmware binaries underdrivers/rf-transceiver/talise/firmware; the same non-permissive ADI "API license" family. It covers firmware object code and expressly forbids subjecting the software to any "Excluded License" (source-disclosure terms).LicenseRef-ADI-ADRV9001-SLA— the ADI "Software License Agreement"20190814-APIGUIHDLFWNAV-CTSLAcarried by the ADRV9001 SDK (navassa) vendor API files underdrivers/rf-transceiver/navassa; the same non-permissive ADI "API license" family.
They are non-permissive and must not be used for new files.
Acceptable licenses for new contributions
New contributions must use the permissive BSD-3-Clause license. See
the "Licensing of contributions" section of Contributing to no-OS for the
full rule, including the single exception for vendor-supplied device APIs
that cannot be relicensed.
Bundled third-party libraries
Libraries bundled under libraries/ are third-party code. Each carries
its own LICENSE / COPYING file in its directory, which governs
that library; they are not re-described under LICENSES/. A library is
only built when a project selects it, and none is under the no-OS
BSD-3-Clause default.
Library |
License |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
FatFs (BSD-like) |
|
|
|
|
|
see its |
|
see their |