diff options
| author | Michael Opdenacker <michael.opdenacker@bootlin.com> | 2023-07-31 19:54:16 +0200 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2023-08-02 04:47:13 -1000 |
| commit | fa7dd8ac75a98c04a4ca2cf90882c2b1c27b9679 (patch) | |
| tree | a31418409568265b8d0fabbeb37fd3f75b752185 | |
| parent | 96404a7c4c577fef4416d515fa3f4af96664ff65 (diff) | |
| download | poky-fa7dd8ac75a98c04a4ca2cf90882c2b1c27b9679.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: 4dfef81ac6164764c6541e39a9fef81d49227096)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
| -rw-r--r-- | documentation/ref-manual/images.rst | 16 | ||||
| -rw-r--r-- | documentation/ref-manual/variables.rst | 11 |
2 files changed, 19 insertions, 8 deletions
diff --git a/documentation/ref-manual/images.rst b/documentation/ref-manual/images.rst index 31fb567687..33e5b53d9f 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 | 1. Comment out the EXTRA_IMAGE_FEATURES line | 22 | INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*" |
| 24 | 2. Set INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0* AGPL-3.0*" | ||
| 25 | 23 | ||
| 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 | ||
| 27 | From within the ``poky`` Git repository, you can use the following | 29 | From within the ``poky`` Git repository, you can use the following |
| 28 | command to display the list of directories within the :term:`Source Directory` | 30 | command 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 9aab6e0709..88b27492c7 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst | |||
| @@ -3547,9 +3547,18 @@ system and gives an overview of their function and contents. | |||
| 3547 | :term:`INCOMPATIBLE_LICENSE` | 3547 | :term:`INCOMPATIBLE_LICENSE` |
| 3548 | Specifies a space-separated list of license names (as they would | 3548 | Specifies a space-separated list of license names (as they would |
| 3549 | appear in :term:`LICENSE`) that should be excluded | 3549 | appear in :term:`LICENSE`) that should be excluded |
| 3550 | from the build. Recipes that provide no alternatives to listed | 3550 | from the build (if set globally), or from an image (if set locally |
| 3551 | in an image recipe). | ||
| 3552 | |||
| 3553 | When the variable is set globally, recipes that provide no alternatives to listed | ||
| 3551 | incompatible licenses are not built. Packages that are individually | 3554 | incompatible licenses are not built. Packages that are individually |
| 3552 | licensed with the specified incompatible licenses will be deleted. | 3555 | licensed with the specified incompatible licenses will be deleted. |
| 3556 | Most of the time this does not allow a feasible build (because it becomes impossible | ||
| 3557 | to satisfy build time dependencies), so the recommended way to | ||
| 3558 | implement license restrictions is to set the variable in specific | ||
| 3559 | image recipes where the restrictions must apply. That way there | ||
| 3560 | are no build time restrictions, but the license check is still | ||
| 3561 | performed when the image's filesystem is assembled from packages. | ||
| 3553 | 3562 | ||
| 3554 | There is some support for wildcards in this variable's value, | 3563 | There is some support for wildcards in this variable's value, |
| 3555 | however it is restricted to specific licenses. Currently only | 3564 | however it is restricted to specific licenses. Currently only |
