diff options
| author | Warner Losh <imp@FreeBSD.org> | 2026-06-26 17:12:02 +0000 |
|---|---|---|
| committer | Warner Losh <imp@FreeBSD.org> | 2026-06-26 17:12:08 +0000 |
| commit | 6bd5860091a3eb263d7d907bcca474b255100ea3 (patch) | |
| tree | f53eb8906de709b70a384fc7ba2a3c75f7eb5a4e /documentation | |
| parent | 072353ccfc5ddb7e794d7633d44a585b32e4e175 (diff) | |
Diffstat (limited to 'documentation')
3 files changed, 56 insertions, 28 deletions
diff --git a/documentation/content/en/articles/committers-guide/_index.adoc b/documentation/content/en/articles/committers-guide/_index.adoc index 503fc7448c..45350e0ba2 100644 --- a/documentation/content/en/articles/committers-guide/_index.adoc +++ b/documentation/content/en/articles/committers-guide/_index.adoc @@ -2803,12 +2803,13 @@ Relnotes: yes [[pref-license]] == Preferred License for New Files -The FreeBSD Project's full license policy can be found at link:https://www.FreeBSD.org/internal/software-license/[https://www.FreeBSD.org/internal/software-license]. +The FreeBSD Project's full license policy is documented in the extref:{license-guide}[FreeBSD License Policies] article. The rest of this section is intended to help you get started. As a rule, when in doubt, ask. It is much easier to give advice than to fix the source tree. -The FreeBSD Project suggests and uses this text as the preferred license scheme: +SPDX-only license marking is strongly preferred. +The FreeBSD Project uses this text as the preferred license: [.programlisting] .... @@ -2816,18 +2817,16 @@ The FreeBSD Project suggests and uses this text as the preferred license scheme: * Copyright (c) [year] [your name] * * SPDX-License-Identifier: BSD-2-Clause - * */ .... -The FreeBSD project strongly discourages the so-called "advertising clause" in new code. -Due to the large number of contributors to the FreeBSD project, complying with this clause for many commercial vendors has become difficult. -If you have code in the tree with the advertising clause, please consider removing it. -In fact, please consider using the above license for your code. +The preferred order is the copyright notice first, followed by the SPDX-License-Identifier, but either order is acceptable. +New contributions to FreeBSD should use the BSD-2-Clause license. +The FreeBSD project does not allow the "advertising clause" in new code. +If you have code in the tree with the advertising clause, please consider switching to a license without it. The FreeBSD project discourages completely new licenses and variations on the standard licenses. -New licenses require the approval of {core-email} to reside in the `src` repository. -The more different licenses that are used in the tree, the more problems that this causes to those wishing to utilize this code, typically from unintended consequences from a poorly worded license. +New licenses require the approval of {core-email}. Project policy dictates that code under some non-BSD licenses must be placed only in specific sections of the repository, and in some cases, compilation must be conditional or even disabled by default. For example, the GENERIC kernel must be compiled under only licenses identical to or substantially similar to the BSD license. @@ -2865,16 +2864,11 @@ Access to data within the license archive will be available on request to the {c == SPDX Tags in the tree The project uses https://spdx.dev[SPDX] tags in our source base. -At present, these tags are indented to help automated tools reconstruct license requirements mechanically. -All _SPDX-License-Identifier_ tags in the tree should be considered to be informative. -All files in the FreeBSD source tree with these tags also have a copy of the license which governs use of that file. -In the event of a discrepancy, the verbatim license is controlling. -The project tries to follow the https://spdx.github.io/spdx-spec/v2.2.2/[SPDX Specification, Version 2.2]. -How to mark source files and valid algebraic expressions are found in https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/[Annex D] and https://spdx.github.io/spdx-spec/v2.2.2/using-SPDX-short-identifiers-in-source-files/[Annex E]. -The project draws identifiers from SPDX's list of valid https://spdx.org/licenses/[short license identifiers]. -The project uses only the _SPDX-License-Identifier_ tag. - -As of March 2021, approximately 25,000 out of 90,000 files in the tree have been marked. +SPDX-only license marking (without reproducing the full license text) is strongly preferred for new files. +When a file contains only a copyright notice and an SPDX-License-Identifier tag, the SPDX tag specifies the license for that file. +When a file contains both an SPDX-License-Identifier tag and the full verbatim license text, the SPDX tag is informative and the verbatim license is controlling in the event of a discrepancy. +The project draws identifiers from SPDX's list of valid https://spdx.org/licenses/[short license identifiers] and uses only the _SPDX-License-Identifier_ tag. +See the extref:{license-guide}[FreeBSD License Policies] article for the full specification of how SPDX expressions are used in the FreeBSD software collection. [[developer.relations]] == Developer Relations diff --git a/documentation/content/en/articles/contributing/_index.adoc b/documentation/content/en/articles/contributing/_index.adoc index e9d8475e75..85e398d4f5 100644 --- a/documentation/content/en/articles/contributing/_index.adoc +++ b/documentation/content/en/articles/contributing/_index.adoc @@ -270,7 +270,7 @@ If you do not have access to a web or FTP site, ask on an appropriate FreeBSD ma When working with large amounts of code, the touchy subject of copyrights also invariably comes up. FreeBSD prefers free software licenses such as BSD or ISC. Copyleft licenses such as GPLv2 are sometimes permitted. -The complete listing can be found on the link:https://www.FreeBSD.org/internal/software-license/[core team licensing policy] page. +The complete listing can be found in the extref:{license-guide}[FreeBSD License Policies] article. === Money or Hardware diff --git a/documentation/content/en/articles/license-guide/_index.adoc b/documentation/content/en/articles/license-guide/_index.adoc index 446af844c7..a5d12f5945 100644 --- a/documentation/content/en/articles/license-guide/_index.adoc +++ b/documentation/content/en/articles/license-guide/_index.adoc @@ -41,13 +41,17 @@ toc::[] [[intro]] +This policy applies to the FreeBSD source repository (src). +The ports and documentation repositories have their own licensing guidelines. + [[pref-license]] == Preferred License for New Files The rest of this section is intended to help you get started. As a rule, when in doubt, ask. -It is much easier to receive advice than to fix the source tree. +It is much easier to receive advice than to fix the source repository. The FreeBSD Project makes use of both explicit licenses (where the verbatim text of the license is reproduced in each file) and detached licenses (where a tag in the file specifies the license, as described in this document). +SPDX-only license marking (without reproducing the full license text) is preferred. The FreeBSD Project uses this text as the preferred license: @@ -60,6 +64,10 @@ The FreeBSD Project uses this text as the preferred license: */ .... +The preferred order is the copyright notice first, followed by the SPDX-License-Identifier, but either order is acceptable. +When both SPDX-License-Idnetifier and the full text of the license are present, the full takes takes priority and the SPDX-License-Identifier is informational only. +When both are present, the SPDX-License-Identifier will often preceed the copyright and license text. + The FreeBSD project does not allow using the "advertising clause" in new code. Due to the large number of contributors to the FreeBSD project, complying with this clause for many commercial vendors has become difficult. If you have code in the tree with the advertising clause, please consider switching to a license without it. @@ -106,39 +114,63 @@ Such would ease their more integral adoption into the FreeBSD operating system. === Policy +* The following are the SPDX-License-Identifiers that are considered BSD licenses for this policy +** BSD-1-Clause +** BSD-2-Clause +** BSD-2-Clause-first-lines +** BSD-3-Clause +** BSD-3-Clause-acpica +** BSD-3-Clause-flex +** BSD-3-Clause-LBNL +** BSD-3-Clause-Open-MPI +** BSD-3-Clause-Sun +** BSD-4.3RENO +** BSD-4.3TAHOE +** BSD-Source-beginning-file +** CMU-Mach +** ISC +** MIT +** MIT-CMU +** SSH-OpenSSH +** Vixie-Cron +** Zlib + * The import of new software licensed under any licenses other than the BSD license and BSD-Like Licenses (as defined below) requires the prior approval of the FreeBSD Core Team. Requests for import must include: ** A list of features or bug fixes that the new version or patches contain, along with evidence that our users need those features. PRs or references to mailing list discussions are ideal forms of evidence. ** This process should be used for all software imports, not just those that require Core Team review. -The mere existence of a new version does not justify an import of software to source or ports. +The mere existence of a new version does not justify an import of software to source. ** A list of FreeBSD branches that may be affected. Expansions of scope require a new request to and approval from the FreeBSD Core Team. -* The Apache License 2.0 is acceptable for use in some cases. +* The Apache License 2.0 (Apache-2.0) is acceptable for use in some cases. The Core Team must approve the import of new Apache License licensed components or the change of license of existing components to the Apache License. ** This license is approved for the following components: *** LLVM toolchain and (with LLVM Exceptions) runtime components. -* The BSD+Patent License is acceptable for use in some cases. +* The BSD+Patent License (BSD-2-Clause-Patent) is acceptable for use in some cases. The Core Team must approve the import of new BSD+Patent License licensed components or the change of license of existing components to the BSD+Patent License. ** This license is approved for the following components: *** EDK2 derived code related to UEFI functionality -* The Common Development and Distribution License (CDDL) is acceptable for use in some cases. +* The Common Development and Distribution License (CDDL-1.1) is acceptable for use in some cases. The Core Team must approve the import of new CDDL licensed components or the change of license of existing components to the CDDL. ** This license is approved for the following components: *** DTrace *** ZFS filesystem, including kernel support and userland utilities +* Initially, many items in the FreeBSD tree were marked with BSD-2-Clause-FreeBSD. +However, SPDX has obsoleted the license as a variant; and most files tagged with it should have been BSD-2-Clause since SPDX's license text was for something else. +Adding new files with this identifier is expressly prohibited. + +* The FreeBSD project discourages completely new licenses and variations on the standard licenses. + * Historically, the phrase 'All Rights Reserved.' was included in all copyright notices. All the BSD releases had it, to comply with the https://en.wikipedia.org/wiki/Buenos_Aires_Convention[Buenos Aires Convention of 1910] in the Americas. With the ratification of the https://en.wikipedia.org/wiki/Berne_Convention[Berne Convention] in 2000 by Nicaragua, the Buenos Aires Convention -- and the phrase -- became obsolete. As such, the FreeBSD project recommends that new code omit the phrase and encourages existing copyright holders to remove it. In 2018, the project updated its templates to remove it. -* Initially, many items in the FreeBSD tree were marked with BSD-2-Clause-FreeBSD. -However, SPDX has obsoleted the license as a variant; and the SPDX text of the obsolete tag differs enough from the standard FreeBSD license that it shouldn't be used. -A review of its current use is ongoing. ==== Acceptable licenses @@ -208,6 +240,8 @@ The FreeBSD Project currently does not make use of the `DEP5` files described in The FreeBSD Project has not marked all the files in the tree yet in accordance with this standard, as described later in this document. The FreeBSD Project has not yet included these files in its repositories since this policy is still evolving. +This section is a work in progress. + [[individual-files]] == Individual Files License |
