summaryrefslogtreecommitdiff
path: root/poky/documentation/overview-manual/concepts.rst
diff options
context:
space:
mode:
Diffstat (limited to 'poky/documentation/overview-manual/concepts.rst')
-rw-r--r--poky/documentation/overview-manual/concepts.rst201
1 files changed, 88 insertions, 113 deletions
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index ada5143b2..642ef15fe 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -55,8 +55,7 @@ This section briefly introduces BitBake. If you want more information on
BitBake, see the :doc:`BitBake User Manual <bitbake:index>`.
To see a list of the options BitBake supports, use either of the
-following commands:
-::
+following commands::
$ bitbake -h
$ bitbake --help
@@ -66,8 +65,7 @@ The most common usage for BitBake is ``bitbake recipename``, where
to as the "target"). The target often equates to the first part of a
recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``).
So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might
-type the following:
-::
+type the following::
$ bitbake matchbox-desktop
@@ -141,7 +139,7 @@ hardware-specific configurations allows you to share other metadata by
using a different layer where that metadata might be common across
several pieces of hardware.
-Many layers exist that work in the Yocto Project development environment. The
+There are many layers working in the Yocto Project development environment. The
:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
which you can use or leverage.
@@ -334,7 +332,7 @@ created by an autobuilder:
One useful scenario for using the ``conf/site.conf`` file is to
extend your :term:`BBPATH` variable
to include the path to a ``conf/site.conf``. Then, when BitBake looks
- for Metadata using ``BBPATH``, it finds the ``conf/site.conf`` file
+ for Metadata using :term:`BBPATH`, it finds the ``conf/site.conf`` file
and applies your common configurations found in the file. To override
configurations in a particular build directory, alter the similar
configurations within that build directory's ``conf/local.conf``
@@ -372,7 +370,7 @@ BitBake's global behavior. This section takes a closer look at the
layers the build system uses to further control the build. These layers
provide Metadata for the software, machine, and policies.
-In general, three types of layer input exists. You can see them below
+In general, there are three types of layer input. You can see them below
the "User Configuration" box in the `general workflow
figure <overview-manual/concepts:openembedded build system concepts>`:
@@ -429,8 +427,8 @@ Repositories <>` also shows layers categorized under "Yocto Metadata Layers."
.. note::
- Layers exist in the Yocto Project Source Repositories that cannot be
- found in the OpenEmbedded Layer Index. These layers are either
+ There are layers in the Yocto Project Source Repositories that cannot be
+ found in the OpenEmbedded Layer Index. Such layers are either
deprecated or experimental in nature.
BitBake uses the ``conf/bblayers.conf`` file, which is part of the user
@@ -491,7 +489,7 @@ the machine (``conf/machine/machine.conf``) and, of course, the layer
The remainder of the layer is dedicated to specific recipes by function:
``recipes-bsp``, ``recipes-core``, ``recipes-graphics``,
-``recipes-kernel``, and so forth. Metadata can exist for multiple
+``recipes-kernel``, and so forth. There can be metadata for multiple
formfactors, graphics support systems, and so forth.
.. note::
@@ -530,13 +528,11 @@ project that is more dynamic or experimental in nature, a project might
keep source files in a repository controlled by a Source Control Manager
(SCM) such as Git. Pulling source from a repository allows you to
control the point in the repository (the revision) from which you want
-to build software. Finally, a combination of the two might exist, which
-would give the consumer a choice when deciding where to get source
-files.
+to build software. A combination of the two is also possible.
BitBake uses the :term:`SRC_URI`
variable to point to source files regardless of their location. Each
-recipe must have a ``SRC_URI`` variable that points to the source.
+recipe must have a :term:`SRC_URI` variable that points to the source.
Another area that plays a significant role in where source files come
from is pointed to by the
@@ -544,13 +540,13 @@ from is pointed to by the
a cache that can hold previously downloaded source. You can also
instruct the OpenEmbedded build system to create tarballs from Git
repositories, which is not the default behavior, and store them in the
-``DL_DIR`` by using the
+:term:`DL_DIR` by using the
:term:`BB_GENERATE_MIRROR_TARBALLS`
variable.
-Judicious use of a ``DL_DIR`` directory can save the build system a trip
+Judicious use of a :term:`DL_DIR` directory can save the build system a trip
across the Internet when looking for files. A good method for using a
-download directory is to have ``DL_DIR`` point to an area outside of
+download directory is to have :term:`DL_DIR` point to an area outside of
your Build Directory. Doing so allows you to safely delete the Build
Directory if needed without fear of removing any downloaded source file.
@@ -611,7 +607,7 @@ the specific revision from which to build.
Source Mirror(s)
~~~~~~~~~~~~~~~~
-Two kinds of mirrors exist: pre-mirrors and regular mirrors. The
+There are two kinds of mirrors: pre-mirrors and regular mirrors. The
:term:`PREMIRRORS` and
:term:`MIRRORS` variables point to
these, respectively. BitBake checks pre-mirrors before looking upstream
@@ -669,8 +665,8 @@ package files are kept:
variables are used, respectively.
- :term:`PACKAGE_ARCH`: Defines
- architecture-specific sub-folders. For example, packages could exist
- for the i586 or qemux86 architectures.
+ architecture-specific sub-folders. For example, packages could be
+ available for the i586 or qemux86 architectures.
BitBake uses the
:ref:`do_package_write_* <ref-tasks-package_write_deb>`
@@ -683,8 +679,8 @@ and
":ref:`ref-tasks-package_write_tar`"
sections in the Yocto Project Reference Manual for additional
information. As an example, consider a scenario where an IPK packaging
-manager is being used and package architecture support for both i586 and
-qemux86 exist. Packages for the i586 architecture are placed in
+manager is being used and there is package architecture support for both
+i586 and qemux86. Packages for the i586 architecture are placed in
``build/tmp/deploy/ipk/i586``, while packages for the qemux86
architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
@@ -700,7 +696,7 @@ closer look at each of those areas.
.. note::
- Separate documentation exists for the BitBake tool. See the
+ Documentation for the BitBake tool is available separately. See the
BitBake User Manual
for reference material on BitBake.
@@ -751,7 +747,7 @@ Build Directory's hierarchy:
architecture of the built package or packages. Depending on the
eventual destination of the package or packages (i.e. machine
architecture, :term:`Build Host`, SDK, or
- specific machine), ``PACKAGE_ARCH`` varies. See the variable's
+ specific machine), :term:`PACKAGE_ARCH` varies. See the variable's
description for details.
- :term:`TARGET_OS`: The operating
@@ -760,7 +756,7 @@ Build Directory's hierarchy:
- :term:`PN`: The name of the recipe used
to build the package. This variable can have multiple meanings.
- However, when used in the context of input files, ``PN`` represents
+ However, when used in the context of input files, :term:`PN` represents
the name of the recipe.
- :term:`WORKDIR`: The location
@@ -777,7 +773,7 @@ Build Directory's hierarchy:
files for a given recipe.
- :term:`BPN`: The name of the recipe
- used to build the package. The ``BPN`` variable is a version of
+ used to build the package. The :term:`BPN` variable is a version of
the ``PN`` variable but with common prefixes and suffixes removed.
- :term:`PV`: The version of the
@@ -785,12 +781,10 @@ Build Directory's hierarchy:
.. note::
- In the previous figure, notice that two sample hierarchies exist: one
- based on package architecture (i.e.
- PACKAGE_ARCH
- ) and one based on a machine (i.e.
- MACHINE
- ). The underlying structures are identical. The differentiator being
+ In the previous figure, notice that there are two sample hierarchies:
+ one based on package architecture (i.e. :term:`PACKAGE_ARCH`)
+ and one based on a machine (i.e. :term:`MACHINE`).
+ The underlying structures are identical. The differentiator being
what the OpenEmbedded build system is using as a build target (e.g.
general architecture, a build host, an SDK, or a specific machine).
@@ -809,13 +803,13 @@ and the :term:`FILESPATH` variable
to locate applicable patch files.
Default processing for patch files assumes the files have either
-``*.patch`` or ``*.diff`` file types. You can use ``SRC_URI`` parameters
+``*.patch`` or ``*.diff`` file types. You can use :term:`SRC_URI` parameters
to change the way the build system recognizes patch files. See the
:ref:`ref-tasks-patch` task for more
information.
BitBake finds and applies multiple patches for a single recipe in the
-order in which it locates the patches. The ``FILESPATH`` variable
+order in which it locates the patches. The :term:`FILESPATH` variable
defines the default set of directories that the build system uses to
search for patch files. Once found, patches are applied to the recipe's
source files, which are located in the
@@ -883,12 +877,12 @@ This step in the build process consists of the following tasks:
:ref:`ref-tasks-compile` task.
Compilation occurs in the directory pointed to by the
:term:`B` variable. Realize that the
- ``B`` directory is, by default, the same as the
+ :term:`B` directory is, by default, the same as the
:term:`S` directory.
- *do_install*: After compilation completes, BitBake executes the
:ref:`ref-tasks-install` task.
- This task copies files from the ``B`` directory and places them in a
+ This task copies files from the :term:`B` directory and places them in a
holding area pointed to by the :term:`D`
variable. Packaging occurs later using files from this holding
directory.
@@ -934,7 +928,7 @@ the analysis and package splitting process use several areas:
- :term:`PKGDATA_DIR`: A shared,
global-state directory that holds packaging metadata generated during
the packaging process. The packaging process copies metadata from
- ``PKGDESTWORK`` to the ``PKGDATA_DIR`` area where it becomes globally
+ :term:`PKGDESTWORK` to the :term:`PKGDATA_DIR` area where it becomes globally
available.
- :term:`STAGING_DIR_HOST`:
@@ -965,8 +959,7 @@ that part of the build process.
.. note::
- Support for creating feeds directly from the
- deploy/\*
+ Support for creating feeds directly from the ``deploy/*``
directories does not exist. Creating such feeds usually requires some
kind of feed maintenance mechanism that would upload the new packages
into an official package feed (e.g. the Ångström distribution). This
@@ -1015,7 +1008,7 @@ actually install:
With :term:`IMAGE_ROOTFS`
pointing to the location of the filesystem under construction and the
-``PACKAGE_INSTALL`` variable providing the final list of packages to
+:term:`PACKAGE_INSTALL` variable providing the final list of packages to
install, the root file system is created.
Package installation is under control of the package manager (e.g.
@@ -1064,19 +1057,17 @@ based on the image types specified in the
The process turns everything into an image file or a set of image files
and can compress the root filesystem image to reduce the overall size of
the image. The formats used for the root filesystem depend on the
-``IMAGE_FSTYPES`` variable. Compression depends on whether the formats
+:term:`IMAGE_FSTYPES` variable. Compression depends on whether the formats
support compression.
As an example, a dynamically created task when creating a particular
-image type would take the following form:
-::
+image type would take the following form::
do_image_type
So, if the type
-as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically
-generated task would be as follows:
-::
+as specified by the :term:`IMAGE_FSTYPES` were ``ext4``, the dynamically
+generated task would be as follows::
do_image_ext4
@@ -1160,9 +1151,9 @@ checksum <overview-manual/concepts:checksums (signatures)>`.
OpenEmbedded.
To determine if a task needs to be rerun, BitBake checks if a stamp file
-with a matching input checksum exists for the task. If such a stamp file
-exists, the task's output is assumed to exist and still be valid. If the
-file does not exist, the task is rerun.
+with a matching input checksum exists for the task. In this case,
+the task's output is assumed to exist and still be valid. Otherwise,
+the task is rerun.
.. note::
@@ -1180,9 +1171,9 @@ file does not exist, the task is rerun.
the sstate cache mechanism adds is a way to cache task output that
can then be shared between build machines.
-Since ``STAMPS_DIR`` is usually a subdirectory of ``TMPDIR``, removing
-``TMPDIR`` will also remove ``STAMPS_DIR``, which means tasks will
-properly be rerun to repopulate ``TMPDIR``.
+Since :term:`STAMPS_DIR` is usually a subdirectory of :term:`TMPDIR`, removing
+:term:`TMPDIR` will also remove :term:`STAMPS_DIR`, which means tasks will
+properly be rerun to repopulate :term:`TMPDIR`.
If you want some task to always be considered "out of date", you can
mark it with the :ref:`nostamp <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`
@@ -1238,14 +1229,14 @@ to run any of the ``do_fetch``, ``do_unpack``, ``do_patch``,
It becomes more complicated if everything can come from an sstate cache
because some objects are simply not required at all. For example, you do
-not need a compiler or native tools, such as quilt, if nothing exists to
-compile or patch. If the ``do_package_write_*`` packages are available
+not need a compiler or native tools, such as quilt, if there isn't anything
+to compile or patch. If the ``do_package_write_*`` packages are available
from sstate, BitBake does not need the ``do_package`` task data.
To handle all these complexities, BitBake runs in two phases. The first
is the "setscene" stage. During this stage, BitBake first checks the
sstate cache for any targets it is planning to build. BitBake does a
-fast check to see if the object exists rather than a complete download.
+fast check to see if the object exists rather than doing a complete download.
If nothing exists, the second phase, which is the setscene stage,
completes and the main build proceeds.
@@ -1370,9 +1361,9 @@ can initialize the environment before using the tools.
All the output files for an SDK are written to the ``deploy/sdk`` folder
inside the :term:`Build Directory` as
-shown in the previous figure. Depending on the type of SDK, several
-variables exist that help configure these files. The following list
-shows the variables associated with an extensible SDK:
+shown in the previous figure. Depending on the type of SDK, there are
+several variables to configure these files. Here are the variables
+associated with an extensible SDK:
- :term:`DEPLOY_DIR`: Points to
the ``deploy`` directory.
@@ -1417,7 +1408,7 @@ This next list, shows the variables associated with a standard SDK:
- :term:`TOOLCHAIN_HOST_TASK`:
Lists packages that make up the host part of the SDK (i.e. the part
- that runs on the ``SDKMACHINE``). When you use
+ that runs on the :term:`SDKMACHINE`). When you use
``bitbake -c populate_sdk imagename`` to create the SDK, a set of
default packages apply. This variable allows you to add more
packages.
@@ -1471,15 +1462,11 @@ cross-compiler that is used internally within BitBake only.
.. note::
- The extensible SDK does not use
- gcc-cross-canadian
+ The extensible SDK does not use ``gcc-cross-canadian``
since this SDK ships a copy of the OpenEmbedded build system and the
- sysroot within it contains
- gcc-cross
- .
+ sysroot within it contains ``gcc-cross``.
-The chain of events that occurs when the standard toolchain is bootstrapped:
-::
+The chain of events that occurs when the standard toolchain is bootstrapped::
binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime
@@ -1528,8 +1515,7 @@ might not be the same machine as the Build Host.
can take advantage of pre-built images that ship with the Yocto
Project and already contain cross-development toolchain installers.
-Here is the bootstrap process for the relocatable toolchain:
-::
+Here is the bootstrap process for the relocatable toolchain::
gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian
@@ -1583,8 +1569,8 @@ Shared State Cache
By design, the OpenEmbedded build system builds everything from scratch
unless :term:`BitBake` can determine
that parts do not need to be rebuilt. Fundamentally, building from
-scratch is attractive as it means all parts are built fresh and no
-possibility of stale data exists that can cause problems. When
+scratch is attractive as it means all parts are built fresh and there is
+no possibility of stale data that can cause problems. When
developers hit problems, they typically default back to building from
scratch so they have a know state from the start.
@@ -1623,9 +1609,9 @@ them if they are deemed to be valid.
- The build system does not maintain
:term:`PR` information as part of
- the shared state packages. Consequently, considerations exist that
+ the shared state packages. Consequently, there are considerations that
affect maintaining shared state feeds. For information on how the
- build system works with packages and can track incrementing ``PR``
+ build system works with packages and can track incrementing :term:`PR`
information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
section in the Yocto Project Development Tasks Manual.
@@ -1682,8 +1668,8 @@ objective of making native or cross packages relocatable.
build host. However, cross packages generate output for the target
architecture.
-The checksum therefore needs to exclude ``WORKDIR``. The simplistic
-approach for excluding the work directory is to set ``WORKDIR`` to some
+The checksum therefore needs to exclude :term:`WORKDIR`. The simplistic
+approach for excluding the work directory is to set :term:`WORKDIR` to some
fixed value and create the checksum for the "run" script.
Another problem results from the "run" scripts containing functions that
@@ -1693,7 +1679,7 @@ used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
-So far, solutions for shell scripts exist. What about Python tasks? The
+So far, there are solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
@@ -1701,10 +1687,9 @@ contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
-Like the ``WORKDIR`` case, situations exist where dependencies should be
+Like the :term:`WORKDIR` case, there can be situations where dependencies should be
ignored. For these situations, you can instruct the build process to
-ignore a dependency by using a line like the following:
-::
+ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
@@ -1714,13 +1699,12 @@ reference it.
Equally, there are cases where you need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
-following:
-::
+following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
-adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
+adds the :term:`MACHINE` variable as a dependency for :term:`PACKAGE_ARCHS`.
As an example, consider a case with in-line Python where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
@@ -1740,13 +1724,12 @@ to add is a policy decision. However, the effect is to generate a master
checksum that combines the basehash and the hashes of the task's
dependencies.
-At the code level, a variety of ways exist by which both the basehash
+At the code level, there are multiple ways by which both the basehash
and the dependent task hashes can be influenced. Within the BitBake
configuration file, you can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes (i.e. variables never
-included in any checksum):
-::
+included in any checksum)::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\
@@ -1771,12 +1754,11 @@ desired. This file defines the two basic signature generators
"OEBasicHash". By default, a dummy "noop" signature handler is enabled
in BitBake. This means that behavior is unchanged from previous
versions. OE-Core uses the "OEBasicHash" signature handler by default
-through this setting in the ``bitbake.conf`` file:
-::
+through this setting in the ``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
-The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same
+The "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is the same
as the "OEBasic" version but adds the task hash to the :ref:`stamp
files <overview-manual/concepts:stamp files and the rerunning of tasks>`. This
results in any metadata change that changes the task hash, automatically causing
@@ -1797,7 +1779,7 @@ the build. This information includes:
- ``BBHASHDEPS_``\ filename\ ``:``\ taskname: The task dependencies for
each task.
-- ``BB_TASKHASH``: The hash of the currently running task.
+- :term:`BB_TASKHASH`: The hash of the currently running task.
Shared State
------------
@@ -1826,8 +1808,7 @@ The Yocto Project team has tried to keep the details of the
implementation hidden in ``sstate`` class. From a user's perspective,
adding shared state wrapping to a task is as simple as this
:ref:`ref-tasks-deploy` example taken
-from the :ref:`deploy <ref-classes-deploy>` class:
-::
+from the :ref:`deploy <ref-classes-deploy>` class::
DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
SSTATETASKS += "do_deploy"
@@ -1867,12 +1848,11 @@ The following list explains the previous example:
``do_deploy`` is in the shared state cache and its signature indicates
that the cached output is still valid (i.e. if no relevant task inputs
have changed), then the contents of the shared state cache copies
- directly to ${``DEPLOY_DIR_IMAGE``} by the ``do_deploy_setscene`` task
+ directly to ${:term:`DEPLOY_DIR_IMAGE`} by the ``do_deploy_setscene`` task
instead, skipping the ``do_deploy`` task.
- The following task definition is glue logic needed to make the
- previous settings effective:
- ::
+ previous settings effective::
python do_deploy_setscene () {
sstate_setscene(d)
@@ -1898,8 +1878,7 @@ The following list explains the previous example:
In cases where ``sstate-inputdirs`` and ``sstate-outputdirs`` would be
the same, you can use ``sstate-plaindirs``. For example, to preserve the
${:term:`PKGD`} and ${:term:`PKGDEST`} output from the ``do_package``
- task, use the following:
- ::
+ task, use the following::
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
@@ -1915,26 +1894,23 @@ The following list explains the previous example:
- ``sstate-inputdirs`` and ``sstate-outputdirs`` can also be used with
multiple directories. For example, the following declares
- ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories,
- which populates the shared state cache, and ``PKGDATA_DIR`` and
- ``SHLIBSDIR`` as the corresponding shared state output directories:
- ::
+ :term:`PKGDESTWORK` and ``SHLIBWORK`` as shared state input directories,
+ which populates the shared state cache, and :term:`PKGDATA_DIR` and
+ ``SHLIBSDIR`` as the corresponding shared state output directories::
do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
- These methods also include the ability to take a lockfile when
manipulating shared state directory structures, for cases where file
- additions or removals are sensitive:
- ::
+ additions or removals are sensitive::
do_package[sstate-lockfile] = "${PACKAGELOCK}"
Behind the scenes, the shared state code works by looking in
:term:`SSTATE_DIR` and
:term:`SSTATE_MIRRORS` for
-shared state files. Here is an example:
-::
+shared state files. Here is an example::
SSTATE_MIRRORS ?= "\
file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
@@ -1946,7 +1922,7 @@ shared state files. Here is an example:
subdirectories, where the subdirectory names are based on the first two
characters of the hash.
If the shared state directory structure for a mirror has the same structure
- as ``SSTATE_DIR``, you must specify "PATH" as part of the URI to enable the build
+ as :term:`SSTATE_DIR`, you must specify "PATH" as part of the URI to enable the build
system to map to the appropriate subdirectory.
The shared state package validity can be detected just by looking at the
@@ -1977,8 +1953,8 @@ Automatically Added Runtime Dependencies
The OpenEmbedded build system automatically adds common types of runtime
dependencies between packages, which means that you do not need to
explicitly declare the packages using
-:term:`RDEPENDS`. Three automatic
-mechanisms exist (``shlibdeps``, ``pcdeps``, and ``depchains``) that
+:term:`RDEPENDS`. There are three automatic
+mechanisms (``shlibdeps``, ``pcdeps``, and ``depchains``) that
handle shared libraries, package configuration (pkg-config) modules, and
``-dev`` and ``-dbg`` packages, respectively. For other types of runtime
dependencies, you must manually declare the dependencies.
@@ -1997,7 +1973,7 @@ dependencies, you must manually declare the dependencies.
Simultaneously, all executables and shared libraries installed by the
recipe are inspected to see what shared libraries they link against.
- For each shared library dependency that is found, ``PKGDATA_DIR`` is
+ For each shared library dependency that is found, :term:`PKGDATA_DIR` is
queried to see if some package (likely from a different recipe)
contains the shared library. If such a package is found, a runtime
dependency is added from the package that depends on the shared
@@ -2006,7 +1982,7 @@ dependencies, you must manually declare the dependencies.
The automatically added runtime dependency also includes a version
restriction. This version restriction specifies that at least the
current version of the package that provides the shared library must
- be used, as if "package (>= version)" had been added to ``RDEPENDS``.
+ be used, as if "package (>= version)" had been added to :term:`RDEPENDS`.
This forces an upgrade of the package containing the shared library
when installing the package that depends on the library, if needed.
@@ -2020,14 +1996,14 @@ dependencies, you must manually declare the dependencies.
pkg-config modules (``*.pc`` files) installed by the recipe are
located. For each module, the package that contains the module is
registered as providing the module. The resulting module-to-package
- mapping is saved globally in ``PKGDATA_DIR`` by the
+ mapping is saved globally in :term:`PKGDATA_DIR` by the
``do_packagedata`` task.
Simultaneously, all pkg-config modules installed by the recipe are
inspected to see what other pkg-config modules they depend on. A
module is seen as depending on another module if it contains a
"Requires:" line that specifies the other module. For each module
- dependency, ``PKGDATA_DIR`` is queried to see if some package
+ dependency, :term:`PKGDATA_DIR` is queried to see if some package
contains the module. If such a package is found, a runtime dependency
is added from the package that depends on the module to the package
that contains the module.
@@ -2067,7 +2043,7 @@ recipe in :term:`DEPENDS` through use
of a ``[``\ :ref:`deptask <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:variable flags>`\ ``]``
declaration, which guarantees that the required
shared-library/module-to-package mapping information will be available
-when needed as long as ``DEPENDS`` has been correctly set.
+when needed as long as :term:`DEPENDS` has been correctly set.
Fakeroot and Pseudo
===================
@@ -2116,8 +2092,7 @@ accomplished using fakeroot.
under fakeroot. Otherwise, the task cannot run root-only operations,
and cannot see the fake file ownership and permissions set by the
other task. You need to also add a dependency on
- ``virtual/fakeroot-native:do_populate_sysroot``, giving the following:
- ::
+ ``virtual/fakeroot-native:do_populate_sysroot``, giving the following::
fakeroot do_mytask () {
...