Software Licensing

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 <info@opennetworking.org>
# SPDX-License-Identifier: Apache-2.0

License Compatibility

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 Level Linking

Apache 2.0 licensed software can incorporate or link directly against code written using the following licenses. A few examples:

  • BSD with 2, 3 clauses

  • MIT

  • Most “Public Domain” licenses

See also the ASF 3rd Party License Policy for additional details.

Runtime Usage

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.

Dual Licensing

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.