summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2023-07-28 18:50:26 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-08-03 15:11:11 +0100
commit6f361c81bae78f1c36faae3f01edce93cd8af957 (patch)
tree569afb58161c4a17caede61abf838acdabd34c2f /documentation/ref-manual
parente100e3e0b3f1968421cae59d4a8fb5ea2dfc38c3 (diff)
downloadpoky-6f361c81bae78f1c36faae3f01edce93cd8af957.tar.gz
ref-manual: document image-specific variant of INCOMPATIBLE_LICENSE
This has been around without being properly documented since 2019 (!!!), and is nowadays the preferred method for enforcing license restrictions, especially since meta-gplv2 is officially obsolete. (From yocto-docs rev: efa1c57ecec934998792b7851b4a162be92c8b23) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/ref-manual')
-rw-r--r--documentation/ref-manual/images.rst16
-rw-r--r--documentation/ref-manual/variables.rst13
2 files changed, 20 insertions, 9 deletions
diff --git a/documentation/ref-manual/images.rst b/documentation/ref-manual/images.rst
index d3aeb0829f..0f6d6bdb3f 100644
--- a/documentation/ref-manual/images.rst
+++ b/documentation/ref-manual/images.rst
@@ -14,15 +14,17 @@ image you want.
14 Building an image without GNU General Public License Version 3 14 Building an image without GNU General Public License Version 3
15 (GPLv3), GNU Lesser General Public License Version 3 (LGPLv3), and 15 (GPLv3), GNU Lesser General Public License Version 3 (LGPLv3), and
16 the GNU Affero General Public License Version 3 (AGPL-3.0) components 16 the GNU Affero General Public License Version 3 (AGPL-3.0) components
17 is only supported for minimal and base images. Furthermore, if you 17 is only tested for core-image-minimal image. Furthermore, if you would like to
18 are going to build an image using non-GPLv3 and similarly licensed 18 build an image and verify that it does not include GPLv3 and similarly licensed
19 components, you must make the following changes in the ``local.conf`` 19 components, you must make the following changes in the image recipe
20 file before using the BitBake command to build the minimal or base 20 file before using the BitBake command to build the image:
21 image:
22 21
23 #. Comment out the :term:`EXTRA_IMAGE_FEATURES` line 22 INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*"
24 23
25 #. Set :term:`INCOMPATIBLE_LICENSE` to "GPL-3.0* LGPL-3.0* AGPL-3.0*" 24 Alternatively, you can adjust ``local.conf`` file, repeating and adjusting the line
25 for all images where the license restriction must apply:
26
27 INCOMPATIBLE_LICENSE:pn-your-image-name = "GPL-3.0* LGPL-3.0*"
26 28
27From within the ``poky`` Git repository, you can use the following 29From within the ``poky`` Git repository, you can use the following
28command to display the list of directories within the :term:`Source Directory` 30command to display the list of directories within the :term:`Source Directory`
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index def98de307..44e2dd08a8 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -3929,9 +3929,18 @@ system and gives an overview of their function and contents.
3929 :term:`INCOMPATIBLE_LICENSE` 3929 :term:`INCOMPATIBLE_LICENSE`
3930 Specifies a space-separated list of license names (as they would 3930 Specifies a space-separated list of license names (as they would
3931 appear in :term:`LICENSE`) that should be excluded 3931 appear in :term:`LICENSE`) that should be excluded
3932 from the build. Recipes that provide no alternatives to listed 3932 from the build (if set globally), or from an image (if set locally
3933 in an image recipe).
3934
3935 When the variable is set globally, recipes that provide no alternatives to listed
3933 incompatible licenses are not built. Packages that are individually 3936 incompatible licenses are not built. Packages that are individually
3934 licensed with the specified incompatible licenses will be deleted. 3937 licensed with the specified incompatible licenses will be deleted.
3938 Most of the time this does not allow a feasible build (because it becomes impossible
3939 to satisfy build time dependencies), so the recommended way to
3940 implement license restrictions is to set the variable in specific
3941 image recipes where the restrictions must apply. That way there
3942 are no build time restrictions, but the license check is still
3943 performed when the image's filesystem is assembled from packages.
3935 3944
3936 There is some support for wildcards in this variable's value, 3945 There is some support for wildcards in this variable's value,
3937 however it is restricted to specific licenses. Currently only 3946 however it is restricted to specific licenses. Currently only