summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/ref-classes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/ref-classes.rst')
-rw-r--r--documentation/ref-manual/ref-classes.rst516
1 files changed, 258 insertions, 258 deletions
diff --git a/documentation/ref-manual/ref-classes.rst b/documentation/ref-manual/ref-classes.rst
index fdfd110ae7..1685483363 100644
--- a/documentation/ref-manual/ref-classes.rst
+++ b/documentation/ref-manual/ref-classes.rst
@@ -11,14 +11,14 @@ inherits a class it is enough to enable its features. There are cases,
11however, where in the recipe you might need to set variables or override 11however, where in the recipe you might need to set variables or override
12some default behavior. 12some default behavior.
13 13
14Any `Metadata <#metadata>`__ usually found in a recipe can also be 14Any :term:`Metadata` usually found in a recipe can also be
15placed in a class file. Class files are identified by the extension 15placed in a class file. Class files are identified by the extension
16``.bbclass`` and are usually placed in a ``classes/`` directory beneath 16``.bbclass`` and are usually placed in a ``classes/`` directory beneath
17the ``meta*/`` directory found in the `Source 17the ``meta*/`` directory found in the `Source
18Directory <#source-directory>`__. Class files can also be pointed to by 18Directory <#source-directory>`__. Class files can also be pointed to by
19```BUILDDIR`` <#var-BUILDDIR>`__ (e.g. ``build/``) in the same way as 19:term:`BUILDDIR` (e.g. ``build/``) in the same way as
20``.conf`` files in the ``conf`` directory. Class files are searched for 20``.conf`` files in the ``conf`` directory. Class files are searched for
21in ```BBPATH`` <#var-BBPATH>`__ using the same method by which ``.conf`` 21in :term:`BBPATH` using the same method by which ``.conf``
22files are searched. 22files are searched.
23 23
24This chapter discusses only the most useful and important classes. Other 24This chapter discusses only the most useful and important classes. Other
@@ -41,8 +41,8 @@ splitting out of debug symbols during packaging).
41 41
42 Unlike some distro recipes (e.g. Debian), OpenEmbedded recipes that 42 Unlike some distro recipes (e.g. Debian), OpenEmbedded recipes that
43 produce packages that depend on tunings through use of the 43 produce packages that depend on tunings through use of the
44 ```RDEPENDS`` <#var-RDEPENDS>`__ and 44 :term:`RDEPENDS` and
45 ```TUNE_PKGARCH`` <#var-TUNE_PKGARCH>`__ variables, should never be 45 :term:`TUNE_PKGARCH` variables, should never be
46 configured for all architectures using ``allarch``. This is the case 46 configured for all architectures using ``allarch``. This is the case
47 even if the recipes do not produce architecture-specific output. 47 even if the recipes do not produce architecture-specific output.
48 48
@@ -52,8 +52,8 @@ splitting out of debug symbols during packaging).
52 Additionally, unnecessary rebuilds occur every time an image for a 52 Additionally, unnecessary rebuilds occur every time an image for a
53 different ``MACHINE`` is built even when the recipe never changes. 53 different ``MACHINE`` is built even when the recipe never changes.
54 54
55By default, all recipes inherit the ```base`` <#ref-classes-base>`__ and 55By default, all recipes inherit the :ref:`base <ref-classes-base>` and
56```package`` <#ref-classes-package>`__ classes, which enable 56:ref:`package <ref-classes-package>` classes, which enable
57functionality needed for recipes that produce executable output. If your 57functionality needed for recipes that produce executable output. If your
58recipe, for example, only produces packages that contain configuration 58recipe, for example, only produces packages that contain configuration
59files, media files, or scripts (e.g. Python and Perl), then it should 59files, media files, or scripts (e.g. Python and Perl), then it should
@@ -71,7 +71,7 @@ For more details on the source archiver, see the "`Maintaining Open
71Source License Compliance During Your Product's 71Source License Compliance During Your Product's
72Lifecycle <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__" 72Lifecycle <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__"
73section in the Yocto Project Development Tasks Manual. You can also see 73section in the Yocto Project Development Tasks Manual. You can also see
74the ```ARCHIVER_MODE`` <#var-ARCHIVER_MODE>`__ variable for information 74the :term:`ARCHIVER_MODE` variable for information
75about the variable flags (varflags) that help control archive creation. 75about the variable flags (varflags) that help control archive creation.
76 76
77.. _ref-classes-autotools: 77.. _ref-classes-autotools:
@@ -96,8 +96,8 @@ By default, the ``autotools*`` classes use out-of-tree builds (i.e.
96If the software being built by a recipe does not support using 96If the software being built by a recipe does not support using
97out-of-tree builds, you should have the recipe inherit the 97out-of-tree builds, you should have the recipe inherit the
98``autotools-brokensep`` class. The ``autotools-brokensep`` class behaves 98``autotools-brokensep`` class. The ``autotools-brokensep`` class behaves
99the same as the ``autotools`` class but builds with ```B`` <#var-B>`__ 99the same as the ``autotools`` class but builds with :term:`B`
100== ```S`` <#var-S>`__. This method is useful when out-of-tree build 100== :term:`S`. This method is useful when out-of-tree build
101support is either not present or is broken. 101support is either not present or is broken.
102 102
103.. note:: 103.. note::
@@ -108,19 +108,19 @@ support is either not present or is broken.
108It's useful to have some idea of how the tasks defined by the 108It's useful to have some idea of how the tasks defined by the
109``autotools*`` classes work and what they do behind the scenes. 109``autotools*`` classes work and what they do behind the scenes.
110 110
111- ```do_configure`` <#ref-tasks-configure>`__ - Regenerates the 111- :ref:`ref-tasks-configure` - Regenerates the
112 configure script (using ``autoreconf``) and then launches it with a 112 configure script (using ``autoreconf``) and then launches it with a
113 standard set of arguments used during cross-compilation. You can pass 113 standard set of arguments used during cross-compilation. You can pass
114 additional parameters to ``configure`` through the ``EXTRA_OECONF`` 114 additional parameters to ``configure`` through the ``EXTRA_OECONF``
115 or ```PACKAGECONFIG_CONFARGS`` <#var-PACKAGECONFIG_CONFARGS>`__ 115 or :term:`PACKAGECONFIG_CONFARGS`
116 variables. 116 variables.
117 117
118- ```do_compile`` <#ref-tasks-compile>`__ - Runs ``make`` with 118- :ref:`ref-tasks-compile` - Runs ``make`` with
119 arguments that specify the compiler and linker. You can pass 119 arguments that specify the compiler and linker. You can pass
120 additional arguments through the ``EXTRA_OEMAKE`` variable. 120 additional arguments through the ``EXTRA_OEMAKE`` variable.
121 121
122- ```do_install`` <#ref-tasks-install>`__ - Runs ``make install`` and 122- :ref:`ref-tasks-install` - Runs ``make install`` and
123 passes in ``${``\ ```D`` <#var-D>`__\ ``}`` as ``DESTDIR``. 123 passes in ``${``\ :term:`D`\ ``}`` as ``DESTDIR``.
124 124
125.. _ref-classes-base: 125.. _ref-classes-base:
126 126
@@ -133,12 +133,12 @@ tasks such as fetching, unpacking, configuring (empty by default),
133compiling (runs any ``Makefile`` present), installing (empty by default) 133compiling (runs any ``Makefile`` present), installing (empty by default)
134and packaging (empty by default). These classes are often overridden or 134and packaging (empty by default). These classes are often overridden or
135extended by other classes such as the 135extended by other classes such as the
136```autotools`` <#ref-classes-autotools>`__ class or the 136:ref:`autotools <ref-classes-autotools>` class or the
137```package`` <#ref-classes-package>`__ class. 137:ref:`package <ref-classes-package>` class.
138 138
139The class also contains some commonly used functions such as 139The class also contains some commonly used functions such as
140``oe_runmake``, which runs ``make`` with the arguments specified in 140``oe_runmake``, which runs ``make`` with the arguments specified in
141```EXTRA_OEMAKE`` <#var-EXTRA_OEMAKE>`__ variable as well as the 141:term:`EXTRA_OEMAKE` variable as well as the
142arguments passed directly to ``oe_runmake``. 142arguments passed directly to ``oe_runmake``.
143 143
144.. _ref-classes-bash-completion: 144.. _ref-classes-bash-completion:
@@ -201,7 +201,7 @@ the ``sysroots/`` directory. Inheriting this class results in all paths
201in these scripts being changed to point into the ``sysroots/`` directory 201in these scripts being changed to point into the ``sysroots/`` directory
202so that all builds that use the script use the correct directories for 202so that all builds that use the script use the correct directories for
203the cross compiling layout. See the 203the cross compiling layout. See the
204```BINCONFIG_GLOB`` <#var-BINCONFIG_GLOB>`__ variable for more 204:term:`BINCONFIG_GLOB` variable for more
205information. 205information.
206 206
207.. _ref-classes-binconfig-disabled: 207.. _ref-classes-binconfig-disabled:
@@ -209,11 +209,11 @@ information.
209``binconfig-disabled.bbclass`` 209``binconfig-disabled.bbclass``
210============================== 210==============================
211 211
212An alternative version of the ```binconfig`` <#ref-classes-binconfig>`__ 212An alternative version of the :ref:`binconfig <ref-classes-binconfig>`
213class, which disables binary configuration scripts by making them return 213class, which disables binary configuration scripts by making them return
214an error in favor of using ``pkg-config`` to query the information. The 214an error in favor of using ``pkg-config`` to query the information. The
215scripts to be disabled should be specified using the 215scripts to be disabled should be specified using the
216```BINCONFIG`` <#var-BINCONFIG>`__ variable within the recipe inheriting 216:term:`BINCONFIG` variable within the recipe inheriting
217the class. 217the class.
218 218
219.. _ref-classes-blacklist: 219.. _ref-classes-blacklist:
@@ -223,8 +223,8 @@ the class.
223 223
224The ``blacklist`` class prevents the OpenEmbedded build system from 224The ``blacklist`` class prevents the OpenEmbedded build system from
225building specific recipes (blacklists them). To use this class, inherit 225building specific recipes (blacklists them). To use this class, inherit
226the class globally and set ```PNBLACKLIST`` <#var-PNBLACKLIST>`__ for 226the class globally and set :term:`PNBLACKLIST` for
227each recipe you wish to blacklist. Specify the ```PN`` <#var-PN>`__ 227each recipe you wish to blacklist. Specify the :term:`PN`
228value as a variable flag (varflag) and provide a reason, which is 228value as a variable flag (varflag) and provide a reason, which is
229reported, if the package is requested to be built as the value. For 229reported, if the package is requested to be built as the value. For
230example, if you want to blacklist a recipe called "exoticware", you add 230example, if you want to blacklist a recipe called "exoticware", you add
@@ -253,14 +253,14 @@ The ``buildstats`` class records performance statistics about each task
253executed during the build (e.g. elapsed time, CPU usage, and I/O usage). 253executed during the build (e.g. elapsed time, CPU usage, and I/O usage).
254 254
255When you use this class, the output goes into the 255When you use this class, the output goes into the
256```BUILDSTATS_BASE`` <#var-BUILDSTATS_BASE>`__ directory, which defaults 256:term:`BUILDSTATS_BASE` directory, which defaults
257to ``${TMPDIR}/buildstats/``. You can analyze the elapsed time using 257to ``${TMPDIR}/buildstats/``. You can analyze the elapsed time using
258``scripts/pybootchartgui/pybootchartgui.py``, which produces a cascading 258``scripts/pybootchartgui/pybootchartgui.py``, which produces a cascading
259chart of the entire build process and can be useful for highlighting 259chart of the entire build process and can be useful for highlighting
260bottlenecks. 260bottlenecks.
261 261
262Collecting build statistics is enabled by default through the 262Collecting build statistics is enabled by default through the
263```USER_CLASSES`` <#var-USER_CLASSES>`__ variable from your 263:term:`USER_CLASSES` variable from your
264``local.conf`` file. Consequently, you do not have to do anything to 264``local.conf`` file. Consequently, you do not have to do anything to
265enable the class. However, if you want to disable the class, simply 265enable the class. However, if you want to disable the class, simply
266remove "buildstats" from the ``USER_CLASSES`` list. 266remove "buildstats" from the ``USER_CLASSES`` list.
@@ -272,7 +272,7 @@ remove "buildstats" from the ``USER_CLASSES`` list.
272 272
273When inherited globally, prints statistics at the end of the build on 273When inherited globally, prints statistics at the end of the build on
274sstate re-use. In order to function, this class requires the 274sstate re-use. In order to function, this class requires the
275```buildstats`` <#ref-classes-buildstats>`__ class be enabled. 275:ref:`buildstats <ref-classes-buildstats>` class be enabled.
276 276
277.. _ref-classes-ccache: 277.. _ref-classes-ccache:
278 278
@@ -318,7 +318,7 @@ and other common items used by Clutter and related recipes.
318 318
319The ``cmake`` class allows for recipes that need to build software using 319The ``cmake`` class allows for recipes that need to build software using
320the `CMake <https://cmake.org/overview/>`__ build system. You can use 320the `CMake <https://cmake.org/overview/>`__ build system. You can use
321the ```EXTRA_OECMAKE`` <#var-EXTRA_OECMAKE>`__ variable to specify 321the :term:`EXTRA_OECMAKE` variable to specify
322additional configuration options to be passed using the ``cmake`` 322additional configuration options to be passed using the ``cmake``
323command line. 323command line.
324 324
@@ -326,7 +326,7 @@ On the occasion that you would be installing custom CMake toolchain
326files supplied by the application being built, you should install them 326files supplied by the application being built, you should install them
327to the preferred CMake Module directory: ``${D}${datadir}/cmake/`` 327to the preferred CMake Module directory: ``${D}${datadir}/cmake/``
328Modules during 328Modules during
329```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__. 329:ref:`ref-tasks-install`.
330 330
331.. _ref-classes-cml1: 331.. _ref-classes-cml1:
332 332
@@ -344,7 +344,7 @@ build configuration system.
344Enables compression for man pages and info pages. This class is intended 344Enables compression for man pages and info pages. This class is intended
345to be inherited globally. The default compression mechanism is gz (gzip) 345to be inherited globally. The default compression mechanism is gz (gzip)
346but you can select an alternative mechanism by setting the 346but you can select an alternative mechanism by setting the
347```DOC_COMPRESS`` <#var-DOC_COMPRESS>`__ variable. 347:term:`DOC_COMPRESS` variable.
348 348
349.. _ref-classes-copyleft_compliance: 349.. _ref-classes-copyleft_compliance:
350 350
@@ -354,15 +354,15 @@ but you can select an alternative mechanism by setting the
354The ``copyleft_compliance`` class preserves source code for the purposes 354The ``copyleft_compliance`` class preserves source code for the purposes
355of license compliance. This class is an alternative to the ``archiver`` 355of license compliance. This class is an alternative to the ``archiver``
356class and is still used by some users even though it has been deprecated 356class and is still used by some users even though it has been deprecated
357in favor of the ```archiver`` <#ref-classes-archiver>`__ class. 357in favor of the :ref:`archiver <ref-classes-archiver>` class.
358 358
359.. _ref-classes-copyleft_filter: 359.. _ref-classes-copyleft_filter:
360 360
361``copyleft_filter.bbclass`` 361``copyleft_filter.bbclass``
362=========================== 362===========================
363 363
364A class used by the ```archiver`` <#ref-classes-archiver>`__ and 364A class used by the :ref:`archiver <ref-classes-archiver>` and
365```copyleft_compliance`` <#ref-classes-copyleft_compliance>`__ classes 365:ref:`copyleft_compliance <ref-classes-copyleft_compliance>` classes
366for filtering licenses. The ``copyleft_filter`` class is an internal 366for filtering licenses. The ``copyleft_filter`` class is an internal
367class and is not intended to be used directly. 367class and is not intended to be used directly.
368 368
@@ -373,7 +373,7 @@ class and is not intended to be used directly.
373 373
374The ``core-image`` class provides common definitions for the 374The ``core-image`` class provides common definitions for the
375``core-image-*`` image recipes, such as support for additional 375``core-image-*`` image recipes, such as support for additional
376```IMAGE_FEATURES`` <#var-IMAGE_FEATURES>`__. 376:term:`IMAGE_FEATURES`.
377 377
378.. _ref-classes-cpan: 378.. _ref-classes-cpan:
379 379
@@ -439,7 +439,7 @@ Debian naming policy (i.e. ``glibc`` becomes ``libc6`` and
439name and version as part of the package name. 439name and version as part of the package name.
440 440
441If a recipe creates packages for multiple libraries (shared object files 441If a recipe creates packages for multiple libraries (shared object files
442of ``.so`` type), use the ```LEAD_SONAME`` <#var-LEAD_SONAME>`__ 442of ``.so`` type), use the :term:`LEAD_SONAME`
443variable in the recipe to specify the library on which to apply the 443variable in the recipe to specify the library on which to apply the
444naming scheme. 444naming scheme.
445 445
@@ -449,14 +449,14 @@ naming scheme.
449================== 449==================
450 450
451The ``deploy`` class handles deploying files to the 451The ``deploy`` class handles deploying files to the
452```DEPLOY_DIR_IMAGE`` <#var-DEPLOY_DIR_IMAGE>`__ directory. The main 452:term:`DEPLOY_DIR_IMAGE` directory. The main
453function of this class is to allow the deploy step to be accelerated by 453function of this class is to allow the deploy step to be accelerated by
454shared state. Recipes that inherit this class should define their own 454shared state. Recipes that inherit this class should define their own
455```do_deploy`` <#ref-tasks-deploy>`__ function to copy the files to be 455:ref:`ref-tasks-deploy` function to copy the files to be
456deployed to ```DEPLOYDIR`` <#var-DEPLOYDIR>`__, and use ``addtask`` to 456deployed to :term:`DEPLOYDIR`, and use ``addtask`` to
457add the task at the appropriate place, which is usually after 457add the task at the appropriate place, which is usually after
458```do_compile`` <#ref-tasks-compile>`__ or 458:ref:`ref-tasks-compile` or
459```do_install`` <#ref-tasks-install>`__. The class then takes care of 459:ref:`ref-tasks-install`. The class then takes care of
460staging the files from ``DEPLOYDIR`` to ``DEPLOY_DIR_IMAGE``. 460staging the files from ``DEPLOYDIR`` to ``DEPLOY_DIR_IMAGE``.
461 461
462.. _ref-classes-devshell: 462.. _ref-classes-devshell:
@@ -476,13 +476,13 @@ information about using ``devshell``.
476======================= 476=======================
477 477
478The ``devupstream`` class uses 478The ``devupstream`` class uses
479```BBCLASSEXTEND`` <#var-BBCLASSEXTEND>`__ to add a variant of the 479:term:`BBCLASSEXTEND` to add a variant of the
480recipe that fetches from an alternative URI (e.g. Git) instead of a 480recipe that fetches from an alternative URI (e.g. Git) instead of a
481tarball. Following is an example: BBCLASSEXTEND = "devupstream:target" 481tarball. Following is an example: BBCLASSEXTEND = "devupstream:target"
482SRC_URI_class-devupstream = "git://git.example.com/example" 482SRC_URI_class-devupstream = "git://git.example.com/example"
483SRCREV_class-devupstream = "abcd1234" Adding the above statements to 483SRCREV_class-devupstream = "abcd1234" Adding the above statements to
484your recipe creates a variant that has 484your recipe creates a variant that has
485```DEFAULT_PREFERENCE`` <#var-DEFAULT_PREFERENCE>`__ set to "-1". 485:term:`DEFAULT_PREFERENCE` set to "-1".
486Consequently, you need to select the variant of the recipe to use it. 486Consequently, you need to select the variant of the recipe to use it.
487Any development-specific adjustments can be done by using the 487Any development-specific adjustments can be done by using the
488``class-devupstream`` override. Here is an example: 488``class-devupstream`` override. Here is an example:
@@ -506,11 +506,11 @@ due to BitBake's automatic fetch dependencies (e.g.
506 506
507The ``distro_features_check`` class allows individual recipes to check 507The ``distro_features_check`` class allows individual recipes to check
508for required and conflicting 508for required and conflicting
509```DISTRO_FEATURES`` <#var-DISTRO_FEATURES>`__. 509:term:`DISTRO_FEATURES`.
510 510
511This class provides support for the 511This class provides support for the
512```REQUIRED_DISTRO_FEATURES`` <#var-REQUIRED_DISTRO_FEATURES>`__ and 512:term:`REQUIRED_DISTRO_FEATURES` and
513```CONFLICT_DISTRO_FEATURES`` <#var-CONFLICT_DISTRO_FEATURES>`__ 513:term:`CONFLICT_DISTRO_FEATURES`
514variables. If any conditions specified in the recipe using the above 514variables. If any conditions specified in the recipe using the above
515variables are not met, the recipe will be skipped. 515variables are not met, the recipe will be skipped.
516 516
@@ -532,7 +532,7 @@ used.
532 ``distutils`` class in their recipes. 532 ``distutils`` class in their recipes.
533 533
534- Extensions that use build systems based on ``setuptools`` require the 534- Extensions that use build systems based on ``setuptools`` require the
535 ```setuptools`` <#ref-classes-setuptools>`__ class in their recipes. 535 :ref:`setuptools <ref-classes-setuptools>` class in their recipes.
536 536
537The ``distutils-common-base`` class is required by some of the 537The ``distutils-common-base`` class is required by some of the
538``distutils*`` classes to provide common Python2 support. 538``distutils*`` classes to provide common Python2 support.
@@ -574,22 +574,22 @@ that is external to the OpenEmbedded build system. Building software
574from 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,
575unpack, and patch process is not used. 575unpack, and patch process is not used.
576 576
577By default, the OpenEmbedded build system uses the ```S`` <#var-S>`__ 577By default, the OpenEmbedded build system uses the :term:`S`
578and ```B`` <#var-B>`__ variables to locate unpacked recipe source code 578and :term:`B` variables to locate unpacked recipe source code
579and to build it, respectively. When your recipe inherits the 579and to build it, respectively. When your recipe inherits the
580``externalsrc`` class, you use the 580``externalsrc`` class, you use the
581```EXTERNALSRC`` <#var-EXTERNALSRC>`__ and 581:term:`EXTERNALSRC` and
582```EXTERNALSRC_BUILD`` <#var-EXTERNALSRC_BUILD>`__ variables to 582:term:`EXTERNALSRC_BUILD` variables to
583ultimately define ``S`` and ``B``. 583ultimately define ``S`` and ``B``.
584 584
585By default, this class expects the source code to support recipe builds 585By default, this class expects the source code to support recipe builds
586that use the ```B`` <#var-B>`__ variable to point to the directory in 586that use the :term:`B` variable to point to the directory in
587which the OpenEmbedded build system places the generated objects built 587which the OpenEmbedded build system places the generated objects built
588from the recipes. By default, the ``B`` directory is set to the 588from the recipes. By default, the ``B`` directory is set to the
589following, which is separate from the source directory (``S``): 589following, which is separate from the source directory (``S``):
590${WORKDIR}/${BPN}/{PV}/ See these variables for more information: 590${WORKDIR}/${BPN}/{PV}/ See these variables for more information:
591```WORKDIR`` <#var-WORKDIR>`__, ```BPN`` <#var-BPN>`__, and 591:term:`WORKDIR`, :term:`BPN`, and
592```PV`` <#var-PV>`__, 592:term:`PV`,
593 593
594For more information on the ``externalsrc`` class, see the comments in 594For more information on the ``externalsrc`` class, see the comments in
595``meta/classes/externalsrc.bbclass`` in the `Source 595``meta/classes/externalsrc.bbclass`` in the `Source
@@ -607,7 +607,7 @@ The ``extrausers`` class allows additional user and group configuration
607to be applied at the image level. Inheriting this class either globally 607to be applied at the image level. Inheriting this class either globally
608or from an image recipe allows additional user and group operations to 608or from an image recipe allows additional user and group operations to
609be performed using the 609be performed using the
610```EXTRA_USERS_PARAMS`` <#var-EXTRA_USERS_PARAMS>`__ variable. 610:term:`EXTRA_USERS_PARAMS` variable.
611 611
612.. note:: 612.. note::
613 613
@@ -642,7 +642,7 @@ architecture-specific, ``fc-cache`` runs using QEMU if the postinst
642scriptlets need to be run on the build host during image creation. 642scriptlets need to be run on the build host during image creation.
643 643
644If the fonts being installed are in packages other than the main 644If the fonts being installed are in packages other than the main
645package, set ```FONT_PACKAGES`` <#var-FONT_PACKAGES>`__ to specify the 645package, set :term:`FONT_PACKAGES` to specify the
646packages containing the fonts. 646packages containing the fonts.
647 647
648.. _ref-classes-fs-uuid: 648.. _ref-classes-fs-uuid:
@@ -651,7 +651,7 @@ packages containing the fonts.
651=================== 651===================
652 652
653The ``fs-uuid`` class extracts UUID from 653The ``fs-uuid`` class extracts UUID from
654``${``\ ```ROOTFS`` <#var-ROOTFS>`__\ ``}``, which must have been built 654``${``\ :term:`ROOTFS`\ ``}``, which must have been built
655by the time that this function gets called. The ``fs-uuid`` class only 655by the time that this function gets called. The ``fs-uuid`` class only
656works on ``ext`` file systems and depends on ``tune2fs``. 656works on ``ext`` file systems and depends on ``tune2fs``.
657 657
@@ -662,7 +662,7 @@ works on ``ext`` file systems and depends on ``tune2fs``.
662 662
663The ``gconf`` class provides common functionality for recipes that need 663The ``gconf`` class provides common functionality for recipes that need
664to install GConf schemas. The schemas will be put into a separate 664to install GConf schemas. The schemas will be put into a separate
665package (``${``\ ```PN`` <#var-PN>`__\ ``}-gconf``) that is created 665package (``${``\ :term:`PN`\ ``}-gconf``) that is created
666automatically when this class is inherited. This package uses the 666automatically when this class is inherited. This package uses the
667appropriate post-install and post-remove (postinst/postrm) scriptlets to 667appropriate post-install and post-remove (postinst/postrm) scriptlets to
668register and unregister the schemas in the target image. 668register and unregister the schemas in the target image.
@@ -684,8 +684,8 @@ class.
684 684
685The ``gnomebase`` class is the base class for recipes that build 685The ``gnomebase`` class is the base class for recipes that build
686software from the GNOME stack. This class sets 686software from the GNOME stack. This class sets
687```SRC_URI`` <#var-SRC_URI>`__ to download the source from the GNOME 687:term:`SRC_URI` to download the source from the GNOME
688mirrors as well as extending ```FILES`` <#var-FILES>`__ with the typical 688mirrors as well as extending :term:`FILES` with the typical
689GNOME installation paths. 689GNOME installation paths.
690 690
691.. _ref-classes-gobject-introspection: 691.. _ref-classes-gobject-introspection:
@@ -696,9 +696,9 @@ GNOME installation paths.
696Provides support for recipes building software that supports GObject 696Provides support for recipes building software that supports GObject
697introspection. This functionality is only enabled if the 697introspection. This functionality is only enabled if the
698"gobject-introspection-data" feature is in 698"gobject-introspection-data" feature is in
699```DISTRO_FEATURES`` <#var-DISTRO_FEATURES>`__ as well as 699:term:`DISTRO_FEATURES` as well as
700"qemu-usermode" being in 700"qemu-usermode" being in
701```MACHINE_FEATURES`` <#var-MACHINE_FEATURES>`__. 701:term:`MACHINE_FEATURES`.
702 702
703.. note:: 703.. note::
704 704
@@ -719,26 +719,26 @@ building bootable images.
719 719
720This class supports several variables: 720This class supports several variables:
721 721
722- ```INITRD`` <#var-INITRD>`__: Indicates list of filesystem images to 722- :term:`INITRD`: Indicates list of filesystem images to
723 concatenate and use as an initial RAM disk (initrd) (optional). 723 concatenate and use as an initial RAM disk (initrd) (optional).
724 724
725- ```ROOTFS`` <#var-ROOTFS>`__: Indicates a filesystem image to include 725- :term:`ROOTFS`: Indicates a filesystem image to include
726 as the root filesystem (optional). 726 as the root filesystem (optional).
727 727
728- ```GRUB_GFXSERIAL`` <#var-GRUB_GFXSERIAL>`__: Set this to "1" to have 728- :term:`GRUB_GFXSERIAL`: Set this to "1" to have
729 graphics and serial in the boot menu. 729 graphics and serial in the boot menu.
730 730
731- ```LABELS`` <#var-LABELS>`__: A list of targets for the automatic 731- :term:`LABELS`: A list of targets for the automatic
732 configuration. 732 configuration.
733 733
734- ```APPEND`` <#var-APPEND>`__: An override list of append strings for 734- :term:`APPEND`: An override list of append strings for
735 each ``LABEL``. 735 each ``LABEL``.
736 736
737- ```GRUB_OPTS`` <#var-GRUB_OPTS>`__: Additional options to add to the 737- :term:`GRUB_OPTS`: Additional options to add to the
738 configuration (optional). Options are delimited using semi-colon 738 configuration (optional). Options are delimited using semi-colon
739 characters (``;``). 739 characters (``;``).
740 740
741- ```GRUB_TIMEOUT`` <#var-GRUB_TIMEOUT>`__: Timeout before executing 741- :term:`GRUB_TIMEOUT`: Timeout before executing
742 the default ``LABEL`` (optional). 742 the default ``LABEL`` (optional).
743 743
744.. _ref-classes-gsettings: 744.. _ref-classes-gsettings:
@@ -788,7 +788,7 @@ need to be run on the build host during image creation.
788 788
789If the input method modules being installed are in packages other than 789If the input method modules being installed are in packages other than
790the main package, set 790the main package, set
791```GTKIMMODULES_PACKAGES`` <#var-GTKIMMODULES_PACKAGES>`__ to specify 791:term:`GTKIMMODULES_PACKAGES` to specify
792the packages containing the modules. 792the packages containing the modules.
793 793
794.. _ref-classes-gzipnative: 794.. _ref-classes-gzipnative:
@@ -826,9 +826,9 @@ The class handles all three different compile stages (i.e native
826``tar.gz`` file to be used by the remote machines. The class also 826``tar.gz`` file to be used by the remote machines. The class also
827supports SDK generation. 827supports SDK generation.
828 828
829If ```ICECC_PATH`` <#var-ICECC_PATH>`__ is not set in your 829If :term:`ICECC_PATH` is not set in your
830``local.conf`` file, then the class tries to locate the ``icecc`` binary 830``local.conf`` file, then the class tries to locate the ``icecc`` binary
831using ``which``. If ```ICECC_ENV_EXEC`` <#var-ICECC_ENV_EXEC>`__ is set 831using ``which``. If :term:`ICECC_ENV_EXEC` is set
832in your ``local.conf`` file, the variable should point to the 832in your ``local.conf`` file, the variable should point to the
833``icecc-create-env`` script provided by the user. If you do not point to 833``icecc-create-env`` script provided by the user. If you do not point to
834a user-provided script, the build system uses the default script 834a user-provided script, the build system uses the default script
@@ -843,15 +843,15 @@ provided by the recipe ``icecc-create-env-native.bb``.
843If you do not want the Icecream distributed compile support to apply to 843If you do not want the Icecream distributed compile support to apply to
844specific recipes or classes, you can effectively "blacklist" them by 844specific recipes or classes, you can effectively "blacklist" them by
845listing the recipes and classes using the 845listing the recipes and classes using the
846```ICECC_USER_PACKAGE_BL`` <#var-ICECC_USER_PACKAGE_BL>`__ and 846:term:`ICECC_USER_PACKAGE_BL` and
847```ICECC_USER_CLASS_BL`` <#var-ICECC_USER_CLASS_BL>`__, variables, 847:term:`ICECC_USER_CLASS_BL`, variables,
848respectively, in your ``local.conf`` file. Doing so causes the 848respectively, in your ``local.conf`` file. Doing so causes the
849OpenEmbedded build system to handle these compilations locally. 849OpenEmbedded build system to handle these compilations locally.
850 850
851Additionally, you can list recipes using the 851Additionally, you can list recipes using the
852```ICECC_USER_PACKAGE_WL`` <#var-ICECC_USER_PACKAGE_WL>`__ variable in 852:term:`ICECC_USER_PACKAGE_WL` variable in
853your ``local.conf`` file to force ``icecc`` to be enabled for recipes 853your ``local.conf`` file to force ``icecc`` to be enabled for recipes
854using an empty ```PARALLEL_MAKE`` <#var-PARALLEL_MAKE>`__ variable. 854using an empty :term:`PARALLEL_MAKE` variable.
855 855
856Inheriting the ``icecc`` class changes all sstate signatures. 856Inheriting the ``icecc`` class changes all sstate signatures.
857Consequently, if a development team has a dedicated build system that 857Consequently, if a development team has a dedicated build system that
@@ -862,7 +862,7 @@ system need to either inherit the ``icecc`` class or nobody should.
862At the distribution level, you can inherit the ``icecc`` class to be 862At the distribution level, you can inherit the ``icecc`` class to be
863sure that all builders start with the same sstate signatures. After 863sure that all builders start with the same sstate signatures. After
864inheriting the class, you can then disable the feature by setting the 864inheriting the class, you can then disable the feature by setting the
865```ICECC_DISABLED`` <#var-ICECC_DISABLED>`__ variable to "1" as follows: 865:term:`ICECC_DISABLED` variable to "1" as follows:
866INHERIT_DISTRO_append = " icecc" ICECC_DISABLED ??= "1" This practice 866INHERIT_DISTRO_append = " icecc" ICECC_DISABLED ??= "1" This practice
867makes sure everyone is using the same signatures but also requires 867makes sure everyone is using the same signatures but also requires
868individuals that do want to use Icecream to enable the feature 868individuals that do want to use Icecream to enable the feature
@@ -906,11 +906,11 @@ filesystem on ``/etc/build``.
906 906
907The ``image_types`` class defines all of the standard image output types 907The ``image_types`` class defines all of the standard image output types
908that you can enable through the 908that you can enable through the
909```IMAGE_FSTYPES`` <#var-IMAGE_FSTYPES>`__ variable. You can use this 909:term:`IMAGE_FSTYPES` variable. You can use this
910class as a reference on how to add support for custom image output 910class as a reference on how to add support for custom image output
911types. 911types.
912 912
913By default, the ```image`` <#ref-classes-image>`__ class automatically 913By default, the :ref:`image <ref-classes-image>` class automatically
914enables the ``image_types`` class. The ``image`` class uses the 914enables the ``image_types`` class. The ``image`` class uses the
915``IMGCLASSES`` variable as follows: IMGCLASSES = 915``IMGCLASSES`` variable as follows: IMGCLASSES =
916"rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}" IMGCLASSES += 916"rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}" IMGCLASSES +=
@@ -940,11 +940,11 @@ images.
940 940
941This class controls building "live" (i.e. HDDIMG and ISO) images. Live 941This class controls building "live" (i.e. HDDIMG and ISO) images. Live
942images contain syslinux for legacy booting, as well as the bootloader 942images contain syslinux for legacy booting, as well as the bootloader
943specified by ```EFI_PROVIDER`` <#var-EFI_PROVIDER>`__ if 943specified by :term:`EFI_PROVIDER` if
944```MACHINE_FEATURES`` <#var-MACHINE_FEATURES>`__ contains "efi". 944:term:`MACHINE_FEATURES` contains "efi".
945 945
946Normally, you do not use this class directly. Instead, you add "live" to 946Normally, you do not use this class directly. Instead, you add "live" to
947```IMAGE_FSTYPES`` <#var-IMAGE_FSTYPES>`__. 947:term:`IMAGE_FSTYPES`.
948 948
949.. _ref-classes-image-mklibs: 949.. _ref-classes-image-mklibs:
950 950
@@ -952,11 +952,11 @@ Normally, you do not use this class directly. Instead, you add "live" to
952======================== 952========================
953 953
954The ``image-mklibs`` class enables the use of the ``mklibs`` utility 954The ``image-mklibs`` class enables the use of the ``mklibs`` utility
955during the ```do_rootfs`` <#ref-tasks-rootfs>`__ task, which optimizes 955during the :ref:`ref-tasks-rootfs` task, which optimizes
956the size of libraries contained in the image. 956the size of libraries contained in the image.
957 957
958By default, the class is enabled in the ``local.conf.template`` using 958By default, the class is enabled in the ``local.conf.template`` using
959the ```USER_CLASSES`` <#var-USER_CLASSES>`__ variable as follows: 959the :term:`USER_CLASSES` variable as follows:
960USER_CLASSES ?= "buildstats image-mklibs image-prelink" 960USER_CLASSES ?= "buildstats image-mklibs image-prelink"
961 961
962.. _ref-classes-image-prelink: 962.. _ref-classes-image-prelink:
@@ -965,12 +965,12 @@ USER_CLASSES ?= "buildstats image-mklibs image-prelink"
965========================= 965=========================
966 966
967The ``image-prelink`` class enables the use of the ``prelink`` utility 967The ``image-prelink`` class enables the use of the ``prelink`` utility
968during the ```do_rootfs`` <#ref-tasks-rootfs>`__ task, which optimizes 968during the :ref:`ref-tasks-rootfs` task, which optimizes
969the dynamic linking of shared libraries to reduce executable startup 969the dynamic linking of shared libraries to reduce executable startup
970time. 970time.
971 971
972By default, the class is enabled in the ``local.conf.template`` using 972By default, the class is enabled in the ``local.conf.template`` using
973the ```USER_CLASSES`` <#var-USER_CLASSES>`__ variable as follows: 973the :term:`USER_CLASSES` variable as follows:
974USER_CLASSES ?= "buildstats image-mklibs image-prelink" 974USER_CLASSES ?= "buildstats image-mklibs image-prelink"
975 975
976.. _ref-classes-insane: 976.. _ref-classes-insane:
@@ -992,11 +992,11 @@ condition. See the "`QA Error and Warning Messages <#ref-qa-checks>`__"
992Chapter for a list of all the warning and error messages you might 992Chapter for a list of all the warning and error messages you might
993encounter using a default configuration. 993encounter using a default configuration.
994 994
995Use the ```WARN_QA`` <#var-WARN_QA>`__ and 995Use the :term:`WARN_QA` and
996```ERROR_QA`` <#var-ERROR_QA>`__ variables to control the behavior of 996:term:`ERROR_QA` variables to control the behavior of
997these checks at the global level (i.e. in your custom distro 997these checks at the global level (i.e. in your custom distro
998configuration). However, to skip one or more checks in recipes, you 998configuration). However, to skip one or more checks in recipes, you
999should use ```INSANE_SKIP`` <#var-INSANE_SKIP>`__. For example, to skip 999should use :term:`INSANE_SKIP`. For example, to skip
1000the check for symbolic link ``.so`` files in the main package of a 1000the check for symbolic link ``.so`` files in the main package of a
1001recipe, add the following to the recipe. You need to realize that the 1001recipe, add the following to the recipe. You need to realize that the
1002package name override, in this example ``${PN}``, must be used: 1002package name override, in this example ``${PN}``, must be used:
@@ -1026,17 +1026,17 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1026 positives and thus is not normally enabled. 1026 positives and thus is not normally enabled.
1027 1027
1028- *``build-deps:``* Determines if a build-time dependency that is 1028- *``build-deps:``* Determines if a build-time dependency that is
1029 specified through ```DEPENDS`` <#var-DEPENDS>`__, explicit 1029 specified through :term:`DEPENDS`, explicit
1030 ```RDEPENDS`` <#var-RDEPENDS>`__, or task-level dependencies exists 1030 :term:`RDEPENDS`, or task-level dependencies exists
1031 to match any runtime dependency. This determination is particularly 1031 to match any runtime dependency. This determination is particularly
1032 useful to discover where runtime dependencies are detected and added 1032 useful to discover where runtime dependencies are detected and added
1033 during packaging. If no explicit dependency has been specified within 1033 during packaging. If no explicit dependency has been specified within
1034 the metadata, at the packaging stage it is too late to ensure that 1034 the metadata, at the packaging stage it is too late to ensure that
1035 the dependency is built, and thus you can end up with an error when 1035 the dependency is built, and thus you can end up with an error when
1036 the package is installed into the image during the 1036 the package is installed into the image during the
1037 ```do_rootfs`` <#ref-tasks-rootfs>`__ task because the auto-detected 1037 :ref:`ref-tasks-rootfs` task because the auto-detected
1038 dependency was not satisfied. An example of this would be where the 1038 dependency was not satisfied. An example of this would be where the
1039 ```update-rc.d`` <#ref-classes-update-rc.d>`__ class automatically 1039 :ref:`update-rc.d <ref-classes-update-rc.d>` class automatically
1040 adds a dependency on the ``initscripts-functions`` package to 1040 adds a dependency on the ``initscripts-functions`` package to
1041 packages that install an initscript that refers to 1041 packages that install an initscript that refers to
1042 ``/etc/init.d/functions``. The recipe should really have an explicit 1042 ``/etc/init.d/functions``. The recipe should really have an explicit
@@ -1046,7 +1046,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1046 ``initscripts-functions`` package is made available. 1046 ``initscripts-functions`` package is made available.
1047 1047
1048- *``compile-host-path:``* Checks the 1048- *``compile-host-path:``* Checks the
1049 ```do_compile`` <#ref-tasks-compile>`__ log for indications that 1049 :ref:`ref-tasks-compile` log for indications that
1050 paths to locations on the build host were used. Using such paths 1050 paths to locations on the build host were used. Using such paths
1051 might result in host contamination of the build output. 1051 might result in host contamination of the build output.
1052 1052
@@ -1060,12 +1060,12 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1060 1060
1061- *``dep-cmp:``* Checks for invalid version comparison statements in 1061- *``dep-cmp:``* Checks for invalid version comparison statements in
1062 runtime dependency relationships between packages (i.e. in 1062 runtime dependency relationships between packages (i.e. in
1063 ```RDEPENDS`` <#var-RDEPENDS>`__, 1063 :term:`RDEPENDS`,
1064 ```RRECOMMENDS`` <#var-RRECOMMENDS>`__, 1064 :term:`RRECOMMENDS`,
1065 ```RSUGGESTS`` <#var-RSUGGESTS>`__, 1065 :term:`RSUGGESTS`,
1066 ```RPROVIDES`` <#var-RPROVIDES>`__, 1066 :term:`RPROVIDES`,
1067 ```RREPLACES`` <#var-RREPLACES>`__, and 1067 :term:`RREPLACES`, and
1068 ```RCONFLICTS`` <#var-RCONFLICTS>`__ variable values). Any invalid 1068 :term:`RCONFLICTS` variable values). Any invalid
1069 comparisons might trigger failures or undesirable behavior when 1069 comparisons might trigger failures or undesirable behavior when
1070 passed to the package manager. 1070 passed to the package manager.
1071 1071
@@ -1094,10 +1094,10 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1094 However, the lack of that functionality in the other two package 1094 However, the lack of that functionality in the other two package
1095 managers does not mean the dependencies do not still need resolving. 1095 managers does not mean the dependencies do not still need resolving.
1096 This QA check attempts to ensure that explicitly declared 1096 This QA check attempts to ensure that explicitly declared
1097 ```RDEPENDS`` <#var-RDEPENDS>`__ exist to handle any file-level 1097 :term:`RDEPENDS` exist to handle any file-level
1098 dependency detected in packaged files. 1098 dependency detected in packaged files.
1099 1099
1100- *``files-invalid:``* Checks for ```FILES`` <#var-FILES>`__ variable 1100- *``files-invalid:``* Checks for :term:`FILES` variable
1101 values that contain "//", which is invalid. 1101 values that contain "//", which is invalid.
1102 1102
1103- *``host-user-contaminated:``* Checks that no package produced by the 1103- *``host-user-contaminated:``* Checks that no package produced by the
@@ -1106,33 +1106,33 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1106 that the files are being installed with an incorrect UID/GID, since 1106 that the files are being installed with an incorrect UID/GID, since
1107 target IDs are independent from host IDs. For additional information, 1107 target IDs are independent from host IDs. For additional information,
1108 see the section describing the 1108 see the section describing the
1109 ```do_install`` <#ref-tasks-install>`__ task. 1109 :ref:`ref-tasks-install` task.
1110 1110
1111- *``incompatible-license:``* Report when packages are excluded from 1111- *``incompatible-license:``* Report when packages are excluded from
1112 being created due to being marked with a license that is in 1112 being created due to being marked with a license that is in
1113 ```INCOMPATIBLE_LICENSE`` <#var-INCOMPATIBLE_LICENSE>`__. 1113 :term:`INCOMPATIBLE_LICENSE`.
1114 1114
1115- *``install-host-path:``* Checks the 1115- *``install-host-path:``* Checks the
1116 ```do_install`` <#ref-tasks-install>`__ log for indications that 1116 :ref:`ref-tasks-install` log for indications that
1117 paths to locations on the build host were used. Using such paths 1117 paths to locations on the build host were used. Using such paths
1118 might result in host contamination of the build output. 1118 might result in host contamination of the build output.
1119 1119
1120- *``installed-vs-shipped:``* Reports when files have been installed 1120- *``installed-vs-shipped:``* Reports when files have been installed
1121 within ``do_install`` but have not been included in any package by 1121 within ``do_install`` but have not been included in any package by
1122 way of the ```FILES`` <#var-FILES>`__ variable. Files that do not 1122 way of the :term:`FILES` variable. Files that do not
1123 appear in any package cannot be present in an image later on in the 1123 appear in any package cannot be present in an image later on in the
1124 build process. Ideally, all installed files should be packaged or not 1124 build process. Ideally, all installed files should be packaged or not
1125 installed at all. These files can be deleted at the end of 1125 installed at all. These files can be deleted at the end of
1126 ``do_install`` if the files are not needed in any package. 1126 ``do_install`` if the files are not needed in any package.
1127 1127
1128- *``invalid-chars:``* Checks that the recipe metadata variables 1128- *``invalid-chars:``* Checks that the recipe metadata variables
1129 ```DESCRIPTION`` <#var-DESCRIPTION>`__, 1129 :term:`DESCRIPTION`,
1130 ```SUMMARY`` <#var-SUMMARY>`__, ```LICENSE`` <#var-LICENSE>`__, and 1130 :term:`SUMMARY`, :term:`LICENSE`, and
1131 ```SECTION`` <#var-SECTION>`__ do not contain non-UTF-8 characters. 1131 :term:`SECTION` do not contain non-UTF-8 characters.
1132 Some package managers do not support such characters. 1132 Some package managers do not support such characters.
1133 1133
1134- *``invalid-packageconfig:``* Checks that no undefined features are 1134- *``invalid-packageconfig:``* Checks that no undefined features are
1135 being added to ```PACKAGECONFIG`` <#var-PACKAGECONFIG>`__. For 1135 being added to :term:`PACKAGECONFIG`. For
1136 example, any name "foo" for which the following form does not exist: 1136 example, any name "foo" for which the following form does not exist:
1137 PACKAGECONFIG[foo] = "..." 1137 PACKAGECONFIG[foo] = "..."
1138 1138
@@ -1141,7 +1141,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1141 correct sysroot prefix when using the files automatically itself. 1141 correct sysroot prefix when using the files automatically itself.
1142 1142
1143- *``ldflags:``* Ensures that the binaries were linked with the 1143- *``ldflags:``* Ensures that the binaries were linked with the
1144 ```LDFLAGS`` <#var-LDFLAGS>`__ options provided by the build system. 1144 :term:`LDFLAGS` options provided by the build system.
1145 If this test fails, check that the ``LDFLAGS`` variable is being 1145 If this test fails, check that the ``LDFLAGS`` variable is being
1146 passed to the linker command. 1146 passed to the linker command.
1147 1147
@@ -1156,7 +1156,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1156 variable has been set explicitly to ``/usr/libexec``. 1156 variable has been set explicitly to ``/usr/libexec``.
1157 1157
1158- *``packages-list:``* Checks for the same package being listed 1158- *``packages-list:``* Checks for the same package being listed
1159 multiple times through the ```PACKAGES`` <#var-PACKAGES>`__ variable 1159 multiple times through the :term:`PACKAGES` variable
1160 value. Installing the package in this manner can cause errors during 1160 value. Installing the package in this manner can cause errors during
1161 packaging. 1161 packaging.
1162 1162
@@ -1172,27 +1172,27 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1172- *``perms:``* Currently, this check is unused but reserved. 1172- *``perms:``* Currently, this check is unused but reserved.
1173 1173
1174- *``pkgconfig:``* Checks ``.pc`` files for any 1174- *``pkgconfig:``* Checks ``.pc`` files for any
1175 ```TMPDIR`` <#var-TMPDIR>`__/```WORKDIR`` <#var-WORKDIR>`__ paths. 1175 :term:`TMPDIR`/:term:`WORKDIR` paths.
1176 Any ``.pc`` file containing these paths is incorrect since 1176 Any ``.pc`` file containing these paths is incorrect since
1177 ``pkg-config`` itself adds the correct sysroot prefix when the files 1177 ``pkg-config`` itself adds the correct sysroot prefix when the files
1178 are accessed. 1178 are accessed.
1179 1179
1180- *``pkgname:``* Checks that all packages in 1180- *``pkgname:``* Checks that all packages in
1181 ```PACKAGES`` <#var-PACKAGES>`__ have names that do not contain 1181 :term:`PACKAGES` have names that do not contain
1182 invalid characters (i.e. characters other than 0-9, a-z, ., +, and 1182 invalid characters (i.e. characters other than 0-9, a-z, ., +, and
1183 -). 1183 -).
1184 1184
1185- *``pkgv-undefined:``* Checks to see if the ``PKGV`` variable is 1185- *``pkgv-undefined:``* Checks to see if the ``PKGV`` variable is
1186 undefined during ```do_package`` <#ref-tasks-package>`__. 1186 undefined during :ref:`ref-tasks-package`.
1187 1187
1188- *``pkgvarcheck:``* Checks through the variables 1188- *``pkgvarcheck:``* Checks through the variables
1189 ```RDEPENDS`` <#var-RDEPENDS>`__, 1189 :term:`RDEPENDS`,
1190 ```RRECOMMENDS`` <#var-RRECOMMENDS>`__, 1190 :term:`RRECOMMENDS`,
1191 ```RSUGGESTS`` <#var-RSUGGESTS>`__, 1191 :term:`RSUGGESTS`,
1192 ```RCONFLICTS`` <#var-RCONFLICTS>`__, 1192 :term:`RCONFLICTS`,
1193 ```RPROVIDES`` <#var-RPROVIDES>`__, 1193 :term:`RPROVIDES`,
1194 ```RREPLACES`` <#var-RREPLACES>`__, ```FILES`` <#var-FILES>`__, 1194 :term:`RREPLACES`, :term:`FILES`,
1195 ```ALLOW_EMPTY`` <#var-ALLOW_EMPTY>`__, ``pkg_preinst``, 1195 :term:`ALLOW_EMPTY`, ``pkg_preinst``,
1196 ``pkg_postinst``, ``pkg_prerm`` and ``pkg_postrm``, and reports if 1196 ``pkg_postinst``, ``pkg_prerm`` and ``pkg_postrm``, and reports if
1197 there are variable sets that are not package-specific. Using these 1197 there are variable sets that are not package-specific. Using these
1198 variables without a package suffix is bad practice, and might 1198 variables without a package suffix is bad practice, and might
@@ -1200,11 +1200,11 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1200 same recipe or have other unintended consequences. 1200 same recipe or have other unintended consequences.
1201 1201
1202- *``pn-overrides:``* Checks that a recipe does not have a name 1202- *``pn-overrides:``* Checks that a recipe does not have a name
1203 (```PN`` <#var-PN>`__) value that appears in 1203 (:term:`PN`) value that appears in
1204 ```OVERRIDES`` <#var-OVERRIDES>`__. If a recipe is named such that 1204 :term:`OVERRIDES`. If a recipe is named such that
1205 its ``PN`` value matches something already in ``OVERRIDES`` (e.g. 1205 its ``PN`` value matches something already in ``OVERRIDES`` (e.g.
1206 ``PN`` happens to be the same as ```MACHINE`` <#var-MACHINE>`__ or 1206 ``PN`` happens to be the same as :term:`MACHINE` or
1207 ```DISTRO`` <#var-DISTRO>`__), it can have unexpected consequences. 1207 :term:`DISTRO`), it can have unexpected consequences.
1208 For example, assignments such as ``FILES_${PN} = "xyz"`` effectively 1208 For example, assignments such as ``FILES_${PN} = "xyz"`` effectively
1209 turn into ``FILES = "xyz"``. 1209 turn into ``FILES = "xyz"``.
1210 1210
@@ -1220,7 +1220,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1220 non-``staticdev`` packages. 1220 non-``staticdev`` packages.
1221 1221
1222- *``symlink-to-sysroot:``* Checks for symlinks in packages that point 1222- *``symlink-to-sysroot:``* Checks for symlinks in packages that point
1223 into ```TMPDIR`` <#var-TMPDIR>`__ on the host. Such symlinks will 1223 into :term:`TMPDIR` on the host. Such symlinks will
1224 work on the host, but are clearly invalid when running on the target. 1224 work on the host, but are clearly invalid when running on the target.
1225 1225
1226- *``textrel:``* Checks for ELF binaries that contain relocations in 1226- *``textrel:``* Checks for ELF binaries that contain relocations in
@@ -1231,7 +1231,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1231 1231
1232- *``unlisted-pkg-lics:``* Checks that all declared licenses applying 1232- *``unlisted-pkg-lics:``* Checks that all declared licenses applying
1233 for a package are also declared on the recipe level (i.e. any license 1233 for a package are also declared on the recipe level (i.e. any license
1234 in ``LICENSE_*`` should appear in ```LICENSE`` <#var-LICENSE>`__). 1234 in ``LICENSE_*`` should appear in :term:`LICENSE`).
1235 1235
1236- *``useless-rpaths:``* Checks for dynamic library load paths (rpaths) 1236- *``useless-rpaths:``* Checks for dynamic library load paths (rpaths)
1237 in the binaries that by default on a standard system are searched by 1237 in the binaries that by default on a standard system are searched by
@@ -1239,10 +1239,10 @@ The following list shows the tests you can list with the ``WARN_QA`` and
1239 not cause any breakage, they do waste space and are unnecessary. 1239 not cause any breakage, they do waste space and are unnecessary.
1240 1240
1241- *``var-undefined:``* Reports when variables fundamental to packaging 1241- *``var-undefined:``* Reports when variables fundamental to packaging
1242 (i.e. ```WORKDIR`` <#var-WORKDIR>`__, 1242 (i.e. :term:`WORKDIR`,
1243 ```DEPLOY_DIR`` <#var-DEPLOY_DIR>`__, ```D`` <#var-D>`__, 1243 :term:`DEPLOY_DIR`, :term:`D`,
1244 ```PN`` <#var-PN>`__, and ```PKGD`` <#var-PKGD>`__) are undefined 1244 :term:`PN`, and :term:`PKGD`) are undefined
1245 during ```do_package`` <#ref-tasks-package>`__. 1245 during :ref:`ref-tasks-package`.
1246 1246
1247- *``version-going-backwards:``* If Build History is enabled, reports 1247- *``version-going-backwards:``* If Build History is enabled, reports
1248 when a package being written out has a lower version than the 1248 when a package being written out has a lower version than the
@@ -1283,7 +1283,7 @@ themselves.
1283The ``kernel`` class handles building Linux kernels. The class contains 1283The ``kernel`` class handles building Linux kernels. The class contains
1284code to build all kernel trees. All needed headers are staged into the 1284code to build all kernel trees. All needed headers are staged into the
1285``STAGING_KERNEL_DIR`` directory to allow out-of-tree module builds 1285``STAGING_KERNEL_DIR`` directory to allow out-of-tree module builds
1286using the ```module`` <#ref-classes-module>`__ class. 1286using the :ref:`module <ref-classes-module>` class.
1287 1287
1288This means that each built kernel module is packaged separately and 1288This means that each built kernel module is packaged separately and
1289inter-module dependencies are created by parsing the ``modinfo`` output. 1289inter-module dependencies are created by parsing the ``modinfo`` output.
@@ -1299,9 +1299,9 @@ Image <&YOCTO_DOCS_DEV_URL;#building-an-initramfs-image>`__" section in
1299the Yocto Project Development Tasks Manual. 1299the Yocto Project Development Tasks Manual.
1300 1300
1301Various other classes are used by the ``kernel`` and ``module`` classes 1301Various other classes are used by the ``kernel`` and ``module`` classes
1302internally including the ```kernel-arch`` <#ref-classes-kernel-arch>`__, 1302internally including the :ref:`kernel-arch <ref-classes-kernel-arch>`,
1303```module-base`` <#ref-classes-module-base>`__, and 1303:ref:`module-base <ref-classes-module-base>`, and
1304```linux-kernel-base`` <#ref-classes-linux-kernel-base>`__ classes. 1304:ref:`linux-kernel-base <ref-classes-linux-kernel-base>` classes.
1305 1305
1306.. _ref-classes-kernel-arch: 1306.. _ref-classes-kernel-arch:
1307 1307
@@ -1317,7 +1317,7 @@ Linux kernel compilation (including modules).
1317============================= 1317=============================
1318 1318
1319The ``kernel-devicetree`` class, which is inherited by the 1319The ``kernel-devicetree`` class, which is inherited by the
1320```kernel`` <#ref-classes-kernel>`__ class, supports device tree 1320:ref:`kernel <ref-classes-kernel>` class, supports device tree
1321generation. 1321generation.
1322 1322
1323.. _ref-classes-kernel-fitimage: 1323.. _ref-classes-kernel-fitimage:
@@ -1422,7 +1422,7 @@ The ``kernelsrc`` class sets the Linux kernel source and version.
1422The ``lib_package`` class supports recipes that build libraries and 1422The ``lib_package`` class supports recipes that build libraries and
1423produce executable binaries, where those binaries should not be 1423produce executable binaries, where those binaries should not be
1424installed by default along with the library. Instead, the binaries are 1424installed by default along with the library. Instead, the binaries are
1425added to a separate ``${``\ ```PN`` <#var-PN>`__\ ``}-bin`` package to 1425added to a separate ``${``\ :term:`PN`\ ``}-bin`` package to
1426make their installation optional. 1426make their installation optional.
1427 1427
1428.. _ref-classes-libc*: 1428.. _ref-classes-libc*:
@@ -1445,7 +1445,7 @@ The ``libc*`` classes support recipes that build packages with ``libc``:
1445 1445
1446The ``license`` class provides license manifest creation and license 1446The ``license`` class provides license manifest creation and license
1447exclusion. This class is enabled by default using the default value for 1447exclusion. This class is enabled by default using the default value for
1448the ```INHERIT_DISTRO`` <#var-INHERIT_DISTRO>`__ variable. 1448the :term:`INHERIT_DISTRO` variable.
1449 1449
1450.. _ref-classes-linux-kernel-base: 1450.. _ref-classes-linux-kernel-base:
1451 1451
@@ -1495,7 +1495,7 @@ recipes.
1495The ``metadata_scm`` class provides functionality for querying the 1495The ``metadata_scm`` class provides functionality for querying the
1496branch and revision of a Source Code Manager (SCM) repository. 1496branch and revision of a Source Code Manager (SCM) repository.
1497 1497
1498The ```base`` <#ref-classes-base>`__ class uses this class to print the 1498The :ref:`base <ref-classes-base>` class uses this class to print the
1499revisions of each layer before starting every build. The 1499revisions of each layer before starting every build. The
1500``metadata_scm`` class is enabled by default because it is inherited by 1500``metadata_scm`` class is enabled by default because it is inherited by
1501the ``base`` class. 1501the ``base`` class.
@@ -1524,12 +1524,12 @@ the shared database.
1524=================== 1524===================
1525 1525
1526The ``mirrors`` class sets up some standard 1526The ``mirrors`` class sets up some standard
1527```MIRRORS`` <#var-MIRRORS>`__ entries for source code mirrors. These 1527:term:`MIRRORS` entries for source code mirrors. These
1528mirrors provide a fall-back path in case the upstream source specified 1528mirrors provide a fall-back path in case the upstream source specified
1529in ```SRC_URI`` <#var-SRC_URI>`__ within recipes is unavailable. 1529in :term:`SRC_URI` within recipes is unavailable.
1530 1530
1531This class is enabled by default since it is inherited by the 1531This class is enabled by default since it is inherited by the
1532```base`` <#ref-classes-base>`__ class. 1532:ref:`base <ref-classes-base>` class.
1533 1533
1534.. _ref-classes-module: 1534.. _ref-classes-module:
1535 1535
@@ -1538,10 +1538,10 @@ This class is enabled by default since it is inherited by the
1538 1538
1539The ``module`` class provides support for building out-of-tree Linux 1539The ``module`` class provides support for building out-of-tree Linux
1540kernel modules. The class inherits the 1540kernel modules. The class inherits the
1541```module-base`` <#ref-classes-module-base>`__ and 1541:ref:`module-base <ref-classes-module-base>` and
1542```kernel-module-split`` <#ref-classes-kernel-module-split>`__ classes, 1542:ref:`kernel-module-split <ref-classes-kernel-module-split>` classes,
1543and implements the ```do_compile`` <#ref-tasks-compile>`__ and 1543and implements the :ref:`ref-tasks-compile` and
1544```do_install`` <#ref-tasks-install>`__ tasks. The class provides 1544:ref:`ref-tasks-install` tasks. The class provides
1545everything needed to build and package a kernel module. 1545everything needed to build and package a kernel module.
1546 1546
1547For general information on out-of-tree Linux kernel modules, see the 1547For general information on out-of-tree Linux kernel modules, see the
@@ -1558,7 +1558,7 @@ The ``module-base`` class provides the base functionality for building
1558Linux kernel modules. Typically, a recipe that builds software that 1558Linux kernel modules. Typically, a recipe that builds software that
1559includes one or more kernel modules and has its own means of building 1559includes one or more kernel modules and has its own means of building
1560the module inherits this class as opposed to inheriting the 1560the module inherits this class as opposed to inheriting the
1561```module`` <#ref-classes-module>`__ class. 1561:ref:`module <ref-classes-module>` class.
1562 1562
1563.. _ref-classes-multilib*: 1563.. _ref-classes-multilib*:
1564 1564
@@ -1604,7 +1604,7 @@ a couple different ways:
1604 caused by existing code that depends on that naming convention. 1604 caused by existing code that depends on that naming convention.
1605 1605
1606- Create or modify a target recipe that contains the following: 1606- Create or modify a target recipe that contains the following:
1607 ```BBCLASSEXTEND`` <#var-BBCLASSEXTEND>`__ = "native" Inside the 1607 :term:`BBCLASSEXTEND` = "native" Inside the
1608 recipe, use ``_class-native`` and ``_class-target`` overrides to 1608 recipe, use ``_class-native`` and ``_class-target`` overrides to
1609 specify any functionality specific to the respective native or target 1609 specify any functionality specific to the respective native or target
1610 case. 1610 case.
@@ -1621,7 +1621,7 @@ target. All common parts of the recipe are automatically shared.
1621 1621
1622The ``nativesdk`` class provides common functionality for recipes that 1622The ``nativesdk`` class provides common functionality for recipes that
1623wish to build tools to run as part of an SDK (i.e. tools that run on 1623wish to build tools to run as part of an SDK (i.e. tools that run on
1624```SDKMACHINE`` <#var-SDKMACHINE>`__). 1624:term:`SDKMACHINE`).
1625 1625
1626You can create a recipe that builds tools that run on the SDK machine a 1626You can create a recipe that builds tools that run on the SDK machine a
1627couple different ways: 1627couple different ways:
@@ -1632,7 +1632,7 @@ couple different ways:
1632 that the ``nativesdk`` class is inherited last. 1632 that the ``nativesdk`` class is inherited last.
1633 1633
1634- Create a ``nativesdk`` variant of any recipe by adding the following: 1634- Create a ``nativesdk`` variant of any recipe by adding the following:
1635 ```BBCLASSEXTEND`` <#var-BBCLASSEXTEND>`__ = "nativesdk" Inside the 1635 :term:`BBCLASSEXTEND` = "nativesdk" Inside the
1636 recipe, use ``_class-nativesdk`` and ``_class-target`` overrides to 1636 recipe, use ``_class-nativesdk`` and ``_class-target`` overrides to
1637 specify any functionality specific to the respective SDK machine or 1637 specify any functionality specific to the respective SDK machine or
1638 target case. 1638 target case.
@@ -1686,7 +1686,7 @@ section in the Yocto Project Development Tasks Manual.
1686================== 1686==================
1687 1687
1688The ``oelint`` class is an obsolete lint checking tool that exists in 1688The ``oelint`` class is an obsolete lint checking tool that exists in
1689``meta/classes`` in the `Source Directory <#source-directory>`__. 1689``meta/classes`` in the :term:`Source Directory`.
1690 1690
1691A number of classes exist that could be generally useful in OE-Core but 1691A number of classes exist that could be generally useful in OE-Core but
1692are never actually used within OE-Core itself. The ``oelint`` class is 1692are never actually used within OE-Core itself. The ``oelint`` class is
@@ -1700,12 +1700,12 @@ layers.
1700======================= 1700=======================
1701 1701
1702The ``own-mirrors`` class makes it easier to set up your own 1702The ``own-mirrors`` class makes it easier to set up your own
1703```PREMIRRORS`` <#var-PREMIRRORS>`__ from which to first fetch source 1703:term:`PREMIRRORS` from which to first fetch source
1704before attempting to fetch it from the upstream specified in 1704before attempting to fetch it from the upstream specified in
1705```SRC_URI`` <#var-SRC_URI>`__ within each recipe. 1705:term:`SRC_URI` within each recipe.
1706 1706
1707To use this class, inherit it globally and specify 1707To use this class, inherit it globally and specify
1708```SOURCE_MIRROR_URL`` <#var-SOURCE_MIRROR_URL>`__. Here is an example: 1708:term:`SOURCE_MIRROR_URL`. Here is an example:
1709INHERIT += "own-mirrors" SOURCE_MIRROR_URL = 1709INHERIT += "own-mirrors" SOURCE_MIRROR_URL =
1710"http://example.com/my-source-mirror" You can specify only a single URL 1710"http://example.com/my-source-mirror" You can specify only a single URL
1711in ``SOURCE_MIRROR_URL``. 1711in ``SOURCE_MIRROR_URL``.
@@ -1719,10 +1719,10 @@ The ``package`` class supports generating packages from a build's
1719output. The core generic functionality is in ``package.bbclass``. The 1719output. The core generic functionality is in ``package.bbclass``. The
1720code specific to particular package types resides in these 1720code specific to particular package types resides in these
1721package-specific classes: 1721package-specific classes:
1722```package_deb`` <#ref-classes-package_deb>`__, 1722:ref:`package_deb <ref-classes-package_deb>`,
1723```package_rpm`` <#ref-classes-package_rpm>`__, 1723:ref:`package_rpm <ref-classes-package_rpm>`,
1724```package_ipk`` <#ref-classes-package_ipk>`__, and 1724:ref:`package_ipk <ref-classes-package_ipk>`, and
1725```package_tar`` <#ref-classes-package_tar>`__. 1725:ref:`package_tar <ref-classes-package_tar>`.
1726 1726
1727.. note:: 1727.. note::
1728 1728
@@ -1753,7 +1753,7 @@ takes about thirty percent less time as compared to using RPM to build
1753the same or similar package. This comparison takes into account a 1753the same or similar package. This comparison takes into account a
1754complete build of the package with all dependencies previously built. 1754complete build of the package with all dependencies previously built.
1755The reason for this discrepancy is because the RPM package manager 1755The reason for this discrepancy is because the RPM package manager
1756creates and processes more `Metadata <#metadata>`__ than the IPK package 1756creates and processes more :term:`Metadata` than the IPK package
1757manager. Consequently, you might consider setting ``PACKAGE_CLASSES`` to 1757manager. Consequently, you might consider setting ``PACKAGE_CLASSES`` to
1758"package_ipk" if you are building smaller systems. 1758"package_ipk" if you are building smaller systems.
1759 1759
@@ -1786,10 +1786,10 @@ at these two Yocto Project mailing list links:
1786The ``package_deb`` class provides support for creating packages that 1786The ``package_deb`` class provides support for creating packages that
1787use the Debian (i.e. ``.deb``) file format. The class ensures the 1787use the Debian (i.e. ``.deb``) file format. The class ensures the
1788packages are written out in a ``.deb`` file format to the 1788packages are written out in a ``.deb`` file format to the
1789``${``\ ```DEPLOY_DIR_DEB`` <#var-DEPLOY_DIR_DEB>`__\ ``}`` directory. 1789``${``\ :term:`DEPLOY_DIR_DEB`\ ``}`` directory.
1790 1790
1791This class inherits the ```package`` <#ref-classes-package>`__ class and 1791This class inherits the :ref:`package <ref-classes-package>` class and
1792is enabled through the ```PACKAGE_CLASSES`` <#var-PACKAGE_CLASSES>`__ 1792is enabled through the :term:`PACKAGE_CLASSES`
1793variable in the ``local.conf`` file. 1793variable in the ``local.conf`` file.
1794 1794
1795.. _ref-classes-package_ipk: 1795.. _ref-classes-package_ipk:
@@ -1800,10 +1800,10 @@ variable in the ``local.conf`` file.
1800The ``package_ipk`` class provides support for creating packages that 1800The ``package_ipk`` class provides support for creating packages that
1801use the IPK (i.e. ``.ipk``) file format. The class ensures the packages 1801use the IPK (i.e. ``.ipk``) file format. The class ensures the packages
1802are written out in a ``.ipk`` file format to the 1802are written out in a ``.ipk`` file format to the
1803``${``\ ```DEPLOY_DIR_IPK`` <#var-DEPLOY_DIR_IPK>`__\ ``}`` directory. 1803``${``\ :term:`DEPLOY_DIR_IPK`\ ``}`` directory.
1804 1804
1805This class inherits the ```package`` <#ref-classes-package>`__ class and 1805This class inherits the :ref:`package <ref-classes-package>` class and
1806is enabled through the ```PACKAGE_CLASSES`` <#var-PACKAGE_CLASSES>`__ 1806is enabled through the :term:`PACKAGE_CLASSES`
1807variable in the ``local.conf`` file. 1807variable in the ``local.conf`` file.
1808 1808
1809.. _ref-classes-package_rpm: 1809.. _ref-classes-package_rpm:
@@ -1814,10 +1814,10 @@ variable in the ``local.conf`` file.
1814The ``package_rpm`` class provides support for creating packages that 1814The ``package_rpm`` class provides support for creating packages that
1815use the RPM (i.e. ``.rpm``) file format. The class ensures the packages 1815use the RPM (i.e. ``.rpm``) file format. The class ensures the packages
1816are written out in a ``.rpm`` file format to the 1816are written out in a ``.rpm`` file format to the
1817``${``\ ```DEPLOY_DIR_RPM`` <#var-DEPLOY_DIR_RPM>`__\ ``}`` directory. 1817``${``\ :term:`DEPLOY_DIR_RPM`\ ``}`` directory.
1818 1818
1819This class inherits the ```package`` <#ref-classes-package>`__ class and 1819This class inherits the :ref:`package <ref-classes-package>` class and
1820is enabled through the ```PACKAGE_CLASSES`` <#var-PACKAGE_CLASSES>`__ 1820is enabled through the :term:`PACKAGE_CLASSES`
1821variable in the ``local.conf`` file. 1821variable in the ``local.conf`` file.
1822 1822
1823.. _ref-classes-package_tar: 1823.. _ref-classes-package_tar:
@@ -1827,10 +1827,10 @@ variable in the ``local.conf`` file.
1827 1827
1828The ``package_tar`` class provides support for creating tarballs. The 1828The ``package_tar`` class provides support for creating tarballs. The
1829class ensures the packages are written out in a tarball format to the 1829class ensures the packages are written out in a tarball format to the
1830``${``\ ```DEPLOY_DIR_TAR`` <#var-DEPLOY_DIR_TAR>`__\ ``}`` directory. 1830``${``\ :term:`DEPLOY_DIR_TAR`\ ``}`` directory.
1831 1831
1832This class inherits the ```package`` <#ref-classes-package>`__ class and 1832This class inherits the :ref:`package <ref-classes-package>` class and
1833is enabled through the ```PACKAGE_CLASSES`` <#var-PACKAGE_CLASSES>`__ 1833is enabled through the :term:`PACKAGE_CLASSES`
1834variable in the ``local.conf`` file. 1834variable in the ``local.conf`` file.
1835 1835
1836.. note:: 1836.. note::
@@ -1853,12 +1853,12 @@ variable in the ``local.conf`` file.
1853======================= 1853=======================
1854 1854
1855The ``packagedata`` class provides common functionality for reading 1855The ``packagedata`` class provides common functionality for reading
1856``pkgdata`` files found in ```PKGDATA_DIR`` <#var-PKGDATA_DIR>`__. These 1856``pkgdata`` files found in :term:`PKGDATA_DIR`. These
1857files contain information about each output package produced by the 1857files contain information about each output package produced by the
1858OpenEmbedded build system. 1858OpenEmbedded build system.
1859 1859
1860This class is enabled by default because it is inherited by the 1860This class is enabled by default because it is inherited by the
1861```package`` <#ref-classes-package>`__ class. 1861:ref:`package <ref-classes-package>` class.
1862 1862
1863.. _ref-classes-packagegroup: 1863.. _ref-classes-packagegroup:
1864 1864
@@ -1883,10 +1883,10 @@ Previously, this class was called the ``task`` class.
1883================= 1883=================
1884 1884
1885The ``patch`` class provides all functionality for applying patches 1885The ``patch`` class provides all functionality for applying patches
1886during the ```do_patch`` <#ref-tasks-patch>`__ task. 1886during the :ref:`ref-tasks-patch` task.
1887 1887
1888This class is enabled by default because it is inherited by the 1888This class is enabled by default because it is inherited by the
1889```base`` <#ref-classes-base>`__ class. 1889:ref:`base <ref-classes-base>` class.
1890 1890
1891.. _ref-classes-perlnative: 1891.. _ref-classes-perlnative:
1892 1892
@@ -1912,7 +1912,7 @@ host during image creation.
1912 1912
1913If the pixbuf loaders being installed are in packages other than the 1913If the pixbuf loaders being installed are in packages other than the
1914recipe's main package, set 1914recipe's main package, set
1915```PIXBUF_PACKAGES`` <#var-PIXBUF_PACKAGES>`__ to specify the packages 1915:term:`PIXBUF_PACKAGES` to specify the packages
1916containing the loaders. 1916containing the loaders.
1917 1917
1918.. _ref-classes-pkgconfig: 1918.. _ref-classes-pkgconfig:
@@ -1936,7 +1936,7 @@ files.
1936 1936
1937The ``populate_sdk`` class provides support for SDK-only recipes. For 1937The ``populate_sdk`` class provides support for SDK-only recipes. For
1938information on advantages gained when building a cross-development 1938information on advantages gained when building a cross-development
1939toolchain using the ```do_populate_sdk`` <#ref-tasks-populate_sdk>`__ 1939toolchain using the :ref:`ref-tasks-populate_sdk`
1940task, see the "`Building an SDK 1940task, see the "`Building an SDK
1941Installer <&YOCTO_DOCS_SDK_URL;#sdk-building-an-sdk-installer>`__" 1941Installer <&YOCTO_DOCS_SDK_URL;#sdk-building-an-sdk-installer>`__"
1942section in the Yocto Project Application Development and the Extensible 1942section in the Yocto Project Application Development and the Extensible
@@ -1967,15 +1967,15 @@ following classes:
1967 1967
1968The ``populate_sdk_base`` class inherits the appropriate 1968The ``populate_sdk_base`` class inherits the appropriate
1969``populate_sdk_*`` (i.e. ``deb``, ``rpm``, and ``ipk``) based on 1969``populate_sdk_*`` (i.e. ``deb``, ``rpm``, and ``ipk``) based on
1970```IMAGE_PKGTYPE`` <#var-IMAGE_PKGTYPE>`__. 1970:term:`IMAGE_PKGTYPE`.
1971 1971
1972The base class ensures all source and destination directories are 1972The base class ensures all source and destination directories are
1973established and then populates the SDK. After populating the SDK, the 1973established and then populates the SDK. After populating the SDK, the
1974``populate_sdk_base`` class constructs two sysroots: 1974``populate_sdk_base`` class constructs two sysroots:
1975``${``\ ```SDK_ARCH`` <#var-SDK_ARCH>`__\ ``}-nativesdk``, which 1975``${``\ :term:`SDK_ARCH`\ ``}-nativesdk``, which
1976contains the cross-compiler and associated tooling, and the target, 1976contains the cross-compiler and associated tooling, and the target,
1977which contains a target root filesystem that is configured for the SDK 1977which contains a target root filesystem that is configured for the SDK
1978usage. These two images reside in ```SDK_OUTPUT`` <#var-SDK_OUTPUT>`__, 1978usage. These two images reside in :term:`SDK_OUTPUT`,
1979which consists of the following: 1979which consists of the following:
1980${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs 1980${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs
1981${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs 1981${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs
@@ -1993,7 +1993,7 @@ the "`Cross-Development Toolchain
1993Generation <&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation>`__" 1993Generation <&YOCTO_DOCS_OM_URL;#cross-development-toolchain-generation>`__"
1994section in the Yocto Project Overview and Concepts Manual. For 1994section in the Yocto Project Overview and Concepts Manual. For
1995information on advantages gained when building a cross-development 1995information on advantages gained when building a cross-development
1996toolchain using the ```do_populate_sdk`` <#ref-tasks-populate_sdk>`__ 1996toolchain using the :ref:`ref-tasks-populate_sdk`
1997task, see the "`Building an SDK 1997task, see the "`Building an SDK
1998Installer <&YOCTO_DOCS_SDK_URL;#sdk-building-an-sdk-installer>`__" 1998Installer <&YOCTO_DOCS_SDK_URL;#sdk-building-an-sdk-installer>`__"
1999section in the Yocto Project Application Development and the Extensible 1999section in the Yocto Project Application Development and the Extensible
@@ -2005,7 +2005,7 @@ Software Development Kit (eSDK) manual.
2005==================== 2005====================
2006 2006
2007The ``prexport`` class provides functionality for exporting 2007The ``prexport`` class provides functionality for exporting
2008```PR`` <#var-PR>`__ values. 2008:term:`PR` values.
2009 2009
2010.. note:: 2010.. note::
2011 2011
@@ -2020,7 +2020,7 @@ The ``prexport`` class provides functionality for exporting
2020==================== 2020====================
2021 2021
2022The ``primport`` class provides functionality for importing 2022The ``primport`` class provides functionality for importing
2023```PR`` <#var-PR>`__ values. 2023:term:`PR` values.
2024 2024
2025.. note:: 2025.. note::
2026 2026
@@ -2036,13 +2036,13 @@ The ``primport`` class provides functionality for importing
2036 2036
2037The ``prserv`` class provides functionality for using a `PR 2037The ``prserv`` class provides functionality for using a `PR
2038service <&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service>`__ in order to 2038service <&YOCTO_DOCS_DEV_URL;#working-with-a-pr-service>`__ in order to
2039automatically manage the incrementing of the ```PR`` <#var-PR>`__ 2039automatically manage the incrementing of the :term:`PR`
2040variable for each recipe. 2040variable for each recipe.
2041 2041
2042This class is enabled by default because it is inherited by the 2042This class is enabled by default because it is inherited by the
2043```package`` <#ref-classes-package>`__ class. However, the OpenEmbedded 2043:ref:`package <ref-classes-package>` class. However, the OpenEmbedded
2044build system will not enable the functionality of this class unless 2044build system will not enable the functionality of this class unless
2045```PRSERV_HOST`` <#var-PRSERV_HOST>`__ has been set. 2045:term:`PRSERV_HOST` has been set.
2046 2046
2047.. _ref-classes-ptest: 2047.. _ref-classes-ptest:
2048 2048
@@ -2054,7 +2054,7 @@ runtime tests for recipes that build software that provides these tests.
2054 2054
2055This class is intended to be inherited by individual recipes. However, 2055This class is intended to be inherited by individual recipes. However,
2056the class' functionality is largely disabled unless "ptest" appears in 2056the class' functionality is largely disabled unless "ptest" appears in
2057```DISTRO_FEATURES`` <#var-DISTRO_FEATURES>`__. See the "`Testing 2057:term:`DISTRO_FEATURES`. See the "`Testing
2058Packages With 2058Packages With
2059ptest <&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest>`__" section in 2059ptest <&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest>`__" section in
2060the Yocto Project Development Tasks Manual for more information on 2060the Yocto Project Development Tasks Manual for more information on
@@ -2126,9 +2126,9 @@ are set or software that is present).
2126The ``relocatable`` class enables relocation of binaries when they are 2126The ``relocatable`` class enables relocation of binaries when they are
2127installed into the sysroot. 2127installed into the sysroot.
2128 2128
2129This class makes use of the ```chrpath`` <#ref-classes-chrpath>`__ class 2129This class makes use of the :ref:`chrpath <ref-classes-chrpath>` class
2130and is used by both the ```cross`` <#ref-classes-cross>`__ and 2130and is used by both the :ref:`cross <ref-classes-cross>` and
2131```native`` <#ref-classes-native>`__ classes. 2131:ref:`native <ref-classes-native>` classes.
2132 2132
2133.. _ref-classes-remove-libtool: 2133.. _ref-classes-remove-libtool:
2134 2134
@@ -2136,7 +2136,7 @@ and is used by both the ```cross`` <#ref-classes-cross>`__ and
2136========================== 2136==========================
2137 2137
2138The ``remove-libtool`` class adds a post function to the 2138The ``remove-libtool`` class adds a post function to the
2139```do_install`` <#ref-tasks-install>`__ task to remove all ``.la`` files 2139:ref:`ref-tasks-install` task to remove all ``.la`` files
2140installed by ``libtool``. Removing these files results in them being 2140installed by ``libtool``. Removing these files results in them being
2141absent from both the sysroot and target packages. 2141absent from both the sysroot and target packages.
2142 2142
@@ -2163,7 +2163,7 @@ The class collects debug information for recipe, recipe version, task,
2163machine, distro, build system, target system, host distro, branch, 2163machine, distro, build system, target system, host distro, branch,
2164commit, and log. From the information, report files using a JSON format 2164commit, and log. From the information, report files using a JSON format
2165are created and stored in 2165are created and stored in
2166``${``\ ```LOG_DIR`` <#var-LOG_DIR>`__\ ``}/error-report``. 2166``${``\ :term:`LOG_DIR`\ ``}/error-report``.
2167 2167
2168.. _ref-classes-rm-work: 2168.. _ref-classes-rm-work:
2169 2169
@@ -2216,7 +2216,7 @@ image and consist of the following classes:
2216 2216
2217The root filesystem is created from packages using one of the 2217The root filesystem is created from packages using one of the
2218``rootfs*.bbclass`` files as determined by the 2218``rootfs*.bbclass`` files as determined by the
2219```PACKAGE_CLASSES`` <#var-PACKAGE_CLASSES>`__ variable. 2219:term:`PACKAGE_CLASSES` variable.
2220 2220
2221For information on how root filesystem images are created, see the 2221For information on how root filesystem images are created, see the
2222"`Image 2222"`Image
@@ -2242,7 +2242,7 @@ usually determines whether to include this class.
2242 2242
2243The ``scons`` class supports recipes that need to build software that 2243The ``scons`` class supports recipes that need to build software that
2244uses the SCons build system. You can use the 2244uses the SCons build system. You can use the
2245```EXTRA_OESCONS`` <#var-EXTRA_OESCONS>`__ variable to specify 2245:term:`EXTRA_OESCONS` variable to specify
2246additional configuration options you want to pass SCons command line. 2246additional configuration options you want to pass SCons command line.
2247 2247
2248.. _ref-classes-sdl: 2248.. _ref-classes-sdl:
@@ -2293,8 +2293,8 @@ Python bindings.
2293 2293
2294The ``siteconfig`` class provides functionality for handling site 2294The ``siteconfig`` class provides functionality for handling site
2295configuration. The class is used by the 2295configuration. The class is used by the
2296```autotools`` <#ref-classes-autotools>`__ class to accelerate the 2296:ref:`autotools <ref-classes-autotools>` class to accelerate the
2297```do_configure`` <#ref-tasks-configure>`__ task. 2297:ref:`ref-tasks-configure` task.
2298 2298
2299.. _ref-classes-siteinfo: 2299.. _ref-classes-siteinfo:
2300 2300
@@ -2337,7 +2337,7 @@ build.
2337 2337
2338The ``sstate`` class provides support for Shared State (sstate). By 2338The ``sstate`` class provides support for Shared State (sstate). By
2339default, the class is enabled through the 2339default, the class is enabled through the
2340```INHERIT_DISTRO`` <#var-INHERIT_DISTRO>`__ variable's default value. 2340:term:`INHERIT_DISTRO` variable's default value.
2341 2341
2342For more information on sstate, see the "`Shared State 2342For more information on sstate, see the "`Shared State
2343Cache <&YOCTO_DOCS_OM_URL;#shared-state-cache>`__" section in the Yocto 2343Cache <&YOCTO_DOCS_OM_URL;#shared-state-cache>`__" section in the Yocto
@@ -2351,15 +2351,15 @@ Project Overview and Concepts Manual.
2351The ``staging`` class installs files into individual recipe work 2351The ``staging`` class installs files into individual recipe work
2352directories for sysroots. The class contains the following key tasks: 2352directories for sysroots. The class contains the following key tasks:
2353 2353
2354- The ```do_populate_sysroot`` <#ref-tasks-populate_sysroot>`__ task, 2354- The :ref:`ref-tasks-populate_sysroot` task,
2355 which is responsible for handing the files that end up in the recipe 2355 which is responsible for handing the files that end up in the recipe
2356 sysroots. 2356 sysroots.
2357 2357
2358- The 2358- The
2359 ```do_prepare_recipe_sysroot`` <#ref-tasks-prepare_recipe_sysroot>`__ 2359 :ref:`ref-tasks-prepare_recipe_sysroot`
2360 task (a "partner" task to the ``populate_sysroot`` task), which 2360 task (a "partner" task to the ``populate_sysroot`` task), which
2361 installs the files into the individual recipe work directories (i.e. 2361 installs the files into the individual recipe work directories (i.e.
2362 ```WORKDIR`` <#var-WORKDIR>`__). 2362 :term:`WORKDIR`).
2363 2363
2364The code in the ``staging`` class is complex and basically works in two 2364The code in the ``staging`` class is complex and basically works in two
2365stages: 2365stages:
@@ -2367,13 +2367,13 @@ stages:
2367- *Stage One:* The first stage addresses recipes that have files they 2367- *Stage One:* The first stage addresses recipes that have files they
2368 want to share with other recipes that have dependencies on the 2368 want to share with other recipes that have dependencies on the
2369 originating recipe. Normally these dependencies are installed through 2369 originating recipe. Normally these dependencies are installed through
2370 the ```do_install`` <#ref-tasks-install>`__ task into 2370 the :ref:`ref-tasks-install` task into
2371 ``${``\ ```D`` <#var-D>`__\ ``}``. The ``do_populate_sysroot`` task 2371 ``${``\ :term:`D`\ ``}``. The ``do_populate_sysroot`` task
2372 copies a subset of these files into ``${SYSROOT_DESTDIR}``. This 2372 copies a subset of these files into ``${SYSROOT_DESTDIR}``. This
2373 subset of files is controlled by the 2373 subset of files is controlled by the
2374 ```SYSROOT_DIRS`` <#var-SYSROOT_DIRS>`__, 2374 :term:`SYSROOT_DIRS`,
2375 ```SYSROOT_DIRS_NATIVE`` <#var-SYSROOT_DIRS_NATIVE>`__, and 2375 :term:`SYSROOT_DIRS_NATIVE`, and
2376 ```SYSROOT_DIRS_BLACKLIST`` <#var-SYSROOT_DIRS_BLACKLIST>`__ 2376 :term:`SYSROOT_DIRS_BLACKLIST`
2377 variables. 2377 variables.
2378 2378
2379 .. note:: 2379 .. note::
@@ -2391,17 +2391,17 @@ stages:
2391 hardcoded locations are replaced by tokens and a list of the files 2391 hardcoded locations are replaced by tokens and a list of the files
2392 needing such replacements is created. These adjustments are referred 2392 needing such replacements is created. These adjustments are referred
2393 to as "FIXMEs". The list of files that are scanned for paths is 2393 to as "FIXMEs". The list of files that are scanned for paths is
2394 controlled by the ```SSTATE_SCAN_FILES`` <#var-SSTATE_SCAN_FILES>`__ 2394 controlled by the :term:`SSTATE_SCAN_FILES`
2395 variable. 2395 variable.
2396 2396
2397- *Stage Two:* The second stage addresses recipes that want to use 2397- *Stage Two:* The second stage addresses recipes that want to use
2398 something from another recipe and declare a dependency on that recipe 2398 something from another recipe and declare a dependency on that recipe
2399 through the ```DEPENDS`` <#var-DEPENDS>`__ variable. The recipe will 2399 through the :term:`DEPENDS` variable. The recipe will
2400 have a 2400 have a
2401 ```do_prepare_recipe_sysroot`` <#ref-tasks-prepare_recipe_sysroot>`__ 2401 :ref:`ref-tasks-prepare_recipe_sysroot`
2402 task and when this task executes, it creates the ``recipe-sysroot`` 2402 task and when this task executes, it creates the ``recipe-sysroot``
2403 and ``recipe-sysroot-native`` in the recipe work directory (i.e. 2403 and ``recipe-sysroot-native`` in the recipe work directory (i.e.
2404 ```WORKDIR`` <#var-WORKDIR>`__). The OpenEmbedded build system 2404 :term:`WORKDIR`). The OpenEmbedded build system
2405 creates hard links to copies of the relevant files from 2405 creates hard links to copies of the relevant files from
2406 ``sysroots-components`` into the recipe work directory. 2406 ``sysroots-components`` into the recipe work directory.
2407 2407
@@ -2437,7 +2437,7 @@ stages:
2437 is used so that builds should be identical regardless of whether 2437 is used so that builds should be identical regardless of whether
2438 sstate was used or not. For a closer look, see the 2438 sstate was used or not. For a closer look, see the
2439 ``setscene_depvalid()`` function in the 2439 ``setscene_depvalid()`` function in the
2440 ```sstate`` <#ref-classes-sstate>`__ class. 2440 :ref:`sstate <ref-classes-sstate>` class.
2441 2441
2442 The build system is careful to maintain manifests of the files it 2442 The build system is careful to maintain manifests of the files it
2443 installs so that any given dependency can be installed as needed. The 2443 installs so that any given dependency can be installed as needed. The
@@ -2454,37 +2454,37 @@ bootable images.
2454 2454
2455The class supports the following variables: 2455The class supports the following variables:
2456 2456
2457- ```INITRD`` <#var-INITRD>`__: Indicates list of filesystem images to 2457- :term:`INITRD`: Indicates list of filesystem images to
2458 concatenate and use as an initial RAM disk (initrd). This variable is 2458 concatenate and use as an initial RAM disk (initrd). This variable is
2459 optional. 2459 optional.
2460 2460
2461- ```ROOTFS`` <#var-ROOTFS>`__: Indicates a filesystem image to include 2461- :term:`ROOTFS`: Indicates a filesystem image to include
2462 as the root filesystem. This variable is optional. 2462 as the root filesystem. This variable is optional.
2463 2463
2464- ```AUTO_SYSLINUXMENU`` <#var-AUTO_SYSLINUXMENU>`__: Enables creating 2464- :term:`AUTO_SYSLINUXMENU`: Enables creating
2465 an automatic menu when set to "1". 2465 an automatic menu when set to "1".
2466 2466
2467- ```LABELS`` <#var-LABELS>`__: Lists targets for automatic 2467- :term:`LABELS`: Lists targets for automatic
2468 configuration. 2468 configuration.
2469 2469
2470- ```APPEND`` <#var-APPEND>`__: Lists append string overrides for each 2470- :term:`APPEND`: Lists append string overrides for each
2471 label. 2471 label.
2472 2472
2473- ```SYSLINUX_OPTS`` <#var-SYSLINUX_OPTS>`__: Lists additional options 2473- :term:`SYSLINUX_OPTS`: Lists additional options
2474 to add to the syslinux file. Semicolon characters separate multiple 2474 to add to the syslinux file. Semicolon characters separate multiple
2475 options. 2475 options.
2476 2476
2477- ```SYSLINUX_SPLASH`` <#var-SYSLINUX_SPLASH>`__: Lists a background 2477- :term:`SYSLINUX_SPLASH`: Lists a background
2478 for the VGA boot menu when you are using the boot menu. 2478 for the VGA boot menu when you are using the boot menu.
2479 2479
2480- ```SYSLINUX_DEFAULT_CONSOLE`` <#var-SYSLINUX_DEFAULT_CONSOLE>`__: Set 2480- :term:`SYSLINUX_DEFAULT_CONSOLE`: Set
2481 to "console=ttyX" to change kernel boot default console. 2481 to "console=ttyX" to change kernel boot default console.
2482 2482
2483- ```SYSLINUX_SERIAL`` <#var-SYSLINUX_SERIAL>`__: Sets an alternate 2483- :term:`SYSLINUX_SERIAL`: Sets an alternate
2484 serial port. Or, turns off serial when the variable is set with an 2484 serial port. Or, turns off serial when the variable is set with an
2485 empty string. 2485 empty string.
2486 2486
2487- ```SYSLINUX_SERIAL_TTY`` <#var-SYSLINUX_SERIAL_TTY>`__: Sets an 2487- :term:`SYSLINUX_SERIAL_TTY`: Sets an
2488 alternate "console=tty..." kernel boot argument. 2488 alternate "console=tty..." kernel boot argument.
2489 2489
2490.. _ref-classes-systemd: 2490.. _ref-classes-systemd:
@@ -2496,24 +2496,24 @@ The ``systemd`` class provides support for recipes that install systemd
2496unit files. 2496unit files.
2497 2497
2498The functionality for this class is disabled unless you have "systemd" 2498The functionality for this class is disabled unless you have "systemd"
2499in ```DISTRO_FEATURES`` <#var-DISTRO_FEATURES>`__. 2499in :term:`DISTRO_FEATURES`.
2500 2500
2501Under this class, the recipe or Makefile (i.e. whatever the recipe is 2501Under this class, the recipe or Makefile (i.e. whatever the recipe is
2502calling during the ```do_install`` <#ref-tasks-install>`__ task) 2502calling during the :ref:`ref-tasks-install` task)
2503installs unit files into 2503installs unit files into
2504``${``\ ```D`` <#var-D>`__\ ``}${systemd_unitdir}/system``. If the unit 2504``${``\ :term:`D`\ ``}${systemd_unitdir}/system``. If the unit
2505files being installed go into packages other than the main package, you 2505files being installed go into packages other than the main package, you
2506need to set ```SYSTEMD_PACKAGES`` <#var-SYSTEMD_PACKAGES>`__ in your 2506need to set :term:`SYSTEMD_PACKAGES` in your
2507recipe to identify the packages in which the files will be installed. 2507recipe to identify the packages in which the files will be installed.
2508 2508
2509You should set ```SYSTEMD_SERVICE`` <#var-SYSTEMD_SERVICE>`__ to the 2509You should set :term:`SYSTEMD_SERVICE` to the
2510name of the service file. You should also use a package name override to 2510name of the service file. You should also use a package name override to
2511indicate the package to which the value applies. If the value applies to 2511indicate the package to which the value applies. If the value applies to
2512the recipe's main package, use ``${``\ ```PN`` <#var-PN>`__\ ``}``. Here 2512the recipe's main package, use ``${``\ :term:`PN`\ ``}``. Here
2513is an example from the connman recipe: SYSTEMD_SERVICE_${PN} = 2513is an example from the connman recipe: SYSTEMD_SERVICE_${PN} =
2514"connman.service" Services are set up to start on boot automatically 2514"connman.service" Services are set up to start on boot automatically
2515unless you have set 2515unless you have set
2516```SYSTEMD_AUTO_ENABLE`` <#var-SYSTEMD_AUTO_ENABLE>`__ to "disable". 2516:term:`SYSTEMD_AUTO_ENABLE` to "disable".
2517 2517
2518For more information on ``systemd``, see the "`Selecting an 2518For more information on ``systemd``, see the "`Selecting an
2519Initialization 2519Initialization
@@ -2539,14 +2539,14 @@ internal class and is not intended to be used directly.
2539 systemd 2539 systemd
2540 project. 2540 project.
2541 2541
2542Set the ```EFI_PROVIDER`` <#var-EFI_PROVIDER>`__ variable to 2542Set the :term:`EFI_PROVIDER` variable to
2543"systemd-boot" to use this class. Doing so creates a standalone EFI 2543"systemd-boot" to use this class. Doing so creates a standalone EFI
2544bootloader that is not dependent on systemd. 2544bootloader that is not dependent on systemd.
2545 2545
2546For information on more variables used and supported in this class, see 2546For information on more variables used and supported in this class, see
2547the ```SYSTEMD_BOOT_CFG`` <#var-SYSTEMD_BOOT_CFG>`__, 2547the :term:`SYSTEMD_BOOT_CFG`,
2548```SYSTEMD_BOOT_ENTRIES`` <#var-SYSTEMD_BOOT_ENTRIES>`__, and 2548:term:`SYSTEMD_BOOT_ENTRIES`, and
2549```SYSTEMD_BOOT_TIMEOUT`` <#var-SYSTEMD_BOOT_TIMEOUT>`__ variables. 2549:term:`SYSTEMD_BOOT_TIMEOUT` variables.
2550 2550
2551You can also see the `Systemd-boot 2551You can also see the `Systemd-boot
2552documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__ 2552documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
@@ -2558,15 +2558,15 @@ for more information.
2558==================== 2558====================
2559 2559
2560The ``terminal`` class provides support for starting a terminal session. 2560The ``terminal`` class provides support for starting a terminal session.
2561The ```OE_TERMINAL`` <#var-OE_TERMINAL>`__ variable controls which 2561The :term:`OE_TERMINAL` variable controls which
2562terminal emulator is used for the session. 2562terminal emulator is used for the session.
2563 2563
2564Other classes use the ``terminal`` class anywhere a separate terminal 2564Other classes use the ``terminal`` class anywhere a separate terminal
2565session needs to be started. For example, the 2565session needs to be started. For example, the
2566```patch`` <#ref-classes-patch>`__ class assuming 2566:ref:`patch <ref-classes-patch>` class assuming
2567```PATCHRESOLVE`` <#var-PATCHRESOLVE>`__ is set to "user", the 2567:term:`PATCHRESOLVE` is set to "user", the
2568```cml1`` <#ref-classes-cml1>`__ class, and the 2568```cml1`` <#ref-classes-cml1>`__ class, and the
2569```devshell`` <#ref-classes-devshell>`__ class all use the ``terminal`` 2569:ref:`devshell <ref-classes-devshell>` class all use the ``terminal``
2570class. 2570class.
2571 2571
2572.. _ref-classes-testimage*: 2572.. _ref-classes-testimage*:
@@ -2595,7 +2595,7 @@ test is written in Python and makes use of the ``unittest`` module.
2595The ``testimage.bbclass`` runs tests on an image when called using the 2595The ``testimage.bbclass`` runs tests on an image when called using the
2596following: $ bitbake -c testimage image The ``testimage-auto`` class 2596following: $ bitbake -c testimage image The ``testimage-auto`` class
2597runs tests on an image after the image is constructed (i.e. 2597runs tests on an image after the image is constructed (i.e.
2598```TESTIMAGE_AUTO`` <#var-TESTIMAGE_AUTO>`__ must be set to "1"). 2598:term:`TESTIMAGE_AUTO` must be set to "1").
2599 2599
2600For information on how to enable, run, and create new tests, see the 2600For information on how to enable, run, and create new tests, see the
2601"`Performing Automated Runtime 2601"`Performing Automated Runtime
@@ -2693,8 +2693,8 @@ The ``uboot-config`` class provides support for U-Boot configuration for
2693a machine. Specify the machine in your recipe as follows: UBOOT_CONFIG 2693a machine. Specify the machine in your recipe as follows: UBOOT_CONFIG
2694??= <default> UBOOT_CONFIG[foo] = "config,images" You can also specify 2694??= <default> UBOOT_CONFIG[foo] = "config,images" You can also specify
2695the machine using this method: UBOOT_MACHINE = "config" See the 2695the machine using this method: UBOOT_MACHINE = "config" See the
2696```UBOOT_CONFIG`` <#var-UBOOT_CONFIG>`__ and 2696:term:`UBOOT_CONFIG` and
2697```UBOOT_MACHINE`` <#var-UBOOT_MACHINE>`__ variables for additional 2697:term:`UBOOT_MACHINE` variables for additional
2698information. 2698information.
2699 2699
2700.. _ref-classes-uninative: 2700.. _ref-classes-uninative:
@@ -2738,13 +2738,13 @@ packages.
2738 2738
2739To use this class, you need to define a number of variables: 2739To use this class, you need to define a number of variables:
2740 2740
2741- ```ALTERNATIVE`` <#var-ALTERNATIVE>`__ 2741- :term:`ALTERNATIVE`
2742 2742
2743- ```ALTERNATIVE_LINK_NAME`` <#var-ALTERNATIVE_LINK_NAME>`__ 2743- :term:`ALTERNATIVE_LINK_NAME`
2744 2744
2745- ```ALTERNATIVE_TARGET`` <#var-ALTERNATIVE_TARGET>`__ 2745- :term:`ALTERNATIVE_TARGET`
2746 2746
2747- ```ALTERNATIVE_PRIORITY`` <#var-ALTERNATIVE_PRIORITY>`__ 2747- :term:`ALTERNATIVE_PRIORITY`
2748 2748
2749These variables list alternative commands needed by a package, provide 2749These variables list alternative commands needed by a package, provide
2750pathnames for links, default links for targets, and so forth. For 2750pathnames for links, default links for targets, and so forth. For
@@ -2783,7 +2783,7 @@ usage by the package on the target. For example, if you have packages
2783that contain system services that should be run under their own user or 2783that contain system services that should be run under their own user or
2784group, you can use these classes to enable creation of the user or 2784group, you can use these classes to enable creation of the user or
2785group. The ``meta-skeleton/recipes-skeleton/useradd/useradd-example.bb`` 2785group. The ``meta-skeleton/recipes-skeleton/useradd/useradd-example.bb``
2786recipe in the `Source Directory <#source-directory>`__ provides a simple 2786recipe in the :term:`Source Directory` provides a simple
2787example that shows how to add three users and groups to two packages. 2787example that shows how to add three users and groups to two packages.
2788See the ``useradd-example.bb`` recipe for more information on how to use 2788See the ``useradd-example.bb`` recipe for more information on how to use
2789these classes. 2789these classes.
@@ -2792,10 +2792,10 @@ The ``useradd_base`` class provides basic functionality for user or
2792groups settings. 2792groups settings.
2793 2793
2794The ``useradd*`` classes support the 2794The ``useradd*`` classes support the
2795```USERADD_PACKAGES`` <#var-USERADD_PACKAGES>`__, 2795:term:`USERADD_PACKAGES`,
2796```USERADD_PARAM`` <#var-USERADD_PARAM>`__, 2796:term:`USERADD_PARAM`,
2797```GROUPADD_PARAM`` <#var-GROUPADD_PARAM>`__, and 2797:term:`GROUPADD_PARAM`, and
2798```GROUPMEMS_PARAM`` <#var-GROUPMEMS_PARAM>`__ variables. 2798:term:`GROUPMEMS_PARAM` variables.
2799 2799
2800The ``useradd-staticids`` class supports the addition of users or groups 2800The ``useradd-staticids`` class supports the addition of users or groups
2801that have static user identification (``uid``) and group identification 2801that have static user identification (``uid``) and group identification
@@ -2810,15 +2810,15 @@ the final ``uid`` and ``gid`` values. However, if non-deterministic
2810``uid`` and ``gid`` values are a problem, you can override the default, 2810``uid`` and ``gid`` values are a problem, you can override the default,
2811dynamic application of these values by setting static values. When you 2811dynamic application of these values by setting static values. When you
2812set static values, the OpenEmbedded build system looks in 2812set static values, the OpenEmbedded build system looks in
2813```BBPATH`` <#var-BBPATH>`__ for ``files/passwd`` and ``files/group`` 2813:term:`BBPATH` for ``files/passwd`` and ``files/group``
2814files for the values. 2814files for the values.
2815 2815
2816To use static ``uid`` and ``gid`` values, you need to set some 2816To use static ``uid`` and ``gid`` values, you need to set some
2817variables. See the ```USERADDEXTENSION`` <#var-USERADDEXTENSION>`__, 2817variables. See the :term:`USERADDEXTENSION`,
2818```USERADD_UID_TABLES`` <#var-USERADD_UID_TABLES>`__, 2818:term:`USERADD_UID_TABLES`,
2819```USERADD_GID_TABLES`` <#var-USERADD_GID_TABLES>`__, and 2819:term:`USERADD_GID_TABLES`, and
2820```USERADD_ERROR_DYNAMIC`` <#var-USERADD_ERROR_DYNAMIC>`__ variables. 2820:term:`USERADD_ERROR_DYNAMIC` variables.
2821You can also see the ```useradd`` <#ref-classes-useradd>`__ class for 2821You can also see the :ref:`useradd <ref-classes-useradd>` class for
2822additional information. 2822additional information.
2823 2823
2824.. note:: 2824.. note::
@@ -2844,11 +2844,11 @@ additional information.
2844 2844
2845The ``utility-tasks`` class provides support for various "utility" type 2845The ``utility-tasks`` class provides support for various "utility" type
2846tasks that are applicable to all recipes, such as 2846tasks that are applicable to all recipes, such as
2847```do_clean`` <#ref-tasks-clean>`__ and 2847:ref:`ref-tasks-clean` and
2848```do_listtasks`` <#ref-tasks-listtasks>`__. 2848:ref:`ref-tasks-listtasks`.
2849 2849
2850This class is enabled by default because it is inherited by the 2850This class is enabled by default because it is inherited by the
2851```base`` <#ref-classes-base>`__ class. 2851:ref:`base <ref-classes-base>` class.
2852 2852
2853.. _ref-classes-utils: 2853.. _ref-classes-utils:
2854 2854
@@ -2860,7 +2860,7 @@ typically used in inline Python expressions (e.g. ``${@...}``). One
2860example use is for ``bb.utils.contains()``. 2860example use is for ``bb.utils.contains()``.
2861 2861
2862This class is enabled by default because it is inherited by the 2862This class is enabled by default because it is inherited by the
2863```base`` <#ref-classes-base>`__ class. 2863:ref:`base <ref-classes-base>` class.
2864 2864
2865.. _ref-classes-vala: 2865.. _ref-classes-vala:
2866 2866
@@ -2877,7 +2877,7 @@ using the Vala programming language.
2877 2877
2878The ``waf`` class supports recipes that need to build software that uses 2878The ``waf`` class supports recipes that need to build software that uses
2879the Waf build system. You can use the 2879the Waf build system. You can use the
2880```EXTRA_OECONF`` <#var-EXTRA_OECONF>`__ or 2880:term:`EXTRA_OECONF` or
2881```PACKAGECONFIG_CONFARGS`` <#var-PACKAGECONFIG_CONFARGS>`__ variables 2881:term:`PACKAGECONFIG_CONFARGS` variables
2882to specify additional configuration options to be passed on the Waf 2882to specify additional configuration options to be passed on the Waf
2883command line. 2883command line.