From ff118ede826a9ae45eb35025a5f7f612880fba01 Mon Sep 17 00:00:00 2001 From: Antonin Godard Date: Fri, 9 Jan 2026 10:32:59 +0100 Subject: [PATCH] contributor-guide/recipe-style-guide.rst: explain difference between layer and recipe license(s) Explain that the LICENSE set in a recipe does not apply to the recipe file itself, but to the underlying software. The license of the recipe file is the license provided in the layer itself. Give OpenEmbedded-Core as an example for this. Fixes [YOCTO #14410] (From yocto-docs rev: 6799b1be5d48f4bf5dcd0b16c2dbc2e297d4ecd9) Signed-off-by: Antonin Godard (cherry picked from commit b8a56b8b2e8c0417b2f7204f80c79b05d95e9ce4) Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- .../contributor-guide/recipe-style-guide.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/documentation/contributor-guide/recipe-style-guide.rst b/documentation/contributor-guide/recipe-style-guide.rst index 179c8daa77..737ec86ebe 100644 --- a/documentation/contributor-guide/recipe-style-guide.rst +++ b/documentation/contributor-guide/recipe-style-guide.rst @@ -221,6 +221,20 @@ Recipes need to define both the :term:`LICENSE` and ``meta/files/common-licenses/`` or the :term:`SPDXLICENSEMAP` flag names defined in ``meta/conf/licenses.conf``. + .. note:: + + Setting a :term:`LICENSE` in a recipe applies to the software to be built + by this recipe, not to the recipe file itself. The license of recipes, + configuration files and scripts should also be clearly specified, for + example via comments or via a license found in the :term:`layer` that + holds these files. These license files are usually found at the root of + the layer. Exceptions should be clearly stated in the layer README or + LICENSE file. + + For example, the :term:`OpenEmbedded-Core (OE-Core)` layer provides both + the GPL-2.0-only and MIT license files, and a "LICENSE" file to explain + how these two licenses are attributed to files found in the layer. + - :term:`LIC_FILES_CHKSUM`: The OpenEmbedded build system uses this variable to make sure the license text has not changed. If it has, the build produces an error and it affords you the chance to figure