summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/classes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/classes.rst')
-rw-r--r--documentation/ref-manual/classes.rst611
1 files changed, 296 insertions, 315 deletions
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index fed3dcc066..7dba617db5 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -37,7 +37,7 @@ information.
37``allarch`` 37``allarch``
38=========== 38===========
39 39
40The :ref:`allarch <ref-classes-allarch>` class is inherited by recipes that do not produce 40The :ref:`ref-classes-allarch` class is inherited by recipes that do not produce
41architecture-specific output. The class disables functionality that is 41architecture-specific output. The class disables functionality that is
42normally needed for recipes that produce executable binaries (such as 42normally needed for recipes that produce executable binaries (such as
43building the cross-compiler and a C library as pre-requisites, and 43building the cross-compiler and a C library as pre-requisites, and
@@ -49,7 +49,7 @@ splitting out of debug symbols during packaging).
49 produce packages that depend on tunings through use of the 49 produce packages that depend on tunings through use of the
50 :term:`RDEPENDS` and 50 :term:`RDEPENDS` and
51 :term:`TUNE_PKGARCH` variables, should never be 51 :term:`TUNE_PKGARCH` variables, should never be
52 configured for all architectures using :ref:`allarch <ref-classes-allarch>`. This is the case 52 configured for all architectures using :ref:`ref-classes-allarch`. This is the case
53 even if the recipes do not produce architecture-specific output. 53 even if the recipes do not produce architecture-specific output.
54 54
55 Configuring such recipes for all architectures causes the 55 Configuring such recipes for all architectures causes the
@@ -58,22 +58,22 @@ splitting out of debug symbols during packaging).
58 Additionally, unnecessary rebuilds occur every time an image for a 58 Additionally, unnecessary rebuilds occur every time an image for a
59 different :term:`MACHINE` is built even when the recipe never changes. 59 different :term:`MACHINE` is built even when the recipe never changes.
60 60
61By default, all recipes inherit the :ref:`base <ref-classes-base>` and 61By default, all recipes inherit the :ref:`ref-classes-base` and
62:ref:`package <ref-classes-package>` classes, which enable 62:ref:`ref-classes-package` classes, which enable
63functionality needed for recipes that produce executable output. If your 63functionality needed for recipes that produce executable output. If your
64recipe, for example, only produces packages that contain configuration 64recipe, for example, only produces packages that contain configuration
65files, media files, or scripts (e.g. Python and Perl), then it should 65files, media files, or scripts (e.g. Python and Perl), then it should
66inherit the :ref:`allarch <ref-classes-allarch>` class. 66inherit the :ref:`ref-classes-allarch` class.
67 67
68.. _ref-classes-archiver: 68.. _ref-classes-archiver:
69 69
70``archiver`` 70``archiver``
71============ 71============
72 72
73The :ref:`archiver <ref-classes-archiver>` class supports releasing source code and other 73The :ref:`ref-classes-archiver` class supports releasing source code and other
74materials with the binaries. 74materials with the binaries.
75 75
76For more details on the source :ref:`archiver <ref-classes-archiver>`, see the 76For more details on the source :ref:`ref-classes-archiver`, see the
77":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`" 77":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
78section in the Yocto Project Development Tasks Manual. You can also see 78section in the Yocto Project Development Tasks Manual. You can also see
79the :term:`ARCHIVER_MODE` variable for information 79the :term:`ARCHIVER_MODE` variable for information
@@ -102,7 +102,7 @@ By default, the :ref:`autotools* <ref-classes-autotools>` classes use out-of-tre
102If the software being built by a recipe does not support using 102If the software being built by a recipe does not support using
103out-of-tree builds, you should have the recipe inherit the 103out-of-tree builds, you should have the recipe inherit the
104:ref:`autotools-brokensep <ref-classes-autotools>` class. The :ref:`autotools-brokensep <ref-classes-autotools>` class behaves 104:ref:`autotools-brokensep <ref-classes-autotools>` class. The :ref:`autotools-brokensep <ref-classes-autotools>` class behaves
105the same as the :ref:`autotools <ref-classes-autotools>` class but builds with :term:`B` 105the same as the :ref:`ref-classes-autotools` class but builds with :term:`B`
106== :term:`S`. This method is useful when out-of-tree build 106== :term:`S`. This method is useful when out-of-tree build
107support is either not present or is broken. 107support is either not present or is broken.
108 108
@@ -133,14 +133,13 @@ It's useful to have some idea of how the tasks defined by the
133``base`` 133``base``
134======== 134========
135 135
136The :ref:`base <ref-classes-base>` class is special in that every ``.bb`` file implicitly 136The :ref:`ref-classes-base` class is special in that every ``.bb`` file implicitly
137inherits the class. This class contains definitions for standard basic 137inherits the class. This class contains definitions for standard basic
138tasks such as fetching, unpacking, configuring (empty by default), 138tasks such as fetching, unpacking, configuring (empty by default),
139compiling (runs any ``Makefile`` present), installing (empty by default) 139compiling (runs any ``Makefile`` present), installing (empty by default)
140and packaging (empty by default). These classes are often overridden or 140and packaging (empty by default). These classes are often overridden or
141extended by other classes such as the 141extended by other classes such as the :ref:`ref-classes-autotools` class or the
142:ref:`autotools <ref-classes-autotools>` class or the 142:ref:`ref-classes-package` class.
143:ref:`package <ref-classes-package>` class.
144 143
145The class also contains some commonly used functions such as 144The class also contains some commonly used functions such as
146``oe_runmake``, which runs ``make`` with the arguments specified in 145``oe_runmake``, which runs ``make`` with the arguments specified in
@@ -160,7 +159,7 @@ software that includes bash-completion data.
160``bin_package`` 159``bin_package``
161=============== 160===============
162 161
163The :ref:`bin_package <ref-classes-bin-package>` class is a helper class for recipes that extract the 162The :ref:`ref-classes-bin-package` class is a helper class for recipes that extract the
164contents of a binary package (e.g. an RPM) and install those contents 163contents of a binary package (e.g. an RPM) and install those contents
165rather than building the binary from source. The binary package is 164rather than building the binary from source. The binary package is
166extracted and new packages in the configured output package format are 165extracted and new packages in the configured output package format are
@@ -187,7 +186,7 @@ example use for this class.
187``binconfig`` 186``binconfig``
188============= 187=============
189 188
190The :ref:`binconfig <ref-classes-binconfig>` class helps to correct paths in shell scripts. 189The :ref:`ref-classes-binconfig` class helps to correct paths in shell scripts.
191 190
192Before ``pkg-config`` had become widespread, libraries shipped shell 191Before ``pkg-config`` had become widespread, libraries shipped shell
193scripts to give information about the libraries and include paths needed 192scripts to give information about the libraries and include paths needed
@@ -207,7 +206,7 @@ information.
207``binconfig-disabled`` 206``binconfig-disabled``
208====================== 207======================
209 208
210An alternative version of the :ref:`binconfig <ref-classes-binconfig>` 209An alternative version of the :ref:`ref-classes-binconfig`
211class, which disables binary configuration scripts by making them return 210class, which disables binary configuration scripts by making them return
212an error in favor of using ``pkg-config`` to query the information. The 211an error in favor of using ``pkg-config`` to query the information. The
213scripts to be disabled should be specified using the :term:`BINCONFIG` 212scripts to be disabled should be specified using the :term:`BINCONFIG`
@@ -218,7 +217,7 @@ variable within the recipe inheriting the class.
218``buildhistory`` 217``buildhistory``
219================ 218================
220 219
221The :ref:`buildhistory <ref-classes-buildhistory>` class records a history of build output metadata, 220The :ref:`ref-classes-buildhistory` class records a history of build output metadata,
222which can be used to detect possible regressions as well as used for 221which can be used to detect possible regressions as well as used for
223analysis of the build output. For more information on using Build 222analysis of the build output. For more information on using Build
224History, see the 223History, see the
@@ -230,7 +229,7 @@ section in the Yocto Project Development Tasks Manual.
230``buildstats`` 229``buildstats``
231============== 230==============
232 231
233The :ref:`buildstats <ref-classes-buildstats>` class records performance statistics about each task 232The :ref:`ref-classes-buildstats` class records performance statistics about each task
234executed during the build (e.g. elapsed time, CPU usage, and I/O usage). 233executed during the build (e.g. elapsed time, CPU usage, and I/O usage).
235 234
236When you use this class, the output goes into the 235When you use this class, the output goes into the
@@ -244,7 +243,7 @@ Collecting build statistics is enabled by default through the
244:term:`USER_CLASSES` variable from your 243:term:`USER_CLASSES` variable from your
245``local.conf`` file. Consequently, you do not have to do anything to 244``local.conf`` file. Consequently, you do not have to do anything to
246enable the class. However, if you want to disable the class, simply 245enable the class. However, if you want to disable the class, simply
247remove ":ref:`buildstats <ref-classes-buildstats>`" from the :term:`USER_CLASSES` list. 246remove ":ref:`ref-classes-buildstats`" from the :term:`USER_CLASSES` list.
248 247
249.. _ref-classes-buildstats-summary: 248.. _ref-classes-buildstats-summary:
250 249
@@ -253,14 +252,14 @@ remove ":ref:`buildstats <ref-classes-buildstats>`" from the :term:`USER_CLASSES
253 252
254When inherited globally, prints statistics at the end of the build on 253When inherited globally, prints statistics at the end of the build on
255sstate re-use. In order to function, this class requires the 254sstate re-use. In order to function, this class requires the
256:ref:`buildstats <ref-classes-buildstats>` class be enabled. 255:ref:`ref-classes-buildstats` class be enabled.
257 256
258.. _ref-classes-ccache: 257.. _ref-classes-ccache:
259 258
260``ccache`` 259``ccache``
261========== 260==========
262 261
263The :ref:`ccache <ref-classes-ccache>` class enables the C/C++ Compiler Cache for the build. 262The :ref:`ref-classes-ccache` class enables the C/C++ Compiler Cache for the build.
264This class is used to give a minor performance boost during the build. 263This class is used to give a minor performance boost during the build.
265 264
266See https://ccache.samba.org/ for information on the C/C++ Compiler 265See https://ccache.samba.org/ for information on the C/C++ Compiler
@@ -277,9 +276,9 @@ this class is not recommended.
277``chrpath`` 276``chrpath``
278=========== 277===========
279 278
280The :ref:`chrpath <ref-classes-chrpath>` class is a wrapper around the "chrpath" utility, which 279The :ref:`ref-classes-chrpath` class is a wrapper around the "chrpath" utility, which
281is used during the build process for :ref:`nativesdk <ref-classes-nativesdk>`, :ref:`cross <ref-classes-cross>`, and 280is used during the build process for :ref:`ref-classes-nativesdk`, :ref:`ref-classes-cross`, and
282:ref:`cross-canadian <ref-classes-cross-canadian>` recipes to change ``RPATH`` records within binaries 281:ref:`ref-classes-cross-canadian` recipes to change ``RPATH`` records within binaries
283in order to make them relocatable. 282in order to make them relocatable.
284 283
285.. _ref-classes-cmake: 284.. _ref-classes-cmake:
@@ -287,7 +286,7 @@ in order to make them relocatable.
287``cmake`` 286``cmake``
288========= 287=========
289 288
290The ref:`cmake <ref-classes-cmake>` class allows for recipes that need to build software using 289The ref:`ref-classes-cmake` class allows for recipes that need to build software using
291the `CMake <https://cmake.org/overview/>`__ build system. You can use 290the `CMake <https://cmake.org/overview/>`__ build system. You can use
292the :term:`EXTRA_OECMAKE` variable to specify 291the :term:`EXTRA_OECMAKE` variable to specify
293additional configuration options to be passed using the ``cmake`` 292additional configuration options to be passed using the ``cmake``
@@ -304,7 +303,7 @@ Modules during
304``cml1`` 303``cml1``
305======== 304========
306 305
307The :ref:`cml1 <ref-classes-cml1>` class provides basic support for the Linux kernel style 306The :ref:`ref-classes-cml1` class provides basic support for the Linux kernel style
308build configuration system. 307build configuration system.
309 308
310.. _ref-classes-compress_doc: 309.. _ref-classes-compress_doc:
@@ -322,18 +321,18 @@ but you can select an alternative mechanism by setting the
322``copyleft_compliance`` 321``copyleft_compliance``
323======================= 322=======================
324 323
325The :ref:`copyleft_compliance <ref-classes-copyleft_compliance>` class preserves source code for the purposes 324The :ref:`ref-classes-copyleft_compliance` class preserves source code for the purposes
326of license compliance. This class is an alternative to the :ref:`archiver <ref-classes-archiver>` 325of license compliance. This class is an alternative to the :ref:`ref-classes-archiver`
327class and is still used by some users even though it has been deprecated 326class and is still used by some users even though it has been deprecated
328in favor of the :ref:`archiver <ref-classes-archiver>` class. 327in favor of the :ref:`ref-classes-archiver` class.
329 328
330.. _ref-classes-copyleft_filter: 329.. _ref-classes-copyleft_filter:
331 330
332``copyleft_filter`` 331``copyleft_filter``
333=================== 332===================
334 333
335A class used by the :ref:`archiver <ref-classes-archiver>` and 334A class used by the :ref:`ref-classes-archiver` and
336:ref:`copyleft_compliance <ref-classes-copyleft_compliance>` classes 335:ref:`ref-classes-copyleft_compliance` classes
337for filtering licenses. The ``copyleft_filter`` class is an internal 336for filtering licenses. The ``copyleft_filter`` class is an internal
338class and is not intended to be used directly. 337class and is not intended to be used directly.
339 338
@@ -342,7 +341,7 @@ class and is not intended to be used directly.
342``core-image`` 341``core-image``
343============== 342==============
344 343
345The :ref:`core-image <ref-classes-core-image>` class provides common definitions for the 344The :ref:`ref-classes-core-image` class provides common definitions for the
346``core-image-*`` image recipes, such as support for additional 345``core-image-*`` image recipes, such as support for additional
347:term:`IMAGE_FEATURES`. 346:term:`IMAGE_FEATURES`.
348 347
@@ -372,7 +371,7 @@ support.
372``create-spdx`` 371``create-spdx``
373=============== 372===============
374 373
375The :ref:`create-spdx <ref-classes-create-spdx>` class provides support for 374The :ref:`ref-classes-create-spdx` class provides support for
376automatically creating :term:`SPDX` :term:`SBOM` documents based upon image 375automatically creating :term:`SPDX` :term:`SBOM` documents based upon image
377and SDK contents. 376and SDK contents.
378 377
@@ -398,7 +397,7 @@ section in the Yocto Project Development Manual for more details.
398``cross`` 397``cross``
399========= 398=========
400 399
401The :ref:`cross <ref-classes-cross>` class provides support for the recipes that build the 400The :ref:`ref-classes-cross` class provides support for the recipes that build the
402cross-compilation tools. 401cross-compilation tools.
403 402
404.. _ref-classes-cross-canadian: 403.. _ref-classes-cross-canadian:
@@ -406,7 +405,7 @@ cross-compilation tools.
406``cross-canadian`` 405``cross-canadian``
407================== 406==================
408 407
409The :ref:`cross-canadian <ref-classes-cross-canadian>` class provides support for the recipes that build 408The :ref:`ref-classes-cross-canadian` class provides support for the recipes that build
410the Canadian Cross-compilation tools for SDKs. See the 409the Canadian Cross-compilation tools for SDKs. See the
411":ref:`overview-manual/concepts:cross-development toolchain generation`" 410":ref:`overview-manual/concepts:cross-development toolchain generation`"
412section in the Yocto Project Overview and Concepts Manual for more 411section in the Yocto Project Overview and Concepts Manual for more
@@ -417,7 +416,7 @@ discussion on these cross-compilation tools.
417``crosssdk`` 416``crosssdk``
418============ 417============
419 418
420The :ref:`crosssdk <ref-classes-crosssdk>` class provides support for the recipes that build the 419The :ref:`ref-classes-crosssdk` class provides support for the recipes that build the
421cross-compilation tools used for building SDKs. See the 420cross-compilation tools used for building SDKs. See the
422":ref:`overview-manual/concepts:cross-development toolchain generation`" 421":ref:`overview-manual/concepts:cross-development toolchain generation`"
423section in the Yocto Project Overview and Concepts Manual for more 422section in the Yocto Project Overview and Concepts Manual for more
@@ -428,7 +427,7 @@ discussion on these cross-compilation tools.
428``cve-check`` 427``cve-check``
429============= 428=============
430 429
431The :ref:`cve-check <ref-classes-cve-check>` class looks for known CVEs (Common Vulnerabilities 430The :ref:`ref-classes-cve-check` class looks for known CVEs (Common Vulnerabilities
432and Exposures) while building with BitBake. This class is meant to be 431and Exposures) while building with BitBake. This class is meant to be
433inherited globally from a configuration file:: 432inherited globally from a configuration file::
434 433
@@ -492,7 +491,7 @@ section in the Development Tasks Manual.
492``debian`` 491``debian``
493========== 492==========
494 493
495The :ref:`debian <ref-classes-debian>` class renames output packages so that they follow the 494The :ref:`ref-classes-debian` class renames output packages so that they follow the
496Debian naming policy (i.e. ``glibc`` becomes ``libc6`` and 495Debian naming policy (i.e. ``glibc`` becomes ``libc6`` and
497``glibc-devel`` becomes ``libc6-dev``.) Renaming includes the library 496``glibc-devel`` becomes ``libc6-dev``.) Renaming includes the library
498name and version as part of the package name. 497name and version as part of the package name.
@@ -507,7 +506,7 @@ naming scheme.
507``deploy`` 506``deploy``
508========== 507==========
509 508
510The :ref:`deploy <ref-classes-deploy>` class handles deploying files to the 509The :ref:`ref-classes-deploy` class handles deploying files to the
511:term:`DEPLOY_DIR_IMAGE` directory. The main 510:term:`DEPLOY_DIR_IMAGE` directory. The main
512function of this class is to allow the deploy step to be accelerated by 511function of this class is to allow the deploy step to be accelerated by
513shared state. Recipes that inherit this class should define their own 512shared state. Recipes that inherit this class should define their own
@@ -523,17 +522,17 @@ staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`.
523``devshell`` 522``devshell``
524============ 523============
525 524
526The :ref:`devshell <ref-classes-devshell>` class adds the :ref:`ref-tasks-devshell` task. Distribution 525The :ref:`ref-classes-devshell` class adds the :ref:`ref-tasks-devshell` task. Distribution
527policy dictates whether to include this class. See the ":ref:`dev-manual/development-shell:using a development shell`" 526policy dictates whether to include this class. See the ":ref:`dev-manual/development-shell:using a development shell`"
528section in the Yocto Project Development Tasks Manual for more 527section in the Yocto Project Development Tasks Manual for more
529information about using :ref:`devshell <ref-classes-devshell>`. 528information about using :ref:`ref-classes-devshell`.
530 529
531.. _ref-classes-devupstream: 530.. _ref-classes-devupstream:
532 531
533``devupstream`` 532``devupstream``
534=============== 533===============
535 534
536The :ref:`devupstream <ref-classes-devupstream>` class uses 535The :ref:`ref-classes-devupstream` class uses
537:term:`BBCLASSEXTEND` to add a variant of the 536:term:`BBCLASSEXTEND` to add a variant of the
538recipe that fetches from an alternative URI (e.g. Git) instead of a 537recipe that fetches from an alternative URI (e.g. Git) instead of a
539tarball. Following is an example:: 538tarball. Following is an example::
@@ -555,10 +554,10 @@ Any development-specific adjustments can be done by using the
555 554
556The class 555The class
557currently only supports creating a development variant of the target 556currently only supports creating a development variant of the target
558recipe, not :ref:`native <ref-classes-native>` or :ref:`nativesdk <ref-classes-nativesdk>` variants. 557recipe, not :ref:`ref-classes-native` or :ref:`ref-classes-nativesdk` variants.
559 558
560The :term:`BBCLASSEXTEND` syntax (i.e. ``devupstream:target``) provides 559The :term:`BBCLASSEXTEND` syntax (i.e. ``devupstream:target``) provides
561support for :ref:`native <ref-classes-native>` and :ref:`nativesdk <ref-classes-nativesdk>` variants. Consequently, this 560support for :ref:`ref-classes-native` and :ref:`ref-classes-nativesdk` variants. Consequently, this
562functionality can be added in a future release. 561functionality can be added in a future release.
563 562
564Support for other version control systems such as Subversion is limited 563Support for other version control systems such as Subversion is limited
@@ -570,7 +569,7 @@ due to BitBake's automatic fetch dependencies (e.g.
570``externalsrc`` 569``externalsrc``
571=============== 570===============
572 571
573The :ref:`externalsrc <ref-classes-externalsrc>` class supports building software from source code 572The :ref:`ref-classes-externalsrc` class supports building software from source code
574that is external to the OpenEmbedded build system. Building software 573that is external to the OpenEmbedded build system. Building software
575from an external source tree means that the build system's normal fetch, 574from an external source tree means that the build system's normal fetch,
576unpack, and patch process is not used. 575unpack, and patch process is not used.
@@ -578,7 +577,7 @@ unpack, and patch process is not used.
578By default, the OpenEmbedded build system uses the :term:`S` 577By default, the OpenEmbedded build system uses the :term:`S`
579and :term:`B` variables to locate unpacked recipe source code 578and :term:`B` variables to locate unpacked recipe source code
580and to build it, respectively. When your recipe inherits the 579and to build it, respectively. When your recipe inherits the
581:ref:`externalsrc <ref-classes-externalsrc>` class, you use the 580:ref:`ref-classes-externalsrc` class, you use the
582:term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD` variables to 581:term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD` variables to
583ultimately define :term:`S` and :term:`B`. 582ultimately define :term:`S` and :term:`B`.
584 583
@@ -594,10 +593,9 @@ See these variables for more information:
594:term:`WORKDIR`, :term:`BPN`, and 593:term:`WORKDIR`, :term:`BPN`, and
595:term:`PV`, 594:term:`PV`,
596 595
597For more information on the :ref:`externalsrc <ref-classes-externalsrc>` class, see the comments in 596For more information on the :ref:`ref-classes-externalsrc` class, see the comments in
598``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`. 597``meta/classes/externalsrc.bbclass`` in the :term:`Source Directory`.
599For information on how to use the 598For information on how to use the :ref:`ref-classes-externalsrc` class, see the
600:ref:`externalsrc <ref-classes-externalsrc>` class, see the
601":ref:`dev-manual/building:building software from an external source`" 599":ref:`dev-manual/building:building software from an external source`"
602section in the Yocto Project Development Tasks Manual. 600section in the Yocto Project Development Tasks Manual.
603 601
@@ -606,7 +604,7 @@ section in the Yocto Project Development Tasks Manual.
606``extrausers`` 604``extrausers``
607============== 605==============
608 606
609The :ref:`extrausers <ref-classes-extrausers>` class allows additional user and group configuration 607The :ref:`ref-classes-extrausers` class allows additional user and group configuration
610to be applied at the image level. Inheriting this class either globally 608to be applied at the image level. Inheriting this class either globally
611or from an image recipe allows additional user and group operations to 609or from an image recipe allows additional user and group operations to
612be performed using the 610be performed using the
@@ -614,13 +612,11 @@ be performed using the
614 612
615.. note:: 613.. note::
616 614
617 The user and group operations added using the 615 The user and group operations added using the :ref:`ref-classes-extrausers`
618 :ref:`extrausers <ref-classes-extrausers>`
619 class are not tied to a specific recipe outside of the recipe for the 616 class are not tied to a specific recipe outside of the recipe for the
620 image. Thus, the operations can be performed across the image as a 617 image. Thus, the operations can be performed across the image as a
621 whole. Use the 618 whole. Use the :ref:`ref-classes-useradd` class to add user and group
622 :ref:`useradd <ref-classes-useradd>` 619 configuration to a specific recipe.
623 class to add user and group configuration to a specific recipe.
624 620
625Here is an example that uses this class in an image recipe:: 621Here is an example that uses this class in an image recipe::
626 622
@@ -668,9 +664,9 @@ Finally, here is an example that sets the root password::
668``features_check`` 664``features_check``
669================== 665==================
670 666
671The :ref:`features_check <ref-classes-features_check>` class allows individual recipes to check 667The :ref:`ref-classes-features_check` class allows individual recipes to check
672for required and conflicting 668for required and conflicting :term:`DISTRO_FEATURES`, :term:`MACHINE_FEATURES`
673:term:`DISTRO_FEATURES`, :term:`MACHINE_FEATURES` or :term:`COMBINED_FEATURES`. 669or :term:`COMBINED_FEATURES`.
674 670
675This class provides support for the following variables: 671This class provides support for the following variables:
676 672
@@ -694,7 +690,7 @@ triggered.
694``fontcache`` 690``fontcache``
695============= 691=============
696 692
697The :ref:`fontcache <ref-classes-fontcache>` class generates the proper post-install and 693The :ref:`ref-classes-fontcache` class generates the proper post-install and
698post-remove (postinst and postrm) scriptlets for font packages. These 694post-remove (postinst and postrm) scriptlets for font packages. These
699scriptlets call ``fc-cache`` (part of ``Fontconfig``) to add the fonts 695scriptlets call ``fc-cache`` (part of ``Fontconfig``) to add the fonts
700to the font information cache. Since the cache files are 696to the font information cache. Since the cache files are
@@ -710,9 +706,9 @@ packages containing the fonts.
710``fs-uuid`` 706``fs-uuid``
711=========== 707===========
712 708
713The :ref:`fs-uuid <ref-classes-fs-uuid>` class extracts UUID from 709The :ref:`ref-classes-fs-uuid` class extracts UUID from
714``${``\ :term:`ROOTFS`\ ``}``, which must have been built 710``${``\ :term:`ROOTFS`\ ``}``, which must have been built
715by the time that this function gets called. The :ref:`fs-uuid <ref-classes-fs-uuid>` class only 711by the time that this function gets called. The :ref:`ref-classes-fs-uuid` class only
716works on ``ext`` file systems and depends on ``tune2fs``. 712works on ``ext`` file systems and depends on ``tune2fs``.
717 713
718.. _ref-classes-gconf: 714.. _ref-classes-gconf:
@@ -720,7 +716,7 @@ works on ``ext`` file systems and depends on ``tune2fs``.
720``gconf`` 716``gconf``
721========= 717=========
722 718
723The :ref:`gconf <ref-classes-gconf>` class provides common functionality for recipes that need 719The :ref:`ref-classes-gconf` class provides common functionality for recipes that need
724to install GConf schemas. The schemas will be put into a separate 720to install GConf schemas. The schemas will be put into a separate
725package (``${``\ :term:`PN`\ ``}-gconf``) that is created 721package (``${``\ :term:`PN`\ ``}-gconf``) that is created
726automatically when this class is inherited. This package uses the 722automatically when this class is inherited. This package uses the
@@ -732,7 +728,7 @@ register and unregister the schemas in the target image.
732``gettext`` 728``gettext``
733=========== 729===========
734 730
735The :ref:`gettext <ref-classes-gettext>` class provides support for building 731The :ref:`ref-classes-gettext` class provides support for building
736software that uses the GNU ``gettext`` internationalization and localization 732software that uses the GNU ``gettext`` internationalization and localization
737system. All recipes building software that use ``gettext`` should inherit this 733system. All recipes building software that use ``gettext`` should inherit this
738class. 734class.
@@ -742,11 +738,11 @@ class.
742``github-releases`` 738``github-releases``
743=================== 739===================
744 740
745For recipes that fetch release tarballs from github, the :ref:`github-releases <ref-classes-github-releases>` 741For recipes that fetch release tarballs from github, the :ref:`ref-classes-github-releases`
746class sets up a standard way for checking available upstream versions 742class sets up a standard way for checking available upstream versions
747(to support ``devtool upgrade`` and the Automated Upgrade Helper (AUH)). 743(to support ``devtool upgrade`` and the Automated Upgrade Helper (AUH)).
748 744
749To use it, add ":ref:`github-releases <ref-classes-github-releases>`" to the inherit line in the recipe, 745To use it, add ":ref:`ref-classes-github-releases`" to the inherit line in the recipe,
750and if the default value of :term:`GITHUB_BASE_URI` is not suitable, 746and if the default value of :term:`GITHUB_BASE_URI` is not suitable,
751then set your own value in the recipe. You should then use ``${GITHUB_BASE_URI}`` 747then set your own value in the recipe. You should then use ``${GITHUB_BASE_URI}``
752in the value you set for :term:`SRC_URI` within the recipe. 748in the value you set for :term:`SRC_URI` within the recipe.
@@ -756,7 +752,7 @@ in the value you set for :term:`SRC_URI` within the recipe.
756``gnomebase`` 752``gnomebase``
757============= 753=============
758 754
759The :ref:`gnomebase <ref-classes-gnomebase>` class is the base class for recipes that build 755The :ref:`ref-classes-gnomebase` class is the base class for recipes that build
760software from the GNOME stack. This class sets 756software from the GNOME stack. This class sets
761:term:`SRC_URI` to download the source from the GNOME 757:term:`SRC_URI` to download the source from the GNOME
762mirrors as well as extending :term:`FILES` with the typical 758mirrors as well as extending :term:`FILES` with the typical
@@ -785,7 +781,7 @@ introspection. This functionality is only enabled if the
785``grub-efi`` 781``grub-efi``
786============ 782============
787 783
788The :ref:`grub-efi <ref-classes-grub-efi>` class provides ``grub-efi``-specific functions for 784The :ref:`ref-classes-grub-efi` class provides ``grub-efi``-specific functions for
789building bootable images. 785building bootable images.
790 786
791This class supports several variables: 787This class supports several variables:
@@ -817,7 +813,7 @@ This class supports several variables:
817``gsettings`` 813``gsettings``
818============= 814=============
819 815
820The :ref:`gsettings <ref-classes-gsettings>` class provides common functionality for recipes that 816The :ref:`ref-classes-gsettings` class provides common functionality for recipes that
821need to install GSettings (glib) schemas. The schemas are assumed to be 817need to install GSettings (glib) schemas. The schemas are assumed to be
822part of the main package. Appropriate post-install and post-remove 818part of the main package. Appropriate post-install and post-remove
823(postinst/postrm) scriptlets are added to register and unregister the 819(postinst/postrm) scriptlets are added to register and unregister the
@@ -828,7 +824,7 @@ schemas in the target image.
828``gtk-doc`` 824``gtk-doc``
829=========== 825===========
830 826
831The :ref:`gtk-doc <ref-classes-gtk-doc>` class is a helper class to pull in the appropriate 827The :ref:`ref-classes-gtk-doc` class is a helper class to pull in the appropriate
832``gtk-doc`` dependencies and disable ``gtk-doc``. 828``gtk-doc`` dependencies and disable ``gtk-doc``.
833 829
834.. _ref-classes-gtk-icon-cache: 830.. _ref-classes-gtk-icon-cache:
@@ -836,7 +832,7 @@ The :ref:`gtk-doc <ref-classes-gtk-doc>` class is a helper class to pull in the
836``gtk-icon-cache`` 832``gtk-icon-cache``
837================== 833==================
838 834
839The :ref:`gtk-icon-cache <ref-classes-gtk-icon-cache>` class generates the proper post-install and 835The :ref:`ref-classes-gtk-icon-cache` class generates the proper post-install and
840post-remove (postinst/postrm) scriptlets for packages that use GTK+ and 836post-remove (postinst/postrm) scriptlets for packages that use GTK+ and
841install icons. These scriptlets call ``gtk-update-icon-cache`` to add 837install icons. These scriptlets call ``gtk-update-icon-cache`` to add
842the fonts to GTK+'s icon cache. Since the cache files are 838the fonts to GTK+'s icon cache. Since the cache files are
@@ -849,7 +845,7 @@ creation.
849``gtk-immodules-cache`` 845``gtk-immodules-cache``
850======================= 846=======================
851 847
852The :ref:`gtk-immodules-cache <ref-classes-gtk-immodules-cache>` class generates the proper post-install and 848The :ref:`ref-classes-gtk-immodules-cache` class generates the proper post-install and
853post-remove (postinst/postrm) scriptlets for packages that install GTK+ 849post-remove (postinst/postrm) scriptlets for packages that install GTK+
854input method modules for virtual keyboards. These scriptlets call 850input method modules for virtual keyboards. These scriptlets call
855``gtk-update-icon-cache`` to add the input method modules to the cache. 851``gtk-update-icon-cache`` to add the input method modules to the cache.
@@ -867,7 +863,7 @@ the packages containing the modules.
867``gzipnative`` 863``gzipnative``
868============== 864==============
869 865
870The :ref:`gzipnative <ref-classes-gzipnative>` class enables the use of different native versions of 866The :ref:`ref-classes-gzipnative` class enables the use of different native versions of
871``gzip`` and ``pigz`` rather than the versions of these tools from the 867``gzip`` and ``pigz`` rather than the versions of these tools from the
872build host. 868build host.
873 869
@@ -876,7 +872,7 @@ build host.
876``icecc`` 872``icecc``
877========= 873=========
878 874
879The :ref:`icecc <ref-classes-icecc>` class supports 875The :ref:`ref-classes-icecc` class supports
880`Icecream <https://github.com/icecc/icecream>`__, which facilitates 876`Icecream <https://github.com/icecc/icecream>`__, which facilitates
881taking compile jobs and distributing them among remote machines. 877taking compile jobs and distributing them among remote machines.
882 878
@@ -924,13 +920,13 @@ Additionally, you can list recipes using the
924your ``local.conf`` file to force ``icecc`` to be enabled for recipes 920your ``local.conf`` file to force ``icecc`` to be enabled for recipes
925using an empty :term:`PARALLEL_MAKE` variable. 921using an empty :term:`PARALLEL_MAKE` variable.
926 922
927Inheriting the :ref:`icecc <ref-classes-icecc>` class changes all sstate signatures. 923Inheriting the :ref:`ref-classes-icecc` class changes all sstate signatures.
928Consequently, if a development team has a dedicated build system that 924Consequently, if a development team has a dedicated build system that
929populates :term:`SSTATE_MIRRORS` and they want to 925populates :term:`SSTATE_MIRRORS` and they want to
930reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build 926reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build
931system need to either inherit the :ref:`icecc <ref-classes-icecc>` class or nobody should. 927system need to either inherit the :ref:`ref-classes-icecc` class or nobody should.
932 928
933At the distribution level, you can inherit the :ref:`icecc <ref-classes-icecc>` class to be 929At the distribution level, you can inherit the :ref:`ref-classes-icecc` class to be
934sure that all builders start with the same sstate signatures. After 930sure that all builders start with the same sstate signatures. After
935inheriting the class, you can then disable the feature by setting the 931inheriting the class, you can then disable the feature by setting the
936:term:`ICECC_DISABLED` variable to "1" as follows:: 932:term:`ICECC_DISABLED` variable to "1" as follows::
@@ -950,7 +946,7 @@ individually as follows in your ``local.conf`` file::
950``image`` 946``image``
951========= 947=========
952 948
953The :ref:`image <ref-classes-image>` class helps support creating images in different formats. 949The :ref:`ref-classes-image` class helps support creating images in different formats.
954First, the root filesystem is created from packages using one of the 950First, the root filesystem is created from packages using one of the
955``rootfs*.bbclass`` files (depending on the package format used) and 951``rootfs*.bbclass`` files (depending on the package format used) and
956then one or more image files are created. 952then one or more image files are created.
@@ -973,7 +969,7 @@ Yocto Project Overview and Concepts Manual.
973``image-buildinfo`` 969``image-buildinfo``
974=================== 970===================
975 971
976The :ref:`image-buildinfo <ref-classes-image-buildinfo>` class writes a plain text file containing 972The :ref:`ref-classes-image-buildinfo` class writes a plain text file containing
977build information to the target filesystem at ``${sysconfdir}/buildinfo`` 973build information to the target filesystem at ``${sysconfdir}/buildinfo``
978by default (as specified by :term:`IMAGE_BUILDINFO_FILE`). 974by default (as specified by :term:`IMAGE_BUILDINFO_FILE`).
979This can be useful for manually determining the origin of any given 975This can be useful for manually determining the origin of any given
@@ -995,14 +991,14 @@ to ``/buildinfo`` by default (as specified by
995``image_types`` 991``image_types``
996=============== 992===============
997 993
998The :ref:`image_types <ref-classes-image_types>` class defines all of the standard image output types 994The :ref:`ref-classes-image_types` class defines all of the standard image output types
999that you can enable through the 995that you can enable through the
1000:term:`IMAGE_FSTYPES` variable. You can use this 996:term:`IMAGE_FSTYPES` variable. You can use this
1001class as a reference on how to add support for custom image output 997class as a reference on how to add support for custom image output
1002types. 998types.
1003 999
1004By default, the :ref:`image <ref-classes-image>` class automatically 1000By default, the :ref:`ref-classes-image` class automatically
1005enables the :ref:`image_types <ref-classes-image_types>` class. The :ref:`image <ref-classes-image>` class uses the 1001enables the :ref:`ref-classes-image_types` class. The :ref:`ref-classes-image` class uses the
1006``IMGCLASSES`` variable as follows:: 1002``IMGCLASSES`` variable as follows::
1007 1003
1008 IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}" 1004 IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
@@ -1014,7 +1010,7 @@ enables the :ref:`image_types <ref-classes-image_types>` class. The :ref:`image
1014 IMGCLASSES += "image-postinst-intercepts" 1010 IMGCLASSES += "image-postinst-intercepts"
1015 inherit ${IMGCLASSES} 1011 inherit ${IMGCLASSES}
1016 1012
1017The :ref:`image_types <ref-classes-image_types>` class also handles conversion and compression of images. 1013The :ref:`ref-classes-image_types` class also handles conversion and compression of images.
1018 1014
1019.. note:: 1015.. note::
1020 1016
@@ -1040,7 +1036,7 @@ Normally, you do not use this class directly. Instead, you add "live" to
1040``insane`` 1036``insane``
1041========== 1037==========
1042 1038
1043The :ref:`insane <ref-classes-insane>` class adds a step to the package generation process so 1039The :ref:`ref-classes-insane` class adds a step to the package generation process so
1044that output quality assurance checks are generated by the OpenEmbedded 1040that output quality assurance checks are generated by the OpenEmbedded
1045build system. A range of checks are performed that check the build's 1041build system. A range of checks are performed that check the build's
1046output for common problems that show up during runtime. Distribution 1042output for common problems that show up during runtime. Distribution
@@ -1100,7 +1096,7 @@ Here are the tests you can list with the :term:`WARN_QA` and
1100 the package is installed into the image during the 1096 the package is installed into the image during the
1101 :ref:`ref-tasks-rootfs` task because the auto-detected 1097 :ref:`ref-tasks-rootfs` task because the auto-detected
1102 dependency was not satisfied. An example of this would be where the 1098 dependency was not satisfied. An example of this would be where the
1103 :ref:`update-rc.d <ref-classes-update-rc.d>` class automatically 1099 :ref:`ref-classes-update-rc.d` class automatically
1104 adds a dependency on the ``initscripts-functions`` package to 1100 adds a dependency on the ``initscripts-functions`` package to
1105 packages that install an initscript that refers to 1101 packages that install an initscript that refers to
1106 ``/etc/init.d/functions``. The recipe should really have an explicit 1102 ``/etc/init.d/functions``. The recipe should really have an explicit
@@ -1340,7 +1336,7 @@ Here are the tests you can list with the :term:`WARN_QA` and
1340``insserv`` 1336``insserv``
1341=========== 1337===========
1342 1338
1343The :ref:`insserv <ref-classes-insserv>` class uses the ``insserv`` utility to update the order 1339The :ref:`ref-classes-insserv` class uses the ``insserv`` utility to update the order
1344of symbolic links in ``/etc/rc?.d/`` within an image based on 1340of symbolic links in ``/etc/rc?.d/`` within an image based on
1345dependencies specified by LSB headers in the ``init.d`` scripts 1341dependencies specified by LSB headers in the ``init.d`` scripts
1346themselves. 1342themselves.
@@ -1350,10 +1346,10 @@ themselves.
1350``kernel`` 1346``kernel``
1351========== 1347==========
1352 1348
1353The :ref:`kernel <ref-classes-kernel>` class handles building Linux kernels. The class contains 1349The :ref:`ref-classes-kernel` class handles building Linux kernels. The class contains
1354code to build all kernel trees. All needed headers are staged into the 1350code to build all kernel trees. All needed headers are staged into the
1355:term:`STAGING_KERNEL_DIR` directory to allow out-of-tree module builds 1351:term:`STAGING_KERNEL_DIR` directory to allow out-of-tree module builds
1356using the :ref:`module <ref-classes-module>` class. 1352using the :ref:`ref-classes-module` class.
1357 1353
1358This means that each built kernel module is packaged separately and 1354This means that each built kernel module is packaged separately and
1359inter-module dependencies are created by parsing the ``modinfo`` output. 1355inter-module dependencies are created by parsing the ``modinfo`` output.
@@ -1361,23 +1357,22 @@ If all modules are required, then installing the ``kernel-modules``
1361package installs all packages with modules and various other kernel 1357package installs all packages with modules and various other kernel
1362packages such as ``kernel-vmlinux``. 1358packages such as ``kernel-vmlinux``.
1363 1359
1364The :ref:`kernel <ref-classes-kernel>` class contains logic that allows you to embed an initial 1360The :ref:`ref-classes-kernel` class contains logic that allows you to embed an initial
1365RAM filesystem (:term:`Initramfs`) image when you build the kernel image. For 1361RAM filesystem (:term:`Initramfs`) image when you build the kernel image. For
1366information on how to build an :term:`Initramfs`, see the 1362information on how to build an :term:`Initramfs`, see the
1367":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section in 1363":ref:`dev-manual/building:building an initial ram filesystem (Initramfs) image`" section in
1368the Yocto Project Development Tasks Manual. 1364the Yocto Project Development Tasks Manual.
1369 1365
1370Various other classes are used by the :ref:`kernel <ref-classes-kernel>` and :ref:`module <ref-classes-module>` classes 1366Various other classes are used by the :ref:`ref-classes-kernel` and :ref:`ref-classes-module` classes
1371internally including the :ref:`kernel-arch <ref-classes-kernel-arch>`, 1367internally including the :ref:`ref-classes-kernel-arch`, :ref:`ref-classes-module-base`, and
1372:ref:`module-base <ref-classes-module-base>`, and 1368:ref:`ref-classes-linux-kernel-base` classes.
1373:ref:`linux-kernel-base <ref-classes-linux-kernel-base>` classes.
1374 1369
1375.. _ref-classes-kernel-arch: 1370.. _ref-classes-kernel-arch:
1376 1371
1377``kernel-arch`` 1372``kernel-arch``
1378=============== 1373===============
1379 1374
1380The :ref:`kernel-arch <ref-classes-kernel-arch>` class sets the ``ARCH`` environment variable for 1375The :ref:`ref-classes-kernel-arch` class sets the ``ARCH`` environment variable for
1381Linux kernel compilation (including modules). 1376Linux kernel compilation (including modules).
1382 1377
1383.. _ref-classes-kernel-devicetree: 1378.. _ref-classes-kernel-devicetree:
@@ -1385,26 +1380,25 @@ Linux kernel compilation (including modules).
1385``kernel-devicetree`` 1380``kernel-devicetree``
1386===================== 1381=====================
1387 1382
1388The :ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class, which is inherited by the 1383The :ref:`ref-classes-kernel-devicetree` class, which is inherited by the
1389:ref:`kernel <ref-classes-kernel>` class, supports device tree 1384:ref:`ref-classes-kernel` class, supports device tree generation.
1390generation.
1391 1385
1392.. _ref-classes-kernel-fitimage: 1386.. _ref-classes-kernel-fitimage:
1393 1387
1394``kernel-fitimage`` 1388``kernel-fitimage``
1395=================== 1389===================
1396 1390
1397The :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class provides support to pack a kernel image, 1391The :ref:`ref-classes-kernel-fitimage` class provides support to pack a kernel image,
1398device trees, a U-boot script, a :term:`Initramfs` bundle and a RAM disk 1392device trees, a U-boot script, a :term:`Initramfs` bundle and a RAM disk
1399into a single FIT image. In theory, a FIT image can support any number 1393into a single FIT image. In theory, a FIT image can support any number
1400of kernels, U-boot scripts, :term:`Initramfs` bundles, RAM disks and device-trees. 1394of kernels, U-boot scripts, :term:`Initramfs` bundles, RAM disks and device-trees.
1401However, :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` currently only supports 1395However, :ref:`ref-classes-kernel-fitimage` currently only supports
1402limited usecases: just one kernel image, an optional U-boot script, 1396limited usecases: just one kernel image, an optional U-boot script,
1403an optional :term:`Initramfs` bundle, an optional RAM disk, and any number of 1397an optional :term:`Initramfs` bundle, an optional RAM disk, and any number of
1404device tree. 1398device tree.
1405 1399
1406To create a FIT image, it is required that :term:`KERNEL_CLASSES` 1400To create a FIT image, it is required that :term:`KERNEL_CLASSES`
1407is set to include ":ref:`kernel-fitimage <ref-classes-kernel-fitimage>`" and :term:`KERNEL_IMAGETYPE` 1401is set to include ":ref:`ref-classes-kernel-fitimage`" and :term:`KERNEL_IMAGETYPE`
1408is set to "fitImage". 1402is set to "fitImage".
1409 1403
1410The options for the device tree compiler passed to ``mkimage -D`` 1404The options for the device tree compiler passed to ``mkimage -D``
@@ -1412,19 +1406,19 @@ when creating the FIT image are specified using the
1412:term:`UBOOT_MKIMAGE_DTCOPTS` variable. 1406:term:`UBOOT_MKIMAGE_DTCOPTS` variable.
1413 1407
1414Only a single kernel can be added to the FIT image created by 1408Only a single kernel can be added to the FIT image created by
1415:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the kernel image in FIT is mandatory. The 1409:ref:`ref-classes-kernel-fitimage` and the kernel image in FIT is mandatory. The
1416address where the kernel image is to be loaded by U-Boot is 1410address where the kernel image is to be loaded by U-Boot is
1417specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by 1411specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
1418:term:`UBOOT_ENTRYPOINT`. 1412:term:`UBOOT_ENTRYPOINT`.
1419 1413
1420Multiple device trees can be added to the FIT image created by 1414Multiple device trees can be added to the FIT image created by
1421:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the device tree is optional. 1415:ref:`ref-classes-kernel-fitimage` and the device tree is optional.
1422The address where the device tree is to be loaded by U-Boot is 1416The address where the device tree is to be loaded by U-Boot is
1423specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays 1417specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
1424and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries. 1418and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
1425 1419
1426Only a single RAM disk can be added to the FIT image created by 1420Only a single RAM disk can be added to the FIT image created by
1427:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the RAM disk in FIT is optional. 1421:ref:`ref-classes-kernel-fitimage` and the RAM disk in FIT is optional.
1428The address where the RAM disk image is to be loaded by U-Boot 1422The address where the RAM disk image is to be loaded by U-Boot
1429is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by 1423is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
1430:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when 1424:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when
@@ -1432,7 +1426,7 @@ is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
1432is set to 0. 1426is set to 0.
1433 1427
1434Only a single :term:`Initramfs` bundle can be added to the FIT image created by 1428Only a single :term:`Initramfs` bundle can be added to the FIT image created by
1435:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the :term:`Initramfs` bundle in FIT is optional. 1429:ref:`ref-classes-kernel-fitimage` and the :term:`Initramfs` bundle in FIT is optional.
1436In case of :term:`Initramfs`, the kernel is configured to be bundled with the root filesystem 1430In case of :term:`Initramfs`, the kernel is configured to be bundled with the root filesystem
1437in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin). 1431in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin).
1438When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem. 1432When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem.
@@ -1442,21 +1436,21 @@ The address where the :term:`Initramfs` bundle is to be loaded by U-boot is spec
1442by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. 1436by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`.
1443 1437
1444Only a single U-boot boot script can be added to the FIT image created by 1438Only a single U-boot boot script can be added to the FIT image created by
1445:ref:`kernel-fitimage <ref-classes-kernel-fitimage>` and the boot script is optional. 1439:ref:`ref-classes-kernel-fitimage` and the boot script is optional.
1446The boot script is specified in the ITS file as a text file containing 1440The boot script is specified in the ITS file as a text file containing
1447U-boot commands. When using a boot script the user should configure the 1441U-boot commands. When using a boot script the user should configure the
1448U-boot :ref:`ref-tasks-install` task to copy the script to sysroot. 1442U-boot :ref:`ref-tasks-install` task to copy the script to sysroot.
1449So the script can be included in the FIT image by the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` 1443So the script can be included in the FIT image by the :ref:`ref-classes-kernel-fitimage`
1450class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to 1444class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to
1451load the boot script from the FIT image and executes it. 1445load the boot script from the FIT image and executes it.
1452 1446
1453The FIT image generated by :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class is signed when the 1447The FIT image generated by :ref:`ref-classes-kernel-fitimage` class is signed when the
1454variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`, 1448variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
1455:term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set 1449:term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set
1456appropriately. The default values used for :term:`FIT_HASH_ALG` and 1450appropriately. The default values used for :term:`FIT_HASH_ALG` and
1457:term:`FIT_SIGN_ALG` in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` are "sha256" and 1451:term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fitimage` are "sha256" and
1458"rsa2048" respectively. The keys for signing fitImage can be generated using 1452"rsa2048" respectively. The keys for signing fitImage can be generated using
1459the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class when both :term:`FIT_GENERATE_KEYS` and 1453the :ref:`ref-classes-kernel-fitimage` class when both :term:`FIT_GENERATE_KEYS` and
1460:term:`UBOOT_SIGN_ENABLE` are set to "1". 1454:term:`UBOOT_SIGN_ENABLE` are set to "1".
1461 1455
1462 1456
@@ -1465,7 +1459,7 @@ the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class when both :term:`
1465``kernel-grub`` 1459``kernel-grub``
1466=============== 1460===============
1467 1461
1468The :ref:`kernel-grub <ref-classes-kernel-grub>` class updates the boot area and the boot menu with 1462The :ref:`ref-classes-kernel-grub` class updates the boot area and the boot menu with
1469the kernel as the priority boot mechanism while installing a RPM to 1463the kernel as the priority boot mechanism while installing a RPM to
1470update the kernel on a deployed target. 1464update the kernel on a deployed target.
1471 1465
@@ -1474,7 +1468,7 @@ update the kernel on a deployed target.
1474``kernel-module-split`` 1468``kernel-module-split``
1475======================= 1469=======================
1476 1470
1477The :ref:`kernel-module-split <ref-classes-kernel-module-split>` class provides common functionality for 1471The :ref:`ref-classes-kernel-module-split` class provides common functionality for
1478splitting Linux kernel modules into separate packages. 1472splitting Linux kernel modules into separate packages.
1479 1473
1480.. _ref-classes-kernel-uboot: 1474.. _ref-classes-kernel-uboot:
@@ -1482,7 +1476,7 @@ splitting Linux kernel modules into separate packages.
1482``kernel-uboot`` 1476``kernel-uboot``
1483================ 1477================
1484 1478
1485The :ref:`kernel-uboot <ref-classes-kernel-uboot>` class provides support for building from 1479The :ref:`ref-classes-kernel-uboot` class provides support for building from
1486vmlinux-style kernel sources. 1480vmlinux-style kernel sources.
1487 1481
1488.. _ref-classes-kernel-uimage: 1482.. _ref-classes-kernel-uimage:
@@ -1490,14 +1484,14 @@ vmlinux-style kernel sources.
1490``kernel-uimage`` 1484``kernel-uimage``
1491================= 1485=================
1492 1486
1493The :ref:`kernel-uimage <ref-classes-kernel-uimage>` class provides support to pack uImage. 1487The :ref:`ref-classes-kernel-uimage` class provides support to pack uImage.
1494 1488
1495.. _ref-classes-kernel-yocto: 1489.. _ref-classes-kernel-yocto:
1496 1490
1497``kernel-yocto`` 1491``kernel-yocto``
1498================ 1492================
1499 1493
1500The :ref:`kernel-yocto <ref-classes-kernel-yocto>` class provides common functionality for building 1494The :ref:`ref-classes-kernel-yocto` class provides common functionality for building
1501from linux-yocto style kernel source repositories. 1495from linux-yocto style kernel source repositories.
1502 1496
1503.. _ref-classes-kernelsrc: 1497.. _ref-classes-kernelsrc:
@@ -1505,14 +1499,14 @@ from linux-yocto style kernel source repositories.
1505``kernelsrc`` 1499``kernelsrc``
1506============= 1500=============
1507 1501
1508The :ref:`kernelsrc <ref-classes-kernelsrc>` class sets the Linux kernel source and version. 1502The :ref:`ref-classes-kernelsrc` class sets the Linux kernel source and version.
1509 1503
1510.. _ref-classes-lib_package: 1504.. _ref-classes-lib_package:
1511 1505
1512``lib_package`` 1506``lib_package``
1513=============== 1507===============
1514 1508
1515The :ref:`lib_package <ref-classes-lib_package>` class supports recipes that build libraries and 1509The :ref:`ref-classes-lib_package` class supports recipes that build libraries and
1516produce executable binaries, where those binaries should not be 1510produce executable binaries, where those binaries should not be
1517installed by default along with the library. Instead, the binaries are 1511installed by default along with the library. Instead, the binaries are
1518added to a separate ``${``\ :term:`PN`\ ``}-bin`` package to 1512added to a separate ``${``\ :term:`PN`\ ``}-bin`` package to
@@ -1523,7 +1517,7 @@ make their installation optional.
1523``libc*`` 1517``libc*``
1524========= 1518=========
1525 1519
1526The :ref:`libc* <ref-classes-libc*>` classes support recipes that build packages with ``libc``: 1520The :ref:`ref-classes-libc*` classes support recipes that build packages with ``libc``:
1527 1521
1528- The :ref:`libc-common <ref-classes-libc*>` class provides common support for building with 1522- The :ref:`libc-common <ref-classes-libc*>` class provides common support for building with
1529 ``libc``. 1523 ``libc``.
@@ -1536,7 +1530,7 @@ The :ref:`libc* <ref-classes-libc*>` classes support recipes that build packages
1536``license`` 1530``license``
1537=========== 1531===========
1538 1532
1539The :ref:`license <ref-classes-license>` class provides license manifest creation and license 1533The :ref:`ref-classes-license` class provides license manifest creation and license
1540exclusion. This class is enabled by default using the default value for 1534exclusion. This class is enabled by default using the default value for
1541the :term:`INHERIT_DISTRO` variable. 1535the :term:`INHERIT_DISTRO` variable.
1542 1536
@@ -1545,7 +1539,7 @@ the :term:`INHERIT_DISTRO` variable.
1545``linux-kernel-base`` 1539``linux-kernel-base``
1546===================== 1540=====================
1547 1541
1548The :ref:`linux-kernel-base <ref-classes-linux-kernel-base>` class provides common functionality for 1542The :ref:`ref-classes-linux-kernel-base` class provides common functionality for
1549recipes that build out of the Linux kernel source tree. These builds 1543recipes that build out of the Linux kernel source tree. These builds
1550goes beyond the kernel itself. For example, the Perf recipe also 1544goes beyond the kernel itself. For example, the Perf recipe also
1551inherits this class. 1545inherits this class.
@@ -1564,11 +1558,11 @@ number of other classes.
1564``logging`` 1558``logging``
1565=========== 1559===========
1566 1560
1567The :ref:`logging <ref-classes-logging>` class provides the standard shell functions used to log 1561The :ref:`ref-classes-logging` class provides the standard shell functions used to log
1568messages for various BitBake severity levels (i.e. ``bbplain``, 1562messages for various BitBake severity levels (i.e. ``bbplain``,
1569``bbnote``, ``bbwarn``, ``bberror``, ``bbfatal``, and ``bbdebug``). 1563``bbnote``, ``bbwarn``, ``bberror``, ``bbfatal``, and ``bbdebug``).
1570 1564
1571This class is enabled by default since it is inherited by the :ref:`base <ref-classes-base>` 1565This class is enabled by default since it is inherited by the :ref:`ref-classes-base`
1572class. 1566class.
1573 1567
1574.. _ref-classes-metadata_scm: 1568.. _ref-classes-metadata_scm:
@@ -1576,20 +1570,20 @@ class.
1576``metadata_scm`` 1570``metadata_scm``
1577================ 1571================
1578 1572
1579The :ref:`metadata_scm <ref-classes-metadata_scm>` class provides functionality for querying the 1573The :ref:`ref-classes-metadata_scm` class provides functionality for querying the
1580branch and revision of a Source Code Manager (SCM) repository. 1574branch and revision of a Source Code Manager (SCM) repository.
1581 1575
1582The :ref:`base <ref-classes-base>` class uses this class to print the 1576The :ref:`ref-classes-base` class uses this class to print the revisions of
1583revisions of each layer before starting every build. The 1577each layer before starting every build. The :ref:`ref-classes-metadata_scm`
1584:ref:`metadata_scm <ref-classes-metadata_scm>` class is enabled by default because it is inherited by 1578class is enabled by default because it is inherited by the
1585the :ref:`base <ref-classes-base>` class. 1579:ref:`ref-classes-base` class.
1586 1580
1587.. _ref-classes-migrate_localcount: 1581.. _ref-classes-migrate_localcount:
1588 1582
1589``migrate_localcount`` 1583``migrate_localcount``
1590====================== 1584======================
1591 1585
1592The :ref:`migrate_localcount <ref-classes-migrate_localcount>` class verifies a recipe's localcount data and 1586The :ref:`ref-classes-migrate_localcount` class verifies a recipe's localcount data and
1593increments it appropriately. 1587increments it appropriately.
1594 1588
1595.. _ref-classes-mime: 1589.. _ref-classes-mime:
@@ -1597,7 +1591,7 @@ increments it appropriately.
1597``mime`` 1591``mime``
1598======== 1592========
1599 1593
1600The :ref:`mime <ref-classes-mime>` class generates the proper post-install and post-remove 1594The :ref:`ref-classes-mime` class generates the proper post-install and post-remove
1601(postinst/postrm) scriptlets for packages that install MIME type files. 1595(postinst/postrm) scriptlets for packages that install MIME type files.
1602These scriptlets call ``update-mime-database`` to add the MIME types to 1596These scriptlets call ``update-mime-database`` to add the MIME types to
1603the shared database. 1597the shared database.
@@ -1607,7 +1601,7 @@ the shared database.
1607``mime-xdg`` 1601``mime-xdg``
1608============ 1602============
1609 1603
1610The :ref:`mime-xdg <ref-classes-mime-xdg>` class generates the proper 1604The :ref:`ref-classes-mime-xdg` class generates the proper
1611post-install and post-remove (postinst/postrm) scriptlets for packages 1605post-install and post-remove (postinst/postrm) scriptlets for packages
1612that install ``.desktop`` files containing ``MimeType`` entries. 1606that install ``.desktop`` files containing ``MimeType`` entries.
1613These scriptlets call ``update-desktop-database`` to add the MIME types 1607These scriptlets call ``update-desktop-database`` to add the MIME types
@@ -1628,25 +1622,23 @@ package names to the :term:`MIME_XDG_PACKAGES` variable.
1628``mirrors`` 1622``mirrors``
1629=========== 1623===========
1630 1624
1631The :ref:`mirrors <ref-classes-mirrors>` class sets up some standard 1625The :ref:`ref-classes-mirrors` class sets up some standard
1632:term:`MIRRORS` entries for source code mirrors. These 1626:term:`MIRRORS` entries for source code mirrors. These
1633mirrors provide a fall-back path in case the upstream source specified 1627mirrors provide a fall-back path in case the upstream source specified
1634in :term:`SRC_URI` within recipes is unavailable. 1628in :term:`SRC_URI` within recipes is unavailable.
1635 1629
1636This class is enabled by default since it is inherited by the 1630This class is enabled by default since it is inherited by the
1637:ref:`base <ref-classes-base>` class. 1631:ref:`ref-classes-base` class.
1638 1632
1639.. _ref-classes-module: 1633.. _ref-classes-module:
1640 1634
1641``module`` 1635``module``
1642========== 1636==========
1643 1637
1644The :ref:`module <ref-classes-module>` class provides support for building out-of-tree Linux 1638The :ref:`ref-classes-module` class provides support for building out-of-tree Linux
1645kernel modules. The class inherits the 1639kernel modules. The class inherits the :ref:`ref-classes-module-base` and
1646:ref:`module-base <ref-classes-module-base>` and 1640:ref:`ref-classes-kernel-module-split` classes, and implements the
1647:ref:`kernel-module-split <ref-classes-kernel-module-split>` classes, 1641:ref:`ref-tasks-compile` and :ref:`ref-tasks-install` tasks. The class provides
1648and implements the :ref:`ref-tasks-compile` and
1649:ref:`ref-tasks-install` tasks. The class provides
1650everything needed to build and package a kernel module. 1642everything needed to build and package a kernel module.
1651 1643
1652For general information on out-of-tree Linux kernel modules, see the 1644For general information on out-of-tree Linux kernel modules, see the
@@ -1658,18 +1650,18 @@ section in the Yocto Project Linux Kernel Development Manual.
1658``module-base`` 1650``module-base``
1659=============== 1651===============
1660 1652
1661The :ref:`module-base <ref-classes-module-base>` class provides the base functionality for building 1653The :ref:`ref-classes-module-base` class provides the base functionality for
1662Linux kernel modules. Typically, a recipe that builds software that 1654building Linux kernel modules. Typically, a recipe that builds software that
1663includes one or more kernel modules and has its own means of building 1655includes one or more kernel modules and has its own means of building the module
1664the module inherits this class as opposed to inheriting the 1656inherits this class as opposed to inheriting the :ref:`ref-classes-module`
1665:ref:`module <ref-classes-module>` class. 1657class.
1666 1658
1667.. _ref-classes-multilib*: 1659.. _ref-classes-multilib*:
1668 1660
1669``multilib*`` 1661``multilib*``
1670============= 1662=============
1671 1663
1672The :ref:`multilib* <ref-classes-multilib*>` classes provide support for building libraries with 1664The :ref:`ref-classes-multilib*` classes provide support for building libraries with
1673different target optimizations or target architectures and installing 1665different target optimizations or target architectures and installing
1674them side-by-side in the same image. 1666them side-by-side in the same image.
1675 1667
@@ -1682,17 +1674,17 @@ section in the Yocto Project Development Tasks Manual.
1682``native`` 1674``native``
1683========== 1675==========
1684 1676
1685The :ref:`native <ref-classes-native>` class provides common functionality for recipes that 1677The :ref:`ref-classes-native` class provides common functionality for recipes that
1686build tools to run on the :term:`Build Host` (i.e. tools that use the compiler 1678build tools to run on the :term:`Build Host` (i.e. tools that use the compiler
1687or other tools from the build host). 1679or other tools from the build host).
1688 1680
1689You can create a recipe that builds tools that run natively on the host 1681You can create a recipe that builds tools that run natively on the host
1690a couple different ways: 1682a couple different ways:
1691 1683
1692- Create a ``myrecipe-native.bb`` recipe that inherits the :ref:`native <ref-classes-native>` 1684- Create a ``myrecipe-native.bb`` recipe that inherits the :ref:`ref-classes-native`
1693 class. If you use this method, you must order the inherit statement 1685 class. If you use this method, you must order the inherit statement
1694 in the recipe after all other inherit statements so that the 1686 in the recipe after all other inherit statements so that the
1695 :ref:`native <ref-classes-native>` class is inherited last. 1687 :ref:`ref-classes-native` class is inherited last.
1696 1688
1697 .. note:: 1689 .. note::
1698 1690
@@ -1714,7 +1706,7 @@ a couple different ways:
1714 specify any functionality specific to the respective native or target 1706 specify any functionality specific to the respective native or target
1715 case. 1707 case.
1716 1708
1717Although applied differently, the :ref:`native <ref-classes-native>` class is used with both 1709Although applied differently, the :ref:`ref-classes-native` class is used with both
1718methods. The advantage of the second method is that you do not need to 1710methods. The advantage of the second method is that you do not need to
1719have two separate recipes (assuming you need both) for native and 1711have two separate recipes (assuming you need both) for native and
1720target. All common parts of the recipe are automatically shared. 1712target. All common parts of the recipe are automatically shared.
@@ -1724,7 +1716,7 @@ target. All common parts of the recipe are automatically shared.
1724``nativesdk`` 1716``nativesdk``
1725============= 1717=============
1726 1718
1727The :ref:`nativesdk <ref-classes-nativesdk>` class provides common functionality for recipes that 1719The :ref:`ref-classes-nativesdk` class provides common functionality for recipes that
1728wish to build tools to run as part of an SDK (i.e. tools that run on 1720wish to build tools to run as part of an SDK (i.e. tools that run on
1729:term:`SDKMACHINE`). 1721:term:`SDKMACHINE`).
1730 1722
@@ -1732,11 +1724,11 @@ You can create a recipe that builds tools that run on the SDK machine a
1732couple different ways: 1724couple different ways:
1733 1725
1734- Create a ``nativesdk-myrecipe.bb`` recipe that inherits the 1726- Create a ``nativesdk-myrecipe.bb`` recipe that inherits the
1735 :ref:`nativesdk <ref-classes-nativesdk>` class. If you use this method, you must order the 1727 :ref:`ref-classes-nativesdk` class. If you use this method, you must order the
1736 inherit statement in the recipe after all other inherit statements so 1728 inherit statement in the recipe after all other inherit statements so
1737 that the :ref:`nativesdk <ref-classes-nativesdk>` class is inherited last. 1729 that the :ref:`ref-classes-nativesdk` class is inherited last.
1738 1730
1739- Create a :ref:`nativesdk <ref-classes-nativesdk>` variant of any recipe by adding the following:: 1731- Create a :ref:`ref-classes-nativesdk` variant of any recipe by adding the following::
1740 1732
1741 BBCLASSEXTEND = "nativesdk" 1733 BBCLASSEXTEND = "nativesdk"
1742 1734
@@ -1755,7 +1747,7 @@ couple different ways:
1755 Not doing so can lead to subtle problems because there is code that 1747 Not doing so can lead to subtle problems because there is code that
1756 depends on the naming convention. 1748 depends on the naming convention.
1757 1749
1758Although applied differently, the :ref:`nativesdk <ref-classes-nativesdk>` class is used with both 1750Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both
1759methods. The advantage of the second method is that you do not need to 1751methods. The advantage of the second method is that you do not need to
1760have two separate recipes (assuming you need both) for the SDK machine 1752have two separate recipes (assuming you need both) for the SDK machine
1761and the target. All common parts of the recipe are automatically shared. 1753and the target. All common parts of the recipe are automatically shared.
@@ -1790,11 +1782,11 @@ section in the Yocto Project Development Tasks Manual.
1790``oelint`` 1782``oelint``
1791========== 1783==========
1792 1784
1793The :ref:`oelint <ref-classes-oelint>` class is an obsolete lint checking tool available in 1785The :ref:`ref-classes-oelint` class is an obsolete lint checking tool available in
1794``meta/classes`` in the :term:`Source Directory`. 1786``meta/classes`` in the :term:`Source Directory`.
1795 1787
1796There are some classes that could be generally useful in OE-Core but 1788There are some classes that could be generally useful in OE-Core but
1797are never actually used within OE-Core itself. The :ref:`oelint <ref-classes-oelint>` class is 1789are never actually used within OE-Core itself. The :ref:`ref-classes-oelint` class is
1798one such example. However, being aware of this class can reduce the 1790one such example. However, being aware of this class can reduce the
1799proliferation of different versions of similar classes across multiple 1791proliferation of different versions of similar classes across multiple
1800layers. 1792layers.
@@ -1808,7 +1800,7 @@ It's often desired in Embedded System design to have a read-only root filesystem
1808But a lot of different applications might want to have read-write access to 1800But a lot of different applications might want to have read-write access to
1809some parts of a filesystem. It can be especially useful when your update mechanism 1801some parts of a filesystem. It can be especially useful when your update mechanism
1810overwrites the whole root filesystem, but you may want your application data to be preserved 1802overwrites the whole root filesystem, but you may want your application data to be preserved
1811between updates. The :ref:`overlayfs <ref-classes-overlayfs>` class provides a way 1803between updates. The :ref:`ref-classes-overlayfs` class provides a way
1812to achieve that by means of ``overlayfs`` and at the same time keeping the base 1804to achieve that by means of ``overlayfs`` and at the same time keeping the base
1813root filesystem read-only. 1805root filesystem read-only.
1814 1806
@@ -1848,7 +1840,7 @@ and then in your recipe::
1848On a practical note, your application recipe might require multiple 1840On a practical note, your application recipe might require multiple
1849overlays to be mounted before running to avoid writing to the underlying 1841overlays to be mounted before running to avoid writing to the underlying
1850file system (which can be forbidden in case of read-only file system) 1842file system (which can be forbidden in case of read-only file system)
1851To achieve that :ref:`overlayfs <ref-classes-overlayfs>` provides a ``systemd`` 1843To achieve that :ref:`ref-classes-overlayfs` provides a ``systemd``
1852helper service for mounting overlays. This helper service is named 1844helper service for mounting overlays. This helper service is named
1853``${PN}-overlays.service`` and can be depended on in your application recipe 1845``${PN}-overlays.service`` and can be depended on in your application recipe
1854(named ``application`` in the following example) ``systemd`` unit by adding 1846(named ``application`` in the following example) ``systemd`` unit by adding
@@ -1861,7 +1853,7 @@ to the unit the following::
1861.. note:: 1853.. note::
1862 1854
1863 The class does not support the ``/etc`` directory itself, because ``systemd`` depends on it. 1855 The class does not support the ``/etc`` directory itself, because ``systemd`` depends on it.
1864 In order to get ``/etc`` in overlayfs, see :ref:`overlayfs-etc <ref-classes-overlayfs-etc>`. 1856 In order to get ``/etc`` in overlayfs, see :ref:`ref-classes-overlayfs-etc`.
1865 1857
1866.. _ref-classes-overlayfs-etc: 1858.. _ref-classes-overlayfs-etc:
1867 1859
@@ -1913,7 +1905,7 @@ The class provides two options for ``/sbin/init`` generation:
1913``own-mirrors`` 1905``own-mirrors``
1914=============== 1906===============
1915 1907
1916The :ref:`own-mirrors <ref-classes-own-mirrors>` class makes it easier to set up your own 1908The :ref:`ref-classes-own-mirrors` class makes it easier to set up your own
1917:term:`PREMIRRORS` from which to first fetch source 1909:term:`PREMIRRORS` from which to first fetch source
1918before attempting to fetch it from the upstream specified in 1910before attempting to fetch it from the upstream specified in
1919:term:`SRC_URI` within each recipe. 1911:term:`SRC_URI` within each recipe.
@@ -1932,18 +1924,16 @@ in :term:`SOURCE_MIRROR_URL`.
1932``package`` 1924``package``
1933=========== 1925===========
1934 1926
1935The :ref:`package <ref-classes-package>` class supports generating packages from a build's 1927The :ref:`ref-classes-package` class supports generating packages from a build's
1936output. The core generic functionality is in ``package.bbclass``. The 1928output. The core generic functionality is in ``package.bbclass``. The
1937code specific to particular package types resides in these 1929code specific to particular package types resides in these
1938package-specific classes: 1930package-specific classes: :ref:`ref-classes-package_deb`,
1939:ref:`package_deb <ref-classes-package_deb>`, 1931:ref:`ref-classes-package_rpm`, :ref:`ref-classes-package_ipk`, and
1940:ref:`package_rpm <ref-classes-package_rpm>`, 1932:ref:`ref-classes-package_tar`.
1941:ref:`package_ipk <ref-classes-package_ipk>`, and
1942:ref:`package_tar <ref-classes-package_tar>`.
1943 1933
1944.. note:: 1934.. note::
1945 1935
1946 The :ref:`package_tar <ref-classes-package_tar>` class is broken and 1936 The :ref:`ref-classes-package_tar` class is broken and
1947 not supported. It is recommended that you do not use this class. 1937 not supported. It is recommended that you do not use this class.
1948 1938
1949You can control the list of resulting package formats by using the 1939You can control the list of resulting package formats by using the
@@ -1969,7 +1959,7 @@ complete build of the package with all dependencies previously built.
1969The reason for this discrepancy is because the RPM package manager 1959The reason for this discrepancy is because the RPM package manager
1970creates and processes more :term:`Metadata` than the IPK package 1960creates and processes more :term:`Metadata` than the IPK package
1971manager. Consequently, you might consider setting :term:`PACKAGE_CLASSES` to 1961manager. Consequently, you might consider setting :term:`PACKAGE_CLASSES` to
1972":ref:`package_ipk <ref-classes-package_ipk>`" if you are building smaller systems. 1962":ref:`ref-classes-package_ipk`" if you are building smaller systems.
1973 1963
1974Before making your package manager decision, however, you should 1964Before making your package manager decision, however, you should
1975consider some further things about using RPM: 1965consider some further things about using RPM:
@@ -1997,12 +1987,12 @@ at these two Yocto Project mailing list links:
1997``package_deb`` 1987``package_deb``
1998=============== 1988===============
1999 1989
2000The :ref:`package_deb <ref-classes-package_deb>` class provides support for creating packages that 1990The :ref:`ref-classes-package_deb` class provides support for creating packages that
2001use the Debian (i.e. ``.deb``) file format. The class ensures the 1991use the Debian (i.e. ``.deb``) file format. The class ensures the
2002packages are written out in a ``.deb`` file format to the 1992packages are written out in a ``.deb`` file format to the
2003``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory. 1993``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory.
2004 1994
2005This class inherits the :ref:`package <ref-classes-package>` class and 1995This class inherits the :ref:`ref-classes-package` class and
2006is enabled through the :term:`PACKAGE_CLASSES` 1996is enabled through the :term:`PACKAGE_CLASSES`
2007variable in the ``local.conf`` file. 1997variable in the ``local.conf`` file.
2008 1998
@@ -2011,12 +2001,12 @@ variable in the ``local.conf`` file.
2011``package_ipk`` 2001``package_ipk``
2012=============== 2002===============
2013 2003
2014The :ref:`package_ipk <ref-classes-package_ipk>` class provides support for creating packages that 2004The :ref:`ref-classes-package_ipk` class provides support for creating packages that
2015use the IPK (i.e. ``.ipk``) file format. The class ensures the packages 2005use the IPK (i.e. ``.ipk``) file format. The class ensures the packages
2016are written out in a ``.ipk`` file format to the 2006are written out in a ``.ipk`` file format to the
2017``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory. 2007``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory.
2018 2008
2019This class inherits the :ref:`package <ref-classes-package>` class and 2009This class inherits the :ref:`ref-classes-package` class and
2020is enabled through the :term:`PACKAGE_CLASSES` 2010is enabled through the :term:`PACKAGE_CLASSES`
2021variable in the ``local.conf`` file. 2011variable in the ``local.conf`` file.
2022 2012
@@ -2025,12 +2015,12 @@ variable in the ``local.conf`` file.
2025``package_rpm`` 2015``package_rpm``
2026=============== 2016===============
2027 2017
2028The :ref:`package_rpm <ref-classes-package_rpm>` class provides support for creating packages that 2018The :ref:`ref-classes-package_rpm` class provides support for creating packages that
2029use the RPM (i.e. ``.rpm``) file format. The class ensures the packages 2019use the RPM (i.e. ``.rpm``) file format. The class ensures the packages
2030are written out in a ``.rpm`` file format to the 2020are written out in a ``.rpm`` file format to the
2031``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory. 2021``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory.
2032 2022
2033This class inherits the :ref:`package <ref-classes-package>` class and 2023This class inherits the :ref:`ref-classes-package` class and
2034is enabled through the :term:`PACKAGE_CLASSES` 2024is enabled through the :term:`PACKAGE_CLASSES`
2035variable in the ``local.conf`` file. 2025variable in the ``local.conf`` file.
2036 2026
@@ -2039,17 +2029,17 @@ variable in the ``local.conf`` file.
2039``package_tar`` 2029``package_tar``
2040=============== 2030===============
2041 2031
2042The :ref:`package_tar <ref-classes-package_tar>` class provides support for creating tarballs. The 2032The :ref:`ref-classes-package_tar` class provides support for creating tarballs. The
2043class ensures the packages are written out in a tarball format to the 2033class ensures the packages are written out in a tarball format to the
2044``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory. 2034``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory.
2045 2035
2046This class inherits the :ref:`package <ref-classes-package>` class and 2036This class inherits the :ref:`ref-classes-package` class and
2047is enabled through the :term:`PACKAGE_CLASSES` 2037is enabled through the :term:`PACKAGE_CLASSES`
2048variable in the ``local.conf`` file. 2038variable in the ``local.conf`` file.
2049 2039
2050.. note:: 2040.. note::
2051 2041
2052 You cannot specify the :ref:`package_tar <ref-classes-package_tar>` class first using the 2042 You cannot specify the :ref:`ref-classes-package_tar` class first using the
2053 :term:`PACKAGE_CLASSES` variable. You must use ``.deb``, ``.ipk``, or ``.rpm`` 2043 :term:`PACKAGE_CLASSES` variable. You must use ``.deb``, ``.ipk``, or ``.rpm``
2054 file formats for your image or SDK. 2044 file formats for your image or SDK.
2055 2045
@@ -2058,20 +2048,20 @@ variable in the ``local.conf`` file.
2058``packagedata`` 2048``packagedata``
2059=============== 2049===============
2060 2050
2061The :ref:`packagedata <ref-classes-packagedata>` class provides common functionality for reading 2051The :ref:`ref-classes-packagedata` class provides common functionality for reading
2062``pkgdata`` files found in :term:`PKGDATA_DIR`. These 2052``pkgdata`` files found in :term:`PKGDATA_DIR`. These
2063files contain information about each output package produced by the 2053files contain information about each output package produced by the
2064OpenEmbedded build system. 2054OpenEmbedded build system.
2065 2055
2066This class is enabled by default because it is inherited by the 2056This class is enabled by default because it is inherited by the
2067:ref:`package <ref-classes-package>` class. 2057:ref:`ref-classes-package` class.
2068 2058
2069.. _ref-classes-packagegroup: 2059.. _ref-classes-packagegroup:
2070 2060
2071``packagegroup`` 2061``packagegroup``
2072================ 2062================
2073 2063
2074The :ref:`packagegroup <ref-classes-packagegroup>` class sets default values appropriate for package 2064The :ref:`ref-classes-packagegroup` class sets default values appropriate for package
2075group recipes (e.g. :term:`PACKAGES`, :term:`PACKAGE_ARCH`, :term:`ALLOW_EMPTY`, and 2065group recipes (e.g. :term:`PACKAGES`, :term:`PACKAGE_ARCH`, :term:`ALLOW_EMPTY`, and
2076so forth). It is highly recommended that all package group recipes 2066so forth). It is highly recommended that all package group recipes
2077inherit this class. 2067inherit this class.
@@ -2087,18 +2077,18 @@ Previously, this class was called the ``task`` class.
2087``patch`` 2077``patch``
2088========= 2078=========
2089 2079
2090The :ref:`patch <ref-classes-patch>` class provides all functionality for applying patches 2080The :ref:`ref-classes-patch` class provides all functionality for applying patches
2091during the :ref:`ref-tasks-patch` task. 2081during the :ref:`ref-tasks-patch` task.
2092 2082
2093This class is enabled by default because it is inherited by the 2083This class is enabled by default because it is inherited by the
2094:ref:`base <ref-classes-base>` class. 2084:ref:`ref-classes-base` class.
2095 2085
2096.. _ref-classes-perlnative: 2086.. _ref-classes-perlnative:
2097 2087
2098``perlnative`` 2088``perlnative``
2099============== 2089==============
2100 2090
2101When inherited by a recipe, the :ref:`perlnative <ref-classes-perlnative>` class supports using the 2091When inherited by a recipe, the :ref:`ref-classes-perlnative` class supports using the
2102native version of Perl built by the build system rather than using the 2092native version of Perl built by the build system rather than using the
2103version provided by the build host. 2093version provided by the build host.
2104 2094
@@ -2107,14 +2097,14 @@ version provided by the build host.
2107``pypi`` 2097``pypi``
2108======== 2098========
2109 2099
2110The :ref:`pypi <ref-classes-pypi>` class sets variables appropriately for recipes that build 2100The :ref:`ref-classes-pypi` class sets variables appropriately for recipes that build
2111Python modules from `PyPI <https://pypi.org/>`__, the Python Package Index. 2101Python modules from `PyPI <https://pypi.org/>`__, the Python Package Index.
2112By default it determines the PyPI package name based upon :term:`BPN` 2102By default it determines the PyPI package name based upon :term:`BPN`
2113(stripping the "python-" or "python3-" prefix off if present), however in 2103(stripping the "python-" or "python3-" prefix off if present), however in
2114some cases you may need to set it manually in the recipe by setting 2104some cases you may need to set it manually in the recipe by setting
2115:term:`PYPI_PACKAGE`. 2105:term:`PYPI_PACKAGE`.
2116 2106
2117Variables set by the :ref:`pypi <ref-classes-pypi>` class include :term:`SRC_URI`, :term:`SECTION`, 2107Variables set by the :ref:`ref-classes-pypi` class include :term:`SRC_URI`, :term:`SECTION`,
2118:term:`HOMEPAGE`, :term:`UPSTREAM_CHECK_URI`, :term:`UPSTREAM_CHECK_REGEX` 2108:term:`HOMEPAGE`, :term:`UPSTREAM_CHECK_URI`, :term:`UPSTREAM_CHECK_REGEX`
2119and :term:`CVE_PRODUCT`. 2109and :term:`CVE_PRODUCT`.
2120 2110
@@ -2123,7 +2113,7 @@ and :term:`CVE_PRODUCT`.
2123``python_flit_core`` 2113``python_flit_core``
2124==================== 2114====================
2125 2115
2126The :ref:`python_flit_core <ref-classes-python_flit_core>` class enables building Python modules which declare 2116The :ref:`ref-classes-python_flit_core` class enables building Python modules which declare
2127the `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant 2117the `PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant
2128``flit_core.buildapi`` ``build-backend`` in the ``[build-system]`` 2118``flit_core.buildapi`` ``build-backend`` in the ``[build-system]``
2129section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__). 2119section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__).
@@ -2131,40 +2121,39 @@ section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep
2131Python modules built with ``flit_core.buildapi`` are pure Python (no 2121Python modules built with ``flit_core.buildapi`` are pure Python (no
2132``C`` or ``Rust`` extensions). 2122``C`` or ``Rust`` extensions).
2133 2123
2134Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. 2124Internally this uses the :ref:`ref-classes-python_pep517` class.
2135 2125
2136.. _ref-classes-python_pep517: 2126.. _ref-classes-python_pep517:
2137 2127
2138``python_pep517`` 2128``python_pep517``
2139================= 2129=================
2140 2130
2141The :ref:`python_pep517 <ref-classes-python_pep517>` class builds and installs a Python ``wheel`` binary 2131The :ref:`ref-classes-python_pep517` class builds and installs a Python ``wheel`` binary
2142archive (see `PEP-517 <https://peps.python.org/pep-0517/>`__). 2132archive (see `PEP-517 <https://peps.python.org/pep-0517/>`__).
2143 2133
2144Recipes wouldn't inherit this directly, instead typically another class will 2134Recipes wouldn't inherit this directly, instead typically another class will
2145inherit this and add the relevant native dependencies. 2135inherit this and add the relevant native dependencies.
2146 2136
2147Examples of classes which do this are :ref:`python_flit_core 2137Examples of classes which do this are :ref:`ref-classes-python_flit_core`,
2148<ref-classes-python_flit_core>`, :ref:`python_setuptools_build_meta 2138:ref:`ref-classes-python_setuptools_build_meta`, and
2149<ref-classes-python_setuptools_build_meta>`, and :ref:`python_poetry_core 2139:ref:`ref-classes-python_poetry_core`.
2150<ref-classes-python_poetry_core>`.
2151 2140
2152.. _ref-classes-python_poetry_core: 2141.. _ref-classes-python_poetry_core:
2153 2142
2154``python_poetry_core`` 2143``python_poetry_core``
2155====================== 2144======================
2156 2145
2157The :ref:`python_poetry_core <ref-classes-python_poetry_core>` class enables building Python modules which use the 2146The :ref:`ref-classes-python_poetry_core` class enables building Python modules which use the
2158`Poetry Core <https://python-poetry.org>`__ build system. 2147`Poetry Core <https://python-poetry.org>`__ build system.
2159 2148
2160Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. 2149Internally this uses the :ref:`ref-classes-python_pep517` class.
2161 2150
2162.. _ref-classes-pixbufcache: 2151.. _ref-classes-pixbufcache:
2163 2152
2164``pixbufcache`` 2153``pixbufcache``
2165=============== 2154===============
2166 2155
2167The :ref:`pixbufcache <ref-classes-pixbufcache>` class generates the proper post-install and 2156The :ref:`ref-classes-pixbufcache` class generates the proper post-install and
2168post-remove (postinst/postrm) scriptlets for packages that install 2157post-remove (postinst/postrm) scriptlets for packages that install
2169pixbuf loaders, which are used with ``gdk-pixbuf``. These scriptlets 2158pixbuf loaders, which are used with ``gdk-pixbuf``. These scriptlets
2170call ``update_pixbuf_cache`` to add the pixbuf loaders to the cache. 2159call ``update_pixbuf_cache`` to add the pixbuf loaders to the cache.
@@ -2182,13 +2171,13 @@ containing the loaders.
2182``pkgconfig`` 2171``pkgconfig``
2183============= 2172=============
2184 2173
2185The :ref:`pkgconfig <ref-classes-pkgconfig>` class provides a standard way to get header and 2174The :ref:`ref-classes-pkgconfig` class provides a standard way to get header and
2186library information by using ``pkg-config``. This class aims to smooth 2175library information by using ``pkg-config``. This class aims to smooth
2187integration of ``pkg-config`` into libraries that use it. 2176integration of ``pkg-config`` into libraries that use it.
2188 2177
2189During staging, BitBake installs ``pkg-config`` data into the 2178During staging, BitBake installs ``pkg-config`` data into the
2190``sysroots/`` directory. By making use of sysroot functionality within 2179``sysroots/`` directory. By making use of sysroot functionality within
2191``pkg-config``, the :ref:`pkgconfig <ref-classes-pkgconfig>` class no longer has to manipulate the 2180``pkg-config``, the :ref:`ref-classes-pkgconfig` class no longer has to manipulate the
2192files. 2181files.
2193 2182
2194.. _ref-classes-populate-sdk: 2183.. _ref-classes-populate-sdk:
@@ -2196,7 +2185,7 @@ files.
2196``populate_sdk`` 2185``populate_sdk``
2197================ 2186================
2198 2187
2199The :ref:`populate_sdk <ref-classes-populate-sdk>` class provides support for SDK-only recipes. For 2188The :ref:`ref-classes-populate-sdk` class provides support for SDK-only recipes. For
2200information on advantages gained when building a cross-development 2189information on advantages gained when building a cross-development
2201toolchain using the :ref:`ref-tasks-populate_sdk` 2190toolchain using the :ref:`ref-tasks-populate_sdk`
2202task, see the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`" 2191task, see the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
@@ -2208,7 +2197,7 @@ Software Development Kit (eSDK) manual.
2208``populate_sdk_*`` 2197``populate_sdk_*``
2209================== 2198==================
2210 2199
2211The :ref:`populate_sdk_* <ref-classes-populate-sdk-*>` classes support SDK creation and consist of the 2200The :ref:`ref-classes-populate-sdk-*` classes support SDK creation and consist of the
2212following classes: 2201following classes:
2213 2202
2214- :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`: The base class supporting SDK creation under 2203- :ref:`populate_sdk_base <ref-classes-populate-sdk-*>`: The base class supporting SDK creation under
@@ -2265,7 +2254,7 @@ Software Development Kit (eSDK) manual.
2265``prexport`` 2254``prexport``
2266============ 2255============
2267 2256
2268The :ref:`prexport <ref-classes-prexport>` class provides functionality for exporting 2257The :ref:`ref-classes-prexport` class provides functionality for exporting
2269:term:`PR` values. 2258:term:`PR` values.
2270 2259
2271.. note:: 2260.. note::
@@ -2278,7 +2267,7 @@ The :ref:`prexport <ref-classes-prexport>` class provides functionality for expo
2278``primport`` 2267``primport``
2279============ 2268============
2280 2269
2281The :ref:`primport <ref-classes-primport>` class provides functionality for importing 2270The :ref:`ref-classes-primport` class provides functionality for importing
2282:term:`PR` values. 2271:term:`PR` values.
2283 2272
2284.. note:: 2273.. note::
@@ -2291,13 +2280,13 @@ The :ref:`primport <ref-classes-primport>` class provides functionality for impo
2291``prserv`` 2280``prserv``
2292========== 2281==========
2293 2282
2294The :ref:`prserv <ref-classes-prserv>` class provides functionality for using a :ref:`PR 2283The :ref:`ref-classes-prserv` class provides functionality for using a :ref:`PR
2295service <dev-manual/packages:working with a pr service>` in order to 2284service <dev-manual/packages:working with a pr service>` in order to
2296automatically manage the incrementing of the :term:`PR` 2285automatically manage the incrementing of the :term:`PR`
2297variable for each recipe. 2286variable for each recipe.
2298 2287
2299This class is enabled by default because it is inherited by the 2288This class is enabled by default because it is inherited by the
2300:ref:`package <ref-classes-package>` class. However, the OpenEmbedded 2289:ref:`ref-classes-package` class. However, the OpenEmbedded
2301build system will not enable the functionality of this class unless 2290build system will not enable the functionality of this class unless
2302:term:`PRSERV_HOST` has been set. 2291:term:`PRSERV_HOST` has been set.
2303 2292
@@ -2306,7 +2295,7 @@ build system will not enable the functionality of this class unless
2306``ptest`` 2295``ptest``
2307========= 2296=========
2308 2297
2309The :ref:`ptest <ref-classes-ptest>` class provides functionality for packaging and installing 2298The :ref:`ref-classes-ptest` class provides functionality for packaging and installing
2310runtime tests for recipes that build software that provides these tests. 2299runtime tests for recipes that build software that provides these tests.
2311 2300
2312This class is intended to be inherited by individual recipes. However, 2301This class is intended to be inherited by individual recipes. However,
@@ -2333,7 +2322,7 @@ section in the Yocto Project Development Tasks Manual.
2333``python3-dir`` 2322``python3-dir``
2334=============== 2323===============
2335 2324
2336The :ref:`python3-dir <ref-classes-python3-dir>` class provides the base version, location, and site 2325The :ref:`ref-classes-python3-dir` class provides the base version, location, and site
2337package location for Python 3. 2326package location for Python 3.
2338 2327
2339.. _ref-classes-python3native: 2328.. _ref-classes-python3native:
@@ -2341,7 +2330,7 @@ package location for Python 3.
2341``python3native`` 2330``python3native``
2342================= 2331=================
2343 2332
2344The :ref:`python3native <ref-classes-python3native>` class supports using the native version of Python 2333The :ref:`ref-classes-python3native` class supports using the native version of Python
23453 built by the build system rather than support of the version provided 23343 built by the build system rather than support of the version provided
2346by the build host. 2335by the build host.
2347 2336
@@ -2350,7 +2339,7 @@ by the build host.
2350``python3targetconfig`` 2339``python3targetconfig``
2351======================= 2340=======================
2352 2341
2353The :ref:`python3targetconfig <ref-classes-python3targetconfig>` class supports using the native version of Python 2342The :ref:`ref-classes-python3targetconfig` class supports using the native version of Python
23543 built by the build system rather than support of the version provided 23433 built by the build system rather than support of the version provided
2355by the build host, except that the configuration for the target machine 2344by the build host, except that the configuration for the target machine
2356is accessible (such as correct installation directories). This also adds a 2345is accessible (such as correct installation directories). This also adds a
@@ -2362,7 +2351,7 @@ in order to avoid unnecessarily lengthening builds.
2362``qemu`` 2351``qemu``
2363======== 2352========
2364 2353
2365The :ref:`qemu <ref-classes-qemu>` class provides functionality for recipes that either need 2354The :ref:`ref-classes-qemu` class provides functionality for recipes that either need
2366QEMU or test for the existence of QEMU. Typically, this class is used to 2355QEMU or test for the existence of QEMU. Typically, this class is used to
2367run programs for a target system on the build host using QEMU's 2356run programs for a target system on the build host using QEMU's
2368application emulation mode. 2357application emulation mode.
@@ -2372,7 +2361,7 @@ application emulation mode.
2372``recipe_sanity`` 2361``recipe_sanity``
2373================= 2362=================
2374 2363
2375The :ref:`recipe_sanity <ref-classes-recipe_sanity>` class checks for the presence of any host system 2364The :ref:`ref-classes-recipe_sanity` class checks for the presence of any host system
2376recipe prerequisites that might affect the build (e.g. variables that 2365recipe prerequisites that might affect the build (e.g. variables that
2377are set or software that is present). 2366are set or software that is present).
2378 2367
@@ -2381,19 +2370,18 @@ are set or software that is present).
2381``relocatable`` 2370``relocatable``
2382=============== 2371===============
2383 2372
2384The :ref:`relocatable <ref-classes-relocatable>` class enables relocation of binaries when they are 2373The :ref:`ref-classes-relocatable` class enables relocation of binaries when they are
2385installed into the sysroot. 2374installed into the sysroot.
2386 2375
2387This class makes use of the :ref:`chrpath <ref-classes-chrpath>` class 2376This class makes use of the :ref:`ref-classes-chrpath` class and is used by
2388and is used by both the :ref:`cross <ref-classes-cross>` and 2377both the :ref:`ref-classes-cross` and :ref:`ref-classes-native` classes.
2389:ref:`native <ref-classes-native>` classes.
2390 2378
2391.. _ref-classes-remove-libtool: 2379.. _ref-classes-remove-libtool:
2392 2380
2393``remove-libtool`` 2381``remove-libtool``
2394================== 2382==================
2395 2383
2396The :ref:`remove-libtool <ref-classes-remove-libtool>` class adds a post function to the 2384The :ref:`ref-classes-remove-libtool` class adds a post function to the
2397:ref:`ref-tasks-install` task to remove all ``.la`` files 2385:ref:`ref-tasks-install` task to remove all ``.la`` files
2398installed by ``libtool``. Removing these files results in them being 2386installed by ``libtool``. Removing these files results in them being
2399absent from both the sysroot and target packages. 2387absent from both the sysroot and target packages.
@@ -2405,14 +2393,14 @@ override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows::
2405 2393
2406.. note:: 2394.. note::
2407 2395
2408 The :ref:`remove-libtool <ref-classes-remove-libtool>` class is not enabled by default. 2396 The :ref:`ref-classes-remove-libtool` class is not enabled by default.
2409 2397
2410.. _ref-classes-report-error: 2398.. _ref-classes-report-error:
2411 2399
2412``report-error`` 2400``report-error``
2413================ 2401================
2414 2402
2415The :ref:`report-error <ref-classes-report-error>` class supports enabling the :ref:`error reporting 2403The :ref:`ref-classes-report-error` class supports enabling the :ref:`error reporting
2416tool <dev-manual/error-reporting-tool:using the error reporting tool>`", 2404tool <dev-manual/error-reporting-tool:using the error reporting tool>`",
2417which allows you to submit build error information to a central database. 2405which allows you to submit build error information to a central database.
2418 2406
@@ -2427,7 +2415,7 @@ are created and stored in
2427``rm_work`` 2415``rm_work``
2428=========== 2416===========
2429 2417
2430The :ref:`rm_work <ref-classes-rm-work>` class supports deletion of temporary workspace, which 2418The :ref:`ref-classes-rm-work` class supports deletion of temporary workspace, which
2431can ease your hard drive demands during builds. 2419can ease your hard drive demands during builds.
2432 2420
2433The OpenEmbedded build system can use a substantial amount of disk space 2421The OpenEmbedded build system can use a substantial amount of disk space
@@ -2436,19 +2424,18 @@ under the ``${TMPDIR}/work`` directory for each recipe. Once the build
2436system generates the packages for a recipe, the work files for that 2424system generates the packages for a recipe, the work files for that
2437recipe are no longer needed. However, by default, the build system 2425recipe are no longer needed. However, by default, the build system
2438preserves these files for inspection and possible debugging purposes. If 2426preserves these files for inspection and possible debugging purposes. If
2439you would rather have these files deleted to save disk space as the 2427you would rather have these files deleted to save disk space as the build
2440build progresses, you can enable :ref:`rm_work <ref-classes-rm-work>` by adding the following to 2428progresses, you can enable :ref:`ref-classes-rm-work` by adding the following to
2441your ``local.conf`` file, which is found in the :term:`Build Directory`:: 2429your ``local.conf`` file, which is found in the :term:`Build Directory`::
2442 2430
2443 INHERIT += "rm_work" 2431 INHERIT += "rm_work"
2444 2432
2445If you are 2433If you are modifying and building source code out of the work directory for a
2446modifying and building source code out of the work directory for a 2434recipe, enabling :ref:`ref-classes-rm-work` will potentially result in your
2447recipe, enabling :ref:`rm_work <ref-classes-rm-work>` will potentially result in your changes to 2435changes to the source being lost. To exclude some recipes from having their work
2448the source being lost. To exclude some recipes from having their work 2436directories deleted by :ref:`ref-classes-rm-work`, you can add the names of the
2449directories deleted by :ref:`rm_work <ref-classes-rm-work>`, you can add the names of the recipe 2437recipe or recipes you are working on to the :term:`RM_WORK_EXCLUDE` variable,
2450or recipes you are working on to the :term:`RM_WORK_EXCLUDE` variable, which 2438which can also be set in your ``local.conf`` file. Here is an example::
2451can also be set in your ``local.conf`` file. Here is an example::
2452 2439
2453 RM_WORK_EXCLUDE += "busybox glibc" 2440 RM_WORK_EXCLUDE += "busybox glibc"
2454 2441
@@ -2457,7 +2444,7 @@ can also be set in your ``local.conf`` file. Here is an example::
2457``rootfs*`` 2444``rootfs*``
2458=========== 2445===========
2459 2446
2460The :ref:`rootfs* <ref-classes-rootfs*>` classes support creating the root filesystem for an 2447The :ref:`ref-classes-rootfs*` classes support creating the root filesystem for an
2461image and consist of the following classes: 2448image and consist of the following classes:
2462 2449
2463- The :ref:`rootfs-postcommands <ref-classes-rootfs*>` class, which defines filesystem 2450- The :ref:`rootfs-postcommands <ref-classes-rootfs*>` class, which defines filesystem
@@ -2476,8 +2463,8 @@ image and consist of the following classes:
2476 on the build host directly into the root filesystem. 2463 on the build host directly into the root filesystem.
2477 2464
2478The root filesystem is created from packages using one of the 2465The root filesystem is created from packages using one of the
2479:ref:`rootfs*.bbclass <ref-classes-rootfs*>` files as determined by the 2466:ref:`ref-classes-rootfs*` files as determined by the :term:`PACKAGE_CLASSES`
2480:term:`PACKAGE_CLASSES` variable. 2467variable.
2481 2468
2482For information on how root filesystem images are created, see the 2469For information on how root filesystem images are created, see the
2483":ref:`overview-manual/concepts:image generation`" 2470":ref:`overview-manual/concepts:image generation`"
@@ -2488,7 +2475,7 @@ section in the Yocto Project Overview and Concepts Manual.
2488``sanity`` 2475``sanity``
2489========== 2476==========
2490 2477
2491The :ref:`sanity <ref-classes-sanity>` class checks to see if prerequisite software is present 2478The :ref:`ref-classes-sanity` class checks to see if prerequisite software is present
2492on the host system so that users can be notified of potential problems 2479on the host system so that users can be notified of potential problems
2493that might affect their build. The class also performs basic user 2480that might affect their build. The class also performs basic user
2494configuration checks from the ``local.conf`` configuration file to 2481configuration checks from the ``local.conf`` configuration file to
@@ -2500,17 +2487,17 @@ usually determines whether to include this class.
2500``scons`` 2487``scons``
2501========= 2488=========
2502 2489
2503The :ref:`scons <ref-classes-scons>` class supports recipes that need to build software that 2490The :ref:`ref-classes-scons` class supports recipes that need to build software
2504uses the SCons build system. You can use the 2491that uses the SCons build system. You can use the :term:`EXTRA_OESCONS`
2505:term:`EXTRA_OESCONS` variable to specify 2492variable to specify additional configuration options you want to pass SCons
2506additional configuration options you want to pass SCons command line. 2493command line.
2507 2494
2508.. _ref-classes-sdl: 2495.. _ref-classes-sdl:
2509 2496
2510``sdl`` 2497``sdl``
2511======= 2498=======
2512 2499
2513The :ref:`sdl <ref-classes-sdl>` class supports recipes that need to build software that uses 2500The :ref:`ref-classes-sdl` class supports recipes that need to build software that uses
2514the Simple DirectMedia Layer (SDL) library. 2501the Simple DirectMedia Layer (SDL) library.
2515 2502
2516.. _ref-classes-python_setuptools_build_meta: 2503.. _ref-classes-python_setuptools_build_meta:
@@ -2518,8 +2505,8 @@ the Simple DirectMedia Layer (SDL) library.
2518``python_setuptools_build_meta`` 2505``python_setuptools_build_meta``
2519================================ 2506================================
2520 2507
2521The :ref:`python_setuptools_build_meta <ref-classes-python_setuptools_build_meta>` class enables building Python modules which 2508The :ref:`ref-classes-python_setuptools_build_meta` class enables building
2522declare the 2509Python modules which declare the
2523`PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant 2510`PEP-517 <https://www.python.org/dev/peps/pep-0517/>`__ compliant
2524``setuptools.build_meta`` ``build-backend`` in the ``[build-system]`` 2511``setuptools.build_meta`` ``build-backend`` in the ``[build-system]``
2525section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__). 2512section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep-0518/>`__).
@@ -2527,21 +2514,22 @@ section of ``pyproject.toml`` (See `PEP-518 <https://www.python.org/dev/peps/pep
2527Python modules built with ``setuptools.build_meta`` can be pure Python or 2514Python modules built with ``setuptools.build_meta`` can be pure Python or
2528include ``C`` or ``Rust`` extensions). 2515include ``C`` or ``Rust`` extensions).
2529 2516
2530Internally this uses the :ref:`python_pep517 <ref-classes-python_pep517>` class. 2517Internally this uses the :ref:`ref-classes-python_pep517` class.
2531 2518
2532.. _ref-classes-setuptools3: 2519.. _ref-classes-setuptools3:
2533 2520
2534``setuptools3`` 2521``setuptools3``
2535=============== 2522===============
2536 2523
2537The :ref:`setuptools3 <ref-classes-setuptools3>` class supports Python version 3.x extensions that 2524The :ref:`ref-classes-setuptools3` class supports Python version 3.x extensions
2538use build systems based on ``setuptools`` (e.g. only have a ``setup.py`` and 2525that use build systems based on ``setuptools`` (e.g. only have a ``setup.py``
2539have not migrated to the official ``pyproject.toml`` format). If your recipe 2526and have not migrated to the official ``pyproject.toml`` format). If your recipe
2540uses these build systems, the recipe needs to inherit the :ref:`setuptools3 <ref-classes-setuptools3>` class. 2527uses these build systems, the recipe needs to inherit the
2528:ref:`ref-classes-setuptools3` class.
2541 2529
2542 .. note:: 2530 .. note::
2543 2531
2544 The :ref:`setuptools3 <ref-classes-setuptools3>` class :ref:`ref-tasks-compile` task now calls 2532 The :ref:`ref-classes-setuptools3` class :ref:`ref-tasks-compile` task now calls
2545 ``setup.py bdist_wheel`` to build the ``wheel`` binary archive format 2533 ``setup.py bdist_wheel`` to build the ``wheel`` binary archive format
2546 (See `PEP-427 <https://www.python.org/dev/peps/pep-0427/>`__). 2534 (See `PEP-427 <https://www.python.org/dev/peps/pep-0427/>`__).
2547 2535
@@ -2552,22 +2540,22 @@ uses these build systems, the recipe needs to inherit the :ref:`setuptools3 <ref
2552 2540
2553 .. note:: 2541 .. note::
2554 2542
2555 The :ref:`setuptools3 <ref-classes-setuptools3>` class :ref:`ref-tasks-install` task now installs the ``wheel`` 2543 The :ref:`ref-classes-setuptools3` class :ref:`ref-tasks-install` task now
2556 binary archive. In current versions of ``setuptools`` the legacy ``setup.py 2544 installs the ``wheel`` binary archive. In current versions of
2557 install`` method is deprecated. If the ``setup.py`` cannot be used with 2545 ``setuptools`` the legacy ``setup.py install`` method is deprecated. If
2558 wheels, for example it creates files outside of the Python module or 2546 the ``setup.py`` cannot be used with wheels, for example it creates files
2559 standard entry points, then :ref:`setuptools3_legacy 2547 outside of the Python module or standard entry points, then
2560 <ref-classes-setuptools3_legacy>` should be used. 2548 :ref:`ref-classes-setuptools3_legacy` should be used.
2561 2549
2562.. _ref-classes-setuptools3_legacy: 2550.. _ref-classes-setuptools3_legacy:
2563 2551
2564``setuptools3_legacy`` 2552``setuptools3_legacy``
2565====================== 2553======================
2566 2554
2567The :ref:`setuptools3_legacy <ref-classes-setuptools3_legacy>` class supports 2555The :ref:`ref-classes-setuptools3_legacy` class supports
2568Python version 3.x extensions that use build systems based on ``setuptools`` 2556Python version 3.x extensions that use build systems based on ``setuptools``
2569(e.g. only have a ``setup.py`` and have not migrated to the official 2557(e.g. only have a ``setup.py`` and have not migrated to the official
2570``pyproject.toml`` format). Unlike :ref:`setuptools3 <ref-classes-setuptools3>`, 2558``pyproject.toml`` format). Unlike :ref:`ref-classes-setuptools3`,
2571this uses the traditional ``setup.py`` ``build`` and ``install`` commands and 2559this uses the traditional ``setup.py`` ``build`` and ``install`` commands and
2572not wheels. This use of ``setuptools`` like this is 2560not wheels. This use of ``setuptools`` like this is
2573`deprecated <https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v5830>`__ 2561`deprecated <https://github.com/pypa/setuptools/blob/main/CHANGES.rst#v5830>`__
@@ -2578,36 +2566,35 @@ but still relatively common.
2578``setuptools3-base`` 2566``setuptools3-base``
2579==================== 2567====================
2580 2568
2581The :ref:`setuptools3-base <ref-classes-setuptools3-base>` class provides a reusable base for other classes 2569The :ref:`ref-classes-setuptools3-base` class provides a reusable base for
2582that support building Python version 3.x extensions. If you need 2570other classes that support building Python version 3.x extensions. If you need
2583functionality that is not provided by the :ref:`setuptools3 <ref-classes-setuptools3>` class, you may 2571functionality that is not provided by the :ref:`ref-classes-setuptools3` class,
2584want to ``inherit setuptools3-base``. Some recipes do not need the tasks 2572you may want to ``inherit setuptools3-base``. Some recipes do not need the tasks
2585in the :ref:`setuptools3 <ref-classes-setuptools3>` class and inherit this class instead. 2573in the :ref:`ref-classes-setuptools3` class and inherit this class instead.
2586 2574
2587.. _ref-classes-sign_rpm: 2575.. _ref-classes-sign_rpm:
2588 2576
2589``sign_rpm`` 2577``sign_rpm``
2590============ 2578============
2591 2579
2592The :ref:`sign_rpm <ref-classes-sign_rpm>` class supports generating signed RPM packages. 2580The :ref:`ref-classes-sign_rpm` class supports generating signed RPM packages.
2593 2581
2594.. _ref-classes-siteconfig: 2582.. _ref-classes-siteconfig:
2595 2583
2596``siteconfig`` 2584``siteconfig``
2597============== 2585==============
2598 2586
2599The :ref:`siteconfig <ref-classes-siteconfig>` class provides functionality for handling site 2587The :ref:`ref-classes-siteconfig` class provides functionality for handling site
2600configuration. The class is used by the 2588configuration. The class is used by the :ref:`ref-classes-autotools` class to
2601:ref:`autotools <ref-classes-autotools>` class to accelerate the 2589accelerate the :ref:`ref-tasks-configure` task.
2602:ref:`ref-tasks-configure` task.
2603 2590
2604.. _ref-classes-siteinfo: 2591.. _ref-classes-siteinfo:
2605 2592
2606``siteinfo`` 2593``siteinfo``
2607============ 2594============
2608 2595
2609The :ref:`siteinfo <ref-classes-siteinfo>` class provides information about the targets that might 2596The :ref:`ref-classes-siteinfo` class provides information about the targets
2610be needed by other classes or recipes. 2597that might be needed by other classes or recipes.
2611 2598
2612As an example, consider Autotools, which can require tests that must 2599As an example, consider Autotools, which can require tests that must
2613execute on the target hardware. Since this is not possible in general 2600execute on the target hardware. Since this is not possible in general
@@ -2627,9 +2614,9 @@ The class also provides variables like :term:`SITEINFO_ENDIANNESS` and
2627``sstate`` 2614``sstate``
2628========== 2615==========
2629 2616
2630The :ref:`sstate <ref-classes-sstate>` class provides support for Shared State (sstate). By 2617The :ref:`ref-classes-sstate` class provides support for Shared State (sstate).
2631default, the class is enabled through the 2618By default, the class is enabled through the :term:`INHERIT_DISTRO` variable's
2632:term:`INHERIT_DISTRO` variable's default value. 2619default value.
2633 2620
2634For more information on sstate, see the 2621For more information on sstate, see the
2635":ref:`overview-manual/concepts:shared state cache`" 2622":ref:`overview-manual/concepts:shared state cache`"
@@ -2640,7 +2627,7 @@ section in the Yocto Project Overview and Concepts Manual.
2640``staging`` 2627``staging``
2641=========== 2628===========
2642 2629
2643The :ref:`staging <ref-classes-staging>` class installs files into individual recipe work 2630The :ref:`ref-classes-staging` class installs files into individual recipe work
2644directories for sysroots. The class contains the following key tasks: 2631directories for sysroots. The class contains the following key tasks:
2645 2632
2646- The :ref:`ref-tasks-populate_sysroot` task, 2633- The :ref:`ref-tasks-populate_sysroot` task,
@@ -2653,8 +2640,8 @@ directories for sysroots. The class contains the following key tasks:
2653 installs the files into the individual recipe work directories (i.e. 2640 installs the files into the individual recipe work directories (i.e.
2654 :term:`WORKDIR`). 2641 :term:`WORKDIR`).
2655 2642
2656The code in the :ref:`staging <ref-classes-staging>` class is complex and basically works in two 2643The code in the :ref:`ref-classes-staging` class is complex and basically works
2657stages: 2644in two stages:
2658 2645
2659- *Stage One:* The first stage addresses recipes that have files they 2646- *Stage One:* The first stage addresses recipes that have files they
2660 want to share with other recipes that have dependencies on the 2647 want to share with other recipes that have dependencies on the
@@ -2727,8 +2714,7 @@ stages:
2727 dependencies traversed or installed. The same sstate dependency code 2714 dependencies traversed or installed. The same sstate dependency code
2728 is used so that builds should be identical regardless of whether 2715 is used so that builds should be identical regardless of whether
2729 sstate was used or not. For a closer look, see the 2716 sstate was used or not. For a closer look, see the
2730 ``setscene_depvalid()`` function in the 2717 ``setscene_depvalid()`` function in the :ref:`ref-classes-sstate` class.
2731 :ref:`sstate <ref-classes-sstate>` class.
2732 2718
2733 The build system is careful to maintain manifests of the files it 2719 The build system is careful to maintain manifests of the files it
2734 installs so that any given dependency can be installed as needed. The 2720 installs so that any given dependency can be installed as needed. The
@@ -2740,8 +2726,8 @@ stages:
2740``syslinux`` 2726``syslinux``
2741============ 2727============
2742 2728
2743The :ref:`syslinux <ref-classes-syslinux>` class provides syslinux-specific functions for building 2729The :ref:`ref-classes-syslinux` class provides syslinux-specific functions for
2744bootable images. 2730building bootable images.
2745 2731
2746The class supports the following variables: 2732The class supports the following variables:
2747 2733
@@ -2783,8 +2769,8 @@ The class supports the following variables:
2783``systemd`` 2769``systemd``
2784=========== 2770===========
2785 2771
2786The :ref:`systemd <ref-classes-systemd>` class provides support for recipes that install systemd 2772The :ref:`ref-classes-systemd` class provides support for recipes that install
2787unit files. 2773systemd unit files.
2788 2774
2789The functionality for this class is disabled unless you have "systemd" 2775The functionality for this class is disabled unless you have "systemd"
2790in :term:`DISTRO_FEATURES`. 2776in :term:`DISTRO_FEATURES`.
@@ -2809,7 +2795,7 @@ Services are set up to start on boot automatically
2809unless you have set 2795unless you have set
2810:term:`SYSTEMD_AUTO_ENABLE` to "disable". 2796:term:`SYSTEMD_AUTO_ENABLE` to "disable".
2811 2797
2812For more information on :ref:`systemd <ref-classes-systemd>`, see the 2798For more information on :ref:`ref-classes-systemd`, see the
2813":ref:`dev-manual/init-manager:selecting an initialization manager`" 2799":ref:`dev-manual/init-manager:selecting an initialization manager`"
2814section in the Yocto Project Development Tasks Manual. 2800section in the Yocto Project Development Tasks Manual.
2815 2801
@@ -2818,18 +2804,18 @@ section in the Yocto Project Development Tasks Manual.
2818``systemd-boot`` 2804``systemd-boot``
2819================ 2805================
2820 2806
2821The :ref:`systemd-boot <ref-classes-systemd-boot>` class provides functions specific to the 2807The :ref:`ref-classes-systemd-boot` class provides functions specific to the
2822systemd-boot bootloader for building bootable images. This is an 2808systemd-boot bootloader for building bootable images. This is an
2823internal class and is not intended to be used directly. 2809internal class and is not intended to be used directly.
2824 2810
2825.. note:: 2811.. note::
2826 2812
2827 The :ref:`systemd-boot <ref-classes-systemd-boot>` class is a result from merging the ``gummiboot`` class 2813 The :ref:`ref-classes-systemd-boot` class is a result from merging the ``gummiboot`` class
2828 used in previous Yocto Project releases with the ``systemd`` project. 2814 used in previous Yocto Project releases with the ``systemd`` project.
2829 2815
2830Set the :term:`EFI_PROVIDER` variable to 2816Set the :term:`EFI_PROVIDER` variable to ":ref:`ref-classes-systemd-boot`" to
2831":ref:`systemd-boot <ref-classes-systemd-boot>`" to use this class. Doing so creates a standalone EFI 2817use this class. Doing so creates a standalone EFI bootloader that is not
2832bootloader that is not dependent on systemd. 2818dependent on systemd.
2833 2819
2834For information on more variables used and supported in this class, see 2820For information on more variables used and supported in this class, see
2835the :term:`SYSTEMD_BOOT_CFG`, 2821the :term:`SYSTEMD_BOOT_CFG`,
@@ -2845,24 +2831,22 @@ for more information.
2845``terminal`` 2831``terminal``
2846============ 2832============
2847 2833
2848The :ref:`terminal <ref-classes-terminal>` class provides support for starting a terminal session. 2834The :ref:`ref-classes-terminal` class provides support for starting a terminal
2849The :term:`OE_TERMINAL` variable controls which 2835session. The :term:`OE_TERMINAL` variable controls which terminal emulator is
2850terminal emulator is used for the session. 2836used for the session.
2851 2837
2852Other classes use the :ref:`terminal <ref-classes-terminal>` class anywhere a separate terminal 2838Other classes use the :ref:`ref-classes-terminal` class anywhere a separate
2853session needs to be started. For example, the 2839terminal session needs to be started. For example, the :ref:`ref-classes-patch`
2854:ref:`patch <ref-classes-patch>` class assuming 2840class assuming :term:`PATCHRESOLVE` is set to "user", the
2855:term:`PATCHRESOLVE` is set to "user", the 2841:ref:`ref-classes-cml1` class, and the :ref:`ref-classes-devshell` class all
2856:ref:`cml1 <ref-classes-cml1>` class, and the 2842use the :ref:`ref-classes-terminal` class.
2857:ref:`devshell <ref-classes-devshell>` class all use the :ref:`terminal <ref-classes-terminal>`
2858class.
2859 2843
2860.. _ref-classes-testimage: 2844.. _ref-classes-testimage:
2861 2845
2862``testimage`` 2846``testimage``
2863============= 2847=============
2864 2848
2865The :ref:`testimage <ref-classes-testimage>` class supports running automated tests against 2849The :ref:`ref-classes-testimage` class supports running automated tests against
2866images using QEMU and on actual hardware. The classes handle loading the 2850images using QEMU and on actual hardware. The classes handle loading the
2867tests and starting the image. To use the classes, you need to perform 2851tests and starting the image. To use the classes, you need to perform
2868steps to set up the environment. 2852steps to set up the environment.
@@ -2874,7 +2858,7 @@ To enable this class, add the following to your configuration::
2874The tests are commands that run on the target system over ``ssh``. Each 2858The tests are commands that run on the target system over ``ssh``. Each
2875test is written in Python and makes use of the ``unittest`` module. 2859test is written in Python and makes use of the ``unittest`` module.
2876 2860
2877The :ref:`testimage <ref-classes-testimage>` class runs tests on an image when called using the 2861The :ref:`ref-classes-testimage` class runs tests on an image when called using the
2878following:: 2862following::
2879 2863
2880 $ bitbake -c testimage image 2864 $ bitbake -c testimage image
@@ -2894,7 +2878,7 @@ section in the Yocto Project Development Tasks Manual.
2894=========== 2878===========
2895 2879
2896This class supports running automated tests against software development 2880This class supports running automated tests against software development
2897kits (SDKs). The :ref:`testsdk <ref-classes-testsdk>` class runs tests on an SDK when called 2881kits (SDKs). The :ref:`ref-classes-testsdk` class runs tests on an SDK when called
2898using the following:: 2882using the following::
2899 2883
2900 $ bitbake -c testsdk image 2884 $ bitbake -c testsdk image
@@ -2902,7 +2886,7 @@ using the following::
2902.. note:: 2886.. note::
2903 2887
2904 Best practices include using :term:`IMAGE_CLASSES` rather than 2888 Best practices include using :term:`IMAGE_CLASSES` rather than
2905 :term:`INHERIT` to inherit the :ref:`testsdk <ref-classes-testsdk>` class for automated SDK 2889 :term:`INHERIT` to inherit the :ref:`ref-classes-testsdk` class for automated SDK
2906 testing. 2890 testing.
2907 2891
2908.. _ref-classes-texinfo: 2892.. _ref-classes-texinfo:
@@ -2928,7 +2912,7 @@ host system.
2928``toaster`` 2912``toaster``
2929=========== 2913===========
2930 2914
2931The :ref:`toaster <ref-classes-toaster>` class collects information about packages and images and 2915The :ref:`ref-classes-toaster` class collects information about packages and images and
2932sends them as events that the BitBake user interface can receive. The 2916sends them as events that the BitBake user interface can receive. The
2933class is enabled when the Toaster user interface is running. 2917class is enabled when the Toaster user interface is running.
2934 2918
@@ -2939,7 +2923,7 @@ This class is not intended to be used directly.
2939``toolchain-scripts`` 2923``toolchain-scripts``
2940===================== 2924=====================
2941 2925
2942The :ref:`toolchain-scripts <ref-classes-toolchain-scripts>` class provides the scripts used for setting up 2926The :ref:`ref-classes-toolchain-scripts` class provides the scripts used for setting up
2943the environment for installed SDKs. 2927the environment for installed SDKs.
2944 2928
2945.. _ref-classes-typecheck: 2929.. _ref-classes-typecheck:
@@ -2947,7 +2931,7 @@ the environment for installed SDKs.
2947``typecheck`` 2931``typecheck``
2948============= 2932=============
2949 2933
2950The :ref:`typecheck <ref-classes-typecheck>` class provides support for validating the values of 2934The :ref:`ref-classes-typecheck` class provides support for validating the values of
2951variables set at the configuration level against their defined types. 2935variables set at the configuration level against their defined types.
2952The OpenEmbedded build system allows you to define the type of a 2936The OpenEmbedded build system allows you to define the type of a
2953variable using the "type" varflag. Here is an example:: 2937variable using the "type" varflag. Here is an example::
@@ -2959,7 +2943,7 @@ variable using the "type" varflag. Here is an example::
2959``uboot-config`` 2943``uboot-config``
2960================ 2944================
2961 2945
2962The :ref:`uboot-config <ref-classes-uboot-config>` class provides support for U-Boot configuration for 2946The :ref:`ref-classes-uboot-config` class provides support for U-Boot configuration for
2963a machine. Specify the machine in your recipe as follows:: 2947a machine. Specify the machine in your recipe as follows::
2964 2948
2965 UBOOT_CONFIG ??= <default> 2949 UBOOT_CONFIG ??= <default>
@@ -2990,7 +2974,7 @@ yourself, publish the resulting tarball (e.g. via HTTP) and set
2990``UNINATIVE_URL`` and ``UNINATIVE_CHECKSUM`` appropriately. For an 2974``UNINATIVE_URL`` and ``UNINATIVE_CHECKSUM`` appropriately. For an
2991example, see the ``meta/conf/distro/include/yocto-uninative.inc``. 2975example, see the ``meta/conf/distro/include/yocto-uninative.inc``.
2992 2976
2993The :ref:`uninative <ref-classes-uninative>` class is also used unconditionally by the extensible 2977The :ref:`ref-classes-uninative` class is also used unconditionally by the extensible
2994SDK. When building the extensible SDK, ``uninative-tarball`` is built 2978SDK. When building the extensible SDK, ``uninative-tarball`` is built
2995and the resulting tarball is included within the SDK. 2979and the resulting tarball is included within the SDK.
2996 2980
@@ -2999,12 +2983,12 @@ and the resulting tarball is included within the SDK.
2999``update-alternatives`` 2983``update-alternatives``
3000======================= 2984=======================
3001 2985
3002The :ref:`update-alternatives <ref-classes-update-alternatives>` class helps the alternatives system when 2986The :ref:`ref-classes-update-alternatives` class helps the alternatives system when
3003multiple sources provide the same command. This situation occurs when 2987multiple sources provide the same command. This situation occurs when
3004several programs that have the same or similar function are installed 2988several programs that have the same or similar function are installed
3005with the same name. For example, the ``ar`` command is available from 2989with the same name. For example, the ``ar`` command is available from
3006the ``busybox``, ``binutils`` and ``elfutils`` packages. The 2990the ``busybox``, ``binutils`` and ``elfutils`` packages. The
3007:ref:`update-alternatives <ref-classes-update-alternatives>` class handles renaming the binaries so that 2991:ref:`ref-classes-update-alternatives` class handles renaming the binaries so that
3008multiple packages can be installed without conflicts. The ``ar`` command 2992multiple packages can be installed without conflicts. The ``ar`` command
3009still works regardless of which packages are installed or subsequently 2993still works regardless of which packages are installed or subsequently
3010removed. The class renames the conflicting binary in each package and 2994removed. The class renames the conflicting binary in each package and
@@ -3037,7 +3021,7 @@ file.
3037``update-rc.d`` 3021``update-rc.d``
3038=============== 3022===============
3039 3023
3040The :ref:`update-rc.d <ref-classes-update-rc.d>` class uses ``update-rc.d`` to safely install an 3024The :ref:`ref-classes-update-rc.d` class uses ``update-rc.d`` to safely install an
3041initialization script on behalf of the package. The OpenEmbedded build 3025initialization script on behalf of the package. The OpenEmbedded build
3042system takes care of details such as making sure the script is stopped 3026system takes care of details such as making sure the script is stopped
3043before a package is removed and started when the package is installed. 3027before a package is removed and started when the package is installed.
@@ -3085,13 +3069,11 @@ set static values, the OpenEmbedded build system looks in
3085:term:`BBPATH` for ``files/passwd`` and ``files/group`` 3069:term:`BBPATH` for ``files/passwd`` and ``files/group``
3086files for the values. 3070files for the values.
3087 3071
3088To use static ``uid`` and ``gid`` values, you need to set some 3072To use static ``uid`` and ``gid`` values, you need to set some variables. See
3089variables. See the :term:`USERADDEXTENSION`, 3073the :term:`USERADDEXTENSION`, :term:`USERADD_UID_TABLES`,
3090:term:`USERADD_UID_TABLES`, 3074:term:`USERADD_GID_TABLES`, and :term:`USERADD_ERROR_DYNAMIC` variables.
3091:term:`USERADD_GID_TABLES`, and 3075You can also see the :ref:`ref-classes-useradd` class for additional
3092:term:`USERADD_ERROR_DYNAMIC` variables. 3076information.
3093You can also see the :ref:`useradd <ref-classes-useradd>` class for
3094additional information.
3095 3077
3096.. note:: 3078.. note::
3097 3079
@@ -3106,32 +3088,31 @@ additional information.
3106``utility-tasks`` 3088``utility-tasks``
3107================= 3089=================
3108 3090
3109The :ref:`utility-tasks <ref-classes-utility-tasks>` class provides support for various "utility" type 3091The :ref:`ref-classes-utility-tasks` class provides support for various
3110tasks that are applicable to all recipes, such as 3092"utility" type tasks that are applicable to all recipes, such as
3111:ref:`ref-tasks-clean` and 3093:ref:`ref-tasks-clean` and :ref:`ref-tasks-listtasks`.
3112:ref:`ref-tasks-listtasks`.
3113 3094
3114This class is enabled by default because it is inherited by the 3095This class is enabled by default because it is inherited by the
3115:ref:`base <ref-classes-base>` class. 3096:ref:`ref-classes-base` class.
3116 3097
3117.. _ref-classes-utils: 3098.. _ref-classes-utils:
3118 3099
3119``utils`` 3100``utils``
3120========= 3101=========
3121 3102
3122The :ref:`utils <ref-classes-utils>` class provides some useful Python functions that are 3103The :ref:`ref-classes-utils` class provides some useful Python functions that are
3123typically used in inline Python expressions (e.g. ``${@...}``). One 3104typically used in inline Python expressions (e.g. ``${@...}``). One
3124example use is for ``bb.utils.contains()``. 3105example use is for ``bb.utils.contains()``.
3125 3106
3126This class is enabled by default because it is inherited by the 3107This class is enabled by default because it is inherited by the
3127:ref:`base <ref-classes-base>` class. 3108:ref:`ref-classes-base` class.
3128 3109
3129.. _ref-classes-vala: 3110.. _ref-classes-vala:
3130 3111
3131``vala`` 3112``vala``
3132======== 3113========
3133 3114
3134The :ref:`vala <ref-classes-vala>` class supports recipes that need to build software written 3115The :ref:`ref-classes-vala` class supports recipes that need to build software written
3135using the Vala programming language. 3116using the Vala programming language.
3136 3117
3137.. _ref-classes-waf: 3118.. _ref-classes-waf:
@@ -3139,7 +3120,7 @@ using the Vala programming language.
3139``waf`` 3120``waf``
3140======= 3121=======
3141 3122
3142The :ref:`waf <ref-classes-waf>` class supports recipes that need to build software that uses 3123The :ref:`ref-classes-waf` class supports recipes that need to build software that uses
3143the Waf build system. You can use the 3124the Waf build system. You can use the
3144:term:`EXTRA_OECONF` or 3125:term:`EXTRA_OECONF` or
3145:term:`PACKAGECONFIG_CONFARGS` variables 3126:term:`PACKAGECONFIG_CONFARGS` variables