Software Project Data Exchange SPDX(R)
SPDX is a set of standards for communicating the components, licenses, and copyrights associated with software. The open adoption permitted by the BSD license is one of FreeBSD's strongest points so it is convenient for the project to facilitate the use of tooling and standards that make our licensing information clearer.
There is an FAQ that provides a few additional details.
David Wheeler put together an SPDX tutorial.
If you want to programmatically access the license metadata – see the related article.
In terms of tools, there is a license grader that will scan source code and report how well the licenses are documented. It is relatively new, so it may have a few “rough edges”.
Another good resource is the mailing lists for SPDX. The Legal team is responsible for maintaining the license list and the license matching guidelines. The Technical team works on the spec and tooling. The mailing lists can be found in the pages for each of the teams.
Other projects are in early adoption stages and some seem happy replacing the license text with License tags. For FreeBSD that approach is not reasonable. Here are some guiding principles:
- The tags are only advisory and not a replacement for official licensing information.
- ID tags shall not be mandatory: we will not impose them on "contrib" software.
Since the tags can be compound (OR or AND), the tags should go before any copyright or license text. Ideally at the start of the first licensing comment. This differs a little from other projects where the tags are placed after the copyrights.
- It may be convenient to sort the licenses according to the restriction level imposed: in the OR case, the less restrictive license is dominant. Likely, for the AND case the most restrictive license is dominant.
The Preferred License committers guide now includes an SPDX License tag for new files.
Some years ago we did a license audit by using access to a tool kindly provided by Wind River.
- License tags are being adopted by stages: the first stage will include under a 4 Clause BSD License.
This page is Work In Progress, and a placeholder for useful information.