Software Licenses used by ONF
Most of ONF’s software is licensed under the Apache License, Version 2.0 (commonly referred to as Apache-2 or APL2).
REUSE License Tool
ONF uses the REUSE toolkit to verify that licenses are correctly applied to files within a code repository, as an automated step in the CI process.
REUSE replies on the Software Package Data Exchange (SPDX) license headers headers to be applied to every source code file in the system. These are put in a comment at the start of a file, similar to:
# SPDX-FileCopyrightText: 2022 Open Networking Foundation <firstname.lastname@example.org> # SPDX-License-Identifier: Apache-2.0
Software licensing is a complex task, and attention needs to be paid to how code is incorporated in ONF projects, or how binaries generated from that code are used.
If you would like to use external code in an ONF project that uses a license that is not mentioned as being acceptable in the lists below, please make an inquiry with the project development team before including that code.
Code with these kinds of licenses can be used at runtime, but can’t be directly linked to:
GPL and most other “Strong Copyleft” licenses
An example of this would be running an OS like Linux that is GPLv2 licensed as a part of an ONF project, it’s used but not modified or linked against.
Licenses to avoid
The following licenses have various issues related to additional requirements placed on it’s use that are problematic, or favor one party over others.
AGPL: This makes requirements on releasing modifications to services delivered over a network.
BSL: this is a timed license, which is proprietary for a period of time, then automatically relicensed as GPL2
SSPL (MongoDB, Elasticsearch, etc.): makes requirements upon business process and deployment code.
It may be advantageous to dual-license code - code that serves as an example or templates that a user would copy and modify. This also could include any code that is within documentation.
In cases such as this, it may be advantageous to place examples in the public domain, or with a less strict license such as MIT or BSD 2-Clause.
Contributor License Agreement
Contributing software to and ONF project requires agreeing to the Contributor Licensing Agreement, which gives ONF a copyright and patent grant to for all code contributions, and the right to sublicense the code in the future.