summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual/dev-manual-common-tasks.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/dev-manual/dev-manual-common-tasks.rst')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.rst768
1 files changed, 384 insertions, 384 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.rst b/documentation/dev-manual/dev-manual-common-tasks.rst
index 133a3dd31c..ae26172f6c 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.rst
+++ b/documentation/dev-manual/dev-manual-common-tasks.rst
@@ -14,7 +14,7 @@ Understanding and Creating Layers
14================================= 14=================================
15 15
16The OpenEmbedded build system supports organizing 16The OpenEmbedded build system supports organizing
17`Metadata <&YOCTO_DOCS_REF_URL;#metadata>`__ into multiple layers. 17:term:`Metadata` into multiple layers.
18Layers allow you to isolate different types of customizations from each 18Layers allow you to isolate different types of customizations from each
19other. For introductory information on the Yocto Project Layer Model, 19other. For introductory information on the Yocto Project Layer Model,
20see the "`The Yocto Project Layer 20see the "`The Yocto Project Layer
@@ -81,7 +81,7 @@ Follow these general steps to create your layer without using tools:
81 = "4" LAYERSERIES_COMPAT_yoctobsp = "DISTRO_NAME_NO_CAP" Following is 81 = "4" LAYERSERIES_COMPAT_yoctobsp = "DISTRO_NAME_NO_CAP" Following is
82 an explanation of the layer configuration file: 82 an explanation of the layer configuration file:
83 83
84 - ```BBPATH`` <&YOCTO_DOCS_REF_URL;#var-BBPATH>`__: Adds the layer's 84 - :term:`BBPATH`: Adds the layer's
85 root directory to BitBake's search path. Through the use of the 85 root directory to BitBake's search path. Through the use of the
86 ``BBPATH`` variable, BitBake locates class files (``.bbclass``), 86 ``BBPATH`` variable, BitBake locates class files (``.bbclass``),
87 configuration files, and files that are included with ``include`` 87 configuration files, and files that are included with ``include``
@@ -91,35 +91,35 @@ Follow these general steps to create your layer without using tools:
91 is recommended, therefore, that you use unique class and 91 is recommended, therefore, that you use unique class and
92 configuration filenames in your custom layer. 92 configuration filenames in your custom layer.
93 93
94 - ```BBFILES`` <&YOCTO_DOCS_REF_URL;#var-BBFILES>`__: Defines the 94 - :term:`BBFILES`: Defines the
95 location for all recipes in the layer. 95 location for all recipes in the layer.
96 96
97 - ```BBFILE_COLLECTIONS`` <&YOCTO_DOCS_REF_URL;#var-BBFILE_COLLECTIONS>`__: 97 - :term:`BBFILE_COLLECTIONS`:
98 Establishes the current layer through a unique identifier that is 98 Establishes the current layer through a unique identifier that is
99 used throughout the OpenEmbedded build system to refer to the 99 used throughout the OpenEmbedded build system to refer to the
100 layer. In this example, the identifier "yoctobsp" is the 100 layer. In this example, the identifier "yoctobsp" is the
101 representation for the container layer named "meta-yocto-bsp". 101 representation for the container layer named "meta-yocto-bsp".
102 102
103 - ```BBFILE_PATTERN`` <&YOCTO_DOCS_REF_URL;#var-BBFILE_PATTERN>`__: 103 - :term:`BBFILE_PATTERN`:
104 Expands immediately during parsing to provide the directory of the 104 Expands immediately during parsing to provide the directory of the
105 layer. 105 layer.
106 106
107 - ```BBFILE_PRIORITY`` <&YOCTO_DOCS_REF_URL;#var-BBFILE_PRIORITY>`__: 107 - :term:`BBFILE_PRIORITY`:
108 Establishes a priority to use for recipes in the layer when the 108 Establishes a priority to use for recipes in the layer when the
109 OpenEmbedded build finds recipes of the same name in different 109 OpenEmbedded build finds recipes of the same name in different
110 layers. 110 layers.
111 111
112 - ```LAYERVERSION`` <&YOCTO_DOCS_REF_URL;#var-LAYERVERSION>`__: 112 - :term:`LAYERVERSION`:
113 Establishes a version number for the layer. You can use this 113 Establishes a version number for the layer. You can use this
114 version number to specify this exact version of the layer as a 114 version number to specify this exact version of the layer as a
115 dependency when using the 115 dependency when using the
116 ```LAYERDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-LAYERDEPENDS>`__ 116 :term:`LAYERDEPENDS`
117 variable. 117 variable.
118 118
119 - ```LAYERDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-LAYERDEPENDS>`__: 119 - :term:`LAYERDEPENDS`:
120 Lists all layers on which this layer depends (if any). 120 Lists all layers on which this layer depends (if any).
121 121
122 - ```LAYERSERIES_COMPAT`` <&YOCTO_DOCS_REF_URL;#var-LAYERSERIES_COMPAT>`__: 122 - :term:`LAYERSERIES_COMPAT`:
123 Lists the `Yocto Project <&YOCTO_WIKI_URL;/wiki/Releases>`__ 123 Lists the `Yocto Project <&YOCTO_WIKI_URL;/wiki/Releases>`__
124 releases for which the current version is compatible. This 124 releases for which the current version is compatible. This
125 variable is a good way to indicate if your particular layer is 125 variable is a good way to indicate if your particular layer is
@@ -184,7 +184,7 @@ following list:
184 have a layer named ``meta-one`` that adds support for building 184 have a layer named ``meta-one`` that adds support for building
185 machine "one". To do so, you use an append file named 185 machine "one". To do so, you use an append file named
186 ``base-files.bbappend`` and create a dependency on "foo" by 186 ``base-files.bbappend`` and create a dependency on "foo" by
187 altering the ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ 187 altering the :term:`DEPENDS`
188 variable: DEPENDS = "foo" The dependency is created during any 188 variable: DEPENDS = "foo" The dependency is created during any
189 build that includes the layer ``meta-one``. However, you might not 189 build that includes the layer ``meta-one``. However, you might not
190 want this dependency for all machines. For example, suppose you 190 want this dependency for all machines. For example, suppose you
@@ -221,13 +221,13 @@ following list:
221 221
222 - *Place Machine-Specific Files in Machine-Specific Locations:* When 222 - *Place Machine-Specific Files in Machine-Specific Locations:* When
223 you have a base recipe, such as ``base-files.bb``, that contains a 223 you have a base recipe, such as ``base-files.bb``, that contains a
224 ```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ statement to a 224 :term:`SRC_URI` statement to a
225 file, you can use an append file to cause the build to use your 225 file, you can use an append file to cause the build to use your
226 own version of the file. For example, an append file in your layer 226 own version of the file. For example, an append file in your layer
227 at ``meta-one/recipes-core/base-files/base-files.bbappend`` could 227 at ``meta-one/recipes-core/base-files/base-files.bbappend`` could
228 extend ```FILESPATH`` <&YOCTO_DOCS_REF_URL;#var-FILESPATH>`__ 228 extend :term:`FILESPATH`
229 using 229 using
230 ```FILESEXTRAPATHS`` <&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS>`__ 230 :term:`FILESEXTRAPATHS`
231 as follows: FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" The 231 as follows: FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" The
232 build for machine "one" will pick up your machine-specific file as 232 build for machine "one" will pick up your machine-specific file as
233 long as you have the file in 233 long as you have the file in
@@ -401,7 +401,7 @@ Enabling Your Layer
401Before the OpenEmbedded build system can use your new layer, you need to 401Before the OpenEmbedded build system can use your new layer, you need to
402enable it. To enable your layer, simply add your layer's path to the 402enable it. To enable your layer, simply add your layer's path to the
403``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is 403``BBLAYERS`` variable in your ``conf/bblayers.conf`` file, which is
404found in the `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. 404found in the :term:`Build Directory`.
405The following example shows how to enable a layer named 405The following example shows how to enable a layer named
406``meta-mylayer``: # POKY_BBLAYERS_CONF_VERSION is increased each time 406``meta-mylayer``: # POKY_BBLAYERS_CONF_VERSION is increased each time
407build/conf/bblayers.conf # changes incompatibly 407build/conf/bblayers.conf # changes incompatibly
@@ -445,7 +445,7 @@ newer version, you must also rename and possibly update the
445corresponding ``.bbappend`` as well. During the build process, BitBake 445corresponding ``.bbappend`` as well. During the build process, BitBake
446displays an error on starting if it detects a ``.bbappend`` file that 446displays an error on starting if it detects a ``.bbappend`` file that
447does not have a corresponding recipe with a matching name. See the 447does not have a corresponding recipe with a matching name. See the
448```BB_DANGLINGAPPENDS_WARNONLY`` <&YOCTO_DOCS_REF_URL;#var-BB_DANGLINGAPPENDS_WARNONLY>`__ 448:term:`BB_DANGLINGAPPENDS_WARNONLY`
449variable for information on how to handle this error. 449variable for information on how to handle this error.
450 450
451As an example, consider the main formfactor recipe and a corresponding 451As an example, consider the main formfactor recipe and a corresponding
@@ -462,7 +462,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" INHIBIT_DEFAULT_DEPS = "1" do_install()
462${D}${sysconfdir}/formfactor/ install -m 0644 ${S}/config 462${D}${sysconfdir}/formfactor/ install -m 0644 ${S}/config
463${D}${sysconfdir}/formfactor/ if [ -s "${S}/machconfig" ]; then install 463${D}${sysconfdir}/formfactor/ if [ -s "${S}/machconfig" ]; then install
464-m 0644 ${S}/machconfig ${D}${sysconfdir}/formfactor/ fi } In the main 464-m 0644 ${S}/machconfig ${D}${sysconfdir}/formfactor/ fi } In the main
465recipe, note the ```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ 465recipe, note the :term:`SRC_URI`
466variable, which tells the OpenEmbedded build system where to find files 466variable, which tells the OpenEmbedded build system where to find files
467during the build. 467during the build.
468 468
@@ -472,15 +472,15 @@ file is in the layer at ``recipes-bsp/formfactor``:
472FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" 472FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
473 473
474By default, the build system uses the 474By default, the build system uses the
475```FILESPATH`` <&YOCTO_DOCS_REF_URL;#var-FILESPATH>`__ variable to 475:term:`FILESPATH` variable to
476locate files. This append file extends the locations by setting the 476locate files. This append file extends the locations by setting the
477```FILESEXTRAPATHS`` <&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS>`__ 477:term:`FILESEXTRAPATHS`
478variable. Setting this variable in the ``.bbappend`` file is the most 478variable. Setting this variable in the ``.bbappend`` file is the most
479reliable and recommended method for adding directories to the search 479reliable and recommended method for adding directories to the search
480path used by the build system to find files. 480path used by the build system to find files.
481 481
482The statement in this example extends the directories to include 482The statement in this example extends the directories to include
483``${``\ ```THISDIR`` <&YOCTO_DOCS_REF_URL;#var-THISDIR>`__\ ``}/${``\ ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__\ ``}``, 483``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``,
484which resolves to a directory named ``formfactor`` in the same directory 484which resolves to a directory named ``formfactor`` in the same directory
485in which the append file resides (i.e. 485in which the append file resides (i.e.
486``meta-raspberrypi/recipes-bsp/formfactor``. This implies that you must 486``meta-raspberrypi/recipes-bsp/formfactor``. This implies that you must
@@ -514,13 +514,13 @@ applied. You can either specify the priority manually, or allow the
514build system to calculate it based on the layer's dependencies. 514build system to calculate it based on the layer's dependencies.
515 515
516To specify the layer's priority manually, use the 516To specify the layer's priority manually, use the
517```BBFILE_PRIORITY`` <&YOCTO_DOCS_REF_URL;#var-BBFILE_PRIORITY>`__ 517:term:`BBFILE_PRIORITY`
518variable and append the layer's root name: BBFILE_PRIORITY_mylayer = "1" 518variable and append the layer's root name: BBFILE_PRIORITY_mylayer = "1"
519 519
520.. note:: 520.. note::
521 521
522 It is possible for a recipe with a lower version number 522 It is possible for a recipe with a lower version number
523 ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ in a layer that has a higher 523 :term:`PV` in a layer that has a higher
524 priority to take precedence. 524 priority to take precedence.
525 525
526 Also, the layer priority does not currently affect the precedence 526 Also, the layer priority does not currently affect the precedence
@@ -665,7 +665,7 @@ meta-scottrif'
665If you want to set the priority of the layer to other than the default 665If you want to set the priority of the layer to other than the default
666value of "6", you can either use the ``DASHDASHpriority`` option or you 666value of "6", you can either use the ``DASHDASHpriority`` option or you
667can edit the 667can edit the
668```BBFILE_PRIORITY`` <&YOCTO_DOCS_REF_URL;#var-BBFILE_PRIORITY>`__ value 668:term:`BBFILE_PRIORITY` value
669in the ``conf/layer.conf`` after the script creates it. Furthermore, if 669in the ``conf/layer.conf`` after the script creates it. Furthermore, if
670you want to give the example recipe file some name other than the 670you want to give the example recipe file some name other than the
671default, you can use the ``DASHDASHexample-recipe-name`` option. 671default, you can use the ``DASHDASHexample-recipe-name`` option.
@@ -764,8 +764,8 @@ Customizing Images Using Custom ``IMAGE_FEATURES`` and ``EXTRA_IMAGE_FEATURES``
764 764
765Another method for customizing your image is to enable or disable 765Another method for customizing your image is to enable or disable
766high-level image features by using the 766high-level image features by using the
767```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__ and 767:term:`IMAGE_FEATURES` and
768```EXTRA_IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES>`__ 768:term:`EXTRA_IMAGE_FEATURES`
769variables. Although the functions for both variables are nearly 769variables. Although the functions for both variables are nearly
770equivalent, best practices dictate using ``IMAGE_FEATURES`` from within 770equivalent, best practices dictate using ``IMAGE_FEATURES`` from within
771a recipe and using ``EXTRA_IMAGE_FEATURES`` from within your 771a recipe and using ``EXTRA_IMAGE_FEATURES`` from within your
@@ -782,7 +782,7 @@ In summary, the file looks at the contents of the ``IMAGE_FEATURES``
782variable and then maps or configures the feature accordingly. Based on 782variable and then maps or configures the feature accordingly. Based on
783this information, the build system automatically adds the appropriate 783this information, the build system automatically adds the appropriate
784packages or configurations to the 784packages or configurations to the
785```IMAGE_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL>`__ variable. 785:term:`IMAGE_INSTALL` variable.
786Effectively, you are enabling extra features by extending the class or 786Effectively, you are enabling extra features by extending the class or
787creating a custom class for use with specialized image ``.bb`` files. 787creating a custom class for use with specialized image ``.bb`` files.
788 788
@@ -893,7 +893,7 @@ Customizing an Image Hostname
893 893
894By default, the configured hostname (i.e. ``/etc/hostname``) in an image 894By default, the configured hostname (i.e. ``/etc/hostname``) in an image
895is the same as the machine name. For example, if 895is the same as the machine name. For example, if
896```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ equals "qemux86", the 896:term:`MACHINE` equals "qemux86", the
897configured hostname written to ``/etc/hostname`` is "qemux86". 897configured hostname written to ``/etc/hostname`` is "qemux86".
898 898
899You can customize this name by altering the value of the "hostname" 899You can customize this name by altering the value of the "hostname"
@@ -1072,7 +1072,7 @@ the recipe.
1072 1072
1073- *Storing Your Recipe:* The OpenEmbedded build system locates your 1073- *Storing Your Recipe:* The OpenEmbedded build system locates your
1074 recipe through the layer's ``conf/layer.conf`` file and the 1074 recipe through the layer's ``conf/layer.conf`` file and the
1075 ```BBFILES`` <&YOCTO_DOCS_REF_URL;#var-BBFILES>`__ variable. This 1075 :term:`BBFILES` variable. This
1076 variable sets up a path from which the build system can locate 1076 variable sets up a path from which the build system can locate
1077 recipes. Here is the typical use: BBFILES += 1077 recipes. Here is the typical use: BBFILES +=
1078 "${LAYERDIR}/recipes-*/*/*.bb \\ ${LAYERDIR}/recipes-*/*/*.bbappend" 1078 "${LAYERDIR}/recipes-*/*/*.bb \\ ${LAYERDIR}/recipes-*/*/*.bbappend"
@@ -1101,14 +1101,14 @@ progressively discover and add information to the recipe file.
1101 1101
1102Assuming you have sourced the build environment setup script (i.e. 1102Assuming you have sourced the build environment setup script (i.e.
1103````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__) and you are in 1103````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__) and you are in
1104the `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__, use 1104the :term:`Build Directory`, use
1105BitBake to process your recipe. All you need to provide is the 1105BitBake to process your recipe. All you need to provide is the
1106``basename`` of the recipe as described in the previous section: $ 1106``basename`` of the recipe as described in the previous section: $
1107bitbake basename 1107bitbake basename
1108 1108
1109During the build, the OpenEmbedded build system creates a temporary work 1109During the build, the OpenEmbedded build system creates a temporary work
1110directory for each recipe 1110directory for each recipe
1111(``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}``) 1111(``${``\ :term:`WORKDIR`\ ``}``)
1112where it keeps extracted source files, log files, intermediate 1112where it keeps extracted source files, log files, intermediate
1113compilation and packaging files, and so forth. 1113compilation and packaging files, and so forth.
1114 1114
@@ -1154,26 +1154,26 @@ Fetching Code
1154 1154
1155The first thing your recipe must do is specify how to fetch the source 1155The first thing your recipe must do is specify how to fetch the source
1156files. Fetching is controlled mainly through the 1156files. Fetching is controlled mainly through the
1157```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ variable. Your recipe 1157:term:`SRC_URI` variable. Your recipe
1158must have a ``SRC_URI`` variable that points to where the source is 1158must have a ``SRC_URI`` variable that points to where the source is
1159located. For a graphical representation of source locations, see the 1159located. For a graphical representation of source locations, see the
1160"`Sources <&YOCTO_DOCS_OM_URL;#sources-dev-environment>`__" section in 1160"`Sources <&YOCTO_DOCS_OM_URL;#sources-dev-environment>`__" section in
1161the Yocto Project Overview and Concepts Manual. 1161the Yocto Project Overview and Concepts Manual.
1162 1162
1163The ```do_fetch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-fetch>`__ task uses 1163The :ref:`ref-tasks-fetch` task uses
1164the prefix of each entry in the ``SRC_URI`` variable value to determine 1164the prefix of each entry in the ``SRC_URI`` variable value to determine
1165which `fetcher <&YOCTO_DOCS_BB_URL;#bb-fetchers>`__ to use to get your 1165which `fetcher <&YOCTO_DOCS_BB_URL;#bb-fetchers>`__ to use to get your
1166source files. It is the ``SRC_URI`` variable that triggers the fetcher. 1166source files. It is the ``SRC_URI`` variable that triggers the fetcher.
1167The ```do_patch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-patch>`__ task uses 1167The :ref:`ref-tasks-patch` task uses
1168the variable after source is fetched to apply patches. The OpenEmbedded 1168the variable after source is fetched to apply patches. The OpenEmbedded
1169build system uses 1169build system uses
1170```FILESOVERRIDES`` <&YOCTO_DOCS_REF_URL;#var-FILESOVERRIDES>`__ for 1170:term:`FILESOVERRIDES` for
1171scanning directory locations for local files in ``SRC_URI``. 1171scanning directory locations for local files in ``SRC_URI``.
1172 1172
1173The ``SRC_URI`` variable in your recipe must define each unique location 1173The ``SRC_URI`` variable in your recipe must define each unique location
1174for your source files. It is good practice to not hard-code version 1174for your source files. It is good practice to not hard-code version
1175numbers in a URL used in ``SRC_URI``. Rather than hard-code these 1175numbers in a URL used in ``SRC_URI``. Rather than hard-code these
1176values, use ``${``\ ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__\ ``}``, 1176values, use ``${``\ :term:`PV`\ ``}``,
1177which causes the fetch process to use the version specified in the 1177which causes the fetch process to use the version specified in the
1178recipe filename. Specifying the version in this manner means that 1178recipe filename. Specifying the version in this manner means that
1179upgrading the recipe to a future version is as simple as renaming the 1179upgrading the recipe to a future version is as simple as renaming the
@@ -1182,20 +1182,20 @@ recipe to match the new version.
1182Here is a simple example from the 1182Here is a simple example from the
1183``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source 1183``meta/recipes-devtools/strace/strace_5.5.bb`` recipe where the source
1184comes from a single tarball. Notice the use of the 1184comes from a single tarball. Notice the use of the
1185```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ variable: SRC_URI = 1185:term:`PV` variable: SRC_URI =
1186"https://strace.io/files/${PV}/strace-${PV}.tar.xz \\ 1186"https://strace.io/files/${PV}/strace-${PV}.tar.xz \\
1187 1187
1188Files mentioned in ``SRC_URI`` whose names end in a typical archive 1188Files mentioned in ``SRC_URI`` whose names end in a typical archive
1189extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so 1189extension (e.g. ``.tar``, ``.tar.gz``, ``.tar.bz2``, ``.zip``, and so
1190forth), are automatically extracted during the 1190forth), are automatically extracted during the
1191```do_unpack`` <&YOCTO_DOCS_REF_URL;#ref-tasks-unpack>`__ task. For 1191:ref:`ref-tasks-unpack` task. For
1192another example that specifies these types of files, see the 1192another example that specifies these types of files, see the
1193"`Autotooled Package <#new-recipe-autotooled-package>`__" section. 1193"`Autotooled Package <#new-recipe-autotooled-package>`__" section.
1194 1194
1195Another way of specifying source is from an SCM. For Git repositories, 1195Another way of specifying source is from an SCM. For Git repositories,
1196you must specify ```SRCREV`` <&YOCTO_DOCS_REF_URL;#var-SRCREV>`__ and 1196you must specify :term:`SRCREV` and
1197you should specify ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ to include 1197you should specify :term:`PV` to include
1198the revision with ```SRCPV`` <&YOCTO_DOCS_REF_URL;#var-SRCPV>`__. Here 1198the revision with :term:`SRCPV`. Here
1199is an example from the recipe 1199is an example from the recipe
1200``meta/recipes-kernel/blktrace/blktrace_git.bb``: SRCREV = 1200``meta/recipes-kernel/blktrace/blktrace_git.bb``: SRCREV =
1201"d6918c8832793b4205ed3bfede78c2f915c23385" PR = "r6" PV = 1201"d6918c8832793b4205ed3bfede78c2f915c23385" PR = "r6" PV =
@@ -1254,10 +1254,10 @@ file://xwc.patch \\ file://rxvt.desktop \\ file://rxvt.png"
1254 1254
1255When you specify local files using the ``file://`` URI protocol, the 1255When you specify local files using the ``file://`` URI protocol, the
1256build system fetches files from the local machine. The path is relative 1256build system fetches files from the local machine. The path is relative
1257to the ```FILESPATH`` <&YOCTO_DOCS_REF_URL;#var-FILESPATH>`__ variable 1257to the :term:`FILESPATH` variable
1258and searches specific directories in a certain order: 1258and searches specific directories in a certain order:
1259``${``\ ```BP`` <&YOCTO_DOCS_REF_URL;#var-BP>`__\ ``}``, 1259``${``\ :term:`BP`\ ``}``,
1260``${``\ ```BPN`` <&YOCTO_DOCS_REF_URL;#var-BPN>`__\ ``}``, and 1260``${``\ :term:`BPN`\ ``}``, and
1261``files``. The directories are assumed to be subdirectories of the 1261``files``. The directories are assumed to be subdirectories of the
1262directory in which the recipe or append file resides. For another 1262directory in which the recipe or append file resides. For another
1263example that specifies these types of files, see the "`Single .c File 1263example that specifies these types of files, see the "`Single .c File
@@ -1276,14 +1276,14 @@ Unpacking Code
1276-------------- 1276--------------
1277 1277
1278During the build, the 1278During the build, the
1279```do_unpack`` <&YOCTO_DOCS_REF_URL;#ref-tasks-unpack>`__ task unpacks 1279:ref:`ref-tasks-unpack` task unpacks
1280the source with ``${``\ ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__\ ``}`` 1280the source with ``${``\ :term:`S`\ ``}``
1281pointing to where it is unpacked. 1281pointing to where it is unpacked.
1282 1282
1283If you are fetching your source files from an upstream source archived 1283If you are fetching your source files from an upstream source archived
1284tarball and the tarball's internal structure matches the common 1284tarball and the tarball's internal structure matches the common
1285convention of a top-level subdirectory named 1285convention of a top-level subdirectory named
1286``${``\ ```BPN`` <&YOCTO_DOCS_REF_URL;#var-BPN>`__\ ``}-${``\ ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__\ ``}``, 1286``${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``,
1287then you do not need to set ``S``. However, if ``SRC_URI`` specifies to 1287then you do not need to set ``S``. However, if ``SRC_URI`` specifies to
1288fetch source from an archive that does not use this convention, or from 1288fetch source from an archive that does not use this convention, or from
1289an SCM like Git or Subversion, your recipe needs to define ``S``. 1289an SCM like Git or Subversion, your recipe needs to define ``S``.
@@ -1301,7 +1301,7 @@ Sometimes it is necessary to patch code after it has been fetched. Any
1301files mentioned in ``SRC_URI`` whose names end in ``.patch`` or 1301files mentioned in ``SRC_URI`` whose names end in ``.patch`` or
1302``.diff`` or compressed versions of these suffixes (e.g. ``diff.gz`` are 1302``.diff`` or compressed versions of these suffixes (e.g. ``diff.gz`` are
1303treated as patches. The 1303treated as patches. The
1304```do_patch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-patch>`__ task 1304:ref:`ref-tasks-patch` task
1305automatically applies these patches. 1305automatically applies these patches.
1306 1306
1307The build system should be able to apply patches with the "-p1" option 1307The build system should be able to apply patches with the "-p1" option
@@ -1313,11 +1313,11 @@ specific subdirectory that is not specified in the patch file, use the
1313"patchdir" option in the entry. 1313"patchdir" option in the entry.
1314 1314
1315As with all local files referenced in 1315As with all local files referenced in
1316```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ using ``file://``, 1316:term:`SRC_URI` using ``file://``,
1317you should place patch files in a directory next to the recipe either 1317you should place patch files in a directory next to the recipe either
1318named the same as the base name of the recipe 1318named the same as the base name of the recipe
1319(```BP`` <&YOCTO_DOCS_REF_URL;#var-BP>`__ and 1319(:term:`BP` and
1320```BPN`` <&YOCTO_DOCS_REF_URL;#var-BPN>`__) or "files". 1320:term:`BPN`) or "files".
1321 1321
1322.. _new-recipe-licensing: 1322.. _new-recipe-licensing:
1323 1323
@@ -1325,8 +1325,8 @@ Licensing
1325--------- 1325---------
1326 1326
1327Your recipe needs to have both the 1327Your recipe needs to have both the
1328```LICENSE`` <&YOCTO_DOCS_REF_URL;#var-LICENSE>`__ and 1328:term:`LICENSE` and
1329```LIC_FILES_CHKSUM`` <&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM>`__ 1329:term:`LIC_FILES_CHKSUM`
1330variables: 1330variables:
1331 1331
1332- *``LICENSE``:* This variable specifies the license for the software. 1332- *``LICENSE``:* This variable specifies the license for the software.
@@ -1383,15 +1383,15 @@ software is built; and runtime dependencies, which are required to be
1383installed on the target in order for the software to run. 1383installed on the target in order for the software to run.
1384 1384
1385Within a recipe, you specify build-time dependencies using the 1385Within a recipe, you specify build-time dependencies using the
1386```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ variable. Although 1386:term:`DEPENDS` variable. Although
1387nuances exist, items specified in ``DEPENDS`` should be names of other 1387nuances exist, items specified in ``DEPENDS`` should be names of other
1388recipes. It is important that you specify all build-time dependencies 1388recipes. It is important that you specify all build-time dependencies
1389explicitly. If you do not, due to the parallel nature of BitBake's 1389explicitly. If you do not, due to the parallel nature of BitBake's
1390execution, you can end up with a race condition where the dependency is 1390execution, you can end up with a race condition where the dependency is
1391present for one task of a recipe (e.g. 1391present for one task of a recipe (e.g.
1392```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__) and 1392:ref:`ref-tasks-configure`) and
1393then gone when the next task runs (e.g. 1393then gone when the next task runs (e.g.
1394```do_compile`` <&YOCTO_DOCS_REF_URL;#ref-tasks-compile>`__). 1394:ref:`ref-tasks-compile`).
1395 1395
1396Another consideration is that configure scripts might automatically 1396Another consideration is that configure scripts might automatically
1397check for optional dependencies and enable corresponding functionality 1397check for optional dependencies and enable corresponding functionality
@@ -1402,18 +1402,18 @@ configure script explicitly to disable the functionality. If you wish to
1402make a recipe that is more generally useful (e.g. publish the recipe in 1402make a recipe that is more generally useful (e.g. publish the recipe in
1403a layer for others to use), instead of hard-disabling the functionality, 1403a layer for others to use), instead of hard-disabling the functionality,
1404you can use the 1404you can use the
1405```PACKAGECONFIG`` <&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG>`__ variable 1405:term:`PACKAGECONFIG` variable
1406to allow functionality and the corresponding dependencies to be enabled 1406to allow functionality and the corresponding dependencies to be enabled
1407and disabled easily by other users of the recipe. 1407and disabled easily by other users of the recipe.
1408 1408
1409Similar to build-time dependencies, you specify runtime dependencies 1409Similar to build-time dependencies, you specify runtime dependencies
1410through a variable - 1410through a variable -
1411```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__, which is 1411:term:`RDEPENDS`, which is
1412package-specific. All variables that are package-specific need to have 1412package-specific. All variables that are package-specific need to have
1413the name of the package added to the end as an override. Since the main 1413the name of the package added to the end as an override. Since the main
1414package for a recipe has the same name as the recipe, and the recipe's 1414package for a recipe has the same name as the recipe, and the recipe's
1415name can be found through the 1415name can be found through the
1416``${``\ ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__\ ``}`` variable, then 1416``${``\ :term:`PN`\ ``}`` variable, then
1417you specify the dependencies for the main package by setting 1417you specify the dependencies for the main package by setting
1418``RDEPENDS_${PN}``. If the package were named ``${PN}-tools``, then you 1418``RDEPENDS_${PN}``. If the package were named ``${PN}-tools``, then you
1419would set ``RDEPENDS_${PN}-tools``, and so forth. 1419would set ``RDEPENDS_${PN}-tools``, and so forth.
@@ -1455,7 +1455,7 @@ A major part of build-time configuration is about checking for
1455build-time dependencies and possibly enabling optional functionality as 1455build-time dependencies and possibly enabling optional functionality as
1456a result. You need to specify any build-time dependencies for the 1456a result. You need to specify any build-time dependencies for the
1457software you are building in your recipe's 1457software you are building in your recipe's
1458```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ value, in terms of 1458:term:`DEPENDS` value, in terms of
1459other recipes that satisfy those dependencies. You can often find 1459other recipes that satisfy those dependencies. You can often find
1460build-time or runtime dependencies described in the software's 1460build-time or runtime dependencies described in the software's
1461documentation. 1461documentation.
@@ -1468,13 +1468,13 @@ your software is built:
1468 need to worry about modifying the configuration. 1468 need to worry about modifying the configuration.
1469 1469
1470 When using Autotools, your recipe needs to inherit the 1470 When using Autotools, your recipe needs to inherit the
1471 ```autotools`` <&YOCTO_DOCS_REF_URL;#ref-classes-autotools>`__ class 1471 :ref:`autotools <ref-classes-autotools>` class
1472 and your recipe does not have to contain a 1472 and your recipe does not have to contain a
1473 ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ task. 1473 :ref:`ref-tasks-configure` task.
1474 However, you might still want to make some adjustments. For example, 1474 However, you might still want to make some adjustments. For example,
1475 you can set 1475 you can set
1476 ```EXTRA_OECONF`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_OECONF>`__ or 1476 :term:`EXTRA_OECONF` or
1477 ```PACKAGECONFIG_CONFARGS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS>`__ 1477 :term:`PACKAGECONFIG_CONFARGS`
1478 to pass any needed configure options that are specific to the recipe. 1478 to pass any needed configure options that are specific to the recipe.
1479 1479
1480- *CMake:* If your source files have a ``CMakeLists.txt`` file, then 1480- *CMake:* If your source files have a ``CMakeLists.txt`` file, then
@@ -1482,11 +1482,11 @@ your software is built:
1482 need to worry about modifying the configuration. 1482 need to worry about modifying the configuration.
1483 1483
1484 When you use CMake, your recipe needs to inherit the 1484 When you use CMake, your recipe needs to inherit the
1485 ```cmake`` <&YOCTO_DOCS_REF_URL;#ref-classes-cmake>`__ class and your 1485 :ref:`cmake <ref-classes-cmake>` class and your
1486 recipe does not have to contain a 1486 recipe does not have to contain a
1487 ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ task. 1487 :ref:`ref-tasks-configure` task.
1488 You can make some adjustments by setting 1488 You can make some adjustments by setting
1489 ```EXTRA_OECMAKE`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_OECMAKE>`__ to 1489 :term:`EXTRA_OECMAKE` to
1490 pass any needed configure options that are specific to the recipe. 1490 pass any needed configure options that are specific to the recipe.
1491 1491
1492 .. note:: 1492 .. note::
@@ -1503,7 +1503,7 @@ your software is built:
1503 ``CMakeLists.txt`` file, then your software is built using some 1503 ``CMakeLists.txt`` file, then your software is built using some
1504 method other than Autotools or CMake. If this is the case, you 1504 method other than Autotools or CMake. If this is the case, you
1505 normally need to provide a 1505 normally need to provide a
1506 ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ task 1506 :ref:`ref-tasks-configure` task
1507 in your recipe unless, of course, there is nothing to configure. 1507 in your recipe unless, of course, there is nothing to configure.
1508 1508
1509 Even if your software is not being built by Autotools or CMake, you 1509 Even if your software is not being built by Autotools or CMake, you
@@ -1591,7 +1591,7 @@ Consider a case where your kernel is older and you need an older
1591standard mainline kernel, not your own custom one. 1591standard mainline kernel, not your own custom one.
1592 1592
1593When you use custom kernel headers you need to get them from 1593When you use custom kernel headers you need to get them from
1594```STAGING_KERNEL_DIR`` <&YOCTO_DOCS_REF_URL;#var-STAGING_KERNEL_DIR>`__, 1594:term:`STAGING_KERNEL_DIR`,
1595which is the directory with kernel headers that are required to build 1595which is the directory with kernel headers that are required to build
1596out-of-tree modules. Your recipe will also need the following: 1596out-of-tree modules. Your recipe will also need the following:
1597do_configure[depends] += "virtual/kernel:do_shared_workdir" 1597do_configure[depends] += "virtual/kernel:do_shared_workdir"
@@ -1629,7 +1629,7 @@ Here are some common issues that cause failures.
1629 To fix the problem, you need to either satisfy the missing dependency 1629 To fix the problem, you need to either satisfy the missing dependency
1630 in the Makefile or whatever script produced the Makefile, or (as a 1630 in the Makefile or whatever script produced the Makefile, or (as a
1631 workaround) set 1631 workaround) set
1632 ```PARALLEL_MAKE`` <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE>`__ to an 1632 :term:`PARALLEL_MAKE` to an
1633 empty string: PARALLEL_MAKE = "" 1633 empty string: PARALLEL_MAKE = ""
1634 1634
1635 For information on parallel Makefile issues, see the "`Debugging 1635 For information on parallel Makefile issues, see the "`Debugging
@@ -1647,7 +1647,7 @@ Here are some common issues that cause failures.
1647 1647
1648- *Failure to find required libraries/headers:* If a build-time 1648- *Failure to find required libraries/headers:* If a build-time
1649 dependency is missing because it has not been declared in 1649 dependency is missing because it has not been declared in
1650 ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__, or because the 1650 :term:`DEPENDS`, or because the
1651 dependency exists but the path used by the build process to find the 1651 dependency exists but the path used by the build process to find the
1652 file is incorrect and the configure step did not detect it, the 1652 file is incorrect and the configure step did not detect it, the
1653 compilation process could fail. For either of these failures, the 1653 compilation process could fail. For either of these failures, the
@@ -1671,10 +1671,10 @@ Installing
1671During ``do_install``, the task copies the built files along with their 1671During ``do_install``, the task copies the built files along with their
1672hierarchy to locations that would mirror their locations on the target 1672hierarchy to locations that would mirror their locations on the target
1673device. The installation process copies files from the 1673device. The installation process copies files from the
1674``${``\ ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__\ ``}``, 1674``${``\ :term:`S`\ ``}``,
1675``${``\ ```B`` <&YOCTO_DOCS_REF_URL;#var-B>`__\ ``}``, and 1675``${``\ :term:`B`\ ``}``, and
1676``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}`` 1676``${``\ :term:`WORKDIR`\ ``}``
1677directories to the ``${``\ ```D`` <&YOCTO_DOCS_REF_URL;#var-D>`__\ ``}`` 1677directories to the ``${``\ :term:`D`\ ``}``
1678directory to create the structure as it should appear on the target 1678directory to create the structure as it should appear on the target
1679system. 1679system.
1680 1680
@@ -1707,7 +1707,7 @@ the software being built:
1707- *Manual:* You need to define a ``do_install`` function in your 1707- *Manual:* You need to define a ``do_install`` function in your
1708 recipe. The function must first use ``install -d`` to create the 1708 recipe. The function must first use ``install -d`` to create the
1709 directories under 1709 directories under
1710 ``${``\ ```D`` <&YOCTO_DOCS_REF_URL;#var-D>`__\ ``}``. Once the 1710 ``${``\ :term:`D`\ ``}``. Once the
1711 directories exist, your function can use ``install`` to manually 1711 directories exist, your function can use ``install`` to manually
1712 install the built software into the directories. 1712 install the built software into the directories.
1713 1713
@@ -1734,21 +1734,21 @@ installed correctly.
1734 1734
1735 - ``oe_runmake install``, which can be run directly or can be run 1735 - ``oe_runmake install``, which can be run directly or can be run
1736 indirectly by the 1736 indirectly by the
1737 ```autotools`` <&YOCTO_DOCS_REF_URL;#ref-classes-autotools>`__ and 1737 :ref:`autotools <ref-classes-autotools>` and
1738 ```cmake`` <&YOCTO_DOCS_REF_URL;#ref-classes-cmake>`__ classes, 1738 :ref:`cmake <ref-classes-cmake>` classes,
1739 runs ``make install`` in parallel. Sometimes, a Makefile can have 1739 runs ``make install`` in parallel. Sometimes, a Makefile can have
1740 missing dependencies between targets that can result in race 1740 missing dependencies between targets that can result in race
1741 conditions. If you experience intermittent failures during 1741 conditions. If you experience intermittent failures during
1742 ``do_install``, you might be able to work around them by disabling 1742 ``do_install``, you might be able to work around them by disabling
1743 parallel Makefile installs by adding the following to the recipe: 1743 parallel Makefile installs by adding the following to the recipe:
1744 PARALLEL_MAKEINST = "" See 1744 PARALLEL_MAKEINST = "" See
1745 ```PARALLEL_MAKEINST`` <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST>`__ 1745 :term:`PARALLEL_MAKEINST`
1746 for additional information. 1746 for additional information.
1747 1747
1748 - If you need to install one or more custom CMake toolchain files 1748 - If you need to install one or more custom CMake toolchain files
1749 that are supplied by the application you are building, install the 1749 that are supplied by the application you are building, install the
1750 files to ``${D}${datadir}/cmake/`` Modules during 1750 files to ``${D}${datadir}/cmake/`` Modules during
1751 ```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__. 1751 :ref:`ref-tasks-install`.
1752 1752
1753.. _new-recipe-enabling-system-services: 1753.. _new-recipe-enabling-system-services:
1754 1754
@@ -1781,15 +1781,15 @@ different ways:
1781 shutdown of all other programs. 1781 shutdown of all other programs.
1782 1782
1783 To enable a service using SysVinit, your recipe needs to inherit the 1783 To enable a service using SysVinit, your recipe needs to inherit the
1784 ```update-rc.d`` <&YOCTO_DOCS_REF_URL;#ref-classes-update-rc.d>`__ 1784 :ref:`update-rc.d <ref-classes-update-rc.d>`
1785 class. The class helps facilitate safely installing the package on 1785 class. The class helps facilitate safely installing the package on
1786 the target. 1786 the target.
1787 1787
1788 You will need to set the 1788 You will need to set the
1789 ```INITSCRIPT_PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-INITSCRIPT_PACKAGES>`__, 1789 :term:`INITSCRIPT_PACKAGES`,
1790 ```INITSCRIPT_NAME`` <&YOCTO_DOCS_REF_URL;#var-INITSCRIPT_NAME>`__, 1790 :term:`INITSCRIPT_NAME`,
1791 and 1791 and
1792 ```INITSCRIPT_PARAMS`` <&YOCTO_DOCS_REF_URL;#var-INITSCRIPT_PARAMS>`__ 1792 :term:`INITSCRIPT_PARAMS`
1793 variables within your recipe. 1793 variables within your recipe.
1794 1794
1795- *systemd:* System Management Daemon (systemd) was designed to replace 1795- *systemd:* System Management Daemon (systemd) was designed to replace
@@ -1798,7 +1798,7 @@ different ways:
1798 ` <http://freedesktop.org/wiki/Software/systemd/>`__. 1798 ` <http://freedesktop.org/wiki/Software/systemd/>`__.
1799 1799
1800 To enable a service using systemd, your recipe needs to inherit the 1800 To enable a service using systemd, your recipe needs to inherit the
1801 ```systemd`` <&YOCTO_DOCS_REF_URL;#ref-classes-systemd>`__ class. See 1801 :ref:`systemd <ref-classes-systemd>` class. See
1802 the ``systemd.bbclass`` file located in your `Source 1802 the ``systemd.bbclass`` file located in your `Source
1803 Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__. section for 1803 Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__. section for
1804 more information. 1804 more information.
@@ -1819,24 +1819,24 @@ take. The following list describes the process:
1819 task ensures that files are split up and packaged correctly. 1819 task ensures that files are split up and packaged correctly.
1820 1820
1821- *Running QA Checks*: The 1821- *Running QA Checks*: The
1822 ```insane`` <&YOCTO_DOCS_REF_URL;#ref-classes-insane>`__ class adds a 1822 :ref:`insane <ref-classes-insane>` class adds a
1823 step to the package generation process so that output quality 1823 step to the package generation process so that output quality
1824 assurance checks are generated by the OpenEmbedded build system. This 1824 assurance checks are generated by the OpenEmbedded build system. This
1825 step performs a range of checks to be sure the build's output is free 1825 step performs a range of checks to be sure the build's output is free
1826 of common problems that show up during runtime. For information on 1826 of common problems that show up during runtime. For information on
1827 these checks, see the 1827 these checks, see the
1828 ```insane`` <&YOCTO_DOCS_REF_URL;#ref-classes-insane>`__ class and 1828 :ref:`insane <ref-classes-insane>` class and
1829 the "`QA Error and Warning 1829 the "`QA Error and Warning
1830 Messages <&YOCTO_DOCS_REF_URL;#ref-qa-checks>`__" chapter in the 1830 Messages <&YOCTO_DOCS_REF_URL;#ref-qa-checks>`__" chapter in the
1831 Yocto Project Reference Manual. 1831 Yocto Project Reference Manual.
1832 1832
1833- *Hand-Checking Your Packages*: After you build your software, you 1833- *Hand-Checking Your Packages*: After you build your software, you
1834 need to be sure your packages are correct. Examine the 1834 need to be sure your packages are correct. Examine the
1835 ``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}/packages-split`` 1835 ``${``\ :term:`WORKDIR`\ ``}/packages-split``
1836 directory and make sure files are where you expect them to be. If you 1836 directory and make sure files are where you expect them to be. If you
1837 discover problems, you can set 1837 discover problems, you can set
1838 ```PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES>`__, 1838 :term:`PACKAGES`,
1839 ```FILES`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__, 1839 :term:`FILES`,
1840 ``do_install(_append)``, and so forth as needed. 1840 ``do_install(_append)``, and so forth as needed.
1841 1841
1842- *Splitting an Application into Multiple Packages*: If you need to 1842- *Splitting an Application into Multiple Packages*: If you need to
@@ -1858,7 +1858,7 @@ take. The following list describes the process:
1858 By default, packages apply to any machine with the same architecture 1858 By default, packages apply to any machine with the same architecture
1859 as the target machine. When a recipe produces packages that are 1859 as the target machine. When a recipe produces packages that are
1860 machine-specific (e.g. the 1860 machine-specific (e.g. the
1861 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ value is passed 1861 :term:`MACHINE` value is passed
1862 into the configure script or a patch is applied only for a particular 1862 into the configure script or a patch is applied only for a particular
1863 machine), you should mark them as such by adding the following to the 1863 machine), you should mark them as such by adding the following to the
1864 recipe: PACKAGE_ARCH = "${MACHINE_ARCH}" 1864 recipe: PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -1867,7 +1867,7 @@ take. The following list describes the process:
1867 contain anything specific to the target machine or architecture at 1867 contain anything specific to the target machine or architecture at
1868 all (e.g. recipes that simply package script files or configuration 1868 all (e.g. recipes that simply package script files or configuration
1869 files), you should use the 1869 files), you should use the
1870 ```allarch`` <&YOCTO_DOCS_REF_URL;#ref-classes-allarch>`__ class to 1870 :ref:`allarch <ref-classes-allarch>` class to
1871 do this for you by adding this to your recipe: inherit allarch 1871 do this for you by adding this to your recipe: inherit allarch
1872 Ensuring that the package architecture is correct is not critical 1872 Ensuring that the package architecture is correct is not critical
1873 while you are doing the first few builds of your recipe. However, it 1873 while you are doing the first few builds of your recipe. However, it
@@ -1900,28 +1900,28 @@ recipe has two sysroots in its work directory, one for target files
1900Recipes should never populate the sysroot directly (i.e. write files 1900Recipes should never populate the sysroot directly (i.e. write files
1901into sysroot). Instead, files should be installed into standard 1901into sysroot). Instead, files should be installed into standard
1902locations during the 1902locations during the
1903```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__ task within 1903:ref:`ref-tasks-install` task within
1904the ``${``\ ```D`` <&YOCTO_DOCS_REF_URL;#var-D>`__\ ``}`` directory. The 1904the ``${``\ :term:`D`\ ``}`` directory. The
1905reason for this limitation is that almost all files that populate the 1905reason for this limitation is that almost all files that populate the
1906sysroot are cataloged in manifests in order to ensure the files can be 1906sysroot are cataloged in manifests in order to ensure the files can be
1907removed later when a recipe is either modified or removed. Thus, the 1907removed later when a recipe is either modified or removed. Thus, the
1908sysroot is able to remain free from stale files. 1908sysroot is able to remain free from stale files.
1909 1909
1910A subset of the files installed by the 1910A subset of the files installed by the
1911```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__ task are 1911:ref:`ref-tasks-install` task are
1912used by the 1912used by the
1913```do_populate_sysroot`` <&YOCTO_DOCS_REF_URL;#ref-tasks-populate_sysroot>`__ 1913:ref:`ref-tasks-populate_sysroot`
1914task as defined by the the 1914task as defined by the the
1915```SYSROOT_DIRS`` <&YOCTO_DOCS_REF_URL;#var-SYSROOT_DIRS>`__ variable to 1915:term:`SYSROOT_DIRS` variable to
1916automatically populate the sysroot. It is possible to modify the list of 1916automatically populate the sysroot. It is possible to modify the list of
1917directories that populate the sysroot. The following example shows how 1917directories that populate the sysroot. The following example shows how
1918you could add the ``/opt`` directory to the list of directories within a 1918you could add the ``/opt`` directory to the list of directories within a
1919recipe: SYSROOT_DIRS += "/opt" 1919recipe: SYSROOT_DIRS += "/opt"
1920 1920
1921For a more complete description of the 1921For a more complete description of the
1922```do_populate_sysroot`` <&YOCTO_DOCS_REF_URL;#ref-tasks-populate_sysroot>`__ 1922:ref:`ref-tasks-populate_sysroot`
1923task and its associated functions, see the 1923task and its associated functions, see the
1924```staging`` <&YOCTO_DOCS_REF_URL;#ref-classes-staging>`__ class. 1924:ref:`staging <ref-classes-staging>` class.
1925 1925
1926.. _metadata-virtual-providers: 1926.. _metadata-virtual-providers:
1927 1927
@@ -1935,12 +1935,12 @@ determined at build-time.
1935 1935
1936A common scenario where a virtual provider is used would be for the 1936A common scenario where a virtual provider is used would be for the
1937kernel recipe. Suppose you have three kernel recipes whose 1937kernel recipe. Suppose you have three kernel recipes whose
1938```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__ values map to ``kernel-big``, 1938:term:`PN` values map to ``kernel-big``,
1939``kernel-mid``, and ``kernel-small``. Furthermore, each of these recipes 1939``kernel-mid``, and ``kernel-small``. Furthermore, each of these recipes
1940in some way uses a ```PROVIDES`` <&YOCTO_DOCS_REF_URL;#var-PROVIDES>`__ 1940in some way uses a :term:`PROVIDES`
1941statement that essentially identifies itself as being able to provide 1941statement that essentially identifies itself as being able to provide
1942``virtual/kernel``. Here is one way through the 1942``virtual/kernel``. Here is one way through the
1943```kernel`` <&YOCTO_DOCS_REF_URL;#ref-classes-kernel>`__ class: PROVIDES 1943:ref:`kernel <ref-classes-kernel>` class: PROVIDES
1944+= "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") == 1944+= "${@ "virtual/kernel" if (d.getVar("KERNEL_PACKAGE_NAME") ==
1945"kernel") else "" }" Any recipe that inherits the ``kernel`` class is 1945"kernel") else "" }" Any recipe that inherits the ``kernel`` class is
1946going to utilize a ``PROVIDES`` statement that identifies that recipe as 1946going to utilize a ``PROVIDES`` statement that identifies that recipe as
@@ -1949,11 +1949,11 @@ being able to provide the ``virtual/kernel`` item.
1949Now comes the time to actually build an image and you need a kernel 1949Now comes the time to actually build an image and you need a kernel
1950recipe, but which one? You can configure your build to call out the 1950recipe, but which one? You can configure your build to call out the
1951kernel recipe you want by using the 1951kernel recipe you want by using the
1952```PREFERRED_PROVIDER`` <&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER>`__ 1952:term:`PREFERRED_PROVIDER`
1953variable. As an example, consider the 1953variable. As an example, consider the
1954```x86-base.inc`` <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/machine/include/x86-base.inc>`__ 1954```x86-base.inc`` <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/conf/machine/include/x86-base.inc>`__
1955include file, which is a machine (i.e. 1955include file, which is a machine (i.e.
1956```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__) configuration file. 1956:term:`MACHINE`) configuration file.
1957This include file is the reason all x86-based machines use the 1957This include file is the reason all x86-based machines use the
1958``linux-yocto`` kernel. Here are the relevant lines from the include 1958``linux-yocto`` kernel. Here are the relevant lines from the include
1959file: PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto" 1959file: PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
@@ -1961,7 +1961,7 @@ PREFERRED_VERSION_linux-yocto ??= "4.15%"
1961 1961
1962When you use a virtual provider, you do not have to "hard code" a recipe 1962When you use a virtual provider, you do not have to "hard code" a recipe
1963name as a build dependency. You can use the 1963name as a build dependency. You can use the
1964```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ variable to state the 1964:term:`DEPENDS` variable to state the
1965build is dependent on ``virtual/kernel`` for example: DEPENDS = 1965build is dependent on ``virtual/kernel`` for example: DEPENDS =
1966"virtual/kernel" During the build, the OpenEmbedded build system picks 1966"virtual/kernel" During the build, the OpenEmbedded build system picks
1967the correct recipe needed for the ``virtual/kernel`` dependency based on 1967the correct recipe needed for the ``virtual/kernel`` dependency based on
@@ -2014,7 +2014,7 @@ build system and package managers, so the resulting packages will not
2014correctly trigger an upgrade. 2014correctly trigger an upgrade.
2015 2015
2016In order to ensure the versions compare properly, the recommended 2016In order to ensure the versions compare properly, the recommended
2017convention is to set ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ within the 2017convention is to set :term:`PV` within the
2018recipe to "previous_version+current_version". You can use an additional 2018recipe to "previous_version+current_version". You can use an additional
2019variable so that you can use the current version elsewhere. Here is an 2019variable so that you can use the current version elsewhere. Here is an
2020example: REALPV = "0.8.16-rc1" PV = "0.8.15+${REALPV}" 2020example: REALPV = "0.8.16-rc1" PV = "0.8.15+${REALPV}"
@@ -2032,7 +2032,7 @@ image. To add a post-installation script to a package, add a
2032to attach to the ``postinst`` script. To apply the post-installation 2032to attach to the ``postinst`` script. To apply the post-installation
2033script to the main package for the recipe, which is usually what is 2033script to the main package for the recipe, which is usually what is
2034required, specify 2034required, specify
2035``${``\ ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__\ ``}`` in place of 2035``${``\ :term:`PN`\ ``}`` in place of
2036PACKAGENAME. 2036PACKAGENAME.
2037 2037
2038A post-installation function has the following structure: 2038A post-installation function has the following structure:
@@ -2057,12 +2057,12 @@ target. You can use ``pkg_postinst_ontarget()`` or call
2057``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. Any 2057``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``. Any
2058failure of a ``pkg_postinst()`` script (including exit 1) triggers an 2058failure of a ``pkg_postinst()`` script (including exit 1) triggers an
2059error during the 2059error during the
2060```do_rootfs`` <&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs>`__ task. 2060:ref:`ref-tasks-rootfs` task.
2061 2061
2062If you have recipes that use ``pkg_postinst`` function and they require 2062If you have recipes that use ``pkg_postinst`` function and they require
2063the use of non-standard native tools that have dependencies during 2063the use of non-standard native tools that have dependencies during
2064rootfs construction, you need to use the 2064rootfs construction, you need to use the
2065```PACKAGE_WRITE_DEPS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_WRITE_DEPS>`__ 2065:term:`PACKAGE_WRITE_DEPS`
2066variable in your recipe to list these tools. If you do not use this 2066variable in your recipe to list these tools. If you do not use this
2067variable, the tools might be missing and execution of the 2067variable, the tools might be missing and execution of the
2068post-installation script is deferred until first boot. Deferring the 2068post-installation script is deferred until first boot. Deferring the
@@ -2126,7 +2126,7 @@ under ``files``) requires a recipe that has the file listed in the
2126``SRC_URI`` variable. Additionally, you need to manually write the 2126``SRC_URI`` variable. Additionally, you need to manually write the
2127``do_compile`` and ``do_install`` tasks. The ``S`` variable defines the 2127``do_compile`` and ``do_install`` tasks. The ``S`` variable defines the
2128directory containing the source code, which is set to 2128directory containing the source code, which is set to
2129```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__ in this case - the 2129:term:`WORKDIR` in this case - the
2130directory BitBake uses for the build. SUMMARY = "Simple helloworld 2130directory BitBake uses for the build. SUMMARY = "Simple helloworld
2131application" SECTION = "examples" LICENSE = "MIT" LIC_FILES_CHKSUM = 2131application" SECTION = "examples" LICENSE = "MIT" LIC_FILES_CHKSUM =
2132"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 2132"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
@@ -2148,7 +2148,7 @@ Autotooled Package
2148Applications that use Autotools such as ``autoconf`` and ``automake`` 2148Applications that use Autotools such as ``autoconf`` and ``automake``
2149require a recipe that has a source archive listed in ``SRC_URI`` and 2149require a recipe that has a source archive listed in ``SRC_URI`` and
2150also inherit the 2150also inherit the
2151```autotools`` <&YOCTO_DOCS_REF_URL;#ref-classes-autotools>`__ class, 2151:ref:`autotools <ref-classes-autotools>` class,
2152which contains the definitions of all the steps needed to build an 2152which contains the definitions of all the steps needed to build an
2153Autotool-based application. The result of the build is automatically 2153Autotool-based application. The result of the build is automatically
2154packaged. And, if the application uses NLS for localization, packages 2154packaged. And, if the application uses NLS for localization, packages
@@ -2174,8 +2174,8 @@ source archive listed in ``SRC_URI``. You do not need to add a
2174``do_compile`` step since by default BitBake starts the ``make`` command 2174``do_compile`` step since by default BitBake starts the ``make`` command
2175to compile the application. If you need additional ``make`` options, you 2175to compile the application. If you need additional ``make`` options, you
2176should store them in the 2176should store them in the
2177```EXTRA_OEMAKE`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_OEMAKE>`__ or 2177:term:`EXTRA_OEMAKE` or
2178```PACKAGECONFIG_CONFARGS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGECONFIG_CONFARGS>`__ 2178:term:`PACKAGECONFIG_CONFARGS`
2179variables. BitBake passes these options into the GNU ``make`` 2179variables. BitBake passes these options into the GNU ``make``
2180invocation. Note that a ``do_install`` task is still required. 2180invocation. Note that a ``do_install`` task is still required.
2181Otherwise, BitBake runs an empty ``do_install`` task by default. 2181Otherwise, BitBake runs an empty ``do_install`` task by default.
@@ -2242,7 +2242,7 @@ needs to use those binaries as part of an image that you are building
2242using the OpenEmbedded build system. Since you only have the binaries 2242using the OpenEmbedded build system. Since you only have the binaries
2243and not the source code, you cannot use a typical recipe that expects to 2243and not the source code, you cannot use a typical recipe that expects to
2244fetch the source specified in 2244fetch the source specified in
2245```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ and then compile it. 2245:term:`SRC_URI` and then compile it.
2246 2246
2247One method is to package the binaries and then install them as part of 2247One method is to package the binaries and then install them as part of
2248the image. Generally, it is not a good idea to package binaries since, 2248the image. Generally, it is not a good idea to package binaries since,
@@ -2256,23 +2256,23 @@ and to be sure that you are using default locations for build artifacts.
2256In most cases, the ``bin_package`` class handles "skipping" the 2256In most cases, the ``bin_package`` class handles "skipping" the
2257configure and compile steps as well as sets things up to grab packages 2257configure and compile steps as well as sets things up to grab packages
2258from the appropriate area. In particular, this class sets ``noexec`` on 2258from the appropriate area. In particular, this class sets ``noexec`` on
2259both the ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ 2259both the :ref:`ref-tasks-configure`
2260and ```do_compile`` <&YOCTO_DOCS_REF_URL;#ref-tasks-compile>`__ tasks, 2260and :ref:`ref-tasks-compile` tasks,
2261sets ``FILES_${PN}`` to "/" so that it picks up all files, and sets up a 2261sets ``FILES_${PN}`` to "/" so that it picks up all files, and sets up a
2262```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__ task, which 2262:ref:`ref-tasks-install` task, which
2263effectively copies all files from ``${S}`` to ``${D}``. The 2263effectively copies all files from ``${S}`` to ``${D}``. The
2264``bin_package`` class works well when the files extracted into ``${S}`` 2264``bin_package`` class works well when the files extracted into ``${S}``
2265are already laid out in the way they should be laid out on the target. 2265are already laid out in the way they should be laid out on the target.
2266For more information on these variables, see the 2266For more information on these variables, see the
2267```FILES`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__, 2267:term:`FILES`,
2268```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__, 2268:term:`PN`,
2269```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__, and 2269:term:`S`, and
2270```D`` <&YOCTO_DOCS_REF_URL;#var-D>`__ variables in the Yocto Project 2270:term:`D` variables in the Yocto Project
2271Reference Manual's variable glossary. 2271Reference Manual's variable glossary.
2272 2272
2273.. note:: 2273.. note::
2274 2274
2275 - Using ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ is a good 2275 - Using :term:`DEPENDS` is a good
2276 idea even for components distributed in binary form, and is often 2276 idea even for components distributed in binary form, and is often
2277 necessary for shared libraries. For a shared library, listing the 2277 necessary for shared libraries. For a shared library, listing the
2278 library dependencies in ``DEPENDS`` makes sure that the libraries 2278 library dependencies in ``DEPENDS`` makes sure that the libraries
@@ -2291,12 +2291,12 @@ If you cannot use the ``bin_package`` class, you need to be sure you are
2291doing the following: 2291doing the following:
2292 2292
2293- Create a recipe where the 2293- Create a recipe where the
2294 ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ and 2294 :ref:`ref-tasks-configure` and
2295 ```do_compile`` <&YOCTO_DOCS_REF_URL;#ref-tasks-compile>`__ tasks do 2295 :ref:`ref-tasks-compile` tasks do
2296 nothing: It is usually sufficient to just not define these tasks in 2296 nothing: It is usually sufficient to just not define these tasks in
2297 the recipe, because the default implementations do nothing unless a 2297 the recipe, because the default implementations do nothing unless a
2298 Makefile is found in 2298 Makefile is found in
2299 ``${``\ ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__\ ``}``. 2299 ``${``\ :term:`S`\ ``}``.
2300 2300
2301 If ``${S}`` might contain a Makefile, or if you inherit some class 2301 If ``${S}`` might contain a Makefile, or if you inherit some class
2302 that replaces ``do_configure`` and ``do_compile`` with custom 2302 that replaces ``do_configure`` and ``do_compile`` with custom
@@ -2306,17 +2306,17 @@ doing the following:
2306 = "1" do_compile[noexec] = "1" Unlike 2306 = "1" do_compile[noexec] = "1" Unlike
2307 ```deleting the tasks`` <&YOCTO_DOCS_BB_URL;#deleting-a-task>`__, 2307 ```deleting the tasks`` <&YOCTO_DOCS_BB_URL;#deleting-a-task>`__,
2308 using the flag preserves the dependency chain from the 2308 using the flag preserves the dependency chain from the
2309 ```do_fetch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-fetch>`__, 2309 :ref:`ref-tasks-fetch`,
2310 ```do_unpack`` <&YOCTO_DOCS_REF_URL;#ref-tasks-unpack>`__, and 2310 :ref:`ref-tasks-unpack`, and
2311 ```do_patch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-patch>`__ tasks to the 2311 :ref:`ref-tasks-patch` tasks to the
2312 ```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__ task. 2312 :ref:`ref-tasks-install` task.
2313 2313
2314- Make sure your ``do_install`` task installs the binaries 2314- Make sure your ``do_install`` task installs the binaries
2315 appropriately. 2315 appropriately.
2316 2316
2317- Ensure that you set up ```FILES`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__ 2317- Ensure that you set up :term:`FILES`
2318 (usually 2318 (usually
2319 ``FILES_${``\ ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__\ ``}``) to 2319 ``FILES_${``\ :term:`PN`\ ``}``) to
2320 point to the files you have installed, which of course depends on 2320 point to the files you have installed, which of course depends on
2321 where you have installed them and whether those files are in 2321 where you have installed them and whether those files are in
2322 different locations than the defaults. 2322 different locations than the defaults.
@@ -2482,16 +2482,16 @@ in the BitBake User Manual.
2482 2482
2483- *Overrides:* You can use overrides to set a value conditionally, 2483- *Overrides:* You can use overrides to set a value conditionally,
2484 typically based on how the recipe is being built. For example, to set 2484 typically based on how the recipe is being built. For example, to set
2485 the ```KBRANCH`` <&YOCTO_DOCS_REF_URL;#var-KBRANCH>`__ variable's 2485 the :term:`KBRANCH` variable's
2486 value to "standard/base" for any target 2486 value to "standard/base" for any target
2487 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__, except for 2487 :term:`MACHINE`, except for
2488 qemuarm where it should be set to "standard/arm-versatile-926ejs", 2488 qemuarm where it should be set to "standard/arm-versatile-926ejs",
2489 you would do the following: KBRANCH = "standard/base" KBRANCH_qemuarm 2489 you would do the following: KBRANCH = "standard/base" KBRANCH_qemuarm
2490 = "standard/arm-versatile-926ejs" Overrides are also used to separate 2490 = "standard/arm-versatile-926ejs" Overrides are also used to separate
2491 alternate values of a variable in other situations. For example, when 2491 alternate values of a variable in other situations. For example, when
2492 setting variables such as 2492 setting variables such as
2493 ```FILES`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__ and 2493 :term:`FILES` and
2494 ```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__ that are 2494 :term:`RDEPENDS` that are
2495 specific to individual packages produced by a recipe, you should 2495 specific to individual packages produced by a recipe, you should
2496 always use an override that specifies the name of the package. 2496 always use an override that specifies the name of the package.
2497 2497
@@ -2713,7 +2713,7 @@ The following steps describe how to set up the AUH utility:
2713 499), reused 703 (delta 434) Receiving objects: 100% (768/768), 2713 499), reused 703 (delta 434) Receiving objects: 100% (768/768),
2714 191.47 KiB \| 98.00 KiB/s, done. Resolving deltas: 100% (499/499), 2714 191.47 KiB \| 98.00 KiB/s, done. Resolving deltas: 100% (499/499),
2715 done. Checking connectivity... done. AUH is not part of the 2715 done. Checking connectivity... done. AUH is not part of the
2716 `OpenEmbedded-Core (OE-Core) <&YOCTO_DOCS_REF_URL;#oe-core>`__ or 2716 :term:`OpenEmbedded-Core (OE-Core)` or
2717 `Poky <&YOCTO_DOCS_REF_URL;#poky>`__ repositories. 2717 `Poky <&YOCTO_DOCS_REF_URL;#poky>`__ repositories.
2718 2718
27194. *Create a Dedicated Build Directory:* Run the 27194. *Create a Dedicated Build Directory:* Run the
@@ -2956,13 +2956,13 @@ edit the recipe files to upgrade the versions.
2956To manually upgrade recipe versions, follow these general steps: 2956To manually upgrade recipe versions, follow these general steps:
2957 2957
29581. *Change the Version:* Rename the recipe such that the version (i.e. 29581. *Change the Version:* Rename the recipe such that the version (i.e.
2959 the ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ part of the recipe name) 2959 the :term:`PV` part of the recipe name)
2960 changes appropriately. If the version is not part of the recipe name, 2960 changes appropriately. If the version is not part of the recipe name,
2961 change the value as it is set for ``PV`` within the recipe itself. 2961 change the value as it is set for ``PV`` within the recipe itself.
2962 2962
29632. *Update ``SRCREV`` if Needed:* If the source code your recipe builds 29632. *Update ``SRCREV`` if Needed:* If the source code your recipe builds
2964 is fetched from Git or some other version control system, update 2964 is fetched from Git or some other version control system, update
2965 ```SRCREV`` <&YOCTO_DOCS_REF_URL;#var-SRCREV>`__ to point to the 2965 :term:`SRCREV` to point to the
2966 commit hash that matches the new version. 2966 commit hash that matches the new version.
2967 2967
29683. *Build the Software:* Try to build the recipe using BitBake. Typical 29683. *Build the Software:* Try to build the recipe using BitBake. Typical
@@ -2970,8 +2970,8 @@ To manually upgrade recipe versions, follow these general steps:
2970 2970
2971 - License statements were updated for the new version. For this 2971 - License statements were updated for the new version. For this
2972 case, you need to review any changes to the license and update the 2972 case, you need to review any changes to the license and update the
2973 values of ```LICENSE`` <&YOCTO_DOCS_REF_URL;#var-LICENSE>`__ and 2973 values of :term:`LICENSE` and
2974 ```LIC_FILES_CHKSUM`` <&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM>`__ 2974 :term:`LIC_FILES_CHKSUM`
2975 as needed. 2975 as needed.
2976 2976
2977 .. note:: 2977 .. note::
@@ -2989,7 +2989,7 @@ To manually upgrade recipe versions, follow these general steps:
29894. *Optionally Attempt to Build for Several Architectures:* Once you 29894. *Optionally Attempt to Build for Several Architectures:* Once you
2990 successfully build the new software for a given architecture, you 2990 successfully build the new software for a given architecture, you
2991 could test the build for other architectures by changing the 2991 could test the build for other architectures by changing the
2992 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ variable and 2992 :term:`MACHINE` variable and
2993 rebuilding the software. This optional step is especially important 2993 rebuilding the software. This optional step is especially important
2994 if the recipe is to be released publicly. 2994 if the recipe is to be released publicly.
2995 2995
@@ -3022,7 +3022,7 @@ patches.
3022 3022
3023During a build, the unpacked temporary source code used by recipes to 3023During a build, the unpacked temporary source code used by recipes to
3024build packages is available in the Build Directory as defined by the 3024build packages is available in the Build Directory as defined by the
3025```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__ variable. Below is the default 3025:term:`S` variable. Below is the default
3026value for the ``S`` variable as defined in the 3026value for the ``S`` variable as defined in the
3027``meta/conf/bitbake.conf`` configuration file in the `Source 3027``meta/conf/bitbake.conf`` configuration file in the `Source
3028Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__: S = 3028Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__: S =
@@ -3042,26 +3042,26 @@ usually set ``S`` to ``${WORKDIR}/git``.
3042 3042
3043 3043
3044The path to the work directory for the recipe 3044The path to the work directory for the recipe
3045(```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__) is defined as 3045(:term:`WORKDIR`) is defined as
3046follows: 3046follows:
3047${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} The 3047${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR} The
3048actual directory depends on several things: 3048actual directory depends on several things:
3049 3049
3050- ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__: The top-level build 3050- :term:`TMPDIR`: The top-level build
3051 output directory. 3051 output directory.
3052 3052
3053- ```MULTIMACH_TARGET_SYS`` <&YOCTO_DOCS_REF_URL;#var-MULTIMACH_TARGET_SYS>`__: 3053- :term:`MULTIMACH_TARGET_SYS`:
3054 The target system identifier. 3054 The target system identifier.
3055 3055
3056- ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__: The recipe name. 3056- :term:`PN`: The recipe name.
3057 3057
3058- ```EXTENDPE`` <&YOCTO_DOCS_REF_URL;#var-EXTENDPE>`__: The epoch - (if 3058- :term:`EXTENDPE`: The epoch - (if
3059 ```PE`` <&YOCTO_DOCS_REF_URL;#var-PE>`__ is not specified, which is 3059 :term:`PE` is not specified, which is
3060 usually the case for most recipes, then ``EXTENDPE`` is blank). 3060 usually the case for most recipes, then ``EXTENDPE`` is blank).
3061 3061
3062- ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__: The recipe version. 3062- :term:`PV`: The recipe version.
3063 3063
3064- ```PR`` <&YOCTO_DOCS_REF_URL;#var-PR>`__: The recipe revision. 3064- :term:`PR`: The recipe revision.
3065 3065
3066As an example, assume a Source Directory top-level folder named 3066As an example, assume a Source Directory top-level folder named
3067``poky``, a default Build Directory at ``poky/build``, and a 3067``poky``, a default Build Directory at ``poky/build``, and a
@@ -3105,7 +3105,7 @@ Follow these general steps:
3105 3105
31062. *Change Your Working Directory:* You need to be in the directory that 31062. *Change Your Working Directory:* You need to be in the directory that
3107 has the temporary source code. That directory is defined by the 3107 has the temporary source code. That directory is defined by the
3108 ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__ variable. 3108 :term:`S` variable.
3109 3109
31103. *Create a New Patch:* Before modifying source code, you need to 31103. *Create a New Patch:* Before modifying source code, you need to
3111 create a new patch. To create a new patch file, use ``quilt new`` as 3111 create a new patch. To create a new patch file, use ``quilt new`` as
@@ -3170,9 +3170,9 @@ Using a Development Shell
3170When debugging certain commands or even when just editing packages, 3170When debugging certain commands or even when just editing packages,
3171``devshell`` can be a useful tool. When you invoke ``devshell``, all 3171``devshell`` can be a useful tool. When you invoke ``devshell``, all
3172tasks up to and including 3172tasks up to and including
3173```do_patch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-patch>`__ are run for the 3173:ref:`ref-tasks-patch` are run for the
3174specified target. Then, a new terminal is opened and you are placed in 3174specified target. Then, a new terminal is opened and you are placed in
3175``${``\ ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__\ ``}``, the source 3175``${``\ :term:`S`\ ``}``, the source
3176directory. In the new terminal, all the OpenEmbedded build-related 3176directory. In the new terminal, all the OpenEmbedded build-related
3177environment variables are still defined so you can use commands such as 3177environment variables are still defined so you can use commands such as
3178``configure`` and ``make``. The commands execute just as if the 3178``configure`` and ``make``. The commands execute just as if the
@@ -3185,7 +3185,7 @@ Following is an example that uses ``devshell`` on a target named
3185 3185
3186This command spawns a terminal with a shell prompt within the 3186This command spawns a terminal with a shell prompt within the
3187OpenEmbedded build environment. The 3187OpenEmbedded build environment. The
3188```OE_TERMINAL`` <&YOCTO_DOCS_REF_URL;#var-OE_TERMINAL>`__ variable 3188:term:`OE_TERMINAL` variable
3189controls what type of shell is opened. 3189controls what type of shell is opened.
3190 3190
3191For spawned terminals, the following occurs: 3191For spawned terminals, the following occurs:
@@ -3200,11 +3200,11 @@ For spawned terminals, the following occurs:
3200Within this environment, you can run configure or compile commands as if 3200Within this environment, you can run configure or compile commands as if
3201they were being run by the OpenEmbedded build system itself. As noted 3201they were being run by the OpenEmbedded build system itself. As noted
3202earlier, the working directory also automatically changes to the Source 3202earlier, the working directory also automatically changes to the Source
3203Directory (```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__). 3203Directory (:term:`S`).
3204 3204
3205To manually run a specific task using ``devshell``, run the 3205To manually run a specific task using ``devshell``, run the
3206corresponding ``run.*`` script in the 3206corresponding ``run.*`` script in the
3207``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}/temp`` 3207``${``\ :term:`WORKDIR`\ ``}/temp``
3208directory (e.g., ``run.do_configure.``\ pid). If a task's script does 3208directory (e.g., ``run.do_configure.``\ pid). If a task's script does
3209not exist, which would be the case if the task was skipped by way of the 3209not exist, which would be the case if the task was skipped by way of the
3210sstate cache, you can create the task by first running it outside of the 3210sstate cache, you can create the task by first running it outside of the
@@ -3250,7 +3250,7 @@ previous section, you can also spawn and work within an interactive
3250Python development shell. When debugging certain commands or even when 3250Python development shell. When debugging certain commands or even when
3251just editing packages, ``devpyshell`` can be a useful tool. When you 3251just editing packages, ``devpyshell`` can be a useful tool. When you
3252invoke ``devpyshell``, all tasks up to and including 3252invoke ``devpyshell``, all tasks up to and including
3253```do_patch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-patch>`__ are run for the 3253:ref:`ref-tasks-patch` are run for the
3254specified target. Then a new terminal is opened. Additionally, key 3254specified target. Then a new terminal is opened. Additionally, key
3255Python objects and code are available in the same way they are to 3255Python objects and code are available in the same way they are to
3256BitBake tasks, in particular, the data store 'd'. So, commands such as 3256BitBake tasks, in particular, the data store 'd'. So, commands such as
@@ -3270,7 +3270,7 @@ Following is an example that uses ``devpyshell`` on a target named
3270 3270
3271This command spawns a terminal and places you in an interactive Python 3271This command spawns a terminal and places you in an interactive Python
3272interpreter within the OpenEmbedded build environment. The 3272interpreter within the OpenEmbedded build environment. The
3273```OE_TERMINAL`` <&YOCTO_DOCS_REF_URL;#var-OE_TERMINAL>`__ variable 3273:term:`OE_TERMINAL` variable
3274controls what type of shell is opened. 3274controls what type of shell is opened.
3275 3275
3276When you are finished using ``devpyshell``, you can exit the shell 3276When you are finished using ``devpyshell``, you can exit the shell
@@ -3357,9 +3357,9 @@ The following figure and list overviews the build process:
3357 of the build environment including the target machine architecture 3357 of the build environment including the target machine architecture
3358 through the ``MACHINE`` variable, the packaging format used during 3358 through the ``MACHINE`` variable, the packaging format used during
3359 the build 3359 the build
3360 (```PACKAGE_CLASSES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES>`__), 3360 (:term:`PACKAGE_CLASSES`),
3361 and a centralized tarball download directory through the 3361 and a centralized tarball download directory through the
3362 ```DL_DIR`` <&YOCTO_DOCS_REF_URL;#var-DL_DIR>`__ variable. 3362 :term:`DL_DIR` variable.
3363 3363
33644. *Build the Image:* Build the image using the ``bitbake`` command: $ 33644. *Build the Image:* Build the image using the ``bitbake`` command: $
3365 bitbake target 3365 bitbake target
@@ -3377,7 +3377,7 @@ The following figure and list overviews the build process:
3377 can be the name of a recipe for a specific piece of software such as 3377 can be the name of a recipe for a specific piece of software such as
3378 BusyBox. For more details about the images the OpenEmbedded build 3378 BusyBox. For more details about the images the OpenEmbedded build
3379 system supports, see the 3379 system supports, see the
3380 "`Images <&YOCTO_DOCS_REF_URL;#ref-images>`__" chapter in the Yocto 3380 ":ref:`ref-manual/ref-images:Images`" chapter in the Yocto
3381 Project Reference Manual. 3381 Project Reference Manual.
3382 3382
3383 As an example, the following command builds the 3383 As an example, the following command builds the
@@ -3413,7 +3413,7 @@ Setting Up and Running a Multiple Configuration Build
3413 3413
3414To accomplish a multiple configuration build, you must define each 3414To accomplish a multiple configuration build, you must define each
3415target's configuration separately using a parallel configuration file in 3415target's configuration separately using a parallel configuration file in
3416the `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__, and you 3416the :term:`Build Directory`, and you
3417must follow a required file hierarchy. Additionally, you must enable the 3417must follow a required file hierarchy. Additionally, you must enable the
3418multiple configuration builds in your ``local.conf`` file. 3418multiple configuration builds in your ``local.conf`` file.
3419 3419
@@ -3426,9 +3426,9 @@ Follow these steps to set up and execute multiple configuration builds:
3426 dictates that you do not overlap the temporary directories used 3426 dictates that you do not overlap the temporary directories used
3427 during the builds. However, it is possible that you can share the 3427 during the builds. However, it is possible that you can share the
3428 temporary directory 3428 temporary directory
3429 (```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__). For example, 3429 (:term:`TMPDIR`). For example,
3430 consider a scenario with two different multiconfigs for the same 3430 consider a scenario with two different multiconfigs for the same
3431 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__: "qemux86" built 3431 :term:`MACHINE`: "qemux86" built
3432 for two distributions such as "poky" and "poky-lsb". In this case, 3432 for two distributions such as "poky" and "poky-lsb". In this case,
3433 you might want to use the same ``TMPDIR``. 3433 you might want to use the same ``TMPDIR``.
3434 3434
@@ -3450,7 +3450,7 @@ Follow these steps to set up and execute multiple configuration builds:
3450 3450
3451- *Add the BitBake Multi-configuration Variable to the Local 3451- *Add the BitBake Multi-configuration Variable to the Local
3452 Configuration File*: Use the 3452 Configuration File*: Use the
3453 ```BBMULTICONFIG`` <&YOCTO_DOCS_REF_URL;#var-BBMULTICONFIG>`__ 3453 :term:`BBMULTICONFIG`
3454 variable in your ``conf/local.conf`` configuration file to specify 3454 variable in your ``conf/local.conf`` configuration file to specify
3455 each multiconfig. Continuing with the example from the previous 3455 each multiconfig. Continuing with the example from the previous
3456 figure, the ``BBMULTICONFIG`` variable needs to enable two 3456 figure, the ``BBMULTICONFIG`` variable needs to enable two
@@ -3498,9 +3498,9 @@ multiple configuration build. For example, suppose that in order to
3498build a ``core-image-sato`` image for an "x86" multiconfig, the root 3498build a ``core-image-sato`` image for an "x86" multiconfig, the root
3499filesystem of an "arm" multiconfig must exist. This dependency is 3499filesystem of an "arm" multiconfig must exist. This dependency is
3500essentially that the 3500essentially that the
3501```do_image`` <&YOCTO_DOCS_REF_URL;#ref-tasks-image>`__ task in the 3501:ref:`ref-tasks-image` task in the
3502``core-image-sato`` recipe depends on the completion of the 3502``core-image-sato`` recipe depends on the completion of the
3503```do_rootfs`` <&YOCTO_DOCS_REF_URL;#ref-tasks-rootfs>`__ task of the 3503:ref:`ref-tasks-rootfs` task of the
3504``core-image-minimal`` recipe. 3504``core-image-minimal`` recipe.
3505 3505
3506To enable dependencies in a multiple configuration build, you must 3506To enable dependencies in a multiple configuration build, you must
@@ -3533,7 +3533,7 @@ create the ``core-image-minimal`` image for the "arm" build since the
3533Because "x86" and "arm" are enabled for multiple configuration builds 3533Because "x86" and "arm" are enabled for multiple configuration builds
3534and have separate configuration files, BitBake places the artifacts for 3534and have separate configuration files, BitBake places the artifacts for
3535each build in the respective temporary build directories (i.e. 3535each build in the respective temporary build directories (i.e.
3536```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__). 3536:term:`TMPDIR`).
3537 3537
3538.. _building-an-initramfs-image: 3538.. _building-an-initramfs-image:
3539 3539
@@ -3564,9 +3564,9 @@ Follow these steps to create an initramfs image:
35642. *Decide if You Need to Bundle the initramfs Image Into the Kernel 35642. *Decide if You Need to Bundle the initramfs Image Into the Kernel
3565 Image:* If you want the initramfs image that is built to be bundled 3565 Image:* If you want the initramfs image that is built to be bundled
3566 in with the kernel image, set the 3566 in with the kernel image, set the
3567 ```INITRAMFS_IMAGE_BUNDLE`` <&YOCTO_DOCS_REF_URL;#var-INITRAMFS_IMAGE_BUNDLE>`__ 3567 :term:`INITRAMFS_IMAGE_BUNDLE`
3568 variable to "1" in your ``local.conf`` configuration file and set the 3568 variable to "1" in your ``local.conf`` configuration file and set the
3569 ```INITRAMFS_IMAGE`` <&YOCTO_DOCS_REF_URL;#var-INITRAMFS_IMAGE>`__ 3569 :term:`INITRAMFS_IMAGE`
3570 variable in the recipe that builds the kernel image. 3570 variable in the recipe that builds the kernel image.
3571 3571
3572 .. note:: 3572 .. note::
@@ -3579,7 +3579,7 @@ Follow these steps to create an initramfs image:
3579 Setting the ``INITRAMFS_IMAGE_BUNDLE`` flag causes the initramfs 3579 Setting the ``INITRAMFS_IMAGE_BUNDLE`` flag causes the initramfs
3580 image to be unpacked into the ``${B}/usr/`` directory. The unpacked 3580 image to be unpacked into the ``${B}/usr/`` directory. The unpacked
3581 initramfs image is then passed to the kernel's ``Makefile`` using the 3581 initramfs image is then passed to the kernel's ``Makefile`` using the
3582 ```CONFIG_INITRAMFS_SOURCE`` <&YOCTO_DOCS_REF_URL;#var-CONFIG_INITRAMFS_SOURCE>`__ 3582 :term:`CONFIG_INITRAMFS_SOURCE`
3583 variable, allowing the initramfs image to be built into the kernel 3583 variable, allowing the initramfs image to be built into the kernel
3584 normally. 3584 normally.
3585 3585
@@ -3601,20 +3601,20 @@ Follow these steps to create an initramfs image:
36013. *Optionally Add Items to the initramfs Image Through the initramfs 36013. *Optionally Add Items to the initramfs Image Through the initramfs
3602 Image Recipe:* If you add items to the initramfs image by way of its 3602 Image Recipe:* If you add items to the initramfs image by way of its
3603 recipe, you should use 3603 recipe, you should use
3604 ```PACKAGE_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_INSTALL>`__ 3604 :term:`PACKAGE_INSTALL`
3605 rather than 3605 rather than
3606 ```IMAGE_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL>`__. 3606 :term:`IMAGE_INSTALL`.
3607 ``PACKAGE_INSTALL`` gives more direct control of what is added to the 3607 ``PACKAGE_INSTALL`` gives more direct control of what is added to the
3608 image as compared to the defaults you might not necessarily want that 3608 image as compared to the defaults you might not necessarily want that
3609 are set by the ```image`` <&YOCTO_DOCS_REF_URL;#ref-classes-image>`__ 3609 are set by the :ref:`image <ref-classes-image>`
3610 or ```core-image`` <&YOCTO_DOCS_REF_URL;#ref-classes-core-image>`__ 3610 or :ref:`core-image <ref-classes-core-image>`
3611 classes. 3611 classes.
3612 3612
36134. *Build the Kernel Image and the initramfs Image:* Build your kernel 36134. *Build the Kernel Image and the initramfs Image:* Build your kernel
3614 image using BitBake. Because the initramfs image recipe is a 3614 image using BitBake. Because the initramfs image recipe is a
3615 dependency of the kernel image, the initramfs image is built as well 3615 dependency of the kernel image, the initramfs image is built as well
3616 and bundled with the kernel image if you used the 3616 and bundled with the kernel image if you used the
3617 ```INITRAMFS_IMAGE_BUNDLE`` <&YOCTO_DOCS_REF_URL;#var-INITRAMFS_IMAGE_BUNDLE>`__ 3617 :term:`INITRAMFS_IMAGE_BUNDLE`
3618 variable described earlier. 3618 variable described earlier.
3619 3619
3620Building a Tiny System 3620Building a Tiny System
@@ -3850,7 +3850,7 @@ dependencies as well as removing the package management data itself.
3850 3850
3851To eliminate all the packaging requirements for an image, be sure that 3851To eliminate all the packaging requirements for an image, be sure that
3852"package-management" is not part of your 3852"package-management" is not part of your
3853```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__ 3853:term:`IMAGE_FEATURES`
3854statement for the image. When you remove this feature, you are removing 3854statement for the image. When you remove this feature, you are removing
3855the package manager as well as its dependencies from the root 3855the package manager as well as its dependencies from the root
3856filesystem. 3856filesystem.
@@ -3866,7 +3866,7 @@ are a couple of areas to experiment with:
3866- ``glibc``: In general, follow this process: 3866- ``glibc``: In general, follow this process:
3867 3867
3868 1. Remove ``glibc`` features from 3868 1. Remove ``glibc`` features from
3869 ```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__ 3869 :term:`DISTRO_FEATURES`
3870 that you think you do not need. 3870 that you think you do not need.
3871 3871
3872 2. Build your distribution. 3872 2. Build your distribution.
@@ -3913,7 +3913,7 @@ that are extremely specific to a CPU core used in a system might enable
3913some micro optimizations in GCC for that particular system but would 3913some micro optimizations in GCC for that particular system but would
3914otherwise not gain you much of a performance difference across the other 3914otherwise not gain you much of a performance difference across the other
3915systems as compared to using a more general tuning across all the builds 3915systems as compared to using a more general tuning across all the builds
3916(e.g. setting ```DEFAULTTUNE`` <&YOCTO_DOCS_REF_URL;#var-DEFAULTTUNE>`__ 3916(e.g. setting :term:`DEFAULTTUNE`
3917specifically for each machine's build). Rather than "max out" each 3917specifically for each machine's build). Rather than "max out" each
3918build's tunings, you can take steps that cause the OpenEmbedded build 3918build's tunings, you can take steps that cause the OpenEmbedded build
3919system to reuse software across the various machines where it makes 3919system to reuse software across the various machines where it makes
@@ -3924,9 +3924,9 @@ should consider the points in this section that can help you optimize
3924your tunings to best consider build times and package feed maintenance. 3924your tunings to best consider build times and package feed maintenance.
3925 3925
3926- *Share the Build Directory:* If at all possible, share the 3926- *Share the Build Directory:* If at all possible, share the
3927 ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__ across builds. The 3927 :term:`TMPDIR` across builds. The
3928 Yocto Project supports switching between different 3928 Yocto Project supports switching between different
3929 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ values in the same 3929 :term:`MACHINE` values in the same
3930 ``TMPDIR``. This practice is well supported and regularly used by 3930 ``TMPDIR``. This practice is well supported and regularly used by
3931 developers when building for multiple machines. When you use the same 3931 developers when building for multiple machines. When you use the same
3932 ``TMPDIR`` for multiple machine builds, the OpenEmbedded build system 3932 ``TMPDIR`` for multiple machine builds, the OpenEmbedded build system
@@ -3958,7 +3958,7 @@ your tunings to best consider build times and package feed maintenance.
3958 A recipe that just generates scripts can enable "all" architecture 3958 A recipe that just generates scripts can enable "all" architecture
3959 because there are no binaries to build. To specifically enable "all" 3959 because there are no binaries to build. To specifically enable "all"
3960 architecture, be sure your recipe inherits the 3960 architecture, be sure your recipe inherits the
3961 ```allarch`` <&YOCTO_DOCS_REF_URL;#ref-classes-allarch>`__ class. 3961 :ref:`allarch <ref-classes-allarch>` class.
3962 This class is useful for "all" architectures because it configures 3962 This class is useful for "all" architectures because it configures
3963 many variables so packages can be used across multiple architectures. 3963 many variables so packages can be used across multiple architectures.
3964 3964
@@ -3967,12 +3967,12 @@ your tunings to best consider build times and package feed maintenance.
3967 machine-architecture dependent, which makes your recipe also 3967 machine-architecture dependent, which makes your recipe also
3968 machine-architecture dependent, make sure your recipe enables the 3968 machine-architecture dependent, make sure your recipe enables the
3969 "machine" package architecture through the 3969 "machine" package architecture through the
3970 ```MACHINE_ARCH`` <&YOCTO_DOCS_REF_URL;#var-MACHINE_ARCH>`__ 3970 :term:`MACHINE_ARCH`
3971 variable: PACKAGE_ARCH = "${MACHINE_ARCH}" When you do not 3971 variable: PACKAGE_ARCH = "${MACHINE_ARCH}" When you do not
3972 specifically enable a package architecture through the 3972 specifically enable a package architecture through the
3973 ```PACKAGE_ARCH`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH>`__, The 3973 :term:`PACKAGE_ARCH`, The
3974 OpenEmbedded build system defaults to the 3974 OpenEmbedded build system defaults to the
3975 ```TUNE_PKGARCH`` <&YOCTO_DOCS_REF_URL;#var-TUNE_PKGARCH>`__ setting: 3975 :term:`TUNE_PKGARCH` setting:
3976 PACKAGE_ARCH = "${TUNE_PKGARCH}" 3976 PACKAGE_ARCH = "${TUNE_PKGARCH}"
3977 3977
3978- *Choose a Generic Tuning File if Possible:* Some tunes are more 3978- *Choose a Generic Tuning File if Possible:* Some tunes are more
@@ -4001,11 +4001,11 @@ your tunings to best consider build times and package feed maintenance.
4001 boards share the Vivante GPU. This class inspects the BitBake 4001 boards share the Vivante GPU. This class inspects the BitBake
4002 datastore to identify if the package provides or depends on one of 4002 datastore to identify if the package provides or depends on one of
4003 the sub-architecture values. If so, the class sets the 4003 the sub-architecture values. If so, the class sets the
4004 ```PACKAGE_ARCH`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH>`__ value 4004 :term:`PACKAGE_ARCH` value
4005 based on the ``MACHINE_SUBARCH`` value. If the package does not 4005 based on the ``MACHINE_SUBARCH`` value. If the package does not
4006 provide or depend on one of the sub-architecture values but it 4006 provide or depend on one of the sub-architecture values but it
4007 matches a value in the machine-specific filter, it sets 4007 matches a value in the machine-specific filter, it sets
4008 ```MACHINE_ARCH`` <&YOCTO_DOCS_REF_URL;#var-MACHINE_ARCH>`__. This 4008 :term:`MACHINE_ARCH`. This
4009 behavior reduces the number of packages built and saves build time by 4009 behavior reduces the number of packages built and saves build time by
4010 reusing binaries. 4010 reusing binaries.
4011 4011
@@ -4014,18 +4014,18 @@ your tunings to best consider build times and package feed maintenance.
4014 example, the OpenEmbedded build system might not be using shared 4014 example, the OpenEmbedded build system might not be using shared
4015 state between machines when you think it should be. These types of 4015 state between machines when you think it should be. These types of
4016 situations are usually due to references to machine-specific 4016 situations are usually due to references to machine-specific
4017 variables such as ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__, 4017 variables such as :term:`MACHINE`,
4018 ```SERIAL_CONSOLES`` <&YOCTO_DOCS_REF_URL;#var-SERIAL_CONSOLES>`__, 4018 :term:`SERIAL_CONSOLES`,
4019 ```XSERVER`` <&YOCTO_DOCS_REF_URL;#var-XSERVER>`__, 4019 :term:`XSERVER`,
4020 ```MACHINE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES>`__, 4020 :term:`MACHINE_FEATURES`,
4021 and so forth in code that is supposed to only be tune-specific or 4021 and so forth in code that is supposed to only be tune-specific or
4022 when the recipe depends 4022 when the recipe depends
4023 (```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__, 4023 (:term:`DEPENDS`,
4024 ```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__, 4024 :term:`RDEPENDS`,
4025 ```RRECOMMENDS`` <&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS>`__, 4025 :term:`RRECOMMENDS`,
4026 ```RSUGGESTS`` <&YOCTO_DOCS_REF_URL;#var-RSUGGESTS>`__, and so forth) 4026 :term:`RSUGGESTS`, and so forth)
4027 on some other recipe that already has 4027 on some other recipe that already has
4028 ```PACKAGE_ARCH`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH>`__ defined 4028 :term:`PACKAGE_ARCH` defined
4029 as "${MACHINE_ARCH}". 4029 as "${MACHINE_ARCH}".
4030 4030
4031 .. note:: 4031 .. note::
@@ -4062,14 +4062,14 @@ build system to the development team so that they can focus on their
4062project and maintain everyone's workflow as much as possible. In this 4062project and maintain everyone's workflow as much as possible. In this
4063case, you want a kernel source directory on the development machine 4063case, you want a kernel source directory on the development machine
4064where the development occurs. You want the recipe's 4064where the development occurs. You want the recipe's
4065```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ variable to point to 4065:term:`SRC_URI` variable to point to
4066the external directory and use it as is, not copy it. 4066the external directory and use it as is, not copy it.
4067 4067
4068To build from software that comes from an external source, all you need 4068To build from software that comes from an external source, all you need
4069to do is inherit the 4069to do is inherit the
4070```externalsrc`` <&YOCTO_DOCS_REF_URL;#ref-classes-externalsrc>`__ class 4070:ref:`externalsrc <ref-classes-externalsrc>` class
4071and then set the 4071and then set the
4072```EXTERNALSRC`` <&YOCTO_DOCS_REF_URL;#var-EXTERNALSRC>`__ variable to 4072:term:`EXTERNALSRC` variable to
4073point to your external source code. Here are the statements to put in 4073point to your external source code. Here are the statements to put in
4074your ``local.conf`` file: INHERIT += "externalsrc" 4074your ``local.conf`` file: INHERIT += "externalsrc"
4075EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree" 4075EXTERNALSRC_pn-myrecipe = "path-to-your-source-tree"
@@ -4087,10 +4087,10 @@ EXTERNALSRC = "path" EXTERNALSRC_BUILD = "path"
4087 4087
4088By default, ``externalsrc.bbclass`` builds the source code in a 4088By default, ``externalsrc.bbclass`` builds the source code in a
4089directory separate from the external source directory as specified by 4089directory separate from the external source directory as specified by
4090```EXTERNALSRC`` <&YOCTO_DOCS_REF_URL;#var-EXTERNALSRC>`__. If you need 4090:term:`EXTERNALSRC`. If you need
4091to have the source built in the same directory in which it resides, or 4091to have the source built in the same directory in which it resides, or
4092some other nominated directory, you can set 4092some other nominated directory, you can set
4093```EXTERNALSRC_BUILD`` <&YOCTO_DOCS_REF_URL;#var-EXTERNALSRC_BUILD>`__ 4093:term:`EXTERNALSRC_BUILD`
4094to point to that directory: EXTERNALSRC_BUILD_pn-myrecipe = 4094to point to that directory: EXTERNALSRC_BUILD_pn-myrecipe =
4095"path-to-your-source-tree" 4095"path-to-your-source-tree"
4096 4096
@@ -4107,7 +4107,7 @@ build.
4107Follow these steps to populate your Downloads directory: 4107Follow these steps to populate your Downloads directory:
4108 4108
41091. *Create a Clean Downloads Directory:* Start with an empty downloads 41091. *Create a Clean Downloads Directory:* Start with an empty downloads
4110 directory (```DL_DIR`` <&YOCTO_DOCS_REF_URL;#var-DL_DIR>`__). You 4110 directory (:term:`DL_DIR`). You
4111 start with an empty downloads directory by either removing the files 4111 start with an empty downloads directory by either removing the files
4112 in the existing directory or by setting ``DL_DIR`` to point to either 4112 in the existing directory or by setting ``DL_DIR`` to point to either
4113 an empty location or one that does not yet exist. 4113 an empty location or one that does not yet exist.
@@ -4118,7 +4118,7 @@ Follow these steps to populate your Downloads directory:
4118 the fetch process in the next step, BitBake gathers the source files 4118 the fetch process in the next step, BitBake gathers the source files
4119 and creates tarballs in the directory pointed to by ``DL_DIR``. See 4119 and creates tarballs in the directory pointed to by ``DL_DIR``. See
4120 the 4120 the
4121 ```BB_GENERATE_MIRROR_TARBALLS`` <&YOCTO_DOCS_REF_URL;#var-BB_GENERATE_MIRROR_TARBALLS>`__ 4121 :term:`BB_GENERATE_MIRROR_TARBALLS`
4122 variable for more information. 4122 variable for more information.
4123 4123
41243. *Populate Your Downloads Directory Without Building:* Use BitBake to 41243. *Populate Your Downloads Directory Without Building:* Use BitBake to
@@ -4142,9 +4142,9 @@ Follow these steps to build your target using the files in the downloads
4142directory: 4142directory:
4143 4143
41441. *Using Local Files Only:* Inside your ``local.conf`` file, add the 41441. *Using Local Files Only:* Inside your ``local.conf`` file, add the
4145 ```SOURCE_MIRROR_URL`` <&YOCTO_DOCS_REF_URL;#var-SOURCE_MIRROR_URL>`__ 4145 :term:`SOURCE_MIRROR_URL`
4146 variable, inherit the 4146 variable, inherit the
4147 ```own-mirrors`` <&YOCTO_DOCS_REF_URL;#ref-classes-own-mirrors>`__ 4147 :ref:`own-mirrors <ref-classes-own-mirrors>`
4148 class, and use the 4148 class, and use the
4149 ```BB_NO_NETWORK`` <&YOCTO_DOCS_BB_URL;#var-bb-BB_NO_NETWORK>`__ 4149 ```BB_NO_NETWORK`` <&YOCTO_DOCS_BB_URL;#var-bb-BB_NO_NETWORK>`__
4150 variable to your ``local.conf``. SOURCE_MIRROR_URL ?= 4150 variable to your ``local.conf``. SOURCE_MIRROR_URL ?=
@@ -4157,7 +4157,7 @@ directory:
4157 4157
41582. *Start With a Clean Build:* You can start with a clean build by 41582. *Start With a Clean Build:* You can start with a clean build by
4159 removing the 4159 removing the
4160 ``${``\ ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__\ ``}`` 4160 ``${``\ :term:`TMPDIR`\ ``}``
4161 directory or using a new `Build 4161 directory or using a new `Build
4162 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. 4162 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__.
4163 4163
@@ -4170,8 +4170,8 @@ directory:
4170 4170
4171 The offline build does not work if recipes attempt to find the 4171 The offline build does not work if recipes attempt to find the
4172 latest version of software by setting 4172 latest version of software by setting
4173 ```SRCREV`` <&YOCTO_DOCS_REF_URL;#var-SRCREV>`__ to 4173 :term:`SRCREV` to
4174 ``${``\ ```AUTOREV`` <&YOCTO_DOCS_REF_URL;#var-AUTOREV>`__\ ``}``: 4174 ``${``\ :term:`AUTOREV`\ ``}``:
4175 SRCREV = "${AUTOREV}" When a recipe sets ``SRCREV`` to 4175 SRCREV = "${AUTOREV}" When a recipe sets ``SRCREV`` to
4176 ``${AUTOREV}``, the build system accesses the network in an 4176 ``${AUTOREV}``, the build system accesses the network in an
4177 attempt to determine the latest version of software from the SCM. 4177 attempt to determine the latest version of software from the SCM.
@@ -4214,12 +4214,12 @@ variable for more information:
4214 4214
4215- ```PARALLEL_MAKE``: <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE>`__ Extra 4215- ```PARALLEL_MAKE``: <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE>`__ Extra
4216 options passed to the ``make`` command during the 4216 options passed to the ``make`` command during the
4217 ```do_compile`` <&YOCTO_DOCS_REF_URL;#ref-tasks-compile>`__ task in 4217 :ref:`ref-tasks-compile` task in
4218 order to specify parallel compilation on the local build host. 4218 order to specify parallel compilation on the local build host.
4219 4219
4220- ```PARALLEL_MAKEINST``: <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST>`__ 4220- ```PARALLEL_MAKEINST``: <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKEINST>`__
4221 Extra options passed to the ``make`` command during the 4221 Extra options passed to the ``make`` command during the
4222 ```do_install`` <&YOCTO_DOCS_REF_URL;#ref-tasks-install>`__ task in 4222 :ref:`ref-tasks-install` task in
4223 order to specify parallel installation on the local build host. 4223 order to specify parallel installation on the local build host.
4224 4224
4225As mentioned, these variables all scale to the number of processor cores 4225As mentioned, these variables all scale to the number of processor cores
@@ -4249,12 +4249,12 @@ Following are additional factors that can affect build speed:
4249 IPK is the fastest. Additionally, selecting a singular packaging 4249 IPK is the fastest. Additionally, selecting a singular packaging
4250 backend also helps. 4250 backend also helps.
4251 4251
4252- Using ``tmpfs`` for ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__ 4252- Using ``tmpfs`` for :term:`TMPDIR`
4253 as a temporary file system: While this can help speed up the build, 4253 as a temporary file system: While this can help speed up the build,
4254 the benefits are limited due to the compiler using ``-pipe``. The 4254 the benefits are limited due to the compiler using ``-pipe``. The
4255 build system goes to some lengths to avoid ``sync()`` calls into the 4255 build system goes to some lengths to avoid ``sync()`` calls into the
4256 file system on the principle that if there was a significant failure, 4256 file system on the principle that if there was a significant failure,
4257 the `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__ 4257 the :term:`Build Directory`
4258 contents could easily be rebuilt. 4258 contents could easily be rebuilt.
4259 4259
4260- Inheriting the 4260- Inheriting the
@@ -4262,7 +4262,7 @@ Following are additional factors that can affect build speed:
4262 Inheriting this class has shown to speed up builds due to 4262 Inheriting this class has shown to speed up builds due to
4263 significantly lower amounts of data stored in the data cache as well 4263 significantly lower amounts of data stored in the data cache as well
4264 as on disk. Inheriting this class also makes cleanup of 4264 as on disk. Inheriting this class also makes cleanup of
4265 ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__ faster, at the 4265 :term:`TMPDIR` faster, at the
4266 expense of being easily able to dive into the source code. File 4266 expense of being easily able to dive into the source code. File
4267 system maintainers have recommended that the fastest way to clean up 4267 system maintainers have recommended that the fastest way to clean up
4268 large numbers of files is to reformat partitions rather than delete 4268 large numbers of files is to reformat partitions rather than delete
@@ -4274,14 +4274,14 @@ Aside from the previous list, you should keep some trade offs in mind
4274that can help you speed up the build: 4274that can help you speed up the build:
4275 4275
4276- Remove items from 4276- Remove items from
4277 ```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__ 4277 :term:`DISTRO_FEATURES`
4278 that you might not need. 4278 that you might not need.
4279 4279
4280- Exclude debug symbols and other debug information: If you do not need 4280- Exclude debug symbols and other debug information: If you do not need
4281 these symbols and other debug information, disabling the ``*-dbg`` 4281 these symbols and other debug information, disabling the ``*-dbg``
4282 package generation can speed up the build. You can disable this 4282 package generation can speed up the build. You can disable this
4283 generation by setting the 4283 generation by setting the
4284 ```INHIBIT_PACKAGE_DEBUG_SPLIT`` <&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_DEBUG_SPLIT>`__ 4284 :term:`INHIBIT_PACKAGE_DEBUG_SPLIT`
4285 variable to "1". 4285 variable to "1".
4286 4286
4287- Disable static library generation for recipes derived from 4287- Disable static library generation for recipes derived from
@@ -4328,7 +4328,7 @@ If you are building a library and the library offers static linking, you
4328can control which static library files (``*.a`` files) get included in 4328can control which static library files (``*.a`` files) get included in
4329the built library. 4329the built library.
4330 4330
4331The ```PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES>`__ and 4331The :term:`PACKAGES` and
4332```FILES_*`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__ variables in the 4332```FILES_*`` <&YOCTO_DOCS_REF_URL;#var-FILES>`__ variables in the
4333``meta/conf/bitbake.conf`` configuration file define how files installed 4333``meta/conf/bitbake.conf`` configuration file define how files installed
4334by the ``do_install`` task are packaged. By default, the ``PACKAGES`` 4334by the ``do_install`` task are packaged. By default, the ``PACKAGES``
@@ -4391,7 +4391,7 @@ libraries could differ in architecture, compiler options, or other
4391optimizations. 4391optimizations.
4392 4392
4393Several examples exist in the ``meta-skeleton`` layer found in the 4393Several examples exist in the ``meta-skeleton`` layer found in the
4394`Source Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__: 4394:term:`Source Directory`:
4395 4395
4396- ``conf/multilib-example.conf`` configuration file 4396- ``conf/multilib-example.conf`` configuration file
4397 4397
@@ -4412,7 +4412,7 @@ already extended and support multiple libraries. You can check in the
4412``meta/conf/multilib.conf`` configuration file in the `Source 4412``meta/conf/multilib.conf`` configuration file in the `Source
4413Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ to see how this is 4413Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ to see how this is
4414done using the 4414done using the
4415```BBCLASSEXTEND`` <&YOCTO_DOCS_REF_URL;#var-BBCLASSEXTEND>`__ variable. 4415:term:`BBCLASSEXTEND` variable.
4416Eventually, all recipes will be covered and this list will not be 4416Eventually, all recipes will be covered and this list will not be
4417needed. 4417needed.
4418 4418
@@ -4420,12 +4420,12 @@ For the most part, the Multilib class extension works automatically to
4420extend the package name from ``${PN}`` to ``${MLPREFIX}${PN}``, where 4420extend the package name from ``${PN}`` to ``${MLPREFIX}${PN}``, where
4421``MLPREFIX`` is the particular multilib (e.g. "lib32-" or "lib64-"). 4421``MLPREFIX`` is the particular multilib (e.g. "lib32-" or "lib64-").
4422Standard variables such as 4422Standard variables such as
4423```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__, 4423:term:`DEPENDS`,
4424```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__, 4424:term:`RDEPENDS`,
4425```RPROVIDES`` <&YOCTO_DOCS_REF_URL;#var-RPROVIDES>`__, 4425:term:`RPROVIDES`,
4426```RRECOMMENDS`` <&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS>`__, 4426:term:`RRECOMMENDS`,
4427```PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES>`__, and 4427:term:`PACKAGES`, and
4428```PACKAGES_DYNAMIC`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES_DYNAMIC>`__ are 4428:term:`PACKAGES_DYNAMIC` are
4429automatically extended by the system. If you are extending any manual 4429automatically extended by the system. If you are extending any manual
4430code in the recipe, you can use the ``${MLPREFIX}`` variable to ensure 4430code in the recipe, you can use the ``${MLPREFIX}`` variable to ensure
4431those names are extended correctly. This automatic extension code 4431those names are extended correctly. This automatic extension code
@@ -4462,12 +4462,12 @@ that exist regardless of the package management system:
4462 4462
4463- The typical convention used for the class extension code as used by 4463- The typical convention used for the class extension code as used by
4464 Multilib assumes that all package names specified in 4464 Multilib assumes that all package names specified in
4465 ```PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES>`__ that contain 4465 :term:`PACKAGES` that contain
4466 ``${PN}`` have ``${PN}`` at the start of the name. When that 4466 ``${PN}`` have ``${PN}`` at the start of the name. When that
4467 convention is not followed and ``${PN}`` appears at the middle or the 4467 convention is not followed and ``${PN}`` appears at the middle or the
4468 end of a name, problems occur. 4468 end of a name, problems occur.
4469 4469
4470- The ```TARGET_VENDOR`` <&YOCTO_DOCS_REF_URL;#var-TARGET_VENDOR>`__ 4470- The :term:`TARGET_VENDOR`
4471 value under Multilib will be extended to "-vendormlmultilib" (e.g. 4471 value under Multilib will be extended to "-vendormlmultilib" (e.g.
4472 "-pokymllib32" for a "lib32" Multilib with Poky). The reason for this 4472 "-pokymllib32" for a "lib32" Multilib with Poky). The reason for this
4473 slightly unwieldy contraction is that any "-" characters in the 4473 slightly unwieldy contraction is that any "-" characters in the
@@ -4479,7 +4479,7 @@ details exist:
4479 4479
4480- A unique architecture is defined for the Multilib packages, along 4480- A unique architecture is defined for the Multilib packages, along
4481 with creating a unique deploy folder under ``tmp/deploy/rpm`` in the 4481 with creating a unique deploy folder under ``tmp/deploy/rpm`` in the
4482 `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. For 4482 :term:`Build Directory`. For
4483 example, consider ``lib32`` in a ``qemux86-64`` image. The possible 4483 example, consider ``lib32`` in a ``qemux86-64`` image. The possible
4484 architectures in the system are "all", "qemux86_64", 4484 architectures in the system are "all", "qemux86_64",
4485 "lib32_qemux86_64", and "lib32_x86". 4485 "lib32_qemux86_64", and "lib32_x86".
@@ -4525,7 +4525,7 @@ versions of the same library in parallel on the same system.
4525The process is straightforward as long as the libraries use proper 4525The process is straightforward as long as the libraries use proper
4526versioning. With properly versioned libraries, all you need to do to 4526versioning. With properly versioned libraries, all you need to do to
4527individually specify the libraries is create separate, appropriately 4527individually specify the libraries is create separate, appropriately
4528named recipes where the ```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__ part of 4528named recipes where the :term:`PN` part of
4529the name includes a portion that differentiates each library version 4529the name includes a portion that differentiates each library version
4530(e.g.the major part of the version number). Thus, instead of having a 4530(e.g.the major part of the version number). Thus, instead of having a
4531single recipe that loads one version of a library (e.g. ``clutter``), 4531single recipe that loads one version of a library (e.g. ``clutter``),
@@ -4534,7 +4534,7 @@ libraries you want. As an example, the following two recipes would allow
4534the two separate versions of the ``clutter`` library to co-exist on the 4534the two separate versions of the ``clutter`` library to co-exist on the
4535same system: clutter-1.6_1.6.20.bb clutter-1.8_1.8.4.bb Additionally, if 4535same system: clutter-1.6_1.6.20.bb clutter-1.8_1.8.4.bb Additionally, if
4536you have other recipes that depend on a given library, you need to use 4536you have other recipes that depend on a given library, you need to use
4537the ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ variable to 4537the :term:`DEPENDS` variable to
4538create the dependency. Continuing with the same example, if you want to 4538create the dependency. Continuing with the same example, if you want to
4539have a recipe depend on the 1.8 version of the ``clutter`` library, use 4539have a recipe depend on the 1.8 version of the ``clutter`` library, use
4540the following in your recipe: DEPENDS = "clutter-1.8" 4540the following in your recipe: DEPENDS = "clutter-1.8"
@@ -4625,15 +4625,15 @@ Enabling the generation of introspection data (GIR files) in your
4625library package involves the following: 4625library package involves the following:
4626 4626
46271. Inherit the 46271. Inherit the
4628 ```gobject-introspection`` <&YOCTO_DOCS_REF_URL;#ref-classes-gobject-introspection>`__ 4628 :ref:`gobject-introspection <ref-classes-gobject-introspection>`
4629 class. 4629 class.
4630 4630
46312. Make sure introspection is not disabled anywhere in the recipe or 46312. Make sure introspection is not disabled anywhere in the recipe or
4632 from anything the recipe includes. Also, make sure that 4632 from anything the recipe includes. Also, make sure that
4633 "gobject-introspection-data" is not in 4633 "gobject-introspection-data" is not in
4634 ```DISTRO_FEATURES_BACKFILL_CONSIDERED`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED>`__ 4634 :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
4635 and that "qemu-usermode" is not in 4635 and that "qemu-usermode" is not in
4636 ```MACHINE_FEATURES_BACKFILL_CONSIDERED`` <&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED>`__. 4636 :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`.
4637 If either of these conditions exist, nothing will happen. 4637 If either of these conditions exist, nothing will happen.
4638 4638
46393. Try to build the recipe. If you encounter build errors that look like 46393. Try to build the recipe. If you encounter build errors that look like
@@ -4699,9 +4699,9 @@ Use the following procedure to test if generating introspection data is
4699working in an image: 4699working in an image:
4700 4700
47011. Make sure that "gobject-introspection-data" is not in 47011. Make sure that "gobject-introspection-data" is not in
4702 ```DISTRO_FEATURES_BACKFILL_CONSIDERED`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED>`__ 4702 :term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`
4703 and that "qemu-usermode" is not in 4703 and that "qemu-usermode" is not in
4704 ```MACHINE_FEATURES_BACKFILL_CONSIDERED`` <&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES_BACKFILL_CONSIDERED>`__. 4704 :term:`MACHINE_FEATURES_BACKFILL_CONSIDERED`.
4705 4705
47062. Build ``core-image-sato``. 47062. Build ``core-image-sato``.
4707 4707
@@ -4750,7 +4750,7 @@ follows:
4750 4750
4751- Make sure you add the layer that contains the toolchain to your 4751- Make sure you add the layer that contains the toolchain to your
4752 ``bblayers.conf`` file through the 4752 ``bblayers.conf`` file through the
4753 ```BBLAYERS`` <&YOCTO_DOCS_REF_URL;#var-BBLAYERS>`__ variable. 4753 :term:`BBLAYERS` variable.
4754 4754
4755- Set the ``EXTERNAL_TOOLCHAIN`` variable in your ``local.conf`` file 4755- Set the ``EXTERNAL_TOOLCHAIN`` variable in your ``local.conf`` file
4756 to the location in which you installed the toolchain. 4756 to the location in which you installed the toolchain.
@@ -4760,7 +4760,7 @@ Mentor Graphics Sourcery G++ Toolchain. You can see information on how
4760to use that particular layer in the ``README`` file at 4760to use that particular layer in the ``README`` file at
4761` <http://github.com/MentorEmbedded/meta-sourcery/>`__. You can find 4761` <http://github.com/MentorEmbedded/meta-sourcery/>`__. You can find
4762further information by reading about the 4762further information by reading about the
4763```TCMODE`` <&YOCTO_DOCS_REF_URL;#var-TCMODE>`__ variable in the Yocto 4763:term:`TCMODE` variable in the Yocto
4764Project Reference Manual's variable glossary. 4764Project Reference Manual's variable glossary.
4765 4765
4766Creating Partitioned Images Using Wic 4766Creating Partitioned Images Using Wic
@@ -4827,7 +4827,7 @@ this information is required to use Wic, you might find it interesting.
4827- Wic is a completely independent standalone utility that initially 4827- Wic is a completely independent standalone utility that initially
4828 provides easier-to-use and more flexible replacements for an existing 4828 provides easier-to-use and more flexible replacements for an existing
4829 functionality in OE-Core's 4829 functionality in OE-Core's
4830 ```image-live`` <&YOCTO_DOCS_REF_URL;#ref-classes-image-live>`__ 4830 :ref:`image-live <ref-classes-image-live>`
4831 class. The difference between Wic and those examples is that with Wic 4831 class. The difference between Wic and those examples is that with Wic
4832 the functionality of those scripts is implemented by a 4832 the functionality of those scripts is implemented by a
4833 general-purpose partitioning language, which is based on Redhat 4833 general-purpose partitioning language, which is based on Redhat
@@ -4852,7 +4852,7 @@ system needs to meet the following requirements:
4852 4852
4853- You must have sourced the build environment setup script (i.e. 4853- You must have sourced the build environment setup script (i.e.
4854 ````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__) found in the 4854 ````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__) found in the
4855 `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. 4855 :term:`Build Directory`.
4856 4856
4857- You need to have the build artifacts already available, which 4857- You need to have the build artifacts already available, which
4858 typically means that you must have already created an image using the 4858 typically means that you must have already created an image using the
@@ -4865,12 +4865,12 @@ system needs to meet the following requirements:
4865 build system: $ bitbake parted-native dosfstools-native mtools-native 4865 build system: $ bitbake parted-native dosfstools-native mtools-native
4866 4866
4867- Include "wic" as part of the 4867- Include "wic" as part of the
4868 ```IMAGE_FSTYPES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FSTYPES>`__ 4868 :term:`IMAGE_FSTYPES`
4869 variable. 4869 variable.
4870 4870
4871- Include the name of the `wic kickstart 4871- Include the name of the `wic kickstart
4872 file <&YOCTO_DOCS_REF_URL;#openembedded-kickstart-wks-reference>`__ 4872 file <&YOCTO_DOCS_REF_URL;#openembedded-kickstart-wks-reference>`__
4873 as part of the ```WKS_FILE`` <&YOCTO_DOCS_REF_URL;#var-WKS_FILE>`__ 4873 as part of the :term:`WKS_FILE`
4874 variable 4874 variable
4875 4875
4876.. _wic-getting-help: 4876.. _wic-getting-help:
@@ -4923,7 +4923,7 @@ for creating the image: Raw and Cooked:
4923 command-line arguments. 4923 command-line arguments.
4924 4924
4925- *Cooked Mode:* The current 4925- *Cooked Mode:* The current
4926 ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ setting and image 4926 :term:`MACHINE` setting and image
4927 name are used to automatically locate and provide the build 4927 name are used to automatically locate and provide the build
4928 artifacts. You just supply a kickstart file and the name of the image 4928 artifacts. You just supply a kickstart file and the name of the image
4929 from which to use artifacts. 4929 from which to use artifacts.
@@ -5172,7 +5172,7 @@ INFO: The image(s) were created using OE kickstart file:
5172The previous example shows the easiest way to create an image by running 5172The previous example shows the easiest way to create an image by running
5173in cooked mode and supplying a kickstart file and the "-e" option to 5173in cooked mode and supplying a kickstart file and the "-e" option to
5174point to the existing build artifacts. Your ``local.conf`` file needs to 5174point to the existing build artifacts. Your ``local.conf`` file needs to
5175have the ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ variable set 5175have the :term:`MACHINE` variable set
5176to the machine you are using, which is "qemux86" in this example. 5176to the machine you are using, which is "qemux86" in this example.
5177 5177
5178Once the image builds, the output provides image location, artifact use, 5178Once the image builds, the output provides image location, artifact use,
@@ -5234,7 +5234,7 @@ untouched: part /boot --source bootimg-pcbios --ondisk sdb --label boot
5234--label platform --align 1024 --use-uuid Once the lines are changed, the 5234--label platform --align 1024 --use-uuid Once the lines are changed, the
5235example generates the ``directdisksdb-gpt`` image. The command points 5235example generates the ``directdisksdb-gpt`` image. The command points
5236the process at the ``core-image-minimal`` artifacts for the Next Unit of 5236the process at the ``core-image-minimal`` artifacts for the Next Unit of
5237Computing (nuc) ```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ the 5237Computing (nuc) :term:`MACHINE` the
5238``local.conf``. $ wic create directdisksdb-gpt -e core-image-minimal 5238``local.conf``. $ wic create directdisksdb-gpt -e core-image-minimal
5239INFO: Building wic-tools... . . . Initialising tasks: 100% 5239INFO: Building wic-tools... . . . Initialising tasks: 100%
5240\|#######################################\| Time: 0:00:01 NOTE: 5240\|#######################################\| Time: 0:00:01 NOTE:
@@ -5287,7 +5287,7 @@ NATIVE_SYSROOT:
5287/home/stephano/build/master/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native 5287/home/stephano/build/master/build/tmp-glibc/work/i586-oe-linux/wic-tools/1.0-r0/recipe-sysroot-native
5288INFO: The image(s) were created using OE kickstart file: 5288INFO: The image(s) were created using OE kickstart file:
5289/home/stephano/my_yocto/test.wks For this example, 5289/home/stephano/my_yocto/test.wks For this example,
5290```MACHINE`` <&YOCTO_DOCS_REF_URL;#var-MACHINE>`__ did not have to be 5290:term:`MACHINE` did not have to be
5291specified in the ``local.conf`` file since the artifact is manually 5291specified in the ``local.conf`` file since the artifact is manually
5292specified. 5292specified.
5293 5293
@@ -5419,7 +5419,7 @@ any type of image. Use these steps to flash an image using Bmaptool:
5419 += "wic wic.bmap" 5419 += "wic wic.bmap"
5420 5420
54212. *Get Your Image:* Either have your image ready (pre-built with the 54212. *Get Your Image:* Either have your image ready (pre-built with the
5422 ```IMAGE_FSTYPES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FSTYPES>`__ 5422 :term:`IMAGE_FSTYPES`
5423 setting previously mentioned) or take the step to build the image: $ 5423 setting previously mentioned) or take the step to build the image: $
5424 bitbake image 5424 bitbake image
5425 5425
@@ -5540,10 +5540,10 @@ You can take some steps that are specific to the OpenEmbedded build
5540system to make your images more secure: 5540system to make your images more secure:
5541 5541
5542- Ensure "debug-tweaks" is not one of your selected 5542- Ensure "debug-tweaks" is not one of your selected
5543 ```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__. 5543 :term:`IMAGE_FEATURES`.
5544 When creating a new project, the default is to provide you with an 5544 When creating a new project, the default is to provide you with an
5545 initial ``local.conf`` file that enables this feature using the 5545 initial ``local.conf`` file that enables this feature using the
5546 ```EXTRA_IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES>`__ 5546 :term:`EXTRA_IMAGE_FEATURES`
5547 variable with the line: EXTRA_IMAGE_FEATURES = "debug-tweaks" To 5547 variable with the line: EXTRA_IMAGE_FEATURES = "debug-tweaks" To
5548 disable that feature, simply comment out that line in your 5548 disable that feature, simply comment out that line in your
5549 ``local.conf`` file, or make sure ``IMAGE_FEATURES`` does not contain 5549 ``local.conf`` file, or make sure ``IMAGE_FEATURES`` does not contain
@@ -5558,7 +5558,7 @@ system to make your images more secure:
5558 users, you should not duplicate passwords. 5558 users, you should not duplicate passwords.
5559 5559
5560 To set up passwords, use the 5560 To set up passwords, use the
5561 ```extrausers`` <&YOCTO_DOCS_REF_URL;#ref-classes-extrausers>`__ 5561 :ref:`extrausers <ref-classes-extrausers>`
5562 class, which is the preferred method. For an example on how to set up 5562 class, which is the preferred method. For an example on how to set up
5563 both root and user passwords, see the 5563 both root and user passwords, see the
5564 "```extrausers.bbclass`` <&YOCTO_DOCS_REF_URL;#ref-classes-extrausers>`__" 5564 "```extrausers.bbclass`` <&YOCTO_DOCS_REF_URL;#ref-classes-extrausers>`__"
@@ -5591,7 +5591,7 @@ Creating Your Own Distribution
5591============================== 5591==============================
5592 5592
5593When you build an image using the Yocto Project and do not alter any 5593When you build an image using the Yocto Project and do not alter any
5594distribution `Metadata <&YOCTO_DOCS_REF_URL;#metadata>`__, you are 5594distribution :term:`Metadata`, you are
5595creating a Poky distribution. If you wish to gain more control over 5595creating a Poky distribution. If you wish to gain more control over
5596package alternative selections, compile-time options, and other 5596package alternative selections, compile-time options, and other
5597low-level configurations, you can create your own distribution. 5597low-level configurations, you can create your own distribution.
@@ -5633,14 +5633,14 @@ layer. The following steps provide some more detail:
5633 desired version and revisions for individual recipes. 5633 desired version and revisions for individual recipes.
5634 5634
5635 Your configuration file needs to set the following required 5635 Your configuration file needs to set the following required
5636 variables: ```DISTRO_NAME`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_NAME>`__ 5636 variables: :term:`DISTRO_NAME`
5637 ```DISTRO_VERSION`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_VERSION>`__ 5637 :term:`DISTRO_VERSION`
5638 These following variables are optional and you typically set them 5638 These following variables are optional and you typically set them
5639 from the distribution configuration file: 5639 from the distribution configuration file:
5640 ```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__ 5640 :term:`DISTRO_FEATURES`
5641 ```DISTRO_EXTRA_RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_EXTRA_RDEPENDS>`__ 5641 :term:`DISTRO_EXTRA_RDEPENDS`
5642 ```DISTRO_EXTRA_RRECOMMENDS`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_EXTRA_RRECOMMENDS>`__ 5642 :term:`DISTRO_EXTRA_RRECOMMENDS`
5643 ```TCLIBC`` <&YOCTO_DOCS_REF_URL;#var-TCLIBC>`__ 5643 :term:`TCLIBC`
5644 5644
5645 .. tip:: 5645 .. tip::
5646 5646
@@ -5665,7 +5665,7 @@ layer. The following steps provide some more detail:
5665- *Point to Your distribution configuration file:* In your 5665- *Point to Your distribution configuration file:* In your
5666 ``local.conf`` file in the `Build 5666 ``local.conf`` file in the `Build
5667 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__, set your 5667 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__, set your
5668 ```DISTRO`` <&YOCTO_DOCS_REF_URL;#var-DISTRO>`__ variable to point to 5668 :term:`DISTRO` variable to point to
5669 your distribution's configuration file. For example, if your 5669 your distribution's configuration file. For example, if your
5670 distribution's configuration file is named ``mydistro.conf``, then 5670 distribution's configuration file is named ``mydistro.conf``, then
5671 you point to it as follows: DISTRO = "mydistro" 5671 you point to it as follows: DISTRO = "mydistro"
@@ -5719,7 +5719,7 @@ To override these default configuration files with configurations you
5719want used within every new Build Directory, simply set the 5719want used within every new Build Directory, simply set the
5720``TEMPLATECONF`` variable to your directory. The ``TEMPLATECONF`` 5720``TEMPLATECONF`` variable to your directory. The ``TEMPLATECONF``
5721variable is set in the ``.templateconf`` file, which is in the top-level 5721variable is set in the ``.templateconf`` file, which is in the top-level
5722`Source Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ folder 5722:term:`Source Directory` folder
5723(e.g. ``poky``). Edit the ``.templateconf`` so that it can locate your 5723(e.g. ``poky``). Edit the ``.templateconf`` so that it can locate your
5724directory. 5724directory.
5725 5725
@@ -5758,7 +5758,7 @@ Conserving Disk Space During Builds
5758 5758
5759To help conserve disk space during builds, you can add the following 5759To help conserve disk space during builds, you can add the following
5760statement to your project's ``local.conf`` configuration file found in 5760statement to your project's ``local.conf`` configuration file found in
5761the `Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: INHERIT 5761the :term:`Build Directory`: INHERIT
5762+= "rm_work" Adding this statement deletes the work directory used for 5762+= "rm_work" Adding this statement deletes the work directory used for
5763building a recipe once the recipe is built. For more information on 5763building a recipe once the recipe is built. For more information on
5764"rm_work", see the 5764"rm_work", see the
@@ -5810,15 +5810,15 @@ or attach them to a specific image recipe by using a recipe name
5810override. For more detail on the variables, see the descriptions in the 5810override. For more detail on the variables, see the descriptions in the
5811Yocto Project Reference Manual's glossary chapter. 5811Yocto Project Reference Manual's glossary chapter.
5812 5812
5813- ```BAD_RECOMMENDATIONS`` <&YOCTO_DOCS_REF_URL;#var-BAD_RECOMMENDATIONS>`__: 5813- :term:`BAD_RECOMMENDATIONS`:
5814 Use this variable to specify "recommended-only" packages that you do 5814 Use this variable to specify "recommended-only" packages that you do
5815 not want installed. 5815 not want installed.
5816 5816
5817- ```NO_RECOMMENDATIONS`` <&YOCTO_DOCS_REF_URL;#var-NO_RECOMMENDATIONS>`__: 5817- :term:`NO_RECOMMENDATIONS`:
5818 Use this variable to prevent all "recommended-only" packages from 5818 Use this variable to prevent all "recommended-only" packages from
5819 being installed. 5819 being installed.
5820 5820
5821- ```PACKAGE_EXCLUDE`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_EXCLUDE>`__: 5821- :term:`PACKAGE_EXCLUDE`:
5822 Use this variable to prevent specific packages from being installed 5822 Use this variable to prevent specific packages from being installed
5823 regardless of whether they are "recommended-only" or not. You need to 5823 regardless of whether they are "recommended-only" or not. You need to
5824 realize that the build process could fail with an error when you 5824 realize that the build process could fail with an error when you
@@ -5852,8 +5852,8 @@ the following:
5852 . 5852 .
5853 5853
5854 The version and revision are taken from the 5854 The version and revision are taken from the
5855 ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ and 5855 :term:`PV` and
5856 ```PR`` <&YOCTO_DOCS_REF_URL;#var-PR>`__ variables, respectively. 5856 :term:`PR` variables, respectively.
5857 5857
5858- ``PV``: The recipe version. ``PV`` represents the version of the 5858- ``PV``: The recipe version. ``PV`` represents the version of the
5859 software being packaged. Do not confuse ``PV`` with the binary 5859 software being packaged. Do not confuse ``PV`` with the binary
@@ -5861,7 +5861,7 @@ the following:
5861 5861
5862- ``PR``: The recipe revision. 5862- ``PR``: The recipe revision.
5863 5863
5864- ```SRCPV`` <&YOCTO_DOCS_REF_URL;#var-SRCPV>`__: The OpenEmbedded 5864- :term:`SRCPV`: The OpenEmbedded
5865 build system uses this string to help define the value of ``PV`` when 5865 build system uses this string to help define the value of ``PV`` when
5866 the source code revision needs to be included in it. 5866 the source code revision needs to be included in it.
5867 5867
@@ -5899,7 +5899,7 @@ Working With a PR Service
5899~~~~~~~~~~~~~~~~~~~~~~~~~ 5899~~~~~~~~~~~~~~~~~~~~~~~~~
5900 5900
5901As mentioned, attempting to maintain revision numbers in the 5901As mentioned, attempting to maintain revision numbers in the
5902`Metadata <&YOCTO_DOCS_REF_URL;#metadata>`__ is error prone, inaccurate, 5902:term:`Metadata` is error prone, inaccurate,
5903and causes problems for people submitting recipes. Conversely, the PR 5903and causes problems for people submitting recipes. Conversely, the PR
5904Service automatically generates increasing numbers, particularly the 5904Service automatically generates increasing numbers, particularly the
5905revision field, which removes the human element. 5905revision field, which removes the human element.
@@ -5912,9 +5912,9 @@ revision field, which removes the human element.
5912 5912
5913The Yocto Project uses variables in order of decreasing priority to 5913The Yocto Project uses variables in order of decreasing priority to
5914facilitate revision numbering (i.e. 5914facilitate revision numbering (i.e.
5915```PE`` <&YOCTO_DOCS_REF_URL;#var-PE>`__, 5915:term:`PE`,
5916```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__, and 5916:term:`PV`, and
5917```PR`` <&YOCTO_DOCS_REF_URL;#var-PR>`__ for epoch, version, and 5917:term:`PR` for epoch, version, and
5918revision, respectively). The values are highly dependent on the policies 5918revision, respectively). The values are highly dependent on the policies
5919and procedures of a given distribution and package feed. 5919and procedures of a given distribution and package feed.
5920 5920
@@ -5946,7 +5946,7 @@ be consistent and correct with the latest changes.
5946The simplest form for a PR Service is for it to exist for a single host 5946The simplest form for a PR Service is for it to exist for a single host
5947development system that builds the package feed (building system). For 5947development system that builds the package feed (building system). For
5948this scenario, you can enable a local PR Service by setting 5948this scenario, you can enable a local PR Service by setting
5949```PRSERV_HOST`` <&YOCTO_DOCS_REF_URL;#var-PRSERV_HOST>`__ in your 5949:term:`PRSERV_HOST` in your
5950``local.conf`` file in the `Build 5950``local.conf`` file in the `Build
5951Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: PRSERV_HOST = 5951Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: PRSERV_HOST =
5952"localhost:0" Once the service is started, packages will automatically 5952"localhost:0" Once the service is started, packages will automatically
@@ -5988,7 +5988,7 @@ Manually Bumping PR
5988~~~~~~~~~~~~~~~~~~~ 5988~~~~~~~~~~~~~~~~~~~
5989 5989
5990The alternative to setting up a PR Service is to manually "bump" the 5990The alternative to setting up a PR Service is to manually "bump" the
5991```PR`` <&YOCTO_DOCS_REF_URL;#var-PR>`__ variable. 5991:term:`PR` variable.
5992 5992
5993If a committed change results in changing the package output, then the 5993If a committed change results in changing the package output, then the
5994value of the PR variable needs to be increased (or "bumped") as part of 5994value of the PR variable needs to be increased (or "bumped") as part of
@@ -6027,10 +6027,10 @@ Automatically Incrementing a Package Version Number
6027~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6027~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6028 6028
6029When fetching a repository, BitBake uses the 6029When fetching a repository, BitBake uses the
6030```SRCREV`` <&YOCTO_DOCS_REF_URL;#var-SRCREV>`__ variable to determine 6030:term:`SRCREV` variable to determine
6031the specific source code revision from which to build. You set the 6031the specific source code revision from which to build. You set the
6032``SRCREV`` variable to 6032``SRCREV`` variable to
6033```AUTOREV`` <&YOCTO_DOCS_REF_URL;#var-AUTOREV>`__ to cause the 6033:term:`AUTOREV` to cause the
6034OpenEmbedded build system to automatically use the latest revision of 6034OpenEmbedded build system to automatically use the latest revision of
6035the software: SRCREV = "${AUTOREV}" 6035the software: SRCREV = "${AUTOREV}"
6036 6036
@@ -6043,7 +6043,7 @@ with a number. The number used depends on the state of the PR Service:
6043 6043
6044- If PR Service is enabled, the build system increments the number, 6044- If PR Service is enabled, the build system increments the number,
6045 which is similar to the behavior of 6045 which is similar to the behavior of
6046 ```PR`` <&YOCTO_DOCS_REF_URL;#var-PR>`__. This behavior results in 6046 :term:`PR`. This behavior results in
6047 linearly increasing package versions, which is desirable. Here is an 6047 linearly increasing package versions, which is desirable. Here is an
6048 example: hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk 6048 example: hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
6049 hello-world-git_0.0+git1+dd2f5c3565-r0.0_armv7a-neon.ipk 6049 hello-world-git_0.0+git1+dd2f5c3565-r0.0_armv7a-neon.ipk
@@ -6087,7 +6087,7 @@ To ensure the module packaging actually gets done, you use the
6087function in your recipe. The ``do_split_packages`` function searches for 6087function in your recipe. The ``do_split_packages`` function searches for
6088a pattern of files or directories under a specified path and creates a 6088a pattern of files or directories under a specified path and creates a
6089package for each one it finds by appending to the 6089package for each one it finds by appending to the
6090```PACKAGES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES>`__ variable and 6090:term:`PACKAGES` variable and
6091setting the appropriate values for ``FILES_packagename``, 6091setting the appropriate values for ``FILES_packagename``,
6092``RDEPENDS_packagename``, ``DESCRIPTION_packagename``, and so forth. 6092``RDEPENDS_packagename``, ``DESCRIPTION_packagename``, and so forth.
6093Here is an example from the ``lighttpd`` recipe: python 6093Here is an example from the ``lighttpd`` recipe: python
@@ -6112,7 +6112,7 @@ previous example specifies a number of things in the call to
6112 dependency on the main ``lighttpd`` package. Thus, if a file in 6112 dependency on the main ``lighttpd`` package. Thus, if a file in
6113 ``${libdir}`` called ``mod_alias.so`` is found, a package called 6113 ``${libdir}`` called ``mod_alias.so`` is found, a package called
6114 ``lighttpd-module-alias`` is created for it and the 6114 ``lighttpd-module-alias`` is created for it and the
6115 ```DESCRIPTION`` <&YOCTO_DOCS_REF_URL;#var-DESCRIPTION>`__ is set to 6115 :term:`DESCRIPTION` is set to
6116 "Lighttpd module for alias". 6116 "Lighttpd module for alias".
6117 6117
6118Often, packaging modules is as simple as the previous example. However, 6118Often, packaging modules is as simple as the previous example. However,
@@ -6165,13 +6165,13 @@ Satisfying Dependencies
6165The second part for handling optional module packaging is to ensure that 6165The second part for handling optional module packaging is to ensure that
6166any dependencies on optional modules from other recipes are satisfied by 6166any dependencies on optional modules from other recipes are satisfied by
6167your recipe. You can be sure these dependencies are satisfied by using 6167your recipe. You can be sure these dependencies are satisfied by using
6168the ```PACKAGES_DYNAMIC`` <&YOCTO_DOCS_REF_URL;#var-PACKAGES_DYNAMIC>`__ 6168the :term:`PACKAGES_DYNAMIC`
6169variable. Here is an example that continues with the ``lighttpd`` recipe 6169variable. Here is an example that continues with the ``lighttpd`` recipe
6170shown earlier: PACKAGES_DYNAMIC = "lighttpd-module-.*" The name 6170shown earlier: PACKAGES_DYNAMIC = "lighttpd-module-.*" The name
6171specified in the regular expression can of course be anything. In this 6171specified in the regular expression can of course be anything. In this
6172example, it is ``lighttpd-module-`` and is specified as the prefix to 6172example, it is ``lighttpd-module-`` and is specified as the prefix to
6173ensure that any ```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__ and 6173ensure that any :term:`RDEPENDS` and
6174```RRECOMMENDS`` <&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS>`__ on a package 6174:term:`RRECOMMENDS` on a package
6175name starting with the prefix are satisfied during build time. If you 6175name starting with the prefix are satisfied during build time. If you
6176are using ``do_split_packages`` as described in the previous section, 6176are using ``do_split_packages`` as described in the previous section,
6177the value you put in ``PACKAGES_DYNAMIC`` should correspond to the name 6177the value you put in ``PACKAGES_DYNAMIC`` should correspond to the name
@@ -6250,7 +6250,7 @@ aware in order to provide support for runtime package management.
6250 6250
6251When BitBake generates packages, it needs to know what format or formats 6251When BitBake generates packages, it needs to know what format or formats
6252to use. In your configuration, you use the 6252to use. In your configuration, you use the
6253```PACKAGE_CLASSES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES>`__ 6253:term:`PACKAGE_CLASSES`
6254variable to specify the format: 6254variable to specify the format:
6255 6255
62561. Open the ``local.conf`` file inside your `Build 62561. Open the ``local.conf`` file inside your `Build
@@ -6272,7 +6272,7 @@ If you would like your image to start off with a basic package database
6272containing the packages in your current build as well as to have the 6272containing the packages in your current build as well as to have the
6273relevant tools available on the target for runtime package management, 6273relevant tools available on the target for runtime package management,
6274you can include "package-management" in the 6274you can include "package-management" in the
6275```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__ 6275:term:`IMAGE_FEATURES`
6276variable. Including "package-management" in this configuration variable 6276variable. Including "package-management" in this configuration variable
6277ensures that when the image is assembled for your target, the image 6277ensures that when the image is assembled for your target, the image
6278includes the currently-known package databases as well as the 6278includes the currently-known package databases as well as the
@@ -6281,7 +6281,7 @@ performed on the target. However, this is not strictly necessary. You
6281could start your image off without any databases but only include the 6281could start your image off without any databases but only include the
6282required on-target package tool(s). As an example, you could include 6282required on-target package tool(s). As an example, you could include
6283"opkg" in your 6283"opkg" in your
6284```IMAGE_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL>`__ variable 6284:term:`IMAGE_INSTALL` variable
6285if you are using the IPK package format. You can then initialize your 6285if you are using the IPK package format. You can then initialize your
6286target's package database(s) later once your image is up and running. 6286target's package database(s) later once your image is up and running.
6287 6287
@@ -6298,10 +6298,10 @@ Thus, be sure to run the package update step separately after building
6298any packages. 6298any packages.
6299 6299
6300You can use the 6300You can use the
6301```PACKAGE_FEED_ARCHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS>`__, 6301:term:`PACKAGE_FEED_ARCHS`,
6302```PACKAGE_FEED_BASE_PATHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS>`__, 6302:term:`PACKAGE_FEED_BASE_PATHS`,
6303and 6303and
6304```PACKAGE_FEED_URIS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS>`__ 6304:term:`PACKAGE_FEED_URIS`
6305variables to pre-configure target images to use a package feed. If you 6305variables to pre-configure target images to use a package feed. If you
6306do not define these variables, then manual steps as described in the 6306do not define these variables, then manual steps as described in the
6307subsequent sections are necessary to configure the target. You should 6307subsequent sections are necessary to configure the target. You should
@@ -6310,7 +6310,7 @@ correctly configured image.
6310 6310
6311When your build is complete, your packages reside in the 6311When your build is complete, your packages reside in the
6312``${TMPDIR}/deploy/packageformat`` directory. For example, if 6312``${TMPDIR}/deploy/packageformat`` directory. For example, if
6313``${``\ ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__\ ``}`` is 6313``${``\ :term:`TMPDIR`\ ``}`` is
6314``tmp`` and your selected package type is RPM, then your RPM packages 6314``tmp`` and your selected package type is RPM, then your RPM packages
6315are available in ``tmp/deploy/rpm``. 6315are available in ``tmp/deploy/rpm``.
6316 6316
@@ -6333,7 +6333,7 @@ Lighttpd, or Nginx), take the appropriate steps to do so.
6333 6333
6334From within the build directory where you have built an image based on 6334From within the build directory where you have built an image based on
6335your packaging choice (i.e. the 6335your packaging choice (i.e. the
6336```PACKAGE_CLASSES`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES>`__ 6336:term:`PACKAGE_CLASSES`
6337setting), simply start the server. The following example assumes a build 6337setting), simply start the server. The following example assumes a build
6338directory of ``~/poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES`` 6338directory of ``~/poky/build/tmp/deploy/rpm`` and a ``PACKAGE_CLASSES``
6339setting of "package_rpm": $ cd ~/poky/build/tmp/deploy/rpm $ python -m 6339setting of "package_rpm": $ cd ~/poky/build/tmp/deploy/rpm $ python -m
@@ -6431,10 +6431,10 @@ Using IPK
6431The ``opkg`` application performs runtime package management of IPK 6431The ``opkg`` application performs runtime package management of IPK
6432packages. You must perform an initial setup for ``opkg`` on the target 6432packages. You must perform an initial setup for ``opkg`` on the target
6433machine if the 6433machine if the
6434```PACKAGE_FEED_ARCHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS>`__, 6434:term:`PACKAGE_FEED_ARCHS`,
6435```PACKAGE_FEED_BASE_PATHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS>`__, 6435:term:`PACKAGE_FEED_BASE_PATHS`,
6436and 6436and
6437```PACKAGE_FEED_URIS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS>`__ 6437:term:`PACKAGE_FEED_URIS`
6438variables have not been set or the target image was built before the 6438variables have not been set or the target image was built before the
6439variables were set. 6439variables were set.
6440 6440
@@ -6463,10 +6463,10 @@ The ``apt`` application performs runtime package management of DEB
6463packages. This application uses a source list file to find available 6463packages. This application uses a source list file to find available
6464package databases. You must perform an initial setup for ``apt`` on the 6464package databases. You must perform an initial setup for ``apt`` on the
6465target machine if the 6465target machine if the
6466```PACKAGE_FEED_ARCHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_ARCHS>`__, 6466:term:`PACKAGE_FEED_ARCHS`,
6467```PACKAGE_FEED_BASE_PATHS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_BASE_PATHS>`__, 6467:term:`PACKAGE_FEED_BASE_PATHS`,
6468and 6468and
6469```PACKAGE_FEED_URIS`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_FEED_URIS>`__ 6469:term:`PACKAGE_FEED_URIS`
6470variables have not been set or the target image was built before the 6470variables have not been set or the target image was built before the
6471variables were set. 6471variables were set.
6472 6472
@@ -6580,8 +6580,8 @@ Adding ptest to Your Build
6580~~~~~~~~~~~~~~~~~~~~~~~~~~ 6580~~~~~~~~~~~~~~~~~~~~~~~~~~
6581 6581
6582To add package testing to your build, add the 6582To add package testing to your build, add the
6583```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__ and 6583:term:`DISTRO_FEATURES` and
6584```EXTRA_IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES>`__ 6584:term:`EXTRA_IMAGE_FEATURES`
6585variables to your ``local.conf`` file, which is found in the `Build 6585variables to your ``local.conf`` file, which is found in the `Build
6586Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: 6586Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__:
6587DISTRO_FEATURES_append = " ptest" EXTRA_IMAGE_FEATURES += "ptest-pkgs" 6587DISTRO_FEATURES_append = " ptest" EXTRA_IMAGE_FEATURES += "ptest-pkgs"
@@ -6604,20 +6604,20 @@ you need to prepare the recipes that build the packages you want to
6604test. Here is what you have to do for each recipe: 6604test. Here is what you have to do for each recipe:
6605 6605
6606- *Be sure the recipe inherits 6606- *Be sure the recipe inherits
6607 the*\ ```ptest`` <&YOCTO_DOCS_REF_URL;#ref-classes-ptest>`__\ *class:* 6607 the*\ :ref:`ptest <ref-classes-ptest>`\ *class:*
6608 Include the following line in each recipe: inherit ptest 6608 Include the following line in each recipe: inherit ptest
6609 6609
6610- *Create ``run-ptest``:* This script starts your test. Locate the 6610- *Create ``run-ptest``:* This script starts your test. Locate the
6611 script where you will refer to it using 6611 script where you will refer to it using
6612 ```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__. Here is an 6612 :term:`SRC_URI`. Here is an
6613 example that starts a test for ``dbus``: #!/bin/sh cd test make -k 6613 example that starts a test for ``dbus``: #!/bin/sh cd test make -k
6614 runtest-TESTS 6614 runtest-TESTS
6615 6615
6616- *Ensure dependencies are met:* If the test adds build or runtime 6616- *Ensure dependencies are met:* If the test adds build or runtime
6617 dependencies that normally do not exist for the package (such as 6617 dependencies that normally do not exist for the package (such as
6618 requiring "make" to run the test suite), use the 6618 requiring "make" to run the test suite), use the
6619 ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ and 6619 :term:`DEPENDS` and
6620 ```RDEPENDS`` <&YOCTO_DOCS_REF_URL;#var-RDEPENDS>`__ variables in 6620 :term:`RDEPENDS` variables in
6621 your recipe in order for the package to meet the dependencies. Here 6621 your recipe in order for the package to meet the dependencies. Here
6622 is an example where the package has a runtime dependency on "make": 6622 is an example where the package has a runtime dependency on "make":
6623 RDEPENDS_${PN}-ptest += "make" 6623 RDEPENDS_${PN}-ptest += "make"
@@ -6732,9 +6732,9 @@ possible. The result is a generated recipe.
6732 6732
6733The recipe file is fairly simple and contains every license that 6733The recipe file is fairly simple and contains every license that
6734``recipetool`` finds and includes the licenses in the recipe's 6734``recipetool`` finds and includes the licenses in the recipe's
6735```LIC_FILES_CHKSUM`` <&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM>`__ 6735:term:`LIC_FILES_CHKSUM`
6736variables. You need to examine the variables and look for those with 6736variables. You need to examine the variables and look for those with
6737"unknown" in the ```LICENSE`` <&YOCTO_DOCS_REF_URL;#var-LICENSE>`__ 6737"unknown" in the :term:`LICENSE`
6738field. You need to track down the license information for "unknown" 6738field. You need to track down the license information for "unknown"
6739modules and manually add the information to the recipe. 6739modules and manually add the information to the recipe.
6740 6740
@@ -6764,7 +6764,7 @@ inherit npm LICENSE_${PN} = "MIT" LICENSE_${PN}-accepts = "MIT"
6764LICENSE_${PN}-array-flatten = "MIT" ... LICENSE_${PN}-vary = "MIT" Three 6764LICENSE_${PN}-array-flatten = "MIT" ... LICENSE_${PN}-vary = "MIT" Three
6765key points exist in the previous example: 6765key points exist in the previous example:
6766 6766
6767- ```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ uses the NPM 6767- :term:`SRC_URI` uses the NPM
6768 scheme so that the NPM fetcher is used. 6768 scheme so that the NPM fetcher is used.
6769 6769
6770- ``recipetool`` collects all the license information. If a 6770- ``recipetool`` collects all the license information. If a
@@ -6772,7 +6772,7 @@ key points exist in the previous example:
6772 the comments. 6772 the comments.
6773 6773
6774- The ``inherit npm`` statement causes the 6774- The ``inherit npm`` statement causes the
6775 ```npm`` <&YOCTO_DOCS_REF_URL;#ref-classes-npm>`__ class to package 6775 :ref:`npm <ref-classes-npm>` class to package
6776 up all the modules. 6776 up all the modules.
6777 6777
6778You can run the following command to build the ``cute-files`` package: $ 6778You can run the following command to build the ``cute-files`` package: $
@@ -6828,7 +6828,7 @@ Adding custom metadata to packages
6828---------------------------------- 6828----------------------------------
6829 6829
6830The variable 6830The variable
6831```PACKAGE_ADD_METADATA`` <&YOCTO_DOCS_REF_URL;#var-PACKAGE_ADD_METADATA>`__ 6831:term:`PACKAGE_ADD_METADATA`
6832can be used to add additional metadata to packages. This is reflected in 6832can be used to add additional metadata to packages. This is reflected in
6833the package control/spec file. To take the ipk format for example, the 6833the package control/spec file. To take the ipk format for example, the
6834CONTROL file stored inside would contain the additional metadata as 6834CONTROL file stored inside would contain the additional metadata as
@@ -6869,7 +6869,7 @@ Efficiently Fetching Source Files During a Build
6869================================================ 6869================================================
6870 6870
6871The OpenEmbedded build system works with source files located through 6871The OpenEmbedded build system works with source files located through
6872the ```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ variable. When 6872the :term:`SRC_URI` variable. When
6873you build something using BitBake, a big part of the operation is 6873you build something using BitBake, a big part of the operation is
6874locating and downloading all the source tarballs. For images, 6874locating and downloading all the source tarballs. For images,
6875downloading all the source for various packages can take a significant 6875downloading all the source for various packages can take a significant
@@ -6896,15 +6896,15 @@ SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/" INHERIT +=
6896"own-mirrors" BB_GENERATE_MIRROR_TARBALLS = "1" # BB_NO_NETWORK = "1" 6896"own-mirrors" BB_GENERATE_MIRROR_TARBALLS = "1" # BB_NO_NETWORK = "1"
6897 6897
6898In the previous example, the 6898In the previous example, the
6899```BB_GENERATE_MIRROR_TARBALLS`` <&YOCTO_DOCS_REF_URL;#var-BB_GENERATE_MIRROR_TARBALLS>`__ 6899:term:`BB_GENERATE_MIRROR_TARBALLS`
6900variable causes the OpenEmbedded build system to generate tarballs of 6900variable causes the OpenEmbedded build system to generate tarballs of
6901the Git repositories and store them in the 6901the Git repositories and store them in the
6902```DL_DIR`` <&YOCTO_DOCS_REF_URL;#var-DL_DIR>`__ directory. Due to 6902:term:`DL_DIR` directory. Due to
6903performance reasons, generating and storing these tarballs is not the 6903performance reasons, generating and storing these tarballs is not the
6904build system's default behavior. 6904build system's default behavior.
6905 6905
6906You can also use the 6906You can also use the
6907```PREMIRRORS`` <&YOCTO_DOCS_REF_URL;#var-PREMIRRORS>`__ variable. For 6907:term:`PREMIRRORS` variable. For
6908an example, see the variable's glossary entry in the Yocto Project 6908an example, see the variable's glossary entry in the Yocto Project
6909Reference Manual. 6909Reference Manual.
6910 6910
@@ -6917,7 +6917,7 @@ actually starting a build. This technique lets you work through any
6917download issues and ultimately gathers all the source files into your 6917download issues and ultimately gathers all the source files into your
6918download directory 6918download directory
6919```build/downloads`` <&YOCTO_DOCS_REF_URL;#structure-build-downloads>`__, 6919```build/downloads`` <&YOCTO_DOCS_REF_URL;#structure-build-downloads>`__,
6920which is located with ```DL_DIR`` <&YOCTO_DOCS_REF_URL;#var-DL_DIR>`__. 6920which is located with :term:`DL_DIR`.
6921 6921
6922Use the following BitBake command form to fetch all the necessary 6922Use the following BitBake command form to fetch all the necessary
6923sources without starting the build: $ bitbake target --runall=fetch This 6923sources without starting the build: $ bitbake target --runall=fetch This
@@ -6974,7 +6974,7 @@ To remove initscripts from your image altogether, set this variable
6974also: VIRTUAL-RUNTIME_initscripts = "" 6974also: VIRTUAL-RUNTIME_initscripts = ""
6975 6975
6976For information on the backfill variable, see 6976For information on the backfill variable, see
6977```DISTRO_FEATURES_BACKFILL_CONSIDERED`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES_BACKFILL_CONSIDERED>`__. 6977:term:`DISTRO_FEATURES_BACKFILL_CONSIDERED`.
6978 6978
6979Using systemd for the Main Image and Using SysVinit for the Rescue Image 6979Using systemd for the Main Image and Using SysVinit for the Rescue Image
6980------------------------------------------------------------------------ 6980------------------------------------------------------------------------
@@ -7011,12 +7011,12 @@ Using Persistent and Pre-Populated\ ``/dev``
7011-------------------------------------------- 7011--------------------------------------------
7012 7012
7013To use the static method for device population, you need to set the 7013To use the static method for device population, you need to set the
7014```USE_DEVFS`` <&YOCTO_DOCS_REF_URL;#var-USE_DEVFS>`__ variable to "0" 7014:term:`USE_DEVFS` variable to "0"
7015as follows: USE_DEVFS = "0" 7015as follows: USE_DEVFS = "0"
7016 7016
7017The content of the resulting ``/dev`` directory is defined in a Device 7017The content of the resulting ``/dev`` directory is defined in a Device
7018Table file. The 7018Table file. The
7019```IMAGE_DEVICE_TABLES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_DEVICE_TABLES>`__ 7019:term:`IMAGE_DEVICE_TABLES`
7020variable defines the Device Table to use and should be set in the 7020variable defines the Device Table to use and should be set in the
7021machine or distro configuration file. Alternatively, you can set this 7021machine or distro configuration file. Alternatively, you can set this
7022variable in your ``local.conf`` configuration file. 7022variable in your ``local.conf`` configuration file.
@@ -7034,7 +7034,7 @@ Using ``devtmpfs`` and a Device Manager
7034--------------------------------------- 7034---------------------------------------
7035 7035
7036To use the dynamic method for device population, you need to use (or be 7036To use the dynamic method for device population, you need to use (or be
7037sure to set) the ```USE_DEVFS`` <&YOCTO_DOCS_REF_URL;#var-USE_DEVFS>`__ 7037sure to set) the :term:`USE_DEVFS`
7038variable to "1", which is the default: USE_DEVFS = "1" With this 7038variable to "1", which is the default: USE_DEVFS = "1" With this
7039setting, the resulting ``/dev`` directory is populated by the kernel 7039setting, the resulting ``/dev`` directory is populated by the kernel
7040using ``devtmpfs``. Make sure the corresponding kernel configuration 7040using ``devtmpfs``. Make sure the corresponding kernel configuration
@@ -7065,12 +7065,12 @@ This only works for SCMs from which it is possible to get a sensible
7065revision number for changes. Currently, you can do this with Apache 7065revision number for changes. Currently, you can do this with Apache
7066Subversion (SVN), Git, and Bazaar (BZR) repositories. 7066Subversion (SVN), Git, and Bazaar (BZR) repositories.
7067 7067
7068To enable this behavior, the ```PV`` <&YOCTO_DOCS_REF_URL;#var-PV>`__ of 7068To enable this behavior, the :term:`PV` of
7069the recipe needs to reference 7069the recipe needs to reference
7070```SRCPV`` <&YOCTO_DOCS_REF_URL;#var-SRCPV>`__. Here is an example: PV = 7070:term:`SRCPV`. Here is an example: PV =
7071"1.2.3+git${SRCPV}" Then, you can add the following to your 7071"1.2.3+git${SRCPV}" Then, you can add the following to your
7072``local.conf``: SRCREV_pn-PN = "${AUTOREV}" 7072``local.conf``: SRCREV_pn-PN = "${AUTOREV}"
7073```PN`` <&YOCTO_DOCS_REF_URL;#var-PN>`__ is the name of the recipe for 7073:term:`PN` is the name of the recipe for
7074which you want to enable automatic source revision updating. 7074which you want to enable automatic source revision updating.
7075 7075
7076If you do not want to update your local configuration file, you can add 7076If you do not want to update your local configuration file, you can add
@@ -7135,8 +7135,8 @@ For more information on how to use these variables, see the
7135"`Customizing Images Using Custom ``IMAGE_FEATURES`` and 7135"`Customizing Images Using Custom ``IMAGE_FEATURES`` and
7136``EXTRA_IMAGE_FEATURES`` <#usingpoky-extend-customimage-imagefeatures>`__" 7136``EXTRA_IMAGE_FEATURES`` <#usingpoky-extend-customimage-imagefeatures>`__"
7137section. For information on the variables, see 7137section. For information on the variables, see
7138```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__ and 7138:term:`IMAGE_FEATURES` and
7139```EXTRA_IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES>`__. 7139:term:`EXTRA_IMAGE_FEATURES`.
7140 7140
7141Post-Installation Scripts 7141Post-Installation Scripts
7142------------------------- 7142-------------------------
@@ -7163,7 +7163,7 @@ Here are some common problems that prevent post-installation scripts
7163from running during root filesystem creation: 7163from running during root filesystem creation:
7164 7164
7165- *Not using $D in front of absolute paths:* The build system defines 7165- *Not using $D in front of absolute paths:* The build system defines
7166 ``$``\ ```D`` <&YOCTO_DOCS_REF_URL;#var-D>`__ when the root 7166 ``$``\ :term:`D` when the root
7167 filesystem is created. Furthermore, ``$D`` is blank when the script 7167 filesystem is created. Furthermore, ``$D`` is blank when the script
7168 is run on the target device. This implies two purposes for ``$D``: 7168 is run on the target device. This implies two purposes for ``$D``:
7169 ensuring paths are valid in both the host and target environments, 7169 ensuring paths are valid in both the host and target environments,
@@ -7175,7 +7175,7 @@ from running during root filesystem creation:
7175 native tools, which run on the host system, to accomplish the same 7175 native tools, which run on the host system, to accomplish the same
7176 tasks, or by alternatively running the processes under QEMU, which 7176 tasks, or by alternatively running the processes under QEMU, which
7177 has the ``qemu_run_binary`` function. For more information, see the 7177 has the ``qemu_run_binary`` function. For more information, see the
7178 ```qemu`` <&YOCTO_DOCS_REF_URL;#ref-classes-qemu>`__ class. 7178 :ref:`qemu <ref-classes-qemu>` class.
7179 7179
7180Areas With Write Access 7180Areas With Write Access
7181----------------------- 7181-----------------------
@@ -7200,7 +7200,7 @@ has already been built when the software is building, the software will
7200link to the built library and that library will be pulled into your 7200link to the built library and that library will be pulled into your
7201image along with the new software even if you did not want the library. 7201image along with the new software even if you did not want the library.
7202 7202
7203The ```buildhistory`` <&YOCTO_DOCS_REF_URL;#ref-classes-buildhistory>`__ 7203The :ref:`buildhistory <ref-classes-buildhistory>`
7204class exists to help you maintain the quality of your build output. You 7204class exists to help you maintain the quality of your build output. You
7205can use the class to highlight unexpected and possibly unwanted changes 7205can use the class to highlight unexpected and possibly unwanted changes
7206in the build output. When you enable build history, it records 7206in the build output. When you enable build history, it records
@@ -7224,9 +7224,9 @@ Enabling and Disabling Build History
7224 7224
7225Build history is disabled by default. To enable it, add the following 7225Build history is disabled by default. To enable it, add the following
7226``INHERIT`` statement and set the 7226``INHERIT`` statement and set the
7227```BUILDHISTORY_COMMIT`` <&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_COMMIT>`__ 7227:term:`BUILDHISTORY_COMMIT`
7228variable to "1" at the end of your ``conf/local.conf`` file found in the 7228variable to "1" at the end of your ``conf/local.conf`` file found in the
7229`Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: INHERIT += 7229:term:`Build Directory`: INHERIT +=
7230"buildhistory" BUILDHISTORY_COMMIT = "1" Enabling build history as 7230"buildhistory" BUILDHISTORY_COMMIT = "1" Enabling build history as
7231previously described causes the OpenEmbedded build system to collect 7231previously described causes the OpenEmbedded build system to collect
7232build output information and commit it as a single commit to a local 7232build output information and commit it as a single commit to a local
@@ -7245,9 +7245,9 @@ Understanding What the Build History Contains
7245--------------------------------------------- 7245---------------------------------------------
7246 7246
7247Build history information is kept in 7247Build history information is kept in
7248``${``\ ```TOPDIR`` <&YOCTO_DOCS_REF_URL;#var-TOPDIR>`__\ ``}/buildhistory`` 7248``${``\ :term:`TOPDIR`\ ``}/buildhistory``
7249in the Build Directory as defined by the 7249in the Build Directory as defined by the
7250```BUILDHISTORY_DIR`` <&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_DIR>`__ 7250:term:`BUILDHISTORY_DIR`
7251variable. The following is an example abbreviated listing: 7251variable. The following is an example abbreviated listing:
7252 7252
7253At the top level, a ``metadata-revs`` file exists that lists the 7253At the top level, a ``metadata-revs`` file exists that lists the
@@ -7353,7 +7353,7 @@ The files produced for each image are as follows:
7353 7353
7354- ``image-files:`` A directory containing selected files from the root 7354- ``image-files:`` A directory containing selected files from the root
7355 filesystem. The files are defined by 7355 filesystem. The files are defined by
7356 ```BUILDHISTORY_IMAGE_FILES`` <&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_IMAGE_FILES>`__. 7356 :term:`BUILDHISTORY_IMAGE_FILES`.
7357 7357
7358- ``build-id.txt:`` Human-readable information about the build 7358- ``build-id.txt:`` Human-readable information about the build
7359 configuration and metadata source revisions. This file contains the 7359 configuration and metadata source revisions. This file contains the
@@ -7411,7 +7411,7 @@ following to your ``conf/local.conf`` file found in the `Build
7411Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: INHERIT += 7411Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: INHERIT +=
7412"buildhistory" BUILDHISTORY_COMMIT = "0" BUILDHISTORY_FEATURES = "image" 7412"buildhistory" BUILDHISTORY_COMMIT = "0" BUILDHISTORY_FEATURES = "image"
7413Here, you set the 7413Here, you set the
7414```BUILDHISTORY_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_FEATURES>`__ 7414:term:`BUILDHISTORY_FEATURES`
7415variable to use the image feature only. 7415variable to use the image feature only.
7416 7416
7417Build History SDK Information 7417Build History SDK Information
@@ -7491,7 +7491,7 @@ You can examine build history output from the command line or from a web
7491interface. 7491interface.
7492 7492
7493To see any changes that have occurred (assuming you have 7493To see any changes that have occurred (assuming you have
7494```BUILDHISTORY_COMMIT`` <&YOCTO_DOCS_REF_URL;#var-BUILDHISTORY_COMMIT>`__\ `` = "1"``), 7494:term:`BUILDHISTORY_COMMIT`\ `` = "1"``),
7495you can simply use any Git command that allows you to view the history 7495you can simply use any Git command that allows you to view the history
7496of a repository. Here is one method: $ git log -p You need to realize, 7496of a repository. Here is one method: $ git log -p You need to realize,
7497however, that this method does show changes that are not significant 7497however, that this method does show changes that are not significant
@@ -7635,7 +7635,7 @@ Once you start running the tests, the following happens:
76353. A default timeout of 500 seconds occurs to allow for the boot process 76353. A default timeout of 500 seconds occurs to allow for the boot process
7636 to reach the login prompt. You can change the timeout period by 7636 to reach the login prompt. You can change the timeout period by
7637 setting 7637 setting
7638 ```TEST_QEMUBOOT_TIMEOUT`` <&YOCTO_DOCS_REF_URL;#var-TEST_QEMUBOOT_TIMEOUT>`__ 7638 :term:`TEST_QEMUBOOT_TIMEOUT`
7639 in the ``local.conf`` file. 7639 in the ``local.conf`` file.
7640 7640
76414. Once the boot process is reached and the login prompt appears, the 76414. Once the boot process is reached and the login prompt appears, the
@@ -7815,7 +7815,7 @@ wish to experiment with automated hardware testing, you can use the
7815dialog-power-control script that shows a dialog prompting you to perform 7815dialog-power-control script that shows a dialog prompting you to perform
7816the required power action. This script requires either KDialog or Zenity 7816the required power action. This script requires either KDialog or Zenity
7817to be installed. To use this script, set the 7817to be installed. To use this script, set the
7818```TEST_POWERCONTROL_CMD`` <&YOCTO_DOCS_REF_URL;#var-TEST_POWERCONTROL_CMD>`__ 7818:term:`TEST_POWERCONTROL_CMD`
7819variable as follows: TEST_POWERCONTROL_CMD = 7819variable as follows: TEST_POWERCONTROL_CMD =
7820"${COREBASE}/scripts/contrib/dialog-power-control" 7820"${COREBASE}/scripts/contrib/dialog-power-control"
7821 7821
@@ -7826,9 +7826,9 @@ For test target classes requiring a serial console to interact with the
7826bootloader (e.g. BeagleBoneTarget, EdgeRouterTarget, and GrubTarget), 7826bootloader (e.g. BeagleBoneTarget, EdgeRouterTarget, and GrubTarget),
7827you need to specify a command to use to connect to the serial console of 7827you need to specify a command to use to connect to the serial console of
7828the target machine by using the 7828the target machine by using the
7829```TEST_SERIALCONTROL_CMD`` <&YOCTO_DOCS_REF_URL;#var-TEST_SERIALCONTROL_CMD>`__ 7829:term:`TEST_SERIALCONTROL_CMD`
7830variable and optionally the 7830variable and optionally the
7831```TEST_SERIALCONTROL_EXTRA_ARGS`` <&YOCTO_DOCS_REF_URL;#var-TEST_SERIALCONTROL_EXTRA_ARGS>`__ 7831:term:`TEST_SERIALCONTROL_EXTRA_ARGS`
7832variable. 7832variable.
7833 7833
7834These cases could be a serial terminal program if the machine is 7834These cases could be a serial terminal program if the machine is
@@ -7855,7 +7855,7 @@ You can start the tests automatically or manually:
7855- *Automatically running tests:* To run the tests automatically after 7855- *Automatically running tests:* To run the tests automatically after
7856 the OpenEmbedded build system successfully creates an image, first 7856 the OpenEmbedded build system successfully creates an image, first
7857 set the 7857 set the
7858 ```TESTIMAGE_AUTO`` <&YOCTO_DOCS_REF_URL;#var-TESTIMAGE_AUTO>`__ 7858 :term:`TESTIMAGE_AUTO`
7859 variable to "1" in your ``local.conf`` file in the `Build 7859 variable to "1" in your ``local.conf`` file in the `Build
7860 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: TESTIMAGE_AUTO = 7860 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: TESTIMAGE_AUTO =
7861 "1" Next, build your image. If the image successfully builds, the 7861 "1" Next, build your image. If the image successfully builds, the
@@ -7874,7 +7874,7 @@ individual tests. Tests are usually grouped together by the area tested
7874(e.g tests for systemd reside in ``meta/lib/oeqa/runtime/systemd.py``). 7874(e.g tests for systemd reside in ``meta/lib/oeqa/runtime/systemd.py``).
7875 7875
7876You can add tests to any layer provided you place them in the proper 7876You can add tests to any layer provided you place them in the proper
7877area and you extend ```BBPATH`` <&YOCTO_DOCS_REF_URL;#var-BBPATH>`__ in 7877area and you extend :term:`BBPATH` in
7878the ``local.conf`` file as normal. Be sure that tests reside in 7878the ``local.conf`` file as normal. Be sure that tests reside in
7879``layer/lib/oeqa/runtime``. 7879``layer/lib/oeqa/runtime``.
7880 7880
@@ -7886,7 +7886,7 @@ the ``local.conf`` file as normal. Be sure that tests reside in
7886 . 7886 .
7887 7887
7888You can change the set of tests run by appending or overriding 7888You can change the set of tests run by appending or overriding
7889```TEST_SUITES`` <&YOCTO_DOCS_REF_URL;#var-TEST_SUITES>`__ variable in 7889:term:`TEST_SUITES` variable in
7890``local.conf``. Each name in ``TEST_SUITES`` represents a required test 7890``local.conf``. Each name in ``TEST_SUITES`` represents a required test
7891for the image. Test modules named within ``TEST_SUITES`` cannot be 7891for the image. Test modules named within ``TEST_SUITES`` cannot be
7892skipped even if a test is not suitable for an image (e.g. running the 7892skipped even if a test is not suitable for an image (e.g. running the
@@ -7927,7 +7927,7 @@ Exporting Tests
7927You can export tests so that they can run independently of the build 7927You can export tests so that they can run independently of the build
7928system. Exporting tests is required if you want to be able to hand the 7928system. Exporting tests is required if you want to be able to hand the
7929test execution off to a scheduler. You can only export tests that are 7929test execution off to a scheduler. You can only export tests that are
7930defined in ```TEST_SUITES`` <&YOCTO_DOCS_REF_URL;#var-TEST_SUITES>`__. 7930defined in :term:`TEST_SUITES`.
7931 7931
7932If your image is already built, make sure the following are set in your 7932If your image is already built, make sure the following are set in your
7933``local.conf`` file: INHERIT +="testexport" TEST_TARGET_IP = 7933``local.conf`` file: INHERIT +="testexport" TEST_TARGET_IP =
@@ -7958,7 +7958,7 @@ As mentioned previously, all new test files need to be in the proper
7958place for the build system to find them. New tests for additional 7958place for the build system to find them. New tests for additional
7959functionality outside of the core should be added to the layer that adds 7959functionality outside of the core should be added to the layer that adds
7960the functionality, in ``layer/lib/oeqa/runtime`` (as long as 7960the functionality, in ``layer/lib/oeqa/runtime`` (as long as
7961```BBPATH`` <&YOCTO_DOCS_REF_URL;#var-BBPATH>`__ is extended in the 7961:term:`BBPATH` is extended in the
7962layer's ``layer.conf`` file as normal). Just remember the following: 7962layer's ``layer.conf`` file as normal). Just remember the following:
7963 7963
7964- Filenames need to map directly to test (module) names. 7964- Filenames need to map directly to test (module) names.
@@ -7998,8 +7998,8 @@ Class methods are as follows:
7998 is generated during the ``do_rootfs`` task. 7998 is generated during the ``do_rootfs`` task.
7999 7999
8000- *``hasFeature(feature)``:* Returns "True" if the feature is in 8000- *``hasFeature(feature)``:* Returns "True" if the feature is in
8001 ```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__ or 8001 :term:`IMAGE_FEATURES` or
8002 ```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__. 8002 :term:`DISTRO_FEATURES`.
8003 8003
8004.. _qemu-image-writing-tests-class-attributes: 8004.. _qemu-image-writing-tests-class-attributes:
8005 8005
@@ -8147,7 +8147,7 @@ section:
8147- "`Viewing Package Information with 8147- "`Viewing Package Information with
8148 ``oe-pkgdata-util`` <#viewing-package-information-with-oe-pkgdata-util>`__" 8148 ``oe-pkgdata-util`` <#viewing-package-information-with-oe-pkgdata-util>`__"
8149 describes how to use the ``oe-pkgdata-util`` utility to query 8149 describes how to use the ``oe-pkgdata-util`` utility to query
8150 ```PKGDATA_DIR`` <&YOCTO_DOCS_REF_URL;#var-PKGDATA_DIR>`__ and 8150 :term:`PKGDATA_DIR` and
8151 display package-related information for built packages. 8151 display package-related information for built packages.
8152 8152
8153- "`Viewing Dependencies Between Recipes and 8153- "`Viewing Dependencies Between Recipes and
@@ -8203,12 +8203,12 @@ Viewing Logs from Failed Tasks
8203------------------------------ 8203------------------------------
8204 8204
8205You can find the log for a task in the file 8205You can find the log for a task in the file
8206``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}/temp/log.do_``\ taskname. 8206``${``\ :term:`WORKDIR`\ ``}/temp/log.do_``\ taskname.
8207For example, the log for the 8207For example, the log for the
8208```do_compile`` <&YOCTO_DOCS_REF_URL;#ref-tasks-compile>`__ task of the 8208:ref:`ref-tasks-compile` task of the
8209QEMU minimal image for the x86 machine (``qemux86``) might be in 8209QEMU minimal image for the x86 machine (``qemux86``) might be in
8210``tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_compile``. 8210``tmp/work/qemux86-poky-linux/core-image-minimal/1.0-r0/temp/log.do_compile``.
8211To see the commands `BitBake <&YOCTO_DOCS_REF_URL;#bitbake-term>`__ ran 8211To see the commands :term:`BitBake` ran
8212to generate a log, look at the corresponding ``run.do_``\ taskname file 8212to generate a log, look at the corresponding ``run.do_``\ taskname file
8213in the same directory. 8213in the same directory.
8214 8214
@@ -8269,7 +8269,7 @@ In addition to variable values, the output of the ``bitbake -e`` and
8269 system (including the behavior of the `normal recipe build 8269 system (including the behavior of the `normal recipe build
8270 tasks <&YOCTO_DOCS_REF_URL;#normal-recipe-build-tasks>`__) is 8270 tasks <&YOCTO_DOCS_REF_URL;#normal-recipe-build-tasks>`__) is
8271 implemented in the 8271 implemented in the
8272 ```base`` <&YOCTO_DOCS_REF_URL;#ref-classes-base>`__ class and the 8272 :ref:`base <ref-classes-base>` class and the
8273 classes it inherits, rather than being built into BitBake itself. 8273 classes it inherits, rather than being built into BitBake itself.
8274 8274
8275- After the variable values, all functions appear in the output. For 8275- After the variable values, all functions appear in the output. For
@@ -8282,7 +8282,7 @@ Viewing Package Information with ``oe-pkgdata-util``
8282---------------------------------------------------- 8282----------------------------------------------------
8283 8283
8284You can use the ``oe-pkgdata-util`` command-line utility to query 8284You can use the ``oe-pkgdata-util`` command-line utility to query
8285```PKGDATA_DIR`` <&YOCTO_DOCS_REF_URL;#var-PKGDATA_DIR>`__ and display 8285:term:`PKGDATA_DIR` and display
8286various package-related information. When you use the utility, you must 8286various package-related information. When you use the utility, you must
8287use it to view information on packages that have already been built. 8287use it to view information on packages that have already been built.
8288 8288
@@ -8304,10 +8304,10 @@ Following are a few of the available ``oe-pkgdata-util`` subcommands.
8304 8304
8305 A different way to view the contents of a package is to look at 8305 A different way to view the contents of a package is to look at
8306 the 8306 the
8307 ``${``\ ```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__\ ``}/packages-split`` 8307 ``${``\ :term:`WORKDIR`\ ``}/packages-split``
8308 directory of the recipe that generates the package. This directory 8308 directory of the recipe that generates the package. This directory
8309 is created by the 8309 is created by the
8310 ```do_package`` <&YOCTO_DOCS_REF_URL;#ref-tasks-package>`__ task 8310 :ref:`ref-tasks-package` task
8311 and has one subdirectory for each package the recipe generates, 8311 and has one subdirectory for each package the recipe generates,
8312 which contains the files stored in that package. 8312 which contains the files stored in that package.
8313 8313
@@ -8346,7 +8346,7 @@ in the current directory:
8346 recipename. "Involved" here means that at least one task from the 8346 recipename. "Involved" here means that at least one task from the
8347 recipe needs to run when building recipename from scratch. Targets 8347 recipe needs to run when building recipename from scratch. Targets
8348 that are in 8348 that are in
8349 ```ASSUME_PROVIDED`` <&YOCTO_DOCS_REF_URL;#var-ASSUME_PROVIDED>`__ 8349 :term:`ASSUME_PROVIDED`
8350 are not listed. 8350 are not listed.
8351 8351
8352- ``task-depends.dot``: A graph showing dependencies between tasks. 8352- ``task-depends.dot``: A graph showing dependencies between tasks.
@@ -8369,11 +8369,11 @@ format and can be converted to images (e.g. using the ``dot`` tool from
8369 as the following: "libxslt.do_configure" -> 8369 as the following: "libxslt.do_configure" ->
8370 "libxml2.do_populate_sysroot" The above example line reveals that 8370 "libxml2.do_populate_sysroot" The above example line reveals that
8371 the 8371 the
8372 ```do_configure`` <&YOCTO_DOCS_REF_URL;#ref-tasks-configure>`__ 8372 :ref:`ref-tasks-configure`
8373 task in ``libxslt`` depends on the 8373 task in ``libxslt`` depends on the
8374 ```do_populate_sysroot`` <&YOCTO_DOCS_REF_URL;#ref-tasks-populate_sysroot>`__ 8374 :ref:`ref-tasks-populate_sysroot`
8375 task in ``libxml2``, which is a normal 8375 task in ``libxml2``, which is a normal
8376 ```DEPENDS`` <&YOCTO_DOCS_REF_URL;#var-DEPENDS>`__ dependency 8376 :term:`DEPENDS` dependency
8377 between the two recipes. 8377 between the two recipes.
8378 8378
8379 - For an example of how ``.dot`` files can be processed, see the 8379 - For an example of how ``.dot`` files can be processed, see the
@@ -8407,19 +8407,19 @@ BitBake has determined by doing the following:
8407 8407
84081. Build the recipe containing the task: $ bitbake recipename 84081. Build the recipe containing the task: $ bitbake recipename
8409 8409
84102. Inside the ```STAMPS_DIR`` <&YOCTO_DOCS_REF_URL;#var-STAMPS_DIR>`__ 84102. Inside the :term:`STAMPS_DIR`
8411 directory, find the signature data (``sigdata``) file that 8411 directory, find the signature data (``sigdata``) file that
8412 corresponds to the task. The ``sigdata`` files contain a pickled 8412 corresponds to the task. The ``sigdata`` files contain a pickled
8413 Python database of all the metadata that went into creating the input 8413 Python database of all the metadata that went into creating the input
8414 checksum for the task. As an example, for the 8414 checksum for the task. As an example, for the
8415 ```do_fetch`` <&YOCTO_DOCS_REF_URL;#ref-tasks-fetch>`__ task of the 8415 :ref:`ref-tasks-fetch` task of the
8416 ``db`` recipe, the ``sigdata`` file might be found in the following 8416 ``db`` recipe, the ``sigdata`` file might be found in the following
8417 location: 8417 location:
8418 ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1 8418 ${BUILDDIR}/tmp/stamps/i586-poky-linux/db/6.0.30-r1.do_fetch.sigdata.7c048c18222b16ff0bcee2000ef648b1
8419 For tasks that are accelerated through the shared state 8419 For tasks that are accelerated through the shared state
8420 (`sstate <&YOCTO_DOCS_OM_URL;#shared-state-cache>`__) cache, an 8420 (`sstate <&YOCTO_DOCS_OM_URL;#shared-state-cache>`__) cache, an
8421 additional ``siginfo`` file is written into 8421 additional ``siginfo`` file is written into
8422 ```SSTATE_DIR`` <&YOCTO_DOCS_REF_URL;#var-SSTATE_DIR>`__ along with 8422 :term:`SSTATE_DIR` along with
8423 the cached task output. The ``siginfo`` files contain exactly the 8423 the cached task output. The ``siginfo`` files contain exactly the
8424 same information as ``sigdata`` files. 8424 same information as ``sigdata`` files.
8425 8425
@@ -8475,7 +8475,7 @@ Viewing Metadata Used to Create the Input Signature of a Shared State Task
8475Seeing what metadata went into creating the input signature of a shared 8475Seeing what metadata went into creating the input signature of a shared
8476state (sstate) task can be a useful debugging aid. This information is 8476state (sstate) task can be a useful debugging aid. This information is
8477available in signature information (``siginfo``) files in 8477available in signature information (``siginfo``) files in
8478```SSTATE_DIR`` <&YOCTO_DOCS_REF_URL;#var-SSTATE_DIR>`__. For 8478:term:`SSTATE_DIR`. For
8479information on how to view and interpret information in ``siginfo`` 8479information on how to view and interpret information in ``siginfo``
8480files, see the "`Viewing Task Variable 8480files, see the "`Viewing Task Variable
8481Dependencies <#dev-viewing-task-variable-dependencies>`__" section. 8481Dependencies <#dev-viewing-task-variable-dependencies>`__" section.
@@ -8521,7 +8521,7 @@ invalidate the cache and force the tasks to run. The steps you can take
8521are as simple as changing a function's comments in the source code. For 8521are as simple as changing a function's comments in the source code. For
8522example, to invalidate package shared state files, change the comment 8522example, to invalidate package shared state files, change the comment
8523statements of 8523statements of
8524```do_package`` <&YOCTO_DOCS_REF_URL;#ref-tasks-package>`__ or the 8524:ref:`ref-tasks-package` or the
8525comments of one of the functions it calls. Even though the change is 8525comments of one of the functions it calls. Even though the change is
8526purely cosmetic, it causes the checksum to be recalculated and forces 8526purely cosmetic, it causes the checksum to be recalculated and forces
8527the build system to run the task again. 8527the build system to run the task again.
@@ -8559,7 +8559,7 @@ BitBake determines whether a task is "out of date".
8559 8559
8560If you want to force an up-to-date task to be rerun (e.g. because you 8560If you want to force an up-to-date task to be rerun (e.g. because you
8561made manual modifications to the recipe's 8561made manual modifications to the recipe's
8562```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__ that you want to try 8562:term:`WORKDIR` that you want to try
8563out), then you can use the ``-f`` option. 8563out), then you can use the ``-f`` option.
8564 8564
8565.. note:: 8565.. note::
@@ -8595,7 +8595,7 @@ it is to use the ``-C`` option.
8595 option, which is lower-cased. 8595 option, which is lower-cased.
8596 8596
8597Using this option invalidates the given task and then runs the 8597Using this option invalidates the given task and then runs the
8598```do_build`` <&YOCTO_DOCS_REF_URL;#ref-tasks-build>`__ task, which is 8598:ref:`ref-tasks-build` task, which is
8599the default task if no task is given, and the tasks on which it depends. 8599the default task if no task is given, and the tasks on which it depends.
8600You could replace the final two commands in the previous example with 8600You could replace the final two commands in the previous example with
8601the following single command: $ bitbake matchbox-desktop -C compile 8601the following single command: $ bitbake matchbox-desktop -C compile
@@ -8702,7 +8702,7 @@ log to ``${T}/log.do_``\ task, and can also log to standard output
8702The same logging functions are also available in shell functions, under 8702The same logging functions are also available in shell functions, under
8703the names ``bbplain``, ``bbnote``, ``bbdebug``, ``bbwarn``, ``bberror``, 8703the names ``bbplain``, ``bbnote``, ``bbdebug``, ``bbwarn``, ``bberror``,
8704and ``bbfatal``. The 8704and ``bbfatal``. The
8705```logging`` <&YOCTO_DOCS_REF_URL;#ref-classes-logging>`__ class 8705:ref:`logging <ref-classes-logging>` class
8706implements these functions. See that class in the ``meta/classes`` 8706implements these functions. See that class in the ``meta/classes``
8707folder of the `Source 8707folder of the `Source
8708Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ for information. 8708Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ for information.
@@ -8717,7 +8717,7 @@ in the log, use the "debug" loglevel.
8717 8717
8718Following is an example written in Python. The code handles logging for 8718Following is an example written in Python. The code handles logging for
8719a function that determines the number of tasks needed to be run. See the 8719a function that determines the number of tasks needed to be run. See the
8720"```do_listtasks`` <&YOCTO_DOCS_REF_URL;#ref-tasks-listtasks>`__" 8720":ref:`ref-tasks-listtasks`"
8721section for additional information: python do_listtasks() { bb.debug(2, 8721section for additional information: python do_listtasks() { bb.debug(2,
8722"Starting to figure out the task list") if noteworthy_condition: 8722"Starting to figure out the task list") if noteworthy_condition:
8723bb.note("There are 47 tasks to run") bb.debug(2, "Got to point xyz") if 8723bb.note("There are 47 tasks to run") bb.debug(2, "Got to point xyz") if
@@ -8851,7 +8851,7 @@ exists. Thus, once the error surfaces, you need a way to reproduce it.
8851In this example, compiling the "neard" package is causing the problem. 8851In this example, compiling the "neard" package is causing the problem.
8852So the first thing to do is build "neard" locally. Before you start the 8852So the first thing to do is build "neard" locally. Before you start the
8853build, set the 8853build, set the
8854```PARALLEL_MAKE`` <&YOCTO_DOCS_REF_URL;#var-PARALLEL_MAKE>`__ variable 8854:term:`PARALLEL_MAKE` variable
8855in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a 8855in your ``local.conf`` file to a high number (e.g. "-j 20"). Using a
8856high value for ``PARALLEL_MAKE`` increases the chances of the race 8856high value for ``PARALLEL_MAKE`` increases the chances of the race
8857condition showing up: $ bitbake neard 8857condition showing up: $ bitbake neard
@@ -8895,7 +8895,7 @@ Directory <&YOCTO_DOCS_REF_URL;#source-directory>`__ named ``poky``: $
8895cp patches/parallelmake.patch poky/meta/recipes-connectivity/neard/neard 8895cp patches/parallelmake.patch poky/meta/recipes-connectivity/neard/neard
8896The final thing you need to do to implement the fix in the build is to 8896The final thing you need to do to implement the fix in the build is to
8897update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the 8897update the "neard" recipe (i.e. ``neard-0.14.bb``) so that the
8898```SRC_URI`` <&YOCTO_DOCS_REF_URL;#var-SRC_URI>`__ statement includes 8898:term:`SRC_URI` statement includes
8899the patch file. The recipe file is in the folder above the patch. Here 8899the patch file. The recipe file is in the folder above the patch. Here
8900is what the edited ``SRC_URI`` statement would look like: SRC_URI = 8900is what the edited ``SRC_URI`` statement would look like: SRC_URI =
8901"${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \\ 8901"${KERNELORG_MIRROR}/linux/network/nfc/${BPN}-${PV}.tar.xz \\
@@ -8930,7 +8930,7 @@ GDB allows you to examine running programs, which in turn helps you to
8930understand and fix problems. It also allows you to perform post-mortem 8930understand and fix problems. It also allows you to perform post-mortem
8931style analysis of program crashes. GDB is available as a package within 8931style analysis of program crashes. GDB is available as a package within
8932the Yocto Project and is installed in SDK images by default. See the 8932the Yocto Project and is installed in SDK images by default. See the
8933"`Images <&YOCTO_DOCS_REF_URL;#ref-images>`__" chapter in the Yocto 8933":ref:`ref-manual/ref-images:Images`" chapter in the Yocto
8934Project Reference Manual for a description of these images. You can find 8934Project Reference Manual for a description of these images. You can find
8935information on GDB at ` <http://sourceware.org/gdb/>`__. 8935information on GDB at ` <http://sourceware.org/gdb/>`__.
8936 8936
@@ -9114,10 +9114,10 @@ debug on the target hardware.
9114To support this kind of debugging, you need do the following: 9114To support this kind of debugging, you need do the following:
9115 9115
9116- Ensure that GDB is on the target. You can do this by adding "gdb" to 9116- Ensure that GDB is on the target. You can do this by adding "gdb" to
9117 ```IMAGE_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL>`__: 9117 :term:`IMAGE_INSTALL`:
9118 IMAGE_INSTALL_append = " gdb" Alternatively, you can add 9118 IMAGE_INSTALL_append = " gdb" Alternatively, you can add
9119 "tools-debug" to 9119 "tools-debug" to
9120 ```IMAGE_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES>`__: 9120 :term:`IMAGE_FEATURES`:
9121 IMAGE_FEATURES_append = " tools-debug" 9121 IMAGE_FEATURES_append = " tools-debug"
9122 9122
9123- Ensure that debug symbols are present. You can make sure these 9123- Ensure that debug symbols are present. You can make sure these
@@ -9162,12 +9162,12 @@ Here are some other tips that you might find useful:
9162 is also possible to switch out of the splashscreen by switching the 9162 is also possible to switch out of the splashscreen by switching the
9163 virtual console (e.g. Fn+Left or Fn+Right on a Zaurus). 9163 virtual console (e.g. Fn+Left or Fn+Right on a Zaurus).
9164 9164
9165- Removing ```TMPDIR`` <&YOCTO_DOCS_REF_URL;#var-TMPDIR>`__ (usually 9165- Removing :term:`TMPDIR` (usually
9166 ``tmp/``, within the `Build 9166 ``tmp/``, within the `Build
9167 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__) can often fix 9167 Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__) can often fix
9168 temporary build issues. Removing ``TMPDIR`` is usually a relatively 9168 temporary build issues. Removing ``TMPDIR`` is usually a relatively
9169 cheap operation, because task output will be cached in 9169 cheap operation, because task output will be cached in
9170 ```SSTATE_DIR`` <&YOCTO_DOCS_REF_URL;#var-SSTATE_DIR>`__ (usually 9170 :term:`SSTATE_DIR` (usually
9171 ``sstate-cache/``, which is also in the Build Directory). 9171 ``sstate-cache/``, which is also in the Build Directory).
9172 9172
9173 .. note:: 9173 .. note::
@@ -9654,7 +9654,7 @@ Tracking License Changes
9654 9654
9655The license of an upstream project might change in the future. In order 9655The license of an upstream project might change in the future. In order
9656to prevent these changes going unnoticed, the 9656to prevent these changes going unnoticed, the
9657```LIC_FILES_CHKSUM`` <&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM>`__ 9657:term:`LIC_FILES_CHKSUM`
9658variable tracks changes to the license text. The checksums are validated 9658variable tracks changes to the license text. The checksums are validated
9659at the end of the configure step, and if the checksums do not match, the 9659at the end of the configure step, and if the checksums do not match, the
9660build will fail. 9660build will fail.
@@ -9682,7 +9682,7 @@ file://licfile2.txt;endline=50;md5=zzzz \\ ..."
9682 as part of the QA message. Using this output, you can determine 9682 as part of the QA message. Using this output, you can determine
9683 the exact start and finish for the needed license text. 9683 the exact start and finish for the needed license text.
9684 9684
9685The build system uses the ```S`` <&YOCTO_DOCS_REF_URL;#var-S>`__ 9685The build system uses the :term:`S`
9686variable as the default directory when searching files listed in 9686variable as the default directory when searching files listed in
9687``LIC_FILES_CHKSUM``. The previous example employs the default 9687``LIC_FILES_CHKSUM``. The previous example employs the default
9688directory. 9688directory.
@@ -9694,7 +9694,7 @@ md5=bb14ed3c4cda583abc85401304b5cd4e" LIC_FILES_CHKSUM =
9694 9694
9695The first line locates a file in ``${S}/src/ls.c`` and isolates lines 9695The first line locates a file in ``${S}/src/ls.c`` and isolates lines
9696five through 16 as license text. The second line refers to a file in 9696five through 16 as license text. The second line refers to a file in
9697```WORKDIR`` <&YOCTO_DOCS_REF_URL;#var-WORKDIR>`__. 9697:term:`WORKDIR`.
9698 9698
9699Note that ``LIC_FILES_CHKSUM`` variable is mandatory for all recipes, 9699Note that ``LIC_FILES_CHKSUM`` variable is mandatory for all recipes,
9700unless the ``LICENSE`` variable is set to "CLOSED". 9700unless the ``LICENSE`` variable is set to "CLOSED".
@@ -9733,7 +9733,7 @@ long as it is kept up to date.
9733.. note:: 9733.. note::
9734 9734
9735 - If you specify an empty or invalid "md5" parameter, 9735 - If you specify an empty or invalid "md5" parameter,
9736 `BitBake <&YOCTO_DOCS_REF_URL;#bitbake-term>`__ returns an md5 9736 :term:`BitBake` returns an md5
9737 mis-match error and displays the correct "md5" parameter value 9737 mis-match error and displays the correct "md5" parameter value
9738 during the build. The correct parameter is also captured in the 9738 during the build. The correct parameter is also captured in the
9739 build log. 9739 build log.
@@ -9747,7 +9747,7 @@ Enabling Commercially Licensed Recipes
9747By default, the OpenEmbedded build system disables components that have 9747By default, the OpenEmbedded build system disables components that have
9748commercial or other special licensing requirements. Such requirements 9748commercial or other special licensing requirements. Such requirements
9749are defined on a recipe-by-recipe basis through the 9749are defined on a recipe-by-recipe basis through the
9750```LICENSE_FLAGS`` <&YOCTO_DOCS_REF_URL;#var-LICENSE_FLAGS>`__ variable 9750:term:`LICENSE_FLAGS` variable
9751definition in the affected recipe. For instance, the 9751definition in the affected recipe. For instance, the
9752``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe 9752``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` recipe
9753contains the following statement: LICENSE_FLAGS = "commercial" Here is a 9753contains the following statement: LICENSE_FLAGS = "commercial" Here is a
@@ -9756,7 +9756,7 @@ name and version (after variable expansion): LICENSE_FLAGS =
9756"license_${PN}_${PV}" In order for a component restricted by a 9756"license_${PN}_${PV}" In order for a component restricted by a
9757``LICENSE_FLAGS`` definition to be enabled and included in an image, it 9757``LICENSE_FLAGS`` definition to be enabled and included in an image, it
9758needs to have a matching entry in the global 9758needs to have a matching entry in the global
9759```LICENSE_FLAGS_WHITELIST`` <&YOCTO_DOCS_REF_URL;#var-LICENSE_FLAGS_WHITELIST>`__ 9759:term:`LICENSE_FLAGS_WHITELIST`
9760variable, which is a variable typically defined in your ``local.conf`` 9760variable, which is a variable typically defined in your ``local.conf``
9761file. For example, to enable the 9761file. For example, to enable the
9762``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` package, you 9762``poky/meta/recipes-multimedia/gstreamer/gst-plugins-ugly`` package, you
@@ -9930,14 +9930,14 @@ for most compliance groups - providing the source. The Yocto Project has
9930a few ways of meeting this requirement. 9930a few ways of meeting this requirement.
9931 9931
9932One of the easiest ways to meet this requirement is to provide the 9932One of the easiest ways to meet this requirement is to provide the
9933entire ```DL_DIR`` <&YOCTO_DOCS_REF_URL;#var-DL_DIR>`__ used by the 9933entire :term:`DL_DIR` used by the
9934build. This method, however, has a few issues. The most obvious is the 9934build. This method, however, has a few issues. The most obvious is the
9935size of the directory since it includes all sources used in the build 9935size of the directory since it includes all sources used in the build
9936and not just the source used in the released image. It will include 9936and not just the source used in the released image. It will include
9937toolchain source, and other artifacts, which you would not generally 9937toolchain source, and other artifacts, which you would not generally
9938release. However, the more serious issue for most companies is 9938release. However, the more serious issue for most companies is
9939accidental release of proprietary software. The Yocto Project provides 9939accidental release of proprietary software. The Yocto Project provides
9940an ```archiver`` <&YOCTO_DOCS_REF_URL;#ref-classes-archiver>`__ class to 9940an :ref:`archiver <ref-classes-archiver>` class to
9941help avoid some of these concerns. 9941help avoid some of these concerns.
9942 9942
9943Before you employ ``DL_DIR`` or the ``archiver`` class, you need to 9943Before you employ ``DL_DIR`` or the ``archiver`` class, you need to
@@ -9952,7 +9952,7 @@ Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__: INHERIT +=
9952"archiver" ARCHIVER_MODE[src] = "original" During the creation of your 9952"archiver" ARCHIVER_MODE[src] = "original" During the creation of your
9953image, the source from all recipes that deploy packages to the image is 9953image, the source from all recipes that deploy packages to the image is
9954placed within subdirectories of ``DEPLOY_DIR/sources`` based on the 9954placed within subdirectories of ``DEPLOY_DIR/sources`` based on the
9955```LICENSE`` <&YOCTO_DOCS_REF_URL;#var-LICENSE>`__ for each recipe. 9955:term:`LICENSE` for each recipe.
9956Releasing the entire directory enables you to comply with requirements 9956Releasing the entire directory enables you to comply with requirements
9957concerning providing the unmodified source. It is important to note that 9957concerning providing the unmodified source. It is important to note that
9958the size of the directory can get large. 9958the size of the directory can get large.
@@ -9997,11 +9997,11 @@ generation are included on your image.
9997 ``/usr/share/license``. 9997 ``/usr/share/license``.
9998 9998
9999 The reason for this behavior is because 9999 The reason for this behavior is because
10000 ```COPY_LIC_DIRS`` <&YOCTO_DOCS_REF_URL;#var-COPY_LIC_DIRS>`__ and 10000 :term:`COPY_LIC_DIRS` and
10001 ```COPY_LIC_MANIFEST`` <&YOCTO_DOCS_REF_URL;#var-COPY_LIC_MANIFEST>`__ 10001 :term:`COPY_LIC_MANIFEST`
10002 add a copy of the license when the image is built but do not offer a 10002 add a copy of the license when the image is built but do not offer a
10003 path for adding licenses for newly installed packages to an image. 10003 path for adding licenses for newly installed packages to an image.
10004 ```LICENSE_CREATE_PACKAGE`` <&YOCTO_DOCS_REF_URL;#var-LICENSE_CREATE_PACKAGE>`__ 10004 :term:`LICENSE_CREATE_PACKAGE`
10005 adds a separate package and an upgrade path for adding licenses to an 10005 adds a separate package and an upgrade path for adding licenses to an
10006 image. 10006 image.
10007 10007
@@ -10043,7 +10043,7 @@ is increased each time build/conf/bblayers.conf # changes incompatibly
10043POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" 10043POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= ""
10044BBLAYERS ?= " \\ ##OEROOT##/meta \\ ##OEROOT##/meta-poky \\ 10044BBLAYERS ?= " \\ ##OEROOT##/meta \\ ##OEROOT##/meta-poky \\
10045##OEROOT##/meta-yocto-bsp \\ ##OEROOT##/meta-mylayer \\ " Creating and 10045##OEROOT##/meta-yocto-bsp \\ ##OEROOT##/meta-mylayer \\ " Creating and
10046providing an archive of the `Metadata <&YOCTO_DOCS_REF_URL;#metadata>`__ 10046providing an archive of the :term:`Metadata`
10047layers (recipes, configuration files, and so forth) enables you to meet 10047layers (recipes, configuration files, and so forth) enables you to meet
10048your requirements to include the scripts to control compilation as well 10048your requirements to include the scripts to control compilation as well
10049as any modifications to the original source. 10049as any modifications to the original source.
@@ -10055,7 +10055,7 @@ Some packages, such as the linux-firmware package, have many licenses
10055that are not in any way common. You can avoid adding a lot of these 10055that are not in any way common. You can avoid adding a lot of these
10056types of common license files, which are only applicable to a specific 10056types of common license files, which are only applicable to a specific
10057package, by using the 10057package, by using the
10058```NO_GENERIC_LICENSE`` <&YOCTO_DOCS_REF_URL;#var-NO_GENERIC_LICENSE>`__ 10058:term:`NO_GENERIC_LICENSE`
10059variable. Using this variable also avoids QA errors when you use a 10059variable. Using this variable also avoids QA errors when you use a
10060non-common, non-CLOSED license in a recipe. 10060non-common, non-CLOSED license in a recipe.
10061 10061
@@ -10091,14 +10091,14 @@ Enabling and Using the Tool
10091 10091
10092By default, the error reporting tool is disabled. You can enable it by 10092By default, the error reporting tool is disabled. You can enable it by
10093inheriting the 10093inheriting the
10094```report-error`` <&YOCTO_DOCS_REF_URL;#ref-classes-report-error>`__ 10094:ref:`report-error <ref-classes-report-error>`
10095class by adding the following statement to the end of your 10095class by adding the following statement to the end of your
10096``local.conf`` file in your `Build 10096``local.conf`` file in your `Build
10097Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. INHERIT += 10097Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. INHERIT +=
10098"report-error" 10098"report-error"
10099 10099
10100By default, the error reporting feature stores information in 10100By default, the error reporting feature stores information in
10101``${``\ ```LOG_DIR`` <&YOCTO_DOCS_REF_URL;#var-LOG_DIR>`__\ ``}/error-report``. 10101``${``\ :term:`LOG_DIR`\ ``}/error-report``.
10102However, you can specify a directory to use by adding the following to 10102However, you can specify a directory to use by adding the following to
10103your ``local.conf`` file: ERR_REPORT_DIR = "path" Enabling error 10103your ``local.conf`` file: ERR_REPORT_DIR = "path" Enabling error
10104reporting causes the build process to collect the errors and store them 10104reporting causes the build process to collect the errors and store them
@@ -10127,7 +10127,7 @@ Disabling the Tool
10127 10127
10128To disable the error reporting feature, simply remove or comment out the 10128To disable the error reporting feature, simply remove or comment out the
10129following statement from the end of your ``local.conf`` file in your 10129following statement from the end of your ``local.conf`` file in your
10130`Build Directory <&YOCTO_DOCS_REF_URL;#build-directory>`__. INHERIT += 10130:term:`Build Directory`. INHERIT +=
10131"report-error" 10131"report-error"
10132 10132
10133Setting Up Your Own Error Reporting Server 10133Setting Up Your Own Error Reporting Server
@@ -10191,7 +10191,7 @@ To cause Mesa to build the ``wayland-egl`` platform and Weston to build
10191Wayland with Kernel Mode Setting 10191Wayland with Kernel Mode Setting
10192(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__) 10192(`KMS <https://wiki.archlinux.org/index.php/Kernel_Mode_Setting>`__)
10193support, include the "wayland" flag in the 10193support, include the "wayland" flag in the
10194```DISTRO_FEATURES`` <&YOCTO_DOCS_REF_URL;#var-DISTRO_FEATURES>`__ 10194:term:`DISTRO_FEATURES`
10195statement in your ``local.conf`` file: DISTRO_FEATURES_append = " 10195statement in your ``local.conf`` file: DISTRO_FEATURES_append = "
10196wayland" 10196wayland"
10197 10197
@@ -10207,7 +10207,7 @@ Installing
10207 10207
10208To install the Wayland feature into an image, you must include the 10208To install the Wayland feature into an image, you must include the
10209following 10209following
10210```CORE_IMAGE_EXTRA_INSTALL`` <&YOCTO_DOCS_REF_URL;#var-CORE_IMAGE_EXTRA_INSTALL>`__ 10210:term:`CORE_IMAGE_EXTRA_INSTALL`
10211statement in your ``local.conf`` file: CORE_IMAGE_EXTRA_INSTALL += 10211statement in your ``local.conf`` file: CORE_IMAGE_EXTRA_INSTALL +=
10212"wayland weston" 10212"wayland weston"
10213 10213