summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual')
-rw-r--r--documentation/ref-manual/classes.rst590
-rw-r--r--documentation/ref-manual/devtool-reference.rst96
-rw-r--r--documentation/ref-manual/faq.rst41
-rw-r--r--documentation/ref-manual/features.rst37
-rw-r--r--documentation/ref-manual/images.rst25
-rw-r--r--documentation/ref-manual/index.rst1
-rw-r--r--documentation/ref-manual/qa-checks.rst18
-rw-r--r--documentation/ref-manual/release-process.rst25
-rw-r--r--documentation/ref-manual/resources.rst7
-rw-r--r--documentation/ref-manual/structure.rst46
-rw-r--r--documentation/ref-manual/svg/releases.svg1250
-rw-r--r--documentation/ref-manual/system-requirements.rst130
-rw-r--r--documentation/ref-manual/tasks.rst22
-rw-r--r--documentation/ref-manual/terms.rst14
-rw-r--r--documentation/ref-manual/variables.rst1746
-rw-r--r--documentation/ref-manual/yocto-project-supported-features.rst267
16 files changed, 3236 insertions, 1079 deletions
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index ab71cbe40c..4705ca3f4d 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -128,6 +128,43 @@ It's useful to have some idea of how the tasks defined by the
128- :ref:`ref-tasks-install` --- runs ``make install`` and 128- :ref:`ref-tasks-install` --- runs ``make install`` and
129 passes in ``${``\ :term:`D`\ ``}`` as ``DESTDIR``. 129 passes in ``${``\ :term:`D`\ ``}`` as ``DESTDIR``.
130 130
131.. _ref-classes-barebox:
132
133``barebox``
134===========
135
136The :ref:`ref-classes-barebox` class manages building the barebox bootloader.
137
138If a file named ``defconfig`` is included in the :term:`SRC_URI`, it will be
139copied to ``.config`` in the build directory and used as the barebox
140configuration.
141Instead of providing a ``defconfig`` file, you can set :term:`BAREBOX_CONFIG`
142to a defconfig provided by the barebox source tree.
143If neither ``defconfig`` nor :term:`BAREBOX_CONFIG` is specified, the class
144will raise an error.
145
146The :ref:`ref-classes-barebox` class supports config fragments and internally
147includes the :ref:`ref-classes-cml1` class to provide `Kconfig
148<https://docs.kernel.org/kbuild/kconfig-language.html>`__ support for
149barebox, enabling tasks such as :ref:`ref-tasks-menuconfig` and
150:ref:`ref-tasks-diffconfig`.
151
152The generated barebox binaries are deployed to
153:term:`DEPLOY_DIR_IMAGE` as well as installed to ``BAREBOX_INSTALL_PATH``
154(``/boot`` by default) making them part of the recipe’s base package.
155This setup supports both using the barebox binaries as independent artifacts
156and installing them into a rootfs.
157:term:`BAREBOX_BINARY` can be used to select a distinct binary to deploy and
158install.
159If ``barebox`` is set as the :term:`EFI_PROVIDER`, the class will leverage
160:oe_git:`conf/image-uefi.conf </openembedded-core/tree/meta/conf/image-uefi.conf>`
161to define the default installation paths and naming conventions.
162
163The compiled-in barebox environment can be extended by adding environment files
164to the ``BAREBOX_ENV_DIR``.
165The ``BAREBOX_FIRMWARE_DIR`` variable allows you to specify the firmware blob
166search directory, enabling loading of additional firmware like TF-A or OP-TEE.
167
131.. _ref-classes-base: 168.. _ref-classes-base:
132 169
133``base`` 170``base``
@@ -159,27 +196,38 @@ software that includes bash-completion data.
159``bin_package`` 196``bin_package``
160=============== 197===============
161 198
162The :ref:`ref-classes-bin-package` class is a helper class for recipes that extract the 199The :ref:`ref-classes-bin-package` class is a helper class for recipes, that
163contents of a binary package (e.g. an RPM) and install those contents 200disables the :ref:`ref-tasks-configure` and :ref:`ref-tasks-compile` tasks and
164rather than building the binary from source. The binary package is 201copies the content of the :term:`S` directory into the :term:`D` directory. This
165extracted and new packages in the configured output package format are 202is useful for installing binary packages (e.g. RPM packages) by passing the
166created. Extraction and installation of proprietary binaries is a good 203package in the :term:`SRC_URI` variable and inheriting this class.
167example use for this class.
168 204
169.. note:: 205For RPMs and other packages that do not contain a subdirectory, you should set
206the :term:`SRC_URI` option ``subdir`` to :term:`BP` so that the contents are
207extracted to the directory expected by the default value of :term:`S`. For
208example::
209
210 SRC_URI = "https://example.com/downloads/somepackage.rpm;subdir=${BP}"
211
212This class can also be used for tarballs. For example::
170 213
171 For RPMs and other packages that do not contain a subdirectory, you 214 SRC_URI = "file://somepackage.tar.xz;subdir=${BP}"
172 should specify an appropriate fetcher parameter to point to the
173 subdirectory. For example, if BitBake is using the Git fetcher (``git://``),
174 the "subpath" parameter limits the checkout to a specific subpath
175 of the tree. Here is an example where ``${BP}`` is used so that the files
176 are extracted into the subdirectory expected by the default value of
177 :term:`S`::
178 215
179 SRC_URI = "git://example.com/downloads/somepackage.rpm;branch=main;subpath=${BP}" 216The :ref:`ref-classes-bin-package` class will copy the extracted content of the
217tarball from :term:`S` to :term:`D`.
180 218
181 See the ":ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`" section in the BitBake User Manual for 219This class assumes that the content of the package as installed in :term:`S`
182 more information on supported BitBake Fetchers. 220mirrors the expected layout once installed on the target, which is generally the
221case for binary packages. For example, an RPM package for a library would
222usually contain the ``usr/lib`` directory, and should be extracted to
223``${S}/usr/lib/<library>.so.<version>`` to be installed in :term:`D` correctly.
224
225.. note::
226
227 The extraction of the package passed in :term:`SRC_URI` is not handled by the
228 :ref:`ref-classes-bin-package` class, but rather by the appropriate
229 :ref:`fetcher <bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
230 depending on the file extension.
183 231
184.. _ref-classes-binconfig: 232.. _ref-classes-binconfig:
185 233
@@ -552,7 +600,7 @@ You can also look for vulnerabilities in specific packages by passing
552``-c cve_check`` to BitBake. 600``-c cve_check`` to BitBake.
553 601
554After building the software with Bitbake, CVE check output reports are available in ``tmp/deploy/cve`` 602After building the software with Bitbake, CVE check output reports are available in ``tmp/deploy/cve``
555and image specific summaries in ``tmp/deploy/images/*.cve`` or ``tmp/deploy/images/*.json`` files. 603and image specific summaries in ``tmp/deploy/images/*.json`` files.
556 604
557When building, the CVE checker will emit build time warnings for any detected 605When building, the CVE checker will emit build time warnings for any detected
558issues which are in the state ``Unpatched``, meaning that CVE issue seems to affect the software component 606issues which are in the state ``Unpatched``, meaning that CVE issue seems to affect the software component
@@ -564,6 +612,13 @@ The ``Patched`` state of a CVE issue is detected from patch files with the forma
564``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using 612``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using
565CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file. 613CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file.
566 614
615.. note::
616
617 Commit message metadata (``CVE: CVE-ID`` in a patch header) will not be scanned
618 in any patches that are remote, i.e. that are anything other than local files
619 referenced via ``file://`` in SRC_URI. However, a ``CVE-ID`` in a remote patch
620 file name itself will be registered.
621
567If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status 622If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status
568mapped to ``Ignored``, then the CVE state is reported as ``Ignored``:: 623mapped to ``Ignored``, then the CVE state is reported as ``Ignored``::
569 624
@@ -596,6 +651,15 @@ You will find some more details in the
596":ref:`dev-manual/vulnerabilities:checking for vulnerabilities`" 651":ref:`dev-manual/vulnerabilities:checking for vulnerabilities`"
597section in the Development Tasks Manual. 652section in the Development Tasks Manual.
598 653
654.. _ref-classes-cython:
655
656``cython``
657==========
658
659The :ref:`ref-classes-cython` class can be used by Python recipes that require
660`Cython <https://cython.org/>`__ as part of their build dependencies
661(:term:`DEPENDS`).
662
599.. _ref-classes-debian: 663.. _ref-classes-debian:
600 664
601``debian`` 665``debian``
@@ -665,7 +729,7 @@ The padding size can be modified by setting :term:`DT_PADDING_SIZE`
665to the desired size, in bytes. 729to the desired size, in bytes.
666 730
667See :oe_git:`devicetree.bbclass sources 731See :oe_git:`devicetree.bbclass sources
668</openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>` 732</openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>`
669for further variables controlling this class. 733for further variables controlling this class.
670 734
671Here is an excerpt of an example ``recipes-kernel/linux/devicetree-acme.bb`` 735Here is an excerpt of an example ``recipes-kernel/linux/devicetree-acme.bb``
@@ -939,6 +1003,20 @@ The :ref:`ref-classes-go-mod` class allows to use Go modules, and inherits the
939 1003
940See the associated :term:`GO_WORKDIR` variable. 1004See the associated :term:`GO_WORKDIR` variable.
941 1005
1006.. _ref-classes-go-vendor:
1007
1008``go-vendor``
1009=============
1010
1011The :ref:`ref-classes-go-vendor` class implements support for offline builds,
1012also known as Go vendoring. In such a scenario, the module dependencias are
1013downloaded during the :ref:`ref-tasks-fetch` task rather than when modules are
1014imported, thus being coherent with Yocto's concept of fetching every source
1015beforehand.
1016
1017The dependencies are unpacked into the modules' ``vendor`` directory, where a
1018manifest file is generated.
1019
942.. _ref-classes-gobject-introspection: 1020.. _ref-classes-gobject-introspection:
943 1021
944``gobject-introspection`` 1022``gobject-introspection``
@@ -970,6 +1048,7 @@ This class supports several variables:
970 1048
971- :term:`INITRD`: Indicates list of filesystem images to 1049- :term:`INITRD`: Indicates list of filesystem images to
972 concatenate and use as an initial RAM disk (initrd) (optional). 1050 concatenate and use as an initial RAM disk (initrd) (optional).
1051 Can be specified for each ``LABEL``.
973 1052
974- :term:`ROOTFS`: Indicates a filesystem image to include 1053- :term:`ROOTFS`: Indicates a filesystem image to include
975 as the root filesystem (optional). 1054 as the root filesystem (optional).
@@ -983,6 +1062,9 @@ This class supports several variables:
983- :term:`APPEND`: An override list of append strings for 1062- :term:`APPEND`: An override list of append strings for
984 each ``LABEL``. 1063 each ``LABEL``.
985 1064
1065- :term:`GRUB_TITLE`: A custom title for each ``LABEL``. If a label does not
1066 have a custom title, the label is used as title for the GRUB menu entry.
1067
986- :term:`GRUB_OPTS`: Additional options to add to the 1068- :term:`GRUB_OPTS`: Additional options to add to the
987 configuration (optional). Options are delimited using semi-colon 1069 configuration (optional). Options are delimited using semi-colon
988 characters (``;``). 1070 characters (``;``).
@@ -990,6 +1072,18 @@ This class supports several variables:
990- :term:`GRUB_TIMEOUT`: Timeout before executing 1072- :term:`GRUB_TIMEOUT`: Timeout before executing
991 the default ``LABEL`` (optional). 1073 the default ``LABEL`` (optional).
992 1074
1075Each ``LABEL`` defined in the :term:`LABELS` variable creates a GRUB boot
1076entry, and some variables can be defined individually per ``LABEL``. The label
1077specific override names are defined as ``grub_LABEL``.
1078
1079For example, for a label ``factory``, the override name would be
1080``grub_factory``. A custom GRUB menu entry titled "Factory Install" with the
1081additional parameter ``factory=yes`` can be achieved as follows::
1082
1083 LABELS:append = " factory"
1084 APPEND:grub_factory = "factory=yes"
1085 GRUB_TITLE:grub_factory = "Factory Install"
1086
993.. _ref-classes-gsettings: 1087.. _ref-classes-gsettings:
994 1088
995``gsettings`` 1089``gsettings``
@@ -1440,12 +1534,11 @@ The tests you can list with the :term:`WARN_QA` and
1440- ``patch-fuzz:`` Checks for fuzz in patch files that may allow 1534- ``patch-fuzz:`` Checks for fuzz in patch files that may allow
1441 them to apply incorrectly if the underlying code changes. 1535 them to apply incorrectly if the underlying code changes.
1442 1536
1443- ``patch-status-core:`` Checks that the Upstream-Status is specified 1537- ``patch-status:`` Checks that the ``Upstream-Status`` is specified and valid
1444 and valid in the headers of patches for recipes in the OE-Core layer. 1538 in the headers of patches for recipes.
1445 1539
1446- ``patch-status-noncore:`` Checks that the Upstream-Status is specified 1540- ``pep517-backend:`` checks that a recipe inheriting
1447 and valid in the headers of patches for recipes in layers other than 1541 :ref:`ref-classes-setuptools3` has a PEP517-compliant backend.
1448 OE-Core.
1449 1542
1450- ``perllocalpod:`` Checks for ``perllocal.pod`` being erroneously 1543- ``perllocalpod:`` Checks for ``perllocal.pod`` being erroneously
1451 installed and packaged by a recipe. 1544 installed and packaged by a recipe.
@@ -1498,6 +1591,10 @@ The tests you can list with the :term:`WARN_QA` and
1498 For example, assignments such as ``FILES:${PN} = "xyz"`` effectively 1591 For example, assignments such as ``FILES:${PN} = "xyz"`` effectively
1499 turn into ``FILES = "xyz"``. 1592 turn into ``FILES = "xyz"``.
1500 1593
1594- ``recipe-naming:`` Checks that the recipe name and recipe class match, so
1595 that ``*-native`` recipes inherit :ref:`ref-classes-native` and
1596 ``nativesdk-*`` recipes inherit :ref:`ref-classes-nativesdk`.
1597
1501- ``rpaths:`` Checks for rpaths in the binaries that contain build 1598- ``rpaths:`` Checks for rpaths in the binaries that contain build
1502 system paths such as :term:`TMPDIR`. If this test fails, bad ``-rpath`` 1599 system paths such as :term:`TMPDIR`. If this test fails, bad ``-rpath``
1503 options are being passed to the linker commands and your binaries 1600 options are being passed to the linker commands and your binaries
@@ -1568,6 +1665,12 @@ The tests you can list with the :term:`WARN_QA` and
1568 This is only relevant when you are using runtime package management 1665 This is only relevant when you are using runtime package management
1569 on your target system. 1666 on your target system.
1570 1667
1668- ``virtual-slash:`` Checks to see if ``virtual/`` is being used in
1669 :term:`RDEPENDS` or :term:`RPROVIDES`, which is not good practice ---
1670 ``virtual/`` is a convention intended for use in the build context
1671 (i.e. :term:`PROVIDES` and :term:`DEPENDS`) rather than the runtime
1672 context.
1673
1571- ``xorg-driver-abi:`` Checks that all packages containing Xorg 1674- ``xorg-driver-abi:`` Checks that all packages containing Xorg
1572 drivers have ABI dependencies. The ``xserver-xorg`` recipe provides 1675 drivers have ABI dependencies. The ``xserver-xorg`` recipe provides
1573 driver ABI names. All drivers should depend on the ABI versions that 1676 driver ABI names. All drivers should depend on the ABI versions that
@@ -1633,77 +1736,158 @@ Its behavior is mainly controlled by the following variables:
1633- :term:`KERNEL_DTC_FLAGS`: flags for ``dtc``, the Device Tree Compiler 1736- :term:`KERNEL_DTC_FLAGS`: flags for ``dtc``, the Device Tree Compiler
1634- :term:`KERNEL_PACKAGE_NAME`: base name of the kernel packages 1737- :term:`KERNEL_PACKAGE_NAME`: base name of the kernel packages
1635 1738
1636.. _ref-classes-kernel-fitimage: 1739.. _ref-classes-kernel-fit-image:
1637 1740
1638``kernel-fitimage`` 1741``kernel-fit-image``
1639=================== 1742====================
1640 1743
1641The :ref:`ref-classes-kernel-fitimage` class provides support to pack a kernel image, 1744The :ref:`ref-classes-kernel-fit-image` class provides support to pack a kernel image,
1642device trees, a U-boot script, an :term:`Initramfs` bundle and a RAM disk 1745device trees, a U-boot script, and an :term:`Initramfs` into a single FIT image.
1643into a single FIT image. In theory, a FIT image can support any number 1746In theory, a FIT image can support any number of kernels, U-boot scripts,
1644of kernels, U-boot scripts, :term:`Initramfs` bundles, RAM disks and device-trees. 1747:term:`Initramfs`, and device trees.
1645However, :ref:`ref-classes-kernel-fitimage` currently only supports 1748However, :ref:`ref-classes-kernel-fit-image` currently only supports
1646limited usecases: just one kernel image, an optional U-boot script, 1749limited usecases: just one kernel image, an optional U-boot script,
1647an optional :term:`Initramfs` bundle, an optional RAM disk, and any number of 1750an optional :term:`Initramfs`, and any number of device trees.
1648device trees. 1751
1649 1752The FIT image is created by a recipe which inherits the
1650To create a FIT image, it is required that :term:`KERNEL_CLASSES` 1753:ref:`ref-classes-kernel-fit-image` class.
1651is set to include ":ref:`ref-classes-kernel-fitimage`" and one of :term:`KERNEL_IMAGETYPE`, 1754One such example is the ``linux-yocto-fitimage`` recipe which creates a FIT
1652:term:`KERNEL_ALT_IMAGETYPE` or :term:`KERNEL_IMAGETYPES` to include "fitImage". 1755image for the Linux Yocto kernel.
1653 1756Additionally, it is required that :term:`KERNEL_CLASSES` is set to include
1654The options for the device tree compiler passed to ``mkimage -D`` 1757:ref:`ref-classes-kernel-fit-extra-artifacts`.
1655when creating the FIT image are specified using the 1758The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required kernel
1656:term:`UBOOT_MKIMAGE_DTCOPTS` variable. 1759artifacts to the :term:`DEPLOY_DIR_IMAGE` which are used by the
1657 1760:ref:`ref-classes-kernel-fit-image` class to create the FIT image.
1658Only a single kernel can be added to the FIT image created by 1761
1659:ref:`ref-classes-kernel-fitimage` and the kernel image in FIT is mandatory. The 1762The simplest example for building a FIT image is to add::
1660address where the kernel image is to be loaded by U-Boot is 1763
1661specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by 1764 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1662:term:`UBOOT_ENTRYPOINT`. Setting :term:`FIT_ADDRESS_CELLS` to "2" 1765
1663is necessary if such addresses are 64 bit ones. 1766to the machine :term:`configuration file` and to execute::
1664 1767
1665Multiple device trees can be added to the FIT image created by 1768 bitbake linux-yocto-fitimage
1666:ref:`ref-classes-kernel-fitimage` and the device tree is optional. 1769
1667The address where the device tree is to be loaded by U-Boot is 1770This results in a ``fitImage`` file deployed to the :term:`DEPLOY_DIR_IMAGE`
1668specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays 1771directory and a ``linux-yocto-fitimage`` package which can be installed.
1669and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries. 1772
1670 1773The same approach works for all variants of the ``linux-yocto`` kernel.
1671Only a single RAM disk can be added to the FIT image created by 1774For example, if the ``linux-yocto-rt`` kernel should be used, add the following
1672:ref:`ref-classes-kernel-fitimage` and the RAM disk in FIT is optional. 1775lines to the machine configuration file::
1673The address where the RAM disk image is to be loaded by U-Boot 1776
1674is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by 1777 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1675:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to the FIT image when 1778 PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
1676:term:`INITRAMFS_IMAGE` is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` 1779
1677is not set to 1. 1780The FIT image, this time including the RT kernel, is built again by calling::
1678 1781
1679Only a single :term:`Initramfs` bundle can be added to the FIT image created by 1782 bitbake linux-yocto-fitimage
1680:ref:`ref-classes-kernel-fitimage` and the :term:`Initramfs` bundle in FIT is optional. 1783
1681In case of :term:`Initramfs`, the kernel is configured to be bundled with the root filesystem 1784For other kernels provided by other layers, the same approach would work.
1682in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin). 1785However, it is usually more intuitive to add a custom FIT image recipe next to
1683When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem. 1786the custom kernel recipe.
1684The :term:`Initramfs` bundle can be enabled when :term:`INITRAMFS_IMAGE` 1787For example, if a layer provides a ``linux-vanilla`` recipe, a
1685is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1. 1788``linux-vanilla-fitimage`` recipe may be added as well.
1686The address where the :term:`Initramfs` bundle is to be loaded by U-boot is specified 1789The ``linux-vanilla-fitimage`` recipe can be created as a customized copy of
1687by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. 1790the ``linux-yocto-fitimage`` recipe.
1688 1791
1689Only a single U-boot boot script can be added to the FIT image created by 1792Usually the kernel is built as a dependency of an image.
1690:ref:`ref-classes-kernel-fitimage` and the boot script is optional. 1793If the FIT image should be used as a replacement for the kernel image which
1691The boot script is specified in the ITS file as a text file containing 1794is installed in the root filesystem, then the following variables can be set
1692U-boot commands. When using a boot script the user should configure the 1795e.g. in the machine configuration file::
1693U-boot :ref:`ref-tasks-install` task to copy the script to sysroot. 1796
1694So the script can be included in the FIT image by the :ref:`ref-classes-kernel-fitimage` 1797 # Create and deploy the vmlinux artifact which gets included into the FIT image
1695class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to 1798 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1696load the boot script from the FIT image and execute it. 1799
1697 1800 # Do not install the kernel image package
1698The FIT image generated by the :ref:`ref-classes-kernel-fitimage` class is signed when the 1801 RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
1699variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`, 1802 # Install the FIT image package
1700:term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set 1803 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "linux-yocto-fitimage"
1701appropriately. The default values used for :term:`FIT_HASH_ALG` and 1804
1702:term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fitimage` are "sha256" and 1805 # Configure the image.bbclass to depend on the FIT image instead of only
1703"rsa2048" respectively. The keys for signing the FIT image can be generated using 1806 # the kernel to ensure the FIT image is built and deployed with the image
1704the :ref:`ref-classes-kernel-fitimage` class when both :term:`FIT_GENERATE_KEYS` and 1807 KERNEL_DEPLOY_DEPEND = "linux-yocto-fitimage:do_deploy"
1705:term:`UBOOT_SIGN_ENABLE` are set to "1". 1808
1706 1809The :ref:`ref-classes-kernel-fit-image` class processes several variables that
1810allow configuration:
1811
1812- The options for the device tree compiler passed to ``mkimage -D``
1813 when creating the FIT image are specified using the
1814 :term:`UBOOT_MKIMAGE_DTCOPTS` variable.
1815
1816- Only a single kernel can be added to the FIT image created by
1817 :ref:`ref-classes-kernel-fit-image` and it is a mandatory component of the
1818 FIT image.
1819 The address where the kernel image is to be loaded by U-Boot is
1820 specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
1821 :term:`UBOOT_ENTRYPOINT`. Setting :term:`FIT_ADDRESS_CELLS` to "2"
1822 is necessary if such addresses are 64 bit ones.
1823
1824- Multiple device trees can be added to the FIT image created by
1825 :ref:`ref-classes-kernel-fit-image` and the device tree is optional.
1826 The address where the device tree is to be loaded by U-Boot is
1827 specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
1828 and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
1829
1830- Only a single :term:`Initramfs` can be added to the FIT image created by
1831 :ref:`ref-classes-kernel-fit-image`. The :term:`Initramfs` in FIT is optional.
1832 The address where the RAM disk image is to be loaded by U-Boot
1833 is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
1834 :term:`UBOOT_RD_ENTRYPOINT`. The :term:`Initramfs` is added to the FIT image
1835 when :term:`INITRAMFS_IMAGE` is specified.
1836
1837- It's recommended to add the :term:`Initramfs` and the kernel image as
1838 independent image nodes to the FIT image.
1839 Bundling a RAM disk image with the kernel image and including the bundle
1840 (:term:`INITRAMFS_IMAGE_BUNDLE` set to "1") in the FIT image is possible.
1841 However, this approach has the disadvantage that any change to the RAM
1842 disk image necessitates rebuilding the kernel image.
1843 This process requires the full kernel build directory, which is kind of
1844 incompatible with the :term:`SSTATE_DIR` and, consequently, with SDKs.
1845
1846- Only a single U-Boot boot script can be added to the FIT image created by
1847 :ref:`ref-classes-kernel-fit-image`. The boot script is optional.
1848 The boot script is specified in the ITS file as a text file containing
1849 U-Boot commands. When using a boot script the recipe which inherits the
1850 :ref:`ref-classes-kernel-fit-image` class should add the script to
1851 :term:`SRC_URI` and set the :term:`FIT_UBOOT_ENV` variable to the name of the
1852 file like the following::
1853
1854 FIT_UBOOT_ENV = "boot.txt"
1855 SRC_URI += "file://${FIT_UBOOT_ENV}"
1856
1857 At run-time, U-boot's boot command can be configured to load the boot script
1858 from the FIT image and source it.
1859
1860- The FIT image generated by the :ref:`ref-classes-kernel-fit-image` class is signed when the
1861 variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
1862 :term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set
1863 appropriately. The default values used for :term:`FIT_HASH_ALG` and
1864 :term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fit-image` are "sha256" and
1865 "rsa2048" respectively. The keys for signing the FIT image can be generated using
1866 the :ref:`ref-classes-kernel-fit-image` class when both :term:`FIT_GENERATE_KEYS` and
1867 :term:`UBOOT_SIGN_ENABLE` are set to "1".
1868
1869.. _ref-classes-kernel-fit-extra-artifacts:
1870
1871``kernel-fit-extra-artifacts``
1872==============================
1873
1874The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required
1875kernel artifacts to the :term:`DEPLOY_DIR_IMAGE` directory.
1876These artifacts are used by the :ref:`ref-classes-kernel-fit-image` class to
1877create a FIT image that can include the kernel, device trees, an optional
1878U-Boot script, and an optional Initramfs.
1879
1880This class is typically included by adding it to the :term:`KERNEL_CLASSES`
1881variable in your kernel recipe or machine configuration when building FIT images.
1882It ensures that all necessary files are available for packaging into the FIT image,
1883such as the kernel binary, device tree blobs (DTBs), and other related files.
1884
1885For example, to enable this class, set::
1886
1887 KERNEL_CLASSES += "kernel-fit-extra-artifacts"
1888
1889This is required when using the :ref:`ref-classes-kernel-fit-image` class to
1890generate FIT images for your kernel.
1707 1891
1708.. _ref-classes-kernel-grub: 1892.. _ref-classes-kernel-grub:
1709 1893
@@ -1840,14 +2024,6 @@ each layer before starting every build. The :ref:`ref-classes-metadata_scm`
1840class is enabled by default because it is inherited by the 2024class is enabled by default because it is inherited by the
1841:ref:`ref-classes-base` class. 2025:ref:`ref-classes-base` class.
1842 2026
1843.. _ref-classes-migrate_localcount:
1844
1845``migrate_localcount``
1846======================
1847
1848The :ref:`ref-classes-migrate_localcount` class verifies a recipe's localcount data and
1849increments it appropriately.
1850
1851.. _ref-classes-mime: 2027.. _ref-classes-mime:
1852 2028
1853``mime`` 2029``mime``
@@ -1959,7 +2135,8 @@ a couple different ways:
1959 Not using this naming convention can lead to subtle problems 2135 Not using this naming convention can lead to subtle problems
1960 caused by existing code that depends on that naming convention. 2136 caused by existing code that depends on that naming convention.
1961 2137
1962- Create or modify a target recipe that contains the following:: 2138- Or, create a :ref:`ref-classes-native` variant of any target recipe (e.g.
2139 ``myrecipe.bb``) by adding the following to the recipe::
1963 2140
1964 BBCLASSEXTEND = "native" 2141 BBCLASSEXTEND = "native"
1965 2142
@@ -1990,24 +2167,25 @@ couple different ways:
1990 inherit statement in the recipe after all other inherit statements so 2167 inherit statement in the recipe after all other inherit statements so
1991 that the :ref:`ref-classes-nativesdk` class is inherited last. 2168 that the :ref:`ref-classes-nativesdk` class is inherited last.
1992 2169
1993- Create a :ref:`ref-classes-nativesdk` variant of any recipe by adding the following:: 2170 .. note::
1994 2171
1995 BBCLASSEXTEND = "nativesdk" 2172 When creating a recipe, you must follow this naming convention::
1996 2173
1997 Inside the 2174 nativesdk-myrecipe.bb
1998 recipe, use ``:class-nativesdk`` and ``:class-target`` overrides to
1999 specify any functionality specific to the respective SDK machine or
2000 target case.
2001 2175
2002.. note::
2003 2176
2004 When creating a recipe, you must follow this naming convention:: 2177 Not doing so can lead to subtle problems because there is code that
2178 depends on the naming convention.
2005 2179
2006 nativesdk-myrecipe.bb 2180- Or, create a :ref:`ref-classes-nativesdk` variant of any target recipe (e.g.
2181 ``myrecipe.bb``) by adding the following to the recipe::
2007 2182
2183 BBCLASSEXTEND = "nativesdk"
2008 2184
2009 Not doing so can lead to subtle problems because there is code that 2185 Inside the
2010 depends on the naming convention. 2186 recipe, use ``:class-nativesdk`` and ``:class-target`` overrides to
2187 specify any functionality specific to the respective SDK machine or
2188 target case.
2011 2189
2012Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both 2190Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both
2013methods. The advantage of the second method is that you do not need to 2191methods. The advantage of the second method is that you do not need to
@@ -2022,6 +2200,14 @@ and the target. All common parts of the recipe are automatically shared.
2022Disables packaging tasks for those recipes and classes where packaging 2200Disables packaging tasks for those recipes and classes where packaging
2023is not needed. 2201is not needed.
2024 2202
2203.. _ref-classes-nospdx:
2204
2205``nospdx``
2206==========
2207
2208The :ref:`ref-classes-nospdx` allows a recipe to opt out of SPDX
2209generation provided by :ref:`ref-classes-create-spdx`.
2210
2025.. _ref-classes-npm: 2211.. _ref-classes-npm:
2026 2212
2027``npm`` 2213``npm``
@@ -2360,6 +2546,24 @@ Python modules built with ``flit_core.buildapi`` are pure Python (no
2360 2546
2361Internally this uses the :ref:`ref-classes-python_pep517` class. 2547Internally this uses the :ref:`ref-classes-python_pep517` class.
2362 2548
2549.. _ref-classes-python_maturin:
2550
2551``python_maturin``
2552==================
2553
2554The :ref:`ref-classes-python_maturin` class provides support for python-maturin, a replacement
2555for setuptools_rust and another "backend" for building Python Wheels.
2556
2557.. _ref-classes-python_mesonpy:
2558
2559``python_mesonpy``
2560==================
2561
2562The :ref:`ref-classes-python_mesonpy` class enables building Python modules which use the
2563meson-python build system.
2564
2565Internally this uses the :ref:`ref-classes-python_pep517` class.
2566
2363.. _ref-classes-python_pep517: 2567.. _ref-classes-python_pep517:
2364 2568
2365``python_pep517`` 2569``python_pep517``
@@ -2563,7 +2767,7 @@ runtime tests for recipes that build software that provides these tests.
2563This class is intended to be inherited by individual recipes. However, 2767This class is intended to be inherited by individual recipes. However,
2564the class' functionality is largely disabled unless "ptest" appears in 2768the class' functionality is largely disabled unless "ptest" appears in
2565:term:`DISTRO_FEATURES`. See the 2769:term:`DISTRO_FEATURES`. See the
2566":ref:`dev-manual/packages:testing packages with ptest`" 2770":ref:`test-manual/ptest:testing packages with ptest`"
2567section in the Yocto Project Development Tasks Manual for more information 2771section in the Yocto Project Development Tasks Manual for more information
2568on ptest. 2772on ptest.
2569 2773
@@ -2587,9 +2791,23 @@ Enables package tests (ptests) specifically for GNOME packages, which
2587have tests intended to be executed with ``gnome-desktop-testing``. 2791have tests intended to be executed with ``gnome-desktop-testing``.
2588 2792
2589For information on setting up and running ptests, see the 2793For information on setting up and running ptests, see the
2590":ref:`dev-manual/packages:testing packages with ptest`" 2794":ref:`test-manual/ptest:testing packages with ptest`"
2591section in the Yocto Project Development Tasks Manual. 2795section in the Yocto Project Development Tasks Manual.
2592 2796
2797.. _ref-classes-ptest-python-pytest:
2798
2799``ptest-python-pytest``
2800=======================
2801
2802The :ref:`ref-classes-ptest-python-pytest` class can be inherited in Python-based
2803recipes to automatically configure the :ref:`ref-classes-ptest` class for Python
2804packages leveraging the `pytest <https://docs.pytest.org>`__ unit test framework.
2805
2806Within the recipe, the :term:`PTEST_PYTEST_DIR` variable specifies the path to
2807the directory containing the tests that will be installed in :term:`D` by the
2808:ref:`ref-tasks-install_ptest_base` task, as well as a specific ``run-ptest``
2809script for this task.
2810
2593.. _ref-classes-python3-dir: 2811.. _ref-classes-python3-dir:
2594 2812
2595``python3-dir`` 2813``python3-dir``
@@ -2683,6 +2901,23 @@ commit, and log. From the information, report files using a JSON format
2683are created and stored in 2901are created and stored in
2684``${``\ :term:`LOG_DIR`\ ``}/error-report``. 2902``${``\ :term:`LOG_DIR`\ ``}/error-report``.
2685 2903
2904.. _ref-classes-retain:
2905
2906``retain``
2907==========
2908
2909The :ref:`ref-classes-retain` class can be used to create a tarball of the work
2910directory for a recipe when one of its tasks fails, or any other nominated
2911directories. It is useful in cases where the environment in which builds are run
2912is ephemeral or otherwise inaccessible for examination during debugging.
2913
2914To enable, add the following to your configuration::
2915
2916 INHERIT += "retain"
2917
2918The class can be disabled for specific recipes using the :term:`RETAIN_ENABLED`
2919variable.
2920
2686.. _ref-classes-rm-work: 2921.. _ref-classes-rm-work:
2687 2922
2688``rm_work`` 2923``rm_work``
@@ -2870,15 +3105,6 @@ in the :ref:`ref-classes-setuptools3` class and inherit this class instead.
2870 3105
2871The :ref:`ref-classes-sign_rpm` class supports generating signed RPM packages. 3106The :ref:`ref-classes-sign_rpm` class supports generating signed RPM packages.
2872 3107
2873.. _ref-classes-siteconfig:
2874
2875``siteconfig``
2876==============
2877
2878The :ref:`ref-classes-siteconfig` class provides functionality for handling site
2879configuration. The class is used by the :ref:`ref-classes-autotools` class to
2880accelerate the :ref:`ref-tasks-configure` task.
2881
2882.. _ref-classes-siteinfo: 3108.. _ref-classes-siteinfo:
2883 3109
2884``siteinfo`` 3110``siteinfo``
@@ -3160,8 +3386,8 @@ after it is built, you can set :term:`TESTIMAGE_AUTO`::
3160 TESTIMAGE_AUTO = "1" 3386 TESTIMAGE_AUTO = "1"
3161 3387
3162For information on how to enable, run, and create new tests, see the 3388For information on how to enable, run, and create new tests, see the
3163":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 3389":ref:`test-manual/runtime-testing:performing automated runtime testing`"
3164section in the Yocto Project Development Tasks Manual. 3390section in the Yocto Project Test Environment Manual.
3165 3391
3166.. _ref-classes-testsdk: 3392.. _ref-classes-testsdk:
3167 3393
@@ -3270,21 +3496,86 @@ The variables used by this class are:
3270- :term:`UBOOT_FIT_KEY_REQ_ARGS`: ``openssl req`` arguments. 3496- :term:`UBOOT_FIT_KEY_REQ_ARGS`: ``openssl req`` arguments.
3271- :term:`UBOOT_FIT_SIGN_ALG`: signature algorithm for the FIT image. 3497- :term:`UBOOT_FIT_SIGN_ALG`: signature algorithm for the FIT image.
3272- :term:`UBOOT_FIT_SIGN_NUMBITS`: size of the private key for FIT image 3498- :term:`UBOOT_FIT_SIGN_NUMBITS`: size of the private key for FIT image
3273 signing. 3499 signing.
3274- :term:`UBOOT_FIT_KEY_SIGN_PKCS`: algorithm for the public key certificate 3500- :term:`UBOOT_FIT_KEY_SIGN_PKCS`: algorithm for the public key certificate
3275 for FIT image signing. 3501 for FIT image signing.
3276- :term:`UBOOT_FITIMAGE_ENABLE`: enable the generation of a U-Boot FIT image. 3502- :term:`UBOOT_FITIMAGE_ENABLE`: enable the generation of a U-Boot FIT image.
3277- :term:`UBOOT_MKIMAGE_DTCOPTS`: DTC options for U-Boot ``mkimage`` when 3503- :term:`UBOOT_MKIMAGE_DTCOPTS`: DTC options for U-Boot ``mkimage`` when
3278 rebuilding the FIT image containing the kernel. 3504 rebuilding the FIT image containing the kernel.
3505- :term:`UBOOT_FIT_ARM_TRUSTED_FIRMWARE`: include the Trusted Firmware-A
3506 (TF-A) binary in the U-Boot FIT image.
3507- :term:`UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE`: specifies the path to the
3508 Trusted Firmware-A (TF-A) binary.
3509- :term:`UBOOT_FIT_TEE`: include the Trusted Execution Environment (TEE)
3510 binary in the U-Boot FIT image.
3511- :term:`UBOOT_FIT_TEE_IMAGE`: specifies the path to the Trusted Execution
3512 Environment (TEE) binary.
3513- :term:`UBOOT_FIT_USER_SETTINGS`: adds a user-specific snippet to the U-Boot
3514 Image Tree Source (ITS). Users can include their custom U-Boot Image Tree
3515 Source (ITS) snippet in this variable.
3516- :term:`UBOOT_FIT_CONF_FIRMWARE`: adds one image to the ``firmware`` property
3517 of the configuration node.
3518- :term:`UBOOT_FIT_CONF_USER_LOADABLES`: adds one or more user-defined images
3519 to the ``loadables`` property of the configuration node.
3279 3520
3280See U-Boot's documentation for details about `verified boot 3521See U-Boot's documentation for details about `verified boot
3281<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/verified-boot.txt>`__ 3522<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/verified-boot.txt>`__
3282and the `signature process 3523and the `signature process
3283<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/signature.txt>`__. 3524<https://source.denx.de/u-boot/u-boot/-/blob/master/doc/uImage.FIT/signature.txt>`__.
3284 3525
3285See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class 3526See also the description of :ref:`ref-classes-kernel-fit-image` class, which this class
3286imitates. 3527imitates.
3287 3528
3529.. _ref-classes-uki:
3530
3531``uki``
3532=======
3533
3534The :ref:`ref-classes-uki` class provides support for `Unified Kernel Image
3535(UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__
3536format. UKIs combine kernel, :term:`Initramfs`, signatures, metadata etc to a
3537single UEFI firmware compatible binary. The class is intended to be inherited
3538by rootfs image recipes. The build configuration should also use an
3539:term:`Initramfs`, ``systemd-boot`` as boot menu provider and have UEFI support
3540on target hardware. Using ``systemd`` as init is recommended. Image builds
3541should create an ESP partition for UEFI firmware and copy ``systemd-boot`` and
3542UKI files there. Sample configuration for Wic images is provided in
3543:oe_git:`scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in
3544</openembedded-core/tree/scripts/lib/wic/canned-wks/efi-uki-bootdisk.wks.in>`.
3545UKIs are generated using ``systemd`` reference implementation `ukify
3546<https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__.
3547This class uses a number of variables but tries to find sensible defaults for
3548them.
3549
3550The variables used by this class are:
3551
3552- :term:`EFI_ARCH`: architecture name within EFI standard, set in
3553 :oe_git:`meta/conf/image-uefi.conf
3554 </openembedded-core/tree/meta/conf/image-uefi.conf>`
3555- :term:`IMAGE_EFI_BOOT_FILES`: files to install to EFI boot partition
3556 created by the ``bootimg-efi`` Wic plugin
3557- :term:`INITRAMFS_IMAGE`: initramfs recipe name
3558- :term:`KERNEL_DEVICETREE`: optional devicetree files to embed into UKI
3559- :term:`UKIFY_CMD`: `ukify
3560 <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
3561 command to build the UKI image
3562- :term:`UKI_CMDLINE`: kernel command line to use with UKI
3563- :term:`UKI_CONFIG_FILE`: optional config file for `ukify
3564 <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
3565- :term:`UKI_FILENAME`: output file name for the UKI image
3566- :term:`UKI_KERNEL_FILENAME`: kernel image file name
3567- :term:`UKI_SB_CERT`: optional UEFI secureboot certificate matching the
3568 private key
3569- :term:`UKI_SB_KEY`: optional UEFI secureboot private key to sign UKI with
3570
3571For examples on how to use this class see oeqa selftest
3572:oe_git:`meta/lib/oeqa/selftest/cases/uki.py
3573</openembedded-core/tree/meta/lib/oeqa/selftest/cases/uki.py>`.
3574Also an oeqa runtime test :oe_git:`meta/lib/oeqa/runtime/cases/uki.py
3575</openembedded-core/tree/meta/lib/oeqa/runtime/cases/uki.py>` is provided which
3576verifies that the target system booted the same UKI binary as was set at
3577buildtime via :term:`UKI_FILENAME`.
3578
3288.. _ref-classes-uninative: 3579.. _ref-classes-uninative:
3289 3580
3290``uninative`` 3581``uninative``
@@ -3444,6 +3735,31 @@ This class is enabled by default because it is inherited by the
3444The :ref:`ref-classes-vala` class supports recipes that need to build software written 3735The :ref:`ref-classes-vala` class supports recipes that need to build software written
3445using the Vala programming language. 3736using the Vala programming language.
3446 3737
3738.. _ref-classes-vex:
3739
3740``vex``
3741========
3742
3743The :ref:`ref-classes-vex` class is used to generate metadata needed by external
3744tools to check for vulnerabilities, for example CVEs. It can be used as a
3745replacement for :ref:`ref-classes-cve-check`.
3746
3747In order to use this class, inherit the class in the ``local.conf`` file and it
3748will add the ``generate_vex`` task for every recipe::
3749
3750 INHERIT += "vex"
3751
3752If an image is built it will generate a report in :term:`DEPLOY_DIR_IMAGE` for
3753all the packages used, it will also generate a file for all recipes used in the
3754build.
3755
3756Variables use the ``CVE_CHECK`` prefix to keep compatibility with the
3757:ref:`ref-classes-cve-check` class.
3758
3759Example usage::
3760
3761 bitbake -c generate_vex openssl
3762
3447.. _ref-classes-waf: 3763.. _ref-classes-waf:
3448 3764
3449``waf`` 3765``waf``
@@ -3455,3 +3771,23 @@ the Waf build system. You can use the
3455:term:`PACKAGECONFIG_CONFARGS` variables 3771:term:`PACKAGECONFIG_CONFARGS` variables
3456to specify additional configuration options to be passed on the Waf 3772to specify additional configuration options to be passed on the Waf
3457command line. 3773command line.
3774
3775.. _ref-classes-yocto-check-layer:
3776
3777``yocto-check-layer``
3778=====================
3779
3780The :ref:`ref-classes-yocto-check-layer` class is used by the
3781:oe_git:`yocto-check-layer </openembedded-core/tree/scripts/yocto-check-layer>`
3782script to ensure that packages from Yocto Project Compatible layers don't skip
3783required QA checks listed in :term:`CHECKLAYER_REQUIRED_TESTS` defined by the
3784:ref:`ref-classes-insane` class.
3785
3786It adds an anonymous python function with extra processing to all recipes,
3787and globally inheriting this class with :term:`INHERIT` is not advised. Instead
3788the ``yocto-check-layer`` script should be used as it handles usage of this
3789class.
3790
3791For more information on the Yocto Project
3792Compatible layers, see the :ref:`dev-manual/layers:Making Sure Your Layer is
3793Compatible With Yocto Project` section of the Yocto Project Development Manual.
diff --git a/documentation/ref-manual/devtool-reference.rst b/documentation/ref-manual/devtool-reference.rst
index 9319addc3c..5ac567591c 100644
--- a/documentation/ref-manual/devtool-reference.rst
+++ b/documentation/ref-manual/devtool-reference.rst
@@ -24,7 +24,7 @@ The ``devtool`` command line is organized similarly to Git in that it
24has a number of sub-commands for each function. You can run 24has a number of sub-commands for each function. You can run
25``devtool --help`` to see all the commands:: 25``devtool --help`` to see all the commands::
26 26
27 $ devtool -h 27 $ devtool --help
28 NOTE: Starting bitbake server... 28 NOTE: Starting bitbake server...
29 usage: devtool [--basepath BASEPATH] [--bbpath BBPATH] [-d] [-q] [--color COLOR] [-h] <subcommand> ... 29 usage: devtool [--basepath BASEPATH] [--bbpath BBPATH] [-d] [-q] [--color COLOR] [-h] <subcommand> ...
30 30
@@ -50,6 +50,7 @@ has a number of sub-commands for each function. You can run
50 search Search available recipes 50 search Search available recipes
51 Working on a recipe in the workspace: 51 Working on a recipe in the workspace:
52 build Build a recipe 52 build Build a recipe
53 ide-sdk Setup the SDK and configure the IDE
53 rename Rename a recipe file in the workspace 54 rename Rename a recipe file in the workspace
54 edit-recipe Edit a recipe file 55 edit-recipe Edit a recipe file
55 find-recipe Find a recipe file 56 find-recipe Find a recipe file
@@ -63,17 +64,11 @@ has a number of sub-commands for each function. You can run
63 build-image Build image including workspace recipe packages 64 build-image Build image including workspace recipe packages
64 Advanced: 65 Advanced:
65 create-workspace Set up workspace in an alternative location 66 create-workspace Set up workspace in an alternative location
67 import Import exported tar archive into workspace
68 export Export workspace into a tar archive
66 extract Extract the source for an existing recipe 69 extract Extract the source for an existing recipe
67 sync Synchronize the source tree for an existing recipe 70 sync Synchronize the source tree for an existing recipe
68 menuconfig Alter build-time configuration for a recipe 71 menuconfig Alter build-time configuration for a recipe
69 import Import exported tar archive into workspace
70 export Export workspace into a tar archive
71 other:
72 selftest-reverse Reverse value (for selftest)
73 pluginfile Print the filename of this plugin
74 bbdir Print the BBPATH directory of this plugin
75 count How many times have this plugin been registered.
76 multiloaded How many times have this plugin been initialized
77 Use devtool <subcommand> --help to get help on a specific command 72 Use devtool <subcommand> --help to get help on a specific command
78 73
79As directed in the general help output, you can 74As directed in the general help output, you can
@@ -82,8 +77,8 @@ using ``--help``::
82 77
83 $ devtool add --help 78 $ devtool add --help
84 NOTE: Starting bitbake server... 79 NOTE: Starting bitbake server...
85 usage: devtool add [-h] [--same-dir | --no-same-dir] [--fetch URI] [--npm-dev] [--version VERSION] [--no-git] [--srcrev SRCREV | --autorev] [--srcbranch SRCBRANCH] [--binary] [--also-native] [--src-subdir SUBDIR] [--mirrors] 80 usage: devtool add [-h] [--same-dir | --no-same-dir] [--fetch URI] [--npm-dev] [--no-pypi] [--version VERSION] [--no-git] [--srcrev SRCREV | --autorev]
86 [--provides PROVIDES] 81 [--srcbranch SRCBRANCH] [--binary] [--also-native] [--src-subdir SUBDIR] [--mirrors] [--provides PROVIDES]
87 [recipename] [srctree] [fetchuri] 82 [recipename] [srctree] [fetchuri]
88 83
89 Adds a new recipe to the workspace to build a specified source tree. Can optionally fetch a remote URI and unpack it to create the source tree. 84 Adds a new recipe to the workspace to build a specified source tree. Can optionally fetch a remote URI and unpack it to create the source tree.
@@ -99,6 +94,7 @@ using ``--help``::
99 --no-same-dir Force build in a separate build directory 94 --no-same-dir Force build in a separate build directory
100 --fetch URI, -f URI Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead) 95 --fetch URI, -f URI Fetch the specified URI and extract it to create the source tree (deprecated - pass as positional argument instead)
101 --npm-dev For npm, also fetch devDependencies 96 --npm-dev For npm, also fetch devDependencies
97 --no-pypi Do not inherit pypi class
102 --version VERSION, -V VERSION 98 --version VERSION, -V VERSION
103 Version to use within recipe (PV) 99 Version to use within recipe (PV)
104 --no-git, -g If fetching source, do not set up source tree as a git repository 100 --no-git, -g If fetching source, do not set up source tree as a git repository
@@ -436,10 +432,10 @@ revision to which you want to upgrade (i.e. the
436forth. 432forth.
437 433
438You can read more on the ``devtool upgrade`` workflow in the 434You can read more on the ``devtool upgrade`` workflow in the
439":ref:`sdk-manual/extensible:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`" 435":ref:`dev-manual/devtool:use \`\`devtool upgrade\`\` to create a version of the recipe that supports a newer version of the software`"
440section in the Yocto Project Application Development and the Extensible 436section in the Yocto Project Application Development and the Extensible
441Software Development Kit (eSDK) manual. You can also see an example of 437Software Development Kit (eSDK) manual. You can also see an example of
442how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using \`\`devtool upgrade\`\``" 438how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using ``devtool upgrade```"
443section in the Yocto Project Development Tasks Manual. 439section in the Yocto Project Development Tasks Manual.
444 440
445.. _devtool-resetting-a-recipe: 441.. _devtool-resetting-a-recipe:
@@ -467,6 +463,20 @@ Here is an example that resets the workspace directory that contains the
467 NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/mtr as-is; if you no longer need it then please delete it manually 463 NOTE: Leaving source tree /home/scottrif/poky/build/workspace/sources/mtr as-is; if you no longer need it then please delete it manually
468 $ 464 $
469 465
466.. _devtool-finish-working-on-a-recipe:
467
468Finish Working on a Recipe
469==========================
470
471Use the ``devtool finish`` command to push any committed changes to the
472specified recipe in the specified layer and remove it from your workspace.
473
474This is roughly equivalent to the ``devtool update-recipe`` command followed by
475the ``devtool reset`` command. The changes must have been committed to the git
476repository created by ``devtool``. Here is an example::
477
478 $ devtool finish recipe /path/to/custom/layer
479
470.. _devtool-building-your-recipe: 480.. _devtool-building-your-recipe:
471 481
472Building Your Recipe 482Building Your Recipe
@@ -543,6 +553,26 @@ the packages are already on the target. Consequently, when a runtime
543call is made in the application for a dependent function (e.g. a library 553call is made in the application for a dependent function (e.g. a library
544call), the function cannot be found. 554call), the function cannot be found.
545 555
556.. warning::
557
558 Runtime dependencies can be explicitly listed in the :term:`RDEPENDS`
559 variable, but may also be the result of a :term:`DEPENDS` assignment in your
560 application's recipe. This is usually the case when your application depends
561 on libraries for compilation: these libraries are listed as build-time
562 dependencies in the :term:`DEPENDS` variable in your application's recipe.
563 However these may also be runtime dependencies if they install shared objects
564 on which your application will dynamically link to at runtime (e.g. shared
565 libraries ending with ``.so``).
566
567 These runtime dependencies are automatically resolved by the
568 :term:`OpenEmbedded Build System` during the packaging phase. Since
569 ``devtool`` ignores packaging dependencies, they will not be installed
570 automatically with ``devtool deploy-target``.
571
572 For more information on how the :term:`OpenEmbedded Build System` handles
573 packaging, see the :ref:`overview-manual/concepts:Automatically Added Runtime
574 Dependencies` section of the Yocto Project Overview and Concepts Manual.
575
546To be sure you have all the dependencies local to the target, you need 576To be sure you have all the dependencies local to the target, you need
547to be sure that the packages are pre-deployed (installed) on the target 577to be sure that the packages are pre-deployed (installed) on the target
548before attempting to run your application. 578before attempting to run your application.
@@ -618,3 +648,43 @@ a match.
618 648
619When you use the ``devtool search`` command, you must supply a keyword. 649When you use the ``devtool search`` command, you must supply a keyword.
620The command uses the keyword when searching for a match. 650The command uses the keyword when searching for a match.
651
652Alternatively, the ``devtool find-recipe`` command can be used to search for
653recipe files instead of recipe names. Likewise, you must supply a keyword.
654
655.. _devtool-get-the-configure-script-help:
656
657Get Information on Recipe Configuration Scripts
658===============================================
659
660Use the ``devtool configure-help`` command to get help on the configuration
661script options for a given recipe. You must supply the recipe name to the
662command. For example, it shows the output of ``./configure --help`` for
663:ref:`autotools <ref-classes-autotools>`-based recipes.
664
665The ``configure-help`` command will also display the configuration options
666currently in use, including the ones passed through the :term:`EXTRA_OECONF`
667variable.
668
669.. _devtool-generate-an-ide-configuration-for-a-recipe:
670
671Generate an IDE Configuration for a Recipe
672==========================================
673
674The ``devtool ide-sdk`` automatically creates an IDE configuration and SDK to
675work on a given recipe. Depending on the ``--mode`` parameter, different types
676of SDKs are generated:
677
678- ``modified`` mode: this creates an SDK and generates an IDE configuration in
679 the workspace directory.
680
681- ``shared`` mode: this creates a cross-compiling toolchain and the
682 corresponding shared sysroot directories of the supplied recipe(s).
683
684The ``--target`` option can be used to specify a ``username@hostname`` string
685and create a remote debugging configuration for the recipe. Similarly to
686``devtool deploy-target``, it requires an SSH server running on the target.
687
688For further details on the ``devtool ide-sdk`` command, see the
689":doc:`/sdk-manual/extensible`" chapter in the Yocto Project Application
690Development and the Extensible Software Development Kit (eSDK) manual.
diff --git a/documentation/ref-manual/faq.rst b/documentation/ref-manual/faq.rst
index bab284bbfd..7dd37c7a5c 100644
--- a/documentation/ref-manual/faq.rst
+++ b/documentation/ref-manual/faq.rst
@@ -45,6 +45,28 @@ See :yocto_wiki:`Products that use the Yocto Project
45Wiki. Don't hesitate to contribute to this page if you know other such 45Wiki. Don't hesitate to contribute to this page if you know other such
46products. 46products.
47 47
48Why isn't systemd the default init system for OpenEmbedded-Core/Yocto Project or in Poky?
49-----------------------------------------------------------------------------------------
50
51`systemd <https://systemd.io/>`__ is a desktop Linux init system with a specific
52focus that is not entirely aligned with a customisable "embedded" build
53system/environment.
54
55It understandably mandates certain layouts and configurations which may
56or may not align with what the objectives and direction :term:`OpenEmbedded-Core
57(OE-Core)` or Yocto Project want to take. It doesn't support all of our targets.
58For example `musl <https://www.musl-libc.org/>`__ support in systemd is
59problematic.
60
61If it were our default, we would have to align with all their choices
62and this doesn't make sense. It is therefore a configuration option and
63available to anyone where the design goals align. But we are clear it
64is not the only way to handle init.
65
66Our automated testing includes it through the ``poky-altcfg`` :term:`DISTRO` and
67we don't really need it to be the default: it is tested, it works, and people
68can choose to use it.
69
48Building environment 70Building environment
49==================== 71====================
50 72
@@ -259,6 +281,25 @@ Within the :term:`Build Directory`, is the ``tmp`` directory. To remove all the
259build output yet preserve any source code or downloaded files from 281build output yet preserve any source code or downloaded files from
260previous builds, simply remove the ``tmp`` directory. 282previous builds, simply remove the ``tmp`` directory.
261 283
284Why isn't there a way to append bbclass files like bbappend for recipes?
285------------------------------------------------------------------------
286
287The Yocto Project has consciously chosen not to implement such functionality.
288Class code is designed to be shared and reused, and exposes some level of
289configuration to its users. We want to encourage people to share these changes
290so we can build the best classes.
291
292If the ``append`` functionality was available for classes, our evidence and
293experience suggest that people would create their custom changes in their
294layer instead of sharing and discussing the issues and/or limitations they
295encountered. This would lead to bizarre class interactions when new layers are
296included. We therefore consciously choose to have a natural pressure to share
297class code improvements or fixes.
298
299There are also technical considerations like which recipes a class append would
300apply to and how that would fit within the layer model. These are complications
301we think we can live without!
302
262Customizing generated images 303Customizing generated images
263============================ 304============================
264 305
diff --git a/documentation/ref-manual/features.rst b/documentation/ref-manual/features.rst
index 2ea946b31d..2c074ab9c7 100644
--- a/documentation/ref-manual/features.rst
+++ b/documentation/ref-manual/features.rst
@@ -12,7 +12,7 @@ Features provide a mechanism for working out which packages should be
12included in the generated images. Distributions can select which 12included in the generated images. Distributions can select which
13features they want to support through the :term:`DISTRO_FEATURES` variable, 13features they want to support through the :term:`DISTRO_FEATURES` variable,
14which is set or appended to in a distribution's configuration file such 14which is set or appended to in a distribution's configuration file such
15as ``poky.conf``, ``poky-tiny.conf``, ``poky-lsb.conf`` and so forth. 15as ``poky.conf``, ``poky-tiny.conf``, ``poky-altcfg.conf`` and so forth.
16Machine features are set in the :term:`MACHINE_FEATURES` variable, which is 16Machine features are set in the :term:`MACHINE_FEATURES` variable, which is
17set in the machine configuration file and specifies the hardware 17set in the machine configuration file and specifies the hardware
18features for a given machine. 18features for a given machine.
@@ -146,7 +146,7 @@ metadata, as extra layers can define their own:
146 146
147- *directfb:* Include DirectFB support. 147- *directfb:* Include DirectFB support.
148 148
149- *ext2:* Include tools for supporting for devices with internal 149- *ext2:* Include tools for supporting devices with internal
150 HDD/Microdrive for storing files (instead of Flash only devices). 150 HDD/Microdrive for storing files (instead of Flash only devices).
151 151
152- *gobject-introspection-data:* Include data to support 152- *gobject-introspection-data:* Include data to support
@@ -167,9 +167,6 @@ metadata, as extra layers can define their own:
167- *multiarch:* Enable building applications with multiple architecture 167- *multiarch:* Enable building applications with multiple architecture
168 support. 168 support.
169 169
170- *ld-is-gold:* Use the :wikipedia:`gold <Gold_(linker)>`
171 linker instead of the standard GCC linker (bfd).
172
173- *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the 170- *ldconfig:* Include support for ldconfig and ``ld.so.conf`` on the
174 target. 171 target.
175 172
@@ -197,13 +194,17 @@ metadata, as extra layers can define their own:
197 194
198- *pcmcia:* Include PCMCIA/CompactFlash support. 195- *pcmcia:* Include PCMCIA/CompactFlash support.
199 196
197- *pni-names:* Enable generation of persistent network interface names, i.e.
198 the system tries hard to have the same but unique names for the network
199 interfaces even after a reinstall.
200
200- *polkit:* Include :wikipedia:`Polkit <Polkit>` support. 201- *polkit:* Include :wikipedia:`Polkit <Polkit>` support.
201 202
202- *ppp:* Include PPP dialup support. 203- *ppp:* Include PPP dialup support.
203 204
204- *ptest:* Enables building the package tests where supported by 205- *ptest:* Enables building the package tests where supported by
205 individual recipes. For more information on package tests, see the 206 individual recipes. For more information on package tests, see the
206 ":ref:`dev-manual/packages:testing packages with ptest`" section 207 ":ref:`test-manual/ptest:testing packages with ptest`" section
207 in the Yocto Project Development Tasks Manual. 208 in the Yocto Project Development Tasks Manual.
208 209
209- *pulseaudio:* Include support for 210- *pulseaudio:* Include support for
@@ -281,31 +282,24 @@ The image features available for all images are:
281- *dbg-pkgs:* Installs debug symbol packages for all packages installed 282- *dbg-pkgs:* Installs debug symbol packages for all packages installed
282 in a given image. 283 in a given image.
283 284
284- *debug-tweaks:* Makes an image suitable for development (e.g. allows
285 root logins, logins without passwords ---including root ones, and enables
286 post-installation logging). See the ``allow-empty-password``,
287 ``allow-root-login``, ``empty-root-password``, and ``post-install-logging``
288 features in this list for additional information.
289
290- *dev-pkgs:* Installs development packages (headers and extra library 285- *dev-pkgs:* Installs development packages (headers and extra library
291 links) for all packages installed in a given image. 286 links) for all packages installed in a given image.
292 287
293- *doc-pkgs:* Installs documentation packages for all packages 288- *doc-pkgs:* Installs documentation packages for all packages
294 installed in a given image. 289 installed in a given image.
295 290
296- *empty-root-password:* This feature or ``debug-tweaks`` is required if 291- *empty-root-password:* This feature can be used if you want to allow root
297 you want to allow root login with an empty password. If these features 292 login with an empty password. If this feature is not present in
298 are not present in :term:`IMAGE_FEATURES`, a non-empty password is 293 :term:`IMAGE_FEATURES`, a non-empty password is forced in ``/etc/passwd`` and
299 forced in ``/etc/passwd`` and ``/etc/shadow`` if such files exist. 294 ``/etc/shadow`` if such files exist.
300 295
301 .. note:: 296 .. note::
302 ``empty-root-password`` doesn't set an empty root password by itself. 297 ``empty-root-password`` doesn't set an empty root password by itself.
303 You get an initial empty root password thanks to the 298 You get an initial empty root password thanks to the
304 :oe_git:`base-passwd </openembedded-core/tree/meta/recipes-core/base-passwd/>` 299 :oe_git:`base-passwd </openembedded-core/tree/meta/recipes-core/base-passwd/>`
305 and :oe_git:`shadow </openembedded-core/tree/meta/recipes-extended/shadow/>` 300 and :oe_git:`shadow </openembedded-core/tree/meta/recipes-extended/shadow/>`
306 recipes, and the presence of ``empty-root-password`` or ``debug-tweaks`` 301 recipes, and the presence of ``empty-root-password`` just disables the
307 just disables the mechanism which forces an non-empty password for the 302 mechanism which forces an non-empty password for the root user.
308 root user.
309 303
310- *lic-pkgs:* Installs license packages for all packages installed in a 304- *lic-pkgs:* Installs license packages for all packages installed in a
311 given image. 305 given image.
@@ -323,8 +317,9 @@ The image features available for all images are:
323 317
324 .. note:: 318 .. note::
325 319
326 To make the ``/var/log`` directory on the target persistent, use the 320 To make the ``/var/log`` directory on the target persistent, remove the
327 :term:`VOLATILE_LOG_DIR` variable by setting it to "no". 321 ``files/fs-perms-volatile-log.txt`` value from
322 :term:`FILESYSTEM_PERMS_TABLES`.
328 323
329- *ptest-pkgs:* Installs ptest packages for all ptest-enabled recipes. 324- *ptest-pkgs:* Installs ptest packages for all ptest-enabled recipes.
330 325
diff --git a/documentation/ref-manual/images.rst b/documentation/ref-manual/images.rst
index c45f9104a9..c9d8989261 100644
--- a/documentation/ref-manual/images.rst
+++ b/documentation/ref-manual/images.rst
@@ -51,27 +51,6 @@ Here is a list of supported recipes:
51- ``core-image-full-cmdline``: A console-only image with more 51- ``core-image-full-cmdline``: A console-only image with more
52 full-featured Linux system functionality installed. 52 full-featured Linux system functionality installed.
53 53
54- ``core-image-lsb``: An image that conforms to the Linux Standard Base
55 (LSB) specification. This image requires a distribution configuration
56 that enables LSB compliance (e.g. ``poky-lsb``). If you build
57 ``core-image-lsb`` without that configuration, the image will not be
58 LSB-compliant.
59
60- ``core-image-lsb-dev``: A ``core-image-lsb`` image that is suitable
61 for development work using the host. The image includes headers and
62 libraries you can use in a host development environment. This image
63 requires a distribution configuration that enables LSB compliance
64 (e.g. ``poky-lsb``). If you build ``core-image-lsb-dev`` without that
65 configuration, the image will not be LSB-compliant.
66
67- ``core-image-lsb-sdk``: A ``core-image-lsb`` that includes everything
68 in the cross-toolchain but also includes development headers and
69 libraries to form a complete standalone SDK. This image requires a
70 distribution configuration that enables LSB compliance (e.g.
71 ``poky-lsb``). If you build ``core-image-lsb-sdk`` without that
72 configuration, the image will not be LSB-compliant. This image is
73 suitable for development using the target.
74
75- ``core-image-minimal``: A small image just capable of allowing a 54- ``core-image-minimal``: A small image just capable of allowing a
76 device to boot. 55 device to boot.
77 56
@@ -119,8 +98,8 @@ Here is a list of supported recipes:
119 deployed to a separate partition so that you can boot into it and use 98 deployed to a separate partition so that you can boot into it and use
120 it to deploy a second image to be tested. You can find more 99 it to deploy a second image to be tested. You can find more
121 information about runtime testing in the 100 information about runtime testing in the
122 ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 101 ":ref:`test-manual/runtime-testing:performing automated runtime testing`"
123 section in the Yocto Project Development Tasks Manual. 102 section in the Yocto Project Test Environment Manual.
124 103
125- ``core-image-testmaster-initramfs``: A RAM-based Initial Root 104- ``core-image-testmaster-initramfs``: A RAM-based Initial Root
126 Filesystem (:term:`Initramfs`) image tailored for use with the 105 Filesystem (:term:`Initramfs`) image tailored for use with the
diff --git a/documentation/ref-manual/index.rst b/documentation/ref-manual/index.rst
index a746dde492..53fa98cc99 100644
--- a/documentation/ref-manual/index.rst
+++ b/documentation/ref-manual/index.rst
@@ -11,6 +11,7 @@ Yocto Project Reference Manual
11 :numbered: 11 :numbered:
12 12
13 system-requirements 13 system-requirements
14 yocto-project-supported-features
14 terms 15 terms
15 release-process 16 release-process
16 structure 17 structure
diff --git a/documentation/ref-manual/qa-checks.rst b/documentation/ref-manual/qa-checks.rst
index 58526a0e57..27d46de3fd 100644
--- a/documentation/ref-manual/qa-checks.rst
+++ b/documentation/ref-manual/qa-checks.rst
@@ -752,21 +752,17 @@ Errors and Warnings
752 752
753.. _qa-check-patch-status: 753.. _qa-check-patch-status:
754 754
755- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status-core/patch-status-noncore]`` 755- ``Missing Upstream-Status in patch <patchfile> Please add according to <url> [patch-status]``
756 756
757 The ``Upstream-Status`` value is missing in the specified patch file's header. 757 The ``Upstream-Status`` value is missing in the specified patch file's header.
758 This value is intended to track whether or not the patch has been sent 758 This value is intended to track whether or not the patch has been sent
759 upstream, whether or not it has been merged, etc. 759 upstream, whether or not it has been merged, etc.
760 760
761 There are two options for this same check - ``patch-status-core`` (for
762 recipes in OE-Core) and ``patch-status-noncore`` (for recipes in any other
763 layer).
764
765 For more information, see the 761 For more information, see the
766 ":ref:`contributor-guide/recipe-style-guide:patch upstream status`" 762 ":ref:`contributor-guide/recipe-style-guide:patch upstream status`"
767 section in the Yocto Project and OpenEmbedded Contributor Guide. 763 section in the Yocto Project and OpenEmbedded Contributor Guide.
768 764
769- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status-core/patch-status-noncore]`` 765- ``Malformed Upstream-Status in patch <patchfile> Please correct according to <url> [patch-status]``
770 766
771 The ``Upstream-Status`` value in the specified patch file's header is invalid - 767 The ``Upstream-Status`` value in the specified patch file's header is invalid -
772 it must be a specific format. See the "Missing Upstream-Status" entry above 768 it must be a specific format. See the "Missing Upstream-Status" entry above
@@ -795,10 +791,18 @@ Errors and Warnings
795 791
796 This check will detect if the source of the package contains some 792 This check will detect if the source of the package contains some
797 upstream-provided tests and, if so, that ptests are implemented for this 793 upstream-provided tests and, if so, that ptests are implemented for this
798 recipe. See the ":ref:`dev-manual/packages:testing packages with ptest`" 794 recipe. See the ":ref:`test-manual/ptest:testing packages with ptest`"
799 section in the Yocto Project Development Tasks Manual. See also the 795 section in the Yocto Project Development Tasks Manual. See also the
800 ":ref:`ref-classes-ptest`" section. 796 ":ref:`ref-classes-ptest`" section.
801 797
798.. _qa-check-virtual-slash:
799
800- ``<variable> is set to <value> but the substring 'virtual/' holds no meaning in this context. It only works for build time dependencies, not runtime ones. It is suggested to use 'VIRTUAL-RUNTIME_' variables instead.``
801
802 ``virtual/`` is a convention intended for use in the build context
803 (i.e. :term:`PROVIDES` and :term:`DEPENDS`) rather than the runtime
804 context (i.e. :term:`RPROVIDES` and :term:`RDEPENDS`). Use
805 :term:`VIRTUAL-RUNTIME` variables instead for the latter.
802 806
803 807
804Configuring and Disabling QA Checks 808Configuring and Disabling QA Checks
diff --git a/documentation/ref-manual/release-process.rst b/documentation/ref-manual/release-process.rst
index 920794679d..639921b9f6 100644
--- a/documentation/ref-manual/release-process.rst
+++ b/documentation/ref-manual/release-process.rst
@@ -103,17 +103,22 @@ have reached their End of Life (EOL) won't receive such updates.
103 103
104This started with version 3.1 ("Dunfell"), released in April 2020, which 104This started with version 3.1 ("Dunfell"), released in April 2020, which
105the project initially committed to supporting for two years, but this duration 105the project initially committed to supporting for two years, but this duration
106was later extended to four years. Similarly, the following :term:`LTS` release, 106was later extended to four years.
107version 4.0 ("Kirkstone"), was released two years later in May 2022 and the
108project committed to supporting it for four years too.
109 107
110Therefore, a new :term:`LTS` release is made every two years and is supported 108A new :term:`LTS` release is made every two years and is supported for four
111for four years. This offers more stability to project users and leaves more 109years. This offers more stability to project users and leaves more time to
112time to upgrade to the following :term:`LTS` release. 110upgrade to the following :term:`LTS` release.
111
112The currently supported :term:`LTS` releases are:
113
114- Version 5.0 ("Scarthgap"), released in April 2024 and supported until April 2028.
115- Version 4.0 ("Kirkstone"), released in May 2022 and supported until May 2026.
113 116
114See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management 117See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management
115of stable and :term:`LTS` releases. 118of stable and :term:`LTS` releases.
116 119
120This documentation was built for the &DISTRO_NAME; release.
121
117.. image:: svg/releases.* 122.. image:: svg/releases.*
118 :width: 100% 123 :width: 100%
119 124
@@ -143,8 +148,8 @@ Additionally, because the test strategies are visible to you as a
143developer, you can validate your projects. This section overviews the 148developer, you can validate your projects. This section overviews the
144available test infrastructure used in the Yocto Project. For information 149available test infrastructure used in the Yocto Project. For information
145on how to run available tests on your projects, see the 150on how to run available tests on your projects, see the
146":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 151":ref:`test-manual/runtime-testing:performing automated runtime testing`"
147section in the Yocto Project Development Tasks Manual. 152section in the Yocto Project Test Environment Manual.
148 153
149The QA/testing infrastructure is woven into the project to the point 154The QA/testing infrastructure is woven into the project to the point
150where core developers take some of it for granted. The infrastructure 155where core developers take some of it for granted. The infrastructure
@@ -170,7 +175,7 @@ consists of the following pieces:
170 operation and functions. However, the test can also use the IP 175 operation and functions. However, the test can also use the IP
171 address of a machine to test. 176 address of a machine to test.
172 177
173- :ref:`ptest <dev-manual/packages:testing packages with ptest>`: 178- :ref:`ptest <test-manual/ptest:testing packages with ptest>`:
174 Runs tests against packages produced during the build for a given 179 Runs tests against packages produced during the build for a given
175 piece of software. The test allows the packages to be run within a 180 piece of software. The test allows the packages to be run within a
176 target image. 181 target image.
@@ -185,7 +190,7 @@ effort has been made to automate the tests so that more people can use
185them and the Yocto Project development team can run them faster and more 190them and the Yocto Project development team can run them faster and more
186efficiently. 191efficiently.
187 192
188The Yocto Project's main Autobuilder (&YOCTO_AB_URL;) publicly tests each Yocto 193The Yocto Project's main :yocto_ab:`Autobuilder <>` publicly tests each Yocto
189Project release's code in the :oe_git:`openembedded-core </openembedded-core>`, 194Project release's code in the :oe_git:`openembedded-core </openembedded-core>`,
190:yocto_git:`poky </poky>` and :oe_git:`bitbake </bitbake>` repositories. The 195:yocto_git:`poky </poky>` and :oe_git:`bitbake </bitbake>` repositories. The
191testing occurs for both the current state of the "master" branch and also for 196testing occurs for both the current state of the "master" branch and also for
diff --git a/documentation/ref-manual/resources.rst b/documentation/ref-manual/resources.rst
index 8e54ac87c9..bcbc7ebaca 100644
--- a/documentation/ref-manual/resources.rst
+++ b/documentation/ref-manual/resources.rst
@@ -23,7 +23,7 @@ The Yocto Project gladly accepts contributions. You can submit changes
23to the project either by creating and sending pull requests, or by 23to the project either by creating and sending pull requests, or by
24submitting patches through email. For information on how to do both as 24submitting patches through email. For information on how to do both as
25well as information on how to identify the maintainer for each area of 25well as information on how to identify the maintainer for each area of
26code, see the :doc:`../contributor-guide/index`. 26code, see the :doc:`/contributor-guide/index`.
27 27
28.. _resources-bugtracker: 28.. _resources-bugtracker:
29 29
@@ -45,7 +45,7 @@ your expectations).
45For a general procedure and guidelines on how to use Bugzilla to submit a bug 45For a general procedure and guidelines on how to use Bugzilla to submit a bug
46against the Yocto Project, see the following: 46against the Yocto Project, see the following:
47 47
48- The ":doc:`../contributor-guide/report-defect`" 48- The ":doc:`/contributor-guide/report-defect`"
49 section in the Yocto Project and OpenEmbedded Contributor Guide. 49 section in the Yocto Project and OpenEmbedded Contributor Guide.
50 50
51- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 51- The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
@@ -66,6 +66,9 @@ instructions:
66- :yocto_lists:`/g/yocto` --- general Yocto Project 66- :yocto_lists:`/g/yocto` --- general Yocto Project
67 discussion mailing list. 67 discussion mailing list.
68 68
69- :yocto_lists:`/g/yocto-patches` --- patch contribution mailing list for Yocto
70 Project-related layers which do not have their own mailing list.
71
69- :oe_lists:`/g/openembedded-core` --- discussion mailing 72- :oe_lists:`/g/openembedded-core` --- discussion mailing
70 list about OpenEmbedded-Core (the core metadata). 73 list about OpenEmbedded-Core (the core metadata).
71 74
diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst
index e4d8b54bb9..d6dbb29401 100644
--- a/documentation/ref-manual/structure.rst
+++ b/documentation/ref-manual/structure.rst
@@ -335,6 +335,15 @@ Once the build process gets the sample file, it uses ``sed`` to substitute final
335 version of the ``bblayers.conf.sample`` file in the ``meta-poky/conf/templates/default`` 335 version of the ``bblayers.conf.sample`` file in the ``meta-poky/conf/templates/default``
336 directory. 336 directory.
337 337
338.. _structure-build-conf-bblock.conf:
339
340``build/conf/bblock.conf``
341--------------------------
342
343This configuration file is generated by :doc:`bblock </dev-manual/bblock>` and
344contains the signatures locked by ``bblock``. By default, it does not exist
345and will be created upon the first invocation of ``bblock``.
346
338.. _structure-build-downloads: 347.. _structure-build-downloads:
339 348
340``build/downloads/`` 349``build/downloads/``
@@ -484,6 +493,30 @@ the ":ref:`sdk-manual/appendix-obtain:building an sdk installer`"
484section in the Yocto Project Application Development and the Extensible 493section in the Yocto Project Application Development and the Extensible
485Software Development Kit (eSDK) manual. 494Software Development Kit (eSDK) manual.
486 495
496.. _structure-build-tmp-hosttools:
497
498``build/tmp/hosttools/``
499~~~~~~~~~~~~~~~~~~~~~~~~
500
501The OpenEmbedded build system uses this directory to create symbolic links to
502some of the host components that are allowed to be called within tasks. These
503are basic components listed in the :ref:`ref-manual/system-requirements:required
504packages for the build host` section. These components are also listed in the
505:term:`HOSTTOOLS` variable and are limited to this list to prevent host
506contamination.
507
508.. _structure-build-tmp-pkgdata:
509
510``build/tmp/pkgdata/``
511~~~~~~~~~~~~~~~~~~~~~~
512
513The OpenEmbedded build system uses this directory to store package metadata
514generated during the :ref:`ref-tasks-packagedata` task. The files stored in this
515directory contain information about each output package produced by the
516OpenEmbedded build system, and are used in different ways by the build system
517such as ":ref:`dev-manual/debugging:viewing package information with
518``oe-pkgdata-util```".
519
487.. _structure-build-tmp-sstate-control: 520.. _structure-build-tmp-sstate-control:
488 521
489``build/tmp/sstate-control/`` 522``build/tmp/sstate-control/``
@@ -578,7 +611,7 @@ example, consider ``linux-yocto-kernel-3.0`` on the machine ``qemux86``
578built within the Yocto Project. For this package, a work directory of 611built within the Yocto Project. For this package, a work directory of
579``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred 612``tmp/work/qemux86-poky-linux/linux-yocto/3.0+git1+<.....>``, referred
580to as the :term:`WORKDIR`, is created. Within this directory, the source is 613to as the :term:`WORKDIR`, is created. Within this directory, the source is
581unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt. 614unpacked to ``sources/linux-qemux86-standard-build`` and then patched by Quilt.
582(See the ":ref:`dev-manual/quilt:using quilt in your workflow`" section in 615(See the ":ref:`dev-manual/quilt:using quilt in your workflow`" section in
583the Yocto Project Development Tasks Manual for more information.) Within 616the Yocto Project Development Tasks Manual for more information.) Within
584the ``linux-qemux86-standard-build`` directory, standard Quilt 617the ``linux-qemux86-standard-build`` directory, standard Quilt
@@ -657,8 +690,15 @@ Here are key subdirectories within each recipe work directory:
657 690
658For efficiency, the OpenEmbedded build system creates and uses this 691For efficiency, the OpenEmbedded build system creates and uses this
659directory to hold recipes that share a work directory with other 692directory to hold recipes that share a work directory with other
660recipes. In practice, this is only used for ``gcc`` and its variants 693recipes. This is for example used for ``gcc`` and its variants (e.g.
661(e.g. ``gcc-cross``, ``libgcc``, ``gcc-runtime``, and so forth). 694``gcc-cross``, ``libgcc``, ``gcc-runtime``, and so forth), or by the
695:ref:`ref-classes-kernel` class to make the kernel source code and kernel build
696artifacts available to out-of-tree kernel modules or other kernel-dependent
697recipes.
698
699In practice, only a few recipes make use of the ``work-shared`` directory. This
700directory is especially useful for recipes that would induce a lot of storage
701space if they were to be shared with the standard :term:`Sysroot` mechanism.
662 702
663.. _structure-meta: 703.. _structure-meta:
664 704
diff --git a/documentation/ref-manual/svg/releases.svg b/documentation/ref-manual/svg/releases.svg
index 198d4632b1..3a379078b8 100644
--- a/documentation/ref-manual/svg/releases.svg
+++ b/documentation/ref-manual/svg/releases.svg
@@ -2,11 +2,14 @@
2<svg 2<svg
3 version="1.1" 3 version="1.1"
4 id="svg2" 4 id="svg2"
5 width="2040.0006" 5 width="1992.7236"
6 height="624.30518" 6 height="613.35602"
7 viewBox="0 0 2040.0006 624.30515" 7 viewBox="0 0 1992.7236 613.35599"
8 sodipodi:docname="releases.svg" 8 sodipodi:docname="releases.svg"
9 inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" 9 inkscape:version="1.4.1 (93de688d07, 2025-03-30)"
10 inkscape:export-filename="../../../../../../../../tmp/releases.png"
11 inkscape:export-xdpi="96"
12 inkscape:export-ydpi="96"
10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 14 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12 xmlns="http://www.w3.org/2000/svg" 15 xmlns="http://www.w3.org/2000/svg"
@@ -24,29 +27,29 @@
24 <dc:format>image/svg+xml</dc:format> 27 <dc:format>image/svg+xml</dc:format>
25 <dc:type 28 <dc:type
26 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 29 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
27 <cc:license
28 rdf:resource="http://artlibre.org/licence/lal" />
29 <dc:title>Yocto Project Release Timeline</dc:title> 30 <dc:title>Yocto Project Release Timeline</dc:title>
30 <dc:creator> 31 <dc:creator>
31 <cc:Agent> 32 <cc:Agent>
32 <dc:title>The Yocto Project</dc:title> 33 <dc:title>The Yocto Project</dc:title>
33 </cc:Agent> 34 </cc:Agent>
34 </dc:creator> 35 </dc:creator>
36 <cc:license
37 rdf:resource="http://artlibre.org/licence/lal" />
35 </cc:Work> 38 </cc:Work>
36 <cc:License 39 <cc:License
37 rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> 40 rdf:about="http://artlibre.org/licence/lal">
38 <cc:permits 41 <cc:permits
39 rdf:resource="http://creativecommons.org/ns#Reproduction" /> 42 rdf:resource="http://creativecommons.org/ns#Reproduction" />
40 <cc:permits 43 <cc:permits
41 rdf:resource="http://creativecommons.org/ns#Distribution" /> 44 rdf:resource="http://creativecommons.org/ns#Distribution" />
42 <cc:requires
43 rdf:resource="http://creativecommons.org/ns#Notice" />
44 <cc:requires
45 rdf:resource="http://creativecommons.org/ns#Attribution" />
46 <cc:permits 45 <cc:permits
47 rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> 46 rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
48 <cc:requires 47 <cc:requires
49 rdf:resource="http://creativecommons.org/ns#ShareAlike" /> 48 rdf:resource="http://creativecommons.org/ns#ShareAlike" />
49 <cc:requires
50 rdf:resource="http://creativecommons.org/ns#Notice" />
51 <cc:requires
52 rdf:resource="http://creativecommons.org/ns#Attribution" />
50 </cc:License> 53 </cc:License>
51 </rdf:RDF> 54 </rdf:RDF>
52 </metadata> 55 </metadata>
@@ -66,7 +69,8 @@
66 miter_limit="4" 69 miter_limit="4"
67 scale_width="1" 70 scale_width="1"
68 end_linecap_type="zerowidth" 71 end_linecap_type="zerowidth"
69 not_jump="false" /> 72 not_jump="false"
73 message="" />
70 <marker 74 <marker
71 style="overflow:visible" 75 style="overflow:visible"
72 id="marker5783" 76 id="marker5783"
@@ -404,15 +408,15 @@
404 guidetolerance="10" 408 guidetolerance="10"
405 inkscape:pageopacity="0" 409 inkscape:pageopacity="0"
406 inkscape:pageshadow="2" 410 inkscape:pageshadow="2"
407 inkscape:window-width="1920" 411 inkscape:window-width="3826"
408 inkscape:window-height="1043" 412 inkscape:window-height="2069"
409 id="namedview4" 413 id="namedview4"
410 showgrid="true" 414 showgrid="true"
411 inkscape:zoom="1.4472045" 415 inkscape:zoom="1.5536106"
412 inkscape:cx="736.24703" 416 inkscape:cx="1158.2696"
413 inkscape:cy="312.32629" 417 inkscape:cy="273.55632"
414 inkscape:window-x="1728" 418 inkscape:window-x="2256"
415 inkscape:window-y="0" 419 inkscape:window-y="60"
416 inkscape:window-maximized="1" 420 inkscape:window-maximized="1"
417 inkscape:current-layer="g10" 421 inkscape:current-layer="g10"
418 inkscape:document-rotation="0" 422 inkscape:document-rotation="0"
@@ -422,94 +426,109 @@
422 fit-margin-left="30" 426 fit-margin-left="30"
423 fit-margin-right="30" 427 fit-margin-right="30"
424 fit-margin-bottom="30" 428 fit-margin-bottom="30"
425 inkscape:pagecheckerboard="0"> 429 inkscape:pagecheckerboard="0"
430 inkscape:showpageshadow="2"
431 inkscape:deskcolor="#d1d1d1"
432 showguides="true">
426 <inkscape:grid 433 <inkscape:grid
427 type="xygrid" 434 type="xygrid"
428 id="grid1257" 435 id="grid1257"
429 originx="-289.99936" 436 originx="-289.06071"
430 originy="325" /> 437 originy="478.43017"
438 spacingy="1"
439 spacingx="1"
440 units="px"
441 visible="true" />
431 </sodipodi:namedview> 442 </sodipodi:namedview>
432 <g 443 <g
433 inkscape:groupmode="layer" 444 inkscape:groupmode="layer"
434 inkscape:label="Image" 445 inkscape:label="Image"
435 id="g10" 446 id="g10"
436 transform="translate(-289.99936,325.00004)"> 447 transform="translate(-289.06072,478.43022)">
437 <path 448 <rect
438 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 449 style="fill:#333333;fill-opacity:0;stroke:#000000;stroke-width:0.713896;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-opacity:0"
439 d="m 1080,220.00003 v -515.00007 0 0" 450 id="rect1"
451 width="1992.0098"
452 height="612.64215"
453 x="289.41766"
454 y="-478.07327"
455 ry="24.97636" />
456 <path
457 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
458 d="m 563.40434,64.000628 v -524.414808 0 0"
440 id="path207708" /> 459 id="path207708" />
441 <path 460 <path
442 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 461 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
443 d="m 1200,220.00003 v -515.00007 0 0" 462 d="m 683.40434,64.000628 v -524.414808 0 0"
444 id="path207708-4" /> 463 id="path207708-4" />
445 <path 464 <path
446 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 465 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
447 d="m 1320,220.00003 v -515.00007 0 0" 466 d="m 803.40434,64.000628 v -524.414808 0 0"
448 id="path207708-4-3" /> 467 id="path207708-4-3" />
449 <path 468 <path
450 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 469 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
451 d="m 1440,219.99998 v -515.00002 0 0" 470 d="m 923.40434,64.000577 v -524.414757 0 0"
452 id="path207708-4-3-6" /> 471 id="path207708-4-3-6" />
453 <path 472 <path
454 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 473 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
455 d="m 1560,219.99998 v -515.00001 0 0" 474 d="m 1043.4043,64.000577 v -524.414757 0 0"
456 id="path207708-4-3-6-2" /> 475 id="path207708-4-3-6-2" />
457 <path 476 <path
458 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 477 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
459 d="m 1680,219.99998 v -515.00002 0 0" 478 d="m 1163.4043,64.000577 v -524.414757 0 0"
460 id="path207708-4-3-6-2-8" /> 479 id="path207708-4-3-6-2-8" />
461 <path 480 <path
462 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 481 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
463 d="m 1800,219.99998 v -515.00002 0 0" 482 d="m 1283.4043,64.000577 v -524.414757 0 0"
464 id="path207708-4-3-6-2-8-4" /> 483 id="path207708-4-3-6-2-8-4" />
465 <path 484 <path
466 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 485 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
467 d="m 1920,219.99998 v -515.00002 0 0" 486 d="m 1403.4043,64.000577 v -524.414757 0 0"
468 id="path207708-4-3-6-2-8-4-3" /> 487 id="path207708-4-3-6-2-8-4-3" />
469 <path 488 <path
470 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 489 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.475347;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
471 d="m 2040,219.99997 v -460.00002 0 0" 490 d="m 1523.4043,64.000568 v -415.757648 0 0"
472 id="path207708-4-3-6-2-8-4-3-8" /> 491 id="path207708-4-3-6-2-8-4-3-8" />
473 <path 492 <path
474 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 493 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
475 d="m 2040,219.99998 v -515.00002 0 0" 494 d="m 1523.4043,64.000577 v -524.414757 0 0"
476 id="path207708-4-3-6-2-8-4-3-8-0" /> 495 id="path207708-4-3-6-2-8-4-3-8-0" />
477 <path 496 <path
478 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 497 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
479 d="m 2159.954,219.99997 v -514.99999 0 0" 498 d="m 1643.3583,64.000565 v -524.414715 0 0"
480 id="path207708-4-3-6-2-8-4-3-8-4" /> 499 id="path207708-4-3-6-2-8-4-3-8-4" />
481 <path 500 <path
482 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 501 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
483 d="m 2280,219.99997 v -514.99999 0 0" 502 d="m 1763.4043,64.000565 v -524.414715 0 0"
484 id="path207708-4-3-6-2-8-4-3-8-4-0" /> 503 id="path207708-4-3-6-2-8-4-3-8-4-0" />
485 <path 504 <path
486 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 505 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
487 d="m 960,220.00003 v -515.00007 0 0" 506 d="m 1883.7877,64.878769 v -524.414709 0 0"
488 id="path207708-9" /> 507 id="path207708-4-3-6-2-8-4-3-8-4-0-8" />
489 <path 508 <path
490 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 509 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
491 d="m 840,220.00001 v -375 0 0" 510 d="m 2002.9599,64.984489 v -524.414709 0 0"
492 id="path207708-9-6" /> 511 id="path207708-4-3-6-2-8-4-3-8-4-0-8-8" />
493 <path 512 <path
494 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 513 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
495 d="m 840,220.00002 v -515.00004 0 0" 514 d="m 2123.2232,62.984489 v -524.414709 0 0"
496 id="path207708-9-6-2" /> 515 id="path207708-4-3-6-2-8-4-3-8-4-0-8-8-1" />
497 <path 516 <path
498 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 517 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
499 d="m 720,220.00003 v -515.00007 0 0" 518 d="m 2243.313,63.984489 v -524.414709 0 0"
500 id="path207708-9-6-2-5" /> 519 id="path207708-4-3-6-2-8-4-3-8-4-0-8-8-1-9" />
501 <path 520 <path
502 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 521 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
503 d="m 600,220.00003 v -515.00007 0 0" 522 d="m 443.40434,64.000628 v -524.414808 0 0"
504 id="path207708-9-6-2-5-9" /> 523 id="path207708-9" />
505 <path 524 <path
506 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 525 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
507 d="m 480,220.00003 v -515.00007 0 0" 526 d="m 323.40434,64.000608 v -375.000008 0 0"
508 id="path207708-9-6-2-5-9-0" /> 527 id="path207708-9-6" />
509 <path 528 <path
510 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 529 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.50455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
511 d="m 360,220.00003 v -515.00007 0 0" 530 d="m 323.40434,64.000616 v -524.414766 0 0"
512 id="path207708-9-6-2-5-9-0-5" /> 531 id="path207708-9-6-2" />
513 <text 532 <text
514 xml:space="preserve" 533 xml:space="preserve"
515 style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 534 style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -541,227 +560,200 @@
541 x="-59.575905" 560 x="-59.575905"
542 y="580.05695" /></text> 561 y="580.05695" /></text>
543 <rect 562 <rect
544 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 563 style="opacity:0.5;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
545 id="rect917-0-0" 564 id="rect917-0-0-4-4-9-4"
546 width="980" 565 width="160.00002"
547 height="45.000004" 566 height="45.000004"
548 x="360" 567 x="443.40427"
549 y="154.99997" 568 y="-55.999405"
550 ry="2.2558987" /> 569 ry="2.2558987" />
551 <text 570 <text
552 xml:space="preserve" 571 xml:space="preserve"
553 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 572 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
554 x="420.52835" 573 x="491.89841"
555 y="174.12433" 574 y="-36.604408"
556 id="text1185-3-55-4"><tspan 575 id="text1185-3-55-4-0-0-0"><tspan
557 sodipodi:role="line" 576 sodipodi:role="line"
558 x="420.52835" 577 x="491.89841"
559 y="174.12433" 578 y="-36.604408"
560 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 579 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
561 id="tspan957-2-8">Dunfell (LTS)</tspan><tspan 580 id="tspan957-2-8-6-3-9">Langdale</tspan><tspan
562 sodipodi:role="line" 581 sodipodi:role="line"
563 x="420.52835" 582 x="491.89841"
564 y="192.121" 583 y="-18.607729"
565 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 584 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
566 id="tspan10317">3.1</tspan></text> 585 id="tspan10317-2-9-1">4.1</tspan></text>
567 <rect 586 <rect
568 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 587 style="opacity:0.5;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
569 id="rect917-0-0-4" 588 id="rect917-0-0-4-4-9-4-5"
570 width="140.00002" 589 width="140.00003"
571 height="45.000004" 590 height="45.000004"
572 x="480" 591 x="583.40436"
573 y="99.999969" 592 y="-110.99944"
574 ry="2.2558987" /> 593 ry="2.2558987" />
575 <text 594 <text
576 xml:space="preserve" 595 xml:space="preserve"
577 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 596 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
578 x="534.10651" 597 x="639.46136"
579 y="118.94971" 598 y="-91.498215"
580 id="text1185-3-55-4-0"><tspan 599 id="text1185-3-55-4-0-0-0-1"><tspan
581 sodipodi:role="line" 600 sodipodi:role="line"
582 x="534.10651" 601 x="639.46136"
583 y="118.94971" 602 y="-91.498215"
584 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 603 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
585 id="tspan957-2-8-6">Gatesgarth</tspan><tspan 604 id="tspan957-2-8-6-3-9-7">Mickledore</tspan><tspan
586 sodipodi:role="line" 605 sodipodi:role="line"
587 x="534.10651" 606 x="639.46136"
588 y="136.94638" 607 y="-73.501534"
589 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 608 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
590 id="tspan10317-2">3.2</tspan></text> 609 id="tspan10317-2-9-1-4">4.2</tspan></text>
591 <rect 610 <rect
592 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 611 style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
593 id="rect917-0-0-4-4" 612 id="rect917-0-0-4-4-9-4-5-3-9-2-3-6"
594 width="260" 613 width="140"
595 height="45.000004" 614 height="45.000004"
596 x="599.99994" 615 x="923.65302"
597 y="45.000011" 616 y="-275.19217"
598 ry="2.2558987" /> 617 ry="2.2558987" />
618 <text
619 xml:space="preserve"
620 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
621 x="970.63739"
622 y="-256.32867"
623 id="text1185-3-55-4-0-0-0-1-1-6-4"><tspan
624 sodipodi:role="line"
625 x="970.63739"
626 y="-256.32867"
627 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
628 id="tspan957-2-8-6-3-9-7-4-2-0">Styhead</tspan><tspan
629 sodipodi:role="line"
630 x="970.63739"
631 y="-238.332"
632 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
633 id="tspan10317-2-9-1-4-6-5-6">5.1</tspan></text>
599 <rect 634 <rect
600 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 635 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
601 id="rect917-0-0-4-4-9" 636 id="rect917-0-0-4-4-9-4-5-3-9-2-3-6-2"
602 width="160.00002" 637 width="140"
603 height="45.000004" 638 height="45.000004"
604 x="720" 639 x="1043.4697"
605 y="-9.9999905" 640 y="-328.48172"
606 ry="2.2558987" /> 641 ry="2.2558987" />
607 <text 642 <text
608 xml:space="preserve" 643 xml:space="preserve"
609 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 644 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
610 x="766.10297" 645 x="1090.4542"
611 y="9.57586" 646 y="-309.61823"
612 id="text1185-3-55-4-0-0"><tspan 647 id="text1185-3-55-4-0-0-0-1-1-6-4-7"><tspan
613 sodipodi:role="line" 648 sodipodi:role="line"
614 x="766.10297" 649 x="1090.4542"
615 y="9.57586" 650 y="-309.61823"
616 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 651 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
617 id="tspan957-2-8-6-3">Honister</tspan><tspan 652 id="tspan957-2-8-6-3-9-7-4-2-0-0">Walnascar</tspan><tspan
618 sodipodi:role="line" 653 sodipodi:role="line"
619 x="766.10297" 654 x="1090.4542"
620 y="27.57254" 655 y="-291.62155"
621 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 656 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
622 id="tspan10317-2-9">3.4</tspan></text> 657 id="tspan10317-2-9-1-4-6-5-6-9">5.2</tspan></text>
623 <rect 658 <rect
624 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 659 style="opacity:0.75;fill:#251f32;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
625 id="rect917-0-0-4-4-9-4" 660 id="rect917-0-0-4-4-9-4-5-3-9-2-3-67"
626 width="160.00002" 661 width="140"
627 height="45.000004" 662 height="45.000004"
628 x="959.99994" 663 x="1163.6425"
629 y="-120" 664 y="-382.27469"
630 ry="2.2558987" /> 665 ry="2.2558987" />
631 <text 666 <text
632 xml:space="preserve" 667 xml:space="preserve"
633 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 668 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
634 x="1008.4941" 669 x="1214.9716"
635 y="-100.605" 670 y="-363.89413"
636 id="text1185-3-55-4-0-0-0"><tspan 671 id="text1185-3-55-4-0-0-0-1-1-6-4-3-53"><tspan
637 sodipodi:role="line" 672 sodipodi:role="line"
638 x="1008.4941" 673 x="1214.9716"
639 y="-100.605" 674 y="-363.89413"
640 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 675 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
641 id="tspan957-2-8-6-3-9">Langdale</tspan><tspan 676 id="tspan957-2-8-6-3-9-7-4-2-0-5-5">Whinlatter</tspan><tspan
642 sodipodi:role="line" 677 sodipodi:role="line"
643 x="1008.4941" 678 x="1214.9716"
644 y="-82.608322" 679 y="-345.89746"
645 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 680 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
646 id="tspan10317-2-9-1">4.1</tspan></text> 681 id="tspan10317-2-9-1-4-6-5-6-6-6">5.3</tspan></text>
647 <rect 682 <rect
648 style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 683 style="opacity:0.75;fill:#251f32;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:5.29752;stroke-opacity:1"
649 id="rect917-0-0-4-4-9-4-5" 684 id="rect917-0-0-4-4-9-4-5-3-9-2-3-67-6"
650 width="140.00003" 685 width="982.23163"
651 height="45.000004" 686 height="45.000004"
652 x="1100" 687 x="1283.7023"
653 y="-175.00003" 688 y="-436.77539"
654 ry="2.2558987" /> 689 ry="2.2558987" />
655 <text 690 <text
656 xml:space="preserve" 691 xml:space="preserve"
657 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 692 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
658 x="1156.057" 693 x="1335.1118"
659 y="-155.49881" 694 y="-418.39484"
660 id="text1185-3-55-4-0-0-0-1"><tspan 695 id="text1185-3-55-4-0-0-0-1-1-6-4-3-53-0"><tspan
661 sodipodi:role="line" 696 sodipodi:role="line"
662 x="1156.057" 697 x="1335.1118"
663 y="-155.49881" 698 y="-418.39484"
664 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 699 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
665 id="tspan957-2-8-6-3-9-7">Mickledore</tspan><tspan 700 id="tspan957-2-8-6-3-9-7-4-2-0-5-5-6">Wrynose</tspan><tspan
666 sodipodi:role="line" 701 sodipodi:role="line"
667 x="1156.057" 702 x="1335.1118"
668 y="-137.50214" 703 y="-400.39816"
669 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 704 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
670 id="tspan10317-2-9-1-4">4.2</tspan></text> 705 id="tspan10317-2-9-1-4-6-5-6-6-6-2">6.0</tspan></text>
671 <g 706 <g
672 id="g1379"> 707 id="g1591"
708 transform="translate(-516.59566,64.000598)">
673 <rect 709 <rect
674 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 710 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
675 id="rect917-0-0-4-4-9-4-5-38" 711 id="rect917-0-0-4-4-9-9"
676 width="140.00003" 712 width="960.00012"
677 height="45.000004" 713 height="45.000004"
678 x="1220" 714 x="859.99994"
679 y="-230.00005" 715 y="-64.999992"
680 ry="2.2558987" /> 716 ry="2.2558987" />
681 <text 717 <text
682 xml:space="preserve" 718 xml:space="preserve"
683 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 719 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
684 x="1269.2329" 720 x="928.49872"
685 y="-210.32925" 721 y="-45.648258"
686 id="text1185-3-55-4-0-0-0-1-1"><tspan 722 id="text1185-3-55-4-0-0-9"><tspan
687 sodipodi:role="line" 723 sodipodi:role="line"
688 x="1269.2329" 724 x="928.49872"
689 y="-210.32925" 725 y="-45.648258"
690 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 726 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
691 id="tspan957-2-8-6-3-9-7-4">Nanbield</tspan><tspan 727 id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
692 sodipodi:role="line" 728 sodipodi:role="line"
693 x="1269.2329" 729 x="928.49872"
694 y="-192.33258" 730 y="-27.651579"
695 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 731 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
696 id="tspan10317-2-9-1-4-6">4.3</tspan></text> 732 id="tspan10317-2-9-0">4.0</tspan></text>
697 </g> 733 </g>
698 <rect 734 <path
699 style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 735 id="rect917-0-0-4-4-9-9-9"
700 id="rect917-0-0-4-4-9-4-5-3-9"
701 width="979.99994"
702 height="45.000004"
703 x="1320"
704 y="-285.00003"
705 ry="2.2558987" />
706 <text
707 xml:space="preserve"
708 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
709 x="1373.233"
710 y="-265.32928"
711 id="text1185-3-55-4-0-0-0-1-1-6"><tspan
712 sodipodi:role="line"
713 x="1373.233"
714 y="-265.32928"
715 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
716 id="tspan957-2-8-6-3-9-7-4-2">Scarthgap</tspan><tspan
717 sodipodi:role="line"
718 x="1373.233"
719 y="-247.33261"
720 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
721 id="tspan10317-2-9-1-4-6-5">5.0</tspan></text>
722 <rect
723 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1" 736 style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
724 id="rect917-0-0-4-4-9-9" 737 d="m 805.70584,-220.99944 c -1.2753,0 -2.302,1.00609 -2.302,2.25586 v 40.48828 c 0,1.24977 1.0267,2.25586 2.302,2.25586 H 1780.747 c 1.2754,0 2.302,-1.00609 2.302,-2.25586 v -40.48828 c 0,-1.24977 -1.0266,-2.25586 -2.302,-2.25586 z" />
725 width="960.00012"
726 height="45.000004"
727 x="859.99994"
728 y="-64.999992"
729 ry="2.2558987" />
730 <text 738 <text
731 xml:space="preserve" 739 xml:space="preserve"
732 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 740 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
733 x="928.49872" 741 x="873.90314"
734 y="-45.648258" 742 y="-201.64772"
735 id="text1185-3-55-4-0-0-9"><tspan 743 id="text1185-3-55-4-0-0-9-0"><tspan
736 sodipodi:role="line"
737 x="928.49872"
738 y="-45.648258"
739 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
740 id="tspan957-2-8-6-3-6">Kirkstone (LTS)</tspan><tspan
741 sodipodi:role="line" 744 sodipodi:role="line"
742 x="928.49872" 745 x="873.90314"
743 y="-27.651579" 746 y="-201.64772"
744 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 747 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
745 id="tspan10317-2-9-0">4.0</tspan></text> 748 id="tspan957-2-8-6-3-6-8">Scarthgap (LTS)</tspan><tspan
746 <text
747 xml:space="preserve"
748 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
749 x="653.72168"
750 y="64.866302"
751 id="text1185-3-55-4-0-0-7"><tspan
752 sodipodi:role="line" 749 sodipodi:role="line"
753 x="653.72168" 750 x="873.90314"
754 y="64.866302" 751 y="-183.65105"
755 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none" 752 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
756 id="tspan957-2-8-6-3-2">Hardknott </tspan><tspan 753 id="tspan10317-2-9-0-1">5.0</tspan></text>
757 sodipodi:role="line"
758 x="653.72168"
759 y="82.862984"
760 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
761 id="tspan10317-2-9-8">3.3</tspan></text>
762 <g 754 <g
763 id="g1125-0" 755 id="g1125-0"
764 transform="matrix(0.42240595,0,0,0.41654472,354.53445,-399.96314)" 756 transform="matrix(0.42240595,0,0,0.41654472,330.77064,-497.11721)"
765 style="stroke:none;stroke-width:2.38399"> 757 style="stroke:none;stroke-width:2.38399">
766 <rect 758 <rect
767 style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.76797;stroke-opacity:1" 759 style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.76797;stroke-opacity:1"
@@ -850,234 +842,149 @@
850 <text 842 <text
851 xml:space="preserve" 843 xml:space="preserve"
852 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 844 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
853 x="1199.6055" 845 x="683.00983"
854 y="250.21216" 846 y="94.212761"
855 id="text1185-9-7-1-1"><tspan 847 id="text1185-9-7-1-1"><tspan
856 sodipodi:role="line" 848 sodipodi:role="line"
857 x="1199.6055" 849 x="683.00983"
858 y="250.21216" 850 y="94.212761"
859 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 851 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
860 id="tspan31345">Oct.</tspan><tspan 852 id="tspan31345">Oct.</tspan><tspan
861 sodipodi:role="line" 853 sodipodi:role="line"
862 x="1199.6055" 854 x="683.00983"
863 y="268.20883" 855 y="112.20944"
864 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 856 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
865 id="tspan49906">2023</tspan></text> 857 id="tspan49906">2023</tspan></text>
866 <text 858 <text
867 xml:space="preserve" 859 xml:space="preserve"
868 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 860 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
869 x="1439.3904" 861 x="922.79474"
870 y="249.86044" 862 y="93.861046"
871 id="text1185-9-7-1-1-89"><tspan 863 id="text1185-9-7-1-1-89"><tspan
872 sodipodi:role="line" 864 sodipodi:role="line"
873 x="1439.3904" 865 x="922.79474"
874 y="249.86044" 866 y="93.861046"
875 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 867 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
876 id="tspan31345-7">Oct.</tspan><tspan 868 id="tspan31345-7">Oct.</tspan><tspan
877 sodipodi:role="line" 869 sodipodi:role="line"
878 x="1439.3904" 870 x="922.79474"
879 y="267.85712" 871 y="111.85773"
880 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 872 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
881 id="tspan49906-76">2024</tspan></text> 873 id="tspan49906-76">2024</tspan></text>
882 <text 874 <text
883 xml:space="preserve" 875 xml:space="preserve"
884 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 876 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
885 x="1679.3094" 877 x="1162.7139"
886 y="250.58356" 878 y="94.58416"
887 id="text1185-9-7-1-1-89-6"><tspan 879 id="text1185-9-7-1-1-89-6"><tspan
888 sodipodi:role="line" 880 sodipodi:role="line"
889 x="1679.3094" 881 x="1162.7139"
890 y="250.58356" 882 y="94.58416"
891 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 883 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
892 id="tspan31345-7-8">Oct.</tspan><tspan 884 id="tspan31345-7-8">Oct.</tspan><tspan
893 sodipodi:role="line" 885 sodipodi:role="line"
894 x="1679.3094" 886 x="1162.7139"
895 y="268.58023" 887 y="112.58084"
896 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 888 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
897 id="tspan49906-76-0">2025</tspan></text> 889 id="tspan49906-76-0">2025</tspan></text>
898 <text 890 <text
899 xml:space="preserve" 891 xml:space="preserve"
900 style="font-weight:bold;font-size:6.66667px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
901 x="849.49744"
902 y="61.106953"
903 id="text1185-9-7-1-1-0"><tspan
904 sodipodi:role="line"
905 x="849.49744"
906 y="61.106953"
907 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.66667px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;fill:#fffefe;fill-opacity:1;stroke:none"
908 id="tspan46212">Support for this version was extended to leave</tspan><tspan
909 sodipodi:role="line"
910 x="849.49744"
911 y="70.105324"
912 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.66667px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;fill:#fffefe;fill-opacity:1;stroke:none"
913 id="tspan120364">users more time to adapt to override syntax</tspan><tspan
914 sodipodi:role="line"
915 x="849.49744"
916 y="79.103691"
917 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.66667px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:end;text-anchor:end;fill:#fffefe;fill-opacity:1;stroke:none"
918 id="tspan123280">changes in the 3.4 release.</tspan></text>
919 <text
920 xml:space="preserve"
921 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 892 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
922 x="959.52008" 893 x="442.92441"
923 y="250.67822" 894 y="94.678825"
924 id="text1185-9-7-1-1-0-7"><tspan 895 id="text1185-9-7-1-1-0-7"><tspan
925 sodipodi:role="line" 896 sodipodi:role="line"
926 x="959.52008" 897 x="442.92441"
927 y="250.67822" 898 y="94.678825"
928 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 899 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
929 id="tspan31345-42-7">Oct.</tspan><tspan 900 id="tspan31345-42-7">Oct.</tspan><tspan
930 sodipodi:role="line" 901 sodipodi:role="line"
931 x="959.52008" 902 x="442.92441"
932 y="268.6749" 903 y="112.67551"
933 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 904 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
934 id="tspan49906-9-6">2022</tspan></text> 905 id="tspan49906-9-6">2022</tspan></text>
935 <text 906 <text
936 xml:space="preserve" 907 xml:space="preserve"
937 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 908 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
938 x="719.13617" 909 x="324.32913"
939 y="250.21216" 910 y="94.076042"
940 id="text1185-9-7-1-1-2"><tspan
941 sodipodi:role="line"
942 x="719.13617"
943 y="250.21216"
944 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
945 id="tspan31345-1">Oct.</tspan><tspan
946 sodipodi:role="line"
947 x="719.13617"
948 y="268.20883"
949 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
950 id="tspan49906-5">2021</tspan></text>
951 <text
952 xml:space="preserve"
953 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
954 x="478.82367"
955 y="250.21216"
956 id="text1185-9-7-1-1-80"><tspan
957 sodipodi:role="line"
958 x="478.82367"
959 y="250.21216"
960 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
961 id="tspan31345-5">Oct.</tspan><tspan
962 sodipodi:role="line"
963 x="478.82367"
964 y="268.20883"
965 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
966 id="tspan49906-6">2020</tspan></text>
967 <text
968 xml:space="preserve"
969 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
970 x="361.81961"
971 y="250.07544"
972 id="text1185-9-7-1-1-8"><tspan
973 sodipodi:role="line"
974 x="361.81961"
975 y="250.07544"
976 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
977 id="tspan31345-4">Apr.</tspan><tspan
978 sodipodi:role="line"
979 x="361.81961"
980 y="268.07211"
981 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
982 id="tspan49906-7">2020</tspan></text>
983 <text
984 xml:space="preserve"
985 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
986 x="840.9248"
987 y="250.07544"
988 id="text1185-9-7-1-1-8-1"><tspan 911 id="text1185-9-7-1-1-8-1"><tspan
989 sodipodi:role="line" 912 sodipodi:role="line"
990 x="840.9248" 913 x="324.32913"
991 y="250.07544" 914 y="94.076042"
992 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 915 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
993 id="tspan31345-4-0">Apr</tspan><tspan 916 id="tspan31345-4-0">Apr</tspan><tspan
994 sodipodi:role="line" 917 sodipodi:role="line"
995 x="840.9248" 918 x="324.32913"
996 y="268.07211" 919 y="112.07272"
997 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 920 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
998 id="tspan49906-7-3">2022</tspan></text> 921 id="tspan49906-7-3">2022</tspan></text>
999 <text 922 <text
1000 xml:space="preserve" 923 xml:space="preserve"
1001 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 924 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1002 x="1321.8608" 925 x="805.2652"
1003 y="250.07544" 926 y="94.076042"
1004 id="text1185-9-7-1-1-8-1-0"><tspan 927 id="text1185-9-7-1-1-8-1-0"><tspan
1005 sodipodi:role="line" 928 sodipodi:role="line"
1006 x="1321.8608" 929 x="805.2652"
1007 y="250.07544" 930 y="94.076042"
1008 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 931 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1009 id="tspan31345-4-0-4">Apr.</tspan><tspan 932 id="tspan31345-4-0-4">Apr.</tspan><tspan
1010 sodipodi:role="line" 933 sodipodi:role="line"
1011 x="1321.8608" 934 x="805.2652"
1012 y="268.07211" 935 y="112.07272"
1013 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 936 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1014 id="tspan49906-7-3-8">2024</tspan></text> 937 id="tspan49906-7-3-8">2024</tspan></text>
1015 <text 938 <text
1016 xml:space="preserve" 939 xml:space="preserve"
1017 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 940 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1018 x="1561.8163" 941 x="1045.2207"
1019 y="249.66977" 942 y="93.670372"
1020 id="text1185-9-7-1-1-8-1-0-4"><tspan 943 id="text1185-9-7-1-1-8-1-0-4"><tspan
1021 sodipodi:role="line" 944 sodipodi:role="line"
1022 x="1561.8163" 945 x="1045.2207"
1023 y="249.66977" 946 y="93.670372"
1024 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 947 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1025 id="tspan31345-4-0-4-81">Apr.</tspan><tspan 948 id="tspan31345-4-0-4-81">Apr.</tspan><tspan
1026 sodipodi:role="line" 949 sodipodi:role="line"
1027 x="1561.8163" 950 x="1045.2207"
1028 y="267.66644" 951 y="111.66705"
1029 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 952 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1030 id="tspan49906-7-3-8-2">2025</tspan></text> 953 id="tspan49906-7-3-8-2">2025</tspan></text>
1031 <text 954 <text
1032 xml:space="preserve" 955 xml:space="preserve"
1033 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 956 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1034 x="1802.1477" 957 x="1285.5521"
1035 y="250.26334" 958 y="94.263939"
1036 id="text1185-9-7-1-1-8-1-0-4-2"><tspan 959 id="text1185-9-7-1-1-8-1-0-4-2"><tspan
1037 sodipodi:role="line" 960 sodipodi:role="line"
1038 x="1802.1477" 961 x="1285.5521"
1039 y="250.26334" 962 y="94.263939"
1040 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 963 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1041 id="tspan31345-4-0-4-81-5">Apr.</tspan><tspan 964 id="tspan31345-4-0-4-81-5">Apr.</tspan><tspan
1042 sodipodi:role="line" 965 sodipodi:role="line"
1043 x="1802.1477" 966 x="1285.5521"
1044 y="268.26001" 967 y="112.26062"
1045 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 968 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1046 id="tspan49906-7-3-8-2-8">2026</tspan></text> 969 id="tspan49906-7-3-8-2-8">2026</tspan></text>
1047 <text 970 <text
1048 xml:space="preserve" 971 xml:space="preserve"
1049 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 972 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1050 x="1081.4458" 973 x="564.85016"
1051 y="250.07544" 974 y="94.076042"
1052 id="text1185-9-7-1-1-8-1-0-2"><tspan 975 id="text1185-9-7-1-1-8-1-0-2"><tspan
1053 sodipodi:role="line" 976 sodipodi:role="line"
1054 x="1081.4458" 977 x="564.85016"
1055 y="250.07544" 978 y="94.076042"
1056 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 979 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1057 id="tspan31345-4-0-4-8">Apr.</tspan><tspan 980 id="tspan31345-4-0-4-8">Apr.</tspan><tspan
1058 sodipodi:role="line" 981 sodipodi:role="line"
1059 x="1081.4458" 982 x="564.85016"
1060 y="268.07211" 983 y="112.07272"
1061 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 984 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1062 id="tspan49906-7-3-8-3">2023</tspan></text> 985 id="tspan49906-7-3-8-3">2023</tspan></text>
1063 <text 986 <text
1064 xml:space="preserve" 987 xml:space="preserve"
1065 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1066 x="602.51526"
1067 y="250.07544"
1068 id="text1185-9-7-1-1-8-1-7"><tspan
1069 sodipodi:role="line"
1070 x="602.51526"
1071 y="250.07544"
1072 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1073 id="tspan31345-4-0-5">Apr.</tspan><tspan
1074 sodipodi:role="line"
1075 x="602.51526"
1076 y="268.07211"
1077 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1078 id="tspan49906-7-3-6">2021</tspan></text>
1079 <text
1080 xml:space="preserve"
1081 style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 988 style="font-weight:bold;font-size:42.5884px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1082 x="-16.290483" 989 x="-16.290483"
1083 y="345.7359" 990 y="345.7359"
@@ -1088,252 +995,117 @@
1088 y="345.7359" /></text> 995 y="345.7359" /></text>
1089 <path 996 <path
1090 id="path29430" 997 id="path29430"
1091 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 998 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.99503;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1092 d="M 319.99936,219.99912 H 2300 Z" /> 999 d="M 307.54809,63.999718 H 2277.72 Z" />
1093 <path
1094 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1095 d="m 360,219.99997 v 10.00004 0"
1096 id="path29548" />
1097 <path
1098 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1099 d="m 480,219.99996 v 10 0"
1100 id="path29548-5" />
1101 <path 1000 <path
1102 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1001 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1103 d="m 600,219.99992 v 10.00005 0" 1002 d="m 323.40434,64.000618 v 9.99995 0"
1104 id="path29548-5-1" />
1105 <path
1106 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1107 d="m 720,220.00002 v 9.99999 0"
1108 id="path29548-5-1-3" />
1109 <path
1110 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1111 d="m 840,220.00002 v 9.99995 0"
1112 id="path29548-5-1-3-6" /> 1003 id="path29548-5-1-3-6" />
1113 <path 1004 <path
1114 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1005 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1115 d="m 960,220.00002 v 9.99999 0" 1006 d="m 443.40434,64.000618 v 9.99999 0"
1116 id="path29548-5-1-3-6-3" /> 1007 id="path29548-5-1-3-6-3" />
1117 <path 1008 <path
1118 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1009 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1119 d="m 1080,220.00002 v 9.99999 0" 1010 d="m 563.40434,64.000618 v 9.99999 0"
1120 id="path29548-5-1-3-6-3-1" /> 1011 id="path29548-5-1-3-6-3-1" />
1121 <path 1012 <path
1122 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1013 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1123 d="m 380,219.99997 v 5.00004 0" 1014 d="m 343.40434,64.000568 v 5.00004 0"
1124 id="path29548-8"
1125 inkscape:transform-center-x="14.782001"
1126 inkscape:transform-center-y="-0.085282837" />
1127 <path
1128 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1129 d="m 400,219.99997 v 5.00004 0"
1130 id="path29548-8-5"
1131 inkscape:transform-center-x="14.782001"
1132 inkscape:transform-center-y="-0.085282837" />
1133 <path
1134 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1135 d="m 420,219.99997 v 5 0"
1136 id="path29548-8-5-0"
1137 inkscape:transform-center-x="14.782001"
1138 inkscape:transform-center-y="-0.085282155" />
1139 <path
1140 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1141 d="m 440,219.99997 v 5 0"
1142 id="path29548-8-5-0-6"
1143 inkscape:transform-center-x="14.782001"
1144 inkscape:transform-center-y="-0.085282155" />
1145 <path
1146 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1147 d="m 460,219.99997 v 5.00004 0"
1148 id="path29548-8-5-0-6-4-6"
1149 inkscape:transform-center-x="14.782001"
1150 inkscape:transform-center-y="-0.085282837" />
1151 <path
1152 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1153 d="m 500,219.99997 v 5.00004 0"
1154 id="path29548-8-5-0-6-4-6-2"
1155 inkscape:transform-center-x="14.782001"
1156 inkscape:transform-center-y="-0.085282837" />
1157 <path
1158 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.999997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1159 d="m 520,219.99997 v 5 0"
1160 id="path29548-8-5-0-6-4-6-2-9"
1161 inkscape:transform-center-x="14.782001"
1162 inkscape:transform-center-y="-0.085282155" />
1163 <path
1164 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1165 d="m 540,219.99997 v 5.00004 0"
1166 id="path29548-8-5-0-6-4-6-2-9-0"
1167 inkscape:transform-center-x="14.782001"
1168 inkscape:transform-center-y="-0.085282837" />
1169 <path
1170 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1171 d="m 560,219.99997 v 5.00004 0"
1172 id="path29548-8-5-0-6-4-6-2-9-0-8"
1173 inkscape:transform-center-x="14.782001"
1174 inkscape:transform-center-y="-0.085282837" />
1175 <path
1176 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1177 d="m 580,219.99997 v 5.00004 0"
1178 id="path29548-8-5-0-6-4-6-2-9-0-8-1"
1179 inkscape:transform-center-x="14.782001"
1180 inkscape:transform-center-y="-0.085282837" />
1181 <path
1182 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1183 d="m 620.266,219.99997 v 5.00004 0"
1184 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3"
1185 inkscape:transform-center-x="14.782001"
1186 inkscape:transform-center-y="-0.085282837" />
1187 <path
1188 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1189 d="m 640,219.99997 v 5.00004 0"
1190 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1"
1191 inkscape:transform-center-x="14.782001"
1192 inkscape:transform-center-y="-0.085282837" />
1193 <path
1194 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1195 d="m 660,219.99997 v 5.00004 0"
1196 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9"
1197 inkscape:transform-center-x="14.782001"
1198 inkscape:transform-center-y="-0.085282837" />
1199 <path
1200 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1201 d="m 679.61073,219.99997 v 5.00004 0"
1202 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6"
1203 inkscape:transform-center-x="14.782001"
1204 inkscape:transform-center-y="-0.085282837" />
1205 <path
1206 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1207 d="m 700,219.99997 v 5.00004 0"
1208 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9"
1209 inkscape:transform-center-x="14.782001"
1210 inkscape:transform-center-y="-0.085282837" />
1211 <path
1212 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1213 d="m 740,219.99997 v 5.00004 0"
1214 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3"
1215 inkscape:transform-center-x="14.782001"
1216 inkscape:transform-center-y="-0.085282837" />
1217 <path
1218 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1219 d="m 760,219.99997 v 5.00004 0"
1220 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4"
1221 inkscape:transform-center-x="14.782001"
1222 inkscape:transform-center-y="-0.085282837" />
1223 <path
1224 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1225 d="m 780.36587,219.99997 v 5.00004 0"
1226 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0"
1227 inkscape:transform-center-x="14.782001"
1228 inkscape:transform-center-y="-0.085282837" />
1229 <path
1230 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1231 d="m 800,219.99997 v 5.00004 0"
1232 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4"
1233 inkscape:transform-center-x="14.782001"
1234 inkscape:transform-center-y="-0.085282837" />
1235 <path
1236 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1237 d="m 820,219.99997 v 5.00004 0"
1238 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6"
1239 inkscape:transform-center-x="14.782001"
1240 inkscape:transform-center-y="-0.085282837" />
1241 <path
1242 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1243 d="m 860,219.99997 v 5.00004 0"
1244 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2" 1015 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2"
1245 inkscape:transform-center-x="14.782001" 1016 inkscape:transform-center-x="14.782001"
1246 inkscape:transform-center-y="-0.085282837" /> 1017 inkscape:transform-center-y="-0.085282837" />
1247 <path 1018 <path
1248 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1019 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1249 d="m 880,219.99997 v 5.00004 0" 1020 d="m 363.40434,64.000568 v 5.00004 0"
1250 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2" 1021 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2"
1251 inkscape:transform-center-x="14.782001" 1022 inkscape:transform-center-x="14.782001"
1252 inkscape:transform-center-y="-0.085282837" /> 1023 inkscape:transform-center-y="-0.085282837" />
1253 <path 1024 <path
1254 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1025 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1255 d="m 899.72384,219.99997 v 5.00004 0" 1026 d="m 383.12818,64.000568 v 5.00004 0"
1256 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7" 1027 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7"
1257 inkscape:transform-center-x="14.782001" 1028 inkscape:transform-center-x="14.782001"
1258 inkscape:transform-center-y="-0.085282837" /> 1029 inkscape:transform-center-y="-0.085282837" />
1259 <path 1030 <path
1260 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1031 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1261 d="m 920,219.99997 v 5.00004 0" 1032 d="m 403.40434,64.000568 v 5.00004 0"
1262 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6" 1033 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6"
1263 inkscape:transform-center-x="14.782001" 1034 inkscape:transform-center-x="14.782001"
1264 inkscape:transform-center-y="-0.085282837" /> 1035 inkscape:transform-center-y="-0.085282837" />
1265 <path 1036 <path
1266 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1037 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1267 d="m 940,219.99997 v 5.00004 0" 1038 d="m 423.40434,64.000568 v 5.00004 0"
1268 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1" 1039 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1"
1269 inkscape:transform-center-x="14.782001" 1040 inkscape:transform-center-x="14.782001"
1270 inkscape:transform-center-y="-0.085282837" /> 1041 inkscape:transform-center-y="-0.085282837" />
1271 <path 1042 <path
1272 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1043 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1273 d="m 980,219.99997 v 5.00004 0" 1044 d="m 463.40434,64.000568 v 5.00004 0"
1274 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9" 1045 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9"
1275 inkscape:transform-center-x="14.782001" 1046 inkscape:transform-center-x="14.782001"
1276 inkscape:transform-center-y="-0.085282837" /> 1047 inkscape:transform-center-y="-0.085282837" />
1277 <path 1048 <path
1278 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1049 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1279 d="m 1000,219.99997 v 5.00004 0" 1050 d="m 483.40434,64.000568 v 5.00004 0"
1280 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9" 1051 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9"
1281 inkscape:transform-center-x="14.782001" 1052 inkscape:transform-center-x="14.782001"
1282 inkscape:transform-center-y="-0.085282837" /> 1053 inkscape:transform-center-y="-0.085282837" />
1283 <path 1054 <path
1284 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1055 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1285 d="m 1020,219.99997 v 5.00004 0" 1056 d="m 503.40434,64.000568 v 5.00004 0"
1286 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1" 1057 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1"
1287 inkscape:transform-center-x="14.782001" 1058 inkscape:transform-center-x="14.782001"
1288 inkscape:transform-center-y="-0.085282837" /> 1059 inkscape:transform-center-y="-0.085282837" />
1289 <path 1060 <path
1290 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1061 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1291 d="m 1040,219.99997 v 5.00004 0" 1062 d="m 523.40434,64.000568 v 5.00004 0"
1292 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4" 1063 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4"
1293 inkscape:transform-center-x="14.782001" 1064 inkscape:transform-center-x="14.782001"
1294 inkscape:transform-center-y="-0.085282837" /> 1065 inkscape:transform-center-y="-0.085282837" />
1295 <path 1066 <path
1296 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1067 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1297 d="m 1059.7216,219.99997 v 5.00004 0" 1068 d="m 543.12594,64.000568 v 5.00004 0"
1298 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9" 1069 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9"
1299 inkscape:transform-center-x="-14.78205" 1070 inkscape:transform-center-x="-14.78205"
1300 inkscape:transform-center-y="-0.085282837" /> 1071 inkscape:transform-center-y="-0.085282837" />
1301 <path 1072 <path
1302 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1073 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1303 d="m 1100,219.99997 v 5.00004 0" 1074 d="m 583.40434,64.000568 v 5.00004 0"
1304 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0" 1075 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0"
1305 inkscape:transform-center-x="14.782001" 1076 inkscape:transform-center-x="14.782001"
1306 inkscape:transform-center-y="-0.085282837" /> 1077 inkscape:transform-center-y="-0.085282837" />
1307 <path 1078 <path
1308 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1079 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1309 d="m 1120,219.99997 v 5.00004 0" 1080 d="m 603.40434,64.000568 v 5.00004 0"
1310 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7" 1081 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7"
1311 inkscape:transform-center-x="14.782001" 1082 inkscape:transform-center-x="14.782001"
1312 inkscape:transform-center-y="-0.085282837" /> 1083 inkscape:transform-center-y="-0.085282837" />
1313 <path 1084 <path
1314 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1085 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1315 d="m 1140,219.99997 v 5.00004 0" 1086 d="m 623.40434,64.000568 v 5.00004 0"
1316 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5" 1087 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5"
1317 inkscape:transform-center-x="14.782001" 1088 inkscape:transform-center-x="14.782001"
1318 inkscape:transform-center-y="-0.085282837" /> 1089 inkscape:transform-center-y="-0.085282837" />
1319 <path 1090 <path
1320 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1091 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1321 d="m 1160,219.99997 v 5.00004 0" 1092 d="m 643.40434,64.000568 v 5.00004 0"
1322 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8" 1093 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8"
1323 inkscape:transform-center-x="14.782001" 1094 inkscape:transform-center-x="14.782001"
1324 inkscape:transform-center-y="-0.085282837" /> 1095 inkscape:transform-center-y="-0.085282837" />
1325 <path 1096 <path
1326 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1097 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1327 d="m 1179.7216,219.99997 v 5.00004 0" 1098 d="m 663.12594,64.000568 v 5.00004 0"
1328 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7" 1099 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7"
1329 inkscape:transform-center-x="-14.78205" 1100 inkscape:transform-center-x="-14.78205"
1330 inkscape:transform-center-y="-0.085282837" /> 1101 inkscape:transform-center-y="-0.085282837" />
1331 <path 1102 <path
1332 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1103 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1333 d="m 1320,219.99996 v 10 0" 1104 d="m 803.40434,64.000558 v 10 0"
1334 id="path29548-5-1-3-6-3-1-0-8" /> 1105 id="path29548-5-1-3-6-3-1-0-8" />
1335 <g 1106 <g
1336 id="g1267"> 1107 id="g1267"
1108 transform="translate(-516.59566,-155.99941)">
1337 <path 1109 <path
1338 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1110 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1339 d="m 1200,220.00002 v 9.99999 0" 1111 d="m 1200,220.00002 v 9.99999 0"
@@ -1371,7 +1143,7 @@
1371 </g> 1143 </g>
1372 <g 1144 <g
1373 id="g1267-4" 1145 id="g1267-4"
1374 transform="translate(240,-4e-5)"> 1146 transform="translate(-276.59566,-155.99945)">
1375 <path 1147 <path
1376 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1148 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1377 d="m 1200,220.00002 v 9.99999 0" 1149 d="m 1200,220.00002 v 9.99999 0"
@@ -1409,7 +1181,7 @@
1409 </g> 1181 </g>
1410 <g 1182 <g
1411 id="g1267-4-5" 1183 id="g1267-4-5"
1412 transform="translate(480,-5e-5)"> 1184 transform="translate(-36.595659,-155.99946)">
1413 <path 1185 <path
1414 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1186 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1415 d="m 1200,220.00002 v 9.99999 0" 1187 d="m 1200,220.00002 v 9.99999 0"
@@ -1447,7 +1219,7 @@
1447 </g> 1219 </g>
1448 <g 1220 <g
1449 id="g1267-4-5-22" 1221 id="g1267-4-5-22"
1450 transform="translate(600,-4e-5)"> 1222 transform="translate(83.404341,-155.99945)">
1451 <path 1223 <path
1452 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1224 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1453 d="m 1200,220.00002 v 9.99999 0" 1225 d="m 1200,220.00002 v 9.99999 0"
@@ -1485,7 +1257,7 @@
1485 </g> 1257 </g>
1486 <g 1258 <g
1487 id="g1267-4-5-9" 1259 id="g1267-4-5-9"
1488 transform="translate(360,-4e-5)"> 1260 transform="translate(-156.59566,-155.99945)">
1489 <path 1261 <path
1490 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1262 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1491 d="m 1200,220.00002 v 9.99999 0" 1263 d="m 1200,220.00002 v 9.99999 0"
@@ -1523,105 +1295,105 @@
1523 </g> 1295 </g>
1524 <path 1296 <path
1525 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1297 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1526 d="m 1800,219.99997 v 9.99999 0" 1298 d="m 1283.4043,64.000568 v 9.99999 0"
1527 id="path29548-5-1-3-6-3-1-0-3-4-2-0" /> 1299 id="path29548-5-1-3-6-3-1-0-3-4-2-0" />
1528 <path 1300 <path
1529 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1301 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1530 d="m 1340,219.99997 v 5.00004 0" 1302 d="m 823.40434,64.000568 v 5.00004 0"
1531 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-3" 1303 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-3"
1532 inkscape:transform-center-x="14.782001" 1304 inkscape:transform-center-x="14.782001"
1533 inkscape:transform-center-y="-0.085282837" /> 1305 inkscape:transform-center-y="-0.085282837" />
1534 <path 1306 <path
1535 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1307 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1536 d="m 1360,219.99997 v 5.00004 0" 1308 d="m 843.40434,64.000568 v 5.00004 0"
1537 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-0" 1309 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-0"
1538 inkscape:transform-center-x="14.782001" 1310 inkscape:transform-center-x="14.782001"
1539 inkscape:transform-center-y="-0.085282837" /> 1311 inkscape:transform-center-y="-0.085282837" />
1540 <path 1312 <path
1541 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1313 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1542 d="m 1380,219.99997 v 5.00004 0" 1314 d="m 863.40434,64.000568 v 5.00004 0"
1543 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-3" 1315 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-3"
1544 inkscape:transform-center-x="14.782001" 1316 inkscape:transform-center-x="14.782001"
1545 inkscape:transform-center-y="-0.085282837" /> 1317 inkscape:transform-center-y="-0.085282837" />
1546 <path 1318 <path
1547 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1319 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1548 d="m 1400,219.99997 v 5.00004 0" 1320 d="m 883.40434,64.000568 v 5.00004 0"
1549 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-0" 1321 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-0"
1550 inkscape:transform-center-x="14.782001" 1322 inkscape:transform-center-x="14.782001"
1551 inkscape:transform-center-y="-0.085282837" /> 1323 inkscape:transform-center-y="-0.085282837" />
1552 <path 1324 <path
1553 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1325 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1554 d="m 1419.7216,219.99997 v 5.00004 0" 1326 d="m 903.12594,64.000568 v 5.00004 0"
1555 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-9" 1327 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-9"
1556 inkscape:transform-center-x="-14.78205" 1328 inkscape:transform-center-x="-14.78205"
1557 inkscape:transform-center-y="-0.085282837" /> 1329 inkscape:transform-center-y="-0.085282837" />
1558 <text 1330 <text
1559 xml:space="preserve" 1331 xml:space="preserve"
1560 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1332 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1561 x="1919.3904" 1333 x="1402.7948"
1562 y="249.86044" 1334 y="93.861046"
1563 id="text1185-9-7-1-1-89-62"><tspan 1335 id="text1185-9-7-1-1-89-62"><tspan
1564 sodipodi:role="line" 1336 sodipodi:role="line"
1565 x="1919.3904" 1337 x="1402.7948"
1566 y="249.86044" 1338 y="93.861046"
1567 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1339 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1568 id="tspan31345-7-6">Oct.</tspan><tspan 1340 id="tspan31345-7-6">Oct.</tspan><tspan
1569 sodipodi:role="line" 1341 sodipodi:role="line"
1570 x="1919.3904" 1342 x="1402.7948"
1571 y="267.85712" 1343 y="111.85773"
1572 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1344 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1573 id="tspan49906-76-7">2026</tspan></text> 1345 id="tspan49906-76-7">2026</tspan></text>
1574 <text 1346 <text
1575 xml:space="preserve" 1347 xml:space="preserve"
1576 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1348 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1577 x="2159.3093" 1349 x="1642.7137"
1578 y="250.58356" 1350 y="94.58416"
1579 id="text1185-9-7-1-1-89-6-5"><tspan 1351 id="text1185-9-7-1-1-89-6-5"><tspan
1580 sodipodi:role="line" 1352 sodipodi:role="line"
1581 x="2159.3093" 1353 x="1642.7137"
1582 y="250.58356" 1354 y="94.58416"
1583 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1355 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1584 id="tspan31345-7-8-6">Oct.</tspan><tspan 1356 id="tspan31345-7-8-6">Oct.</tspan><tspan
1585 sodipodi:role="line" 1357 sodipodi:role="line"
1586 x="2159.3093" 1358 x="1642.7137"
1587 y="268.58023" 1359 y="112.58084"
1588 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1360 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1589 id="tspan49906-76-0-9">2027</tspan></text> 1361 id="tspan49906-76-0-9">2027</tspan></text>
1590 <text 1362 <text
1591 xml:space="preserve" 1363 xml:space="preserve"
1592 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1364 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1593 x="2041.8163" 1365 x="1525.2207"
1594 y="249.66977" 1366 y="93.670372"
1595 id="text1185-9-7-1-1-8-1-0-4-8"><tspan 1367 id="text1185-9-7-1-1-8-1-0-4-8"><tspan
1596 sodipodi:role="line" 1368 sodipodi:role="line"
1597 x="2041.8163" 1369 x="1525.2207"
1598 y="249.66977" 1370 y="93.670372"
1599 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1371 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1600 id="tspan31345-4-0-4-81-7">Apr.</tspan><tspan 1372 id="tspan31345-4-0-4-81-7">Apr.</tspan><tspan
1601 sodipodi:role="line" 1373 sodipodi:role="line"
1602 x="2041.8163" 1374 x="1525.2207"
1603 y="267.66644" 1375 y="111.66705"
1604 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1376 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1605 id="tspan49906-7-3-8-2-2">2027</tspan></text> 1377 id="tspan49906-7-3-8-2-2">2027</tspan></text>
1606 <text 1378 <text
1607 xml:space="preserve" 1379 xml:space="preserve"
1608 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 1380 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1609 x="2282.1477" 1381 x="1765.5521"
1610 y="250.26334" 1382 y="94.263939"
1611 id="text1185-9-7-1-1-8-1-0-4-2-8"><tspan 1383 id="text1185-9-7-1-1-8-1-0-4-2-8"><tspan
1612 sodipodi:role="line" 1384 sodipodi:role="line"
1613 x="2282.1477" 1385 x="1765.5521"
1614 y="250.26334" 1386 y="94.263939"
1615 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1387 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1616 id="tspan31345-4-0-4-81-5-2">Apr.</tspan><tspan 1388 id="tspan31345-4-0-4-81-5-2">Apr.</tspan><tspan
1617 sodipodi:role="line" 1389 sodipodi:role="line"
1618 x="2282.1477" 1390 x="1765.5521"
1619 y="268.26001" 1391 y="112.26062"
1620 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none" 1392 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1621 id="tspan49906-7-3-8-2-8-9">2028</tspan></text> 1393 id="tspan49906-7-3-8-2-8-9">2028</tspan></text>
1622 <g 1394 <g
1623 id="g1267-4-9" 1395 id="g1267-4-9"
1624 transform="translate(720,-3e-5)"> 1396 transform="translate(203.40434,-155.99944)">
1625 <path 1397 <path
1626 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1398 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1627 d="m 1200,220.00002 v 9.99999 0" 1399 d="m 1200,220.00002 v 9.99999 0"
@@ -1659,7 +1431,7 @@
1659 </g> 1431 </g>
1660 <g 1432 <g
1661 id="g1267-4-5-2" 1433 id="g1267-4-5-2"
1662 transform="translate(960,-4e-5)"> 1434 transform="translate(443.40434,-155.99945)">
1663 <path 1435 <path
1664 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1436 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1665 d="m 1200,220.00002 v 9.99999 0" 1437 d="m 1200,220.00002 v 9.99999 0"
@@ -1697,7 +1469,7 @@
1697 </g> 1469 </g>
1698 <g 1470 <g
1699 id="g1267-4-5-9-9" 1471 id="g1267-4-5-9-9"
1700 transform="translate(840,-3e-5)"> 1472 transform="translate(323.40434,-155.99944)">
1701 <path 1473 <path
1702 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1474 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1703 d="m 1200,220.00002 v 9.99999 0" 1475 d="m 1200,220.00002 v 9.99999 0"
@@ -1735,8 +1507,390 @@
1735 </g> 1507 </g>
1736 <path 1508 <path
1737 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 1509 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1738 d="m 2280,219.99998 v 9.99999 0" 1510 d="m 1763.4043,64.000578 v 9.99999 0"
1739 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0" /> 1511 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0" />
1512 <text
1513 xml:space="preserve"
1514 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1515 x="1885.6029"
1516 y="94.285194"
1517 id="text1185-9-7-1-1-8-1-0-4-2-8-2"><tspan
1518 sodipodi:role="line"
1519 x="1885.6029"
1520 y="94.285194"
1521 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1522 id="tspan31345-4-0-4-81-5-2-8">Oct.</tspan><tspan
1523 sodipodi:role="line"
1524 x="1885.6029"
1525 y="112.28188"
1526 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1527 id="tspan49906-7-3-8-2-8-9-9">2028</tspan></text>
1528 <g
1529 id="g1267-4-5-2-7"
1530 transform="translate(563.45518,-155.9782)">
1531 <path
1532 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1533 d="m 1200,220.00002 v 9.99999 0"
1534 id="path29548-5-1-3-6-3-1-0-3-4-1-3" />
1535 <path
1536 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1537 d="m 1220,219.99997 v 5.00004 0"
1538 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5-6"
1539 inkscape:transform-center-x="14.782001"
1540 inkscape:transform-center-y="-0.085282837" />
1541 <path
1542 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1543 d="m 1240,219.99997 v 5.00004 0"
1544 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9-1"
1545 inkscape:transform-center-x="14.782001"
1546 inkscape:transform-center-y="-0.085282837" />
1547 <path
1548 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1549 d="m 1260,219.99997 v 5.00004 0"
1550 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9-2"
1551 inkscape:transform-center-x="14.782001"
1552 inkscape:transform-center-y="-0.085282837" />
1553 <path
1554 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1555 d="m 1280,219.99997 v 5.00004 0"
1556 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1-9"
1557 inkscape:transform-center-x="14.782001"
1558 inkscape:transform-center-y="-0.085282837" />
1559 <path
1560 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1561 d="m 1299.7216,219.99997 v 5.00004 0"
1562 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4-3"
1563 inkscape:transform-center-x="-14.78205"
1564 inkscape:transform-center-y="-0.085282837" />
1565 </g>
1566 <path
1567 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1568 d="m 1883.4551,64.021829 v 9.99999 0"
1569 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0-1" />
1570 <text
1571 xml:space="preserve"
1572 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1573 x="2005.5908"
1574 y="94.339828"
1575 id="text1185-9-7-1-1-8-1-0-4-2-8-2-4"><tspan
1576 sodipodi:role="line"
1577 x="2005.5908"
1578 y="94.339828"
1579 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1580 id="tspan31345-4-0-4-81-5-2-8-7">Apr.</tspan><tspan
1581 sodipodi:role="line"
1582 x="2005.5908"
1583 y="112.33651"
1584 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1585 id="tspan49906-7-3-8-2-8-9-9-8">2029</tspan></text>
1586 <g
1587 id="g1267-4-5-2-7-4"
1588 transform="translate(683.44312,-155.92356)">
1589 <path
1590 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1591 d="m 1200,220.00002 v 9.99999 0"
1592 id="path29548-5-1-3-6-3-1-0-3-4-1-3-5" />
1593 <path
1594 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1595 d="m 1220,219.99997 v 5.00004 0"
1596 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5-6-0"
1597 inkscape:transform-center-x="14.782001"
1598 inkscape:transform-center-y="-0.085282837" />
1599 <path
1600 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1601 d="m 1240,219.99997 v 5.00004 0"
1602 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9-1-3"
1603 inkscape:transform-center-x="14.782001"
1604 inkscape:transform-center-y="-0.085282837" />
1605 <path
1606 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1607 d="m 1260,219.99997 v 5.00004 0"
1608 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9-2-6"
1609 inkscape:transform-center-x="14.782001"
1610 inkscape:transform-center-y="-0.085282837" />
1611 <path
1612 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1613 d="m 1280,219.99997 v 5.00004 0"
1614 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1-9-1"
1615 inkscape:transform-center-x="14.782001"
1616 inkscape:transform-center-y="-0.085282837" />
1617 <path
1618 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1619 d="m 1299.7216,219.99997 v 5.00004 0"
1620 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4-3-0"
1621 inkscape:transform-center-x="-14.78205"
1622 inkscape:transform-center-y="-0.085282837" />
1623 </g>
1624 <path
1625 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1626 d="m 2003.443,64.076464 v 9.99999 0"
1627 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0-1-6" />
1628 <text
1629 xml:space="preserve"
1630 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1631 x="2125.6079"
1632 y="94.692207"
1633 id="text1185-9-7-1-1-8-1-0-4-2-8-2-4-2"><tspan
1634 sodipodi:role="line"
1635 x="2125.6079"
1636 y="94.692207"
1637 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1638 id="tspan31345-4-0-4-81-5-2-8-7-0">Oct.</tspan><tspan
1639 sodipodi:role="line"
1640 x="2125.6079"
1641 y="112.68889"
1642 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1643 id="tspan49906-7-3-8-2-8-9-9-8-6">2029</tspan></text>
1644 <g
1645 id="g1267-4-5-2-7-4-1"
1646 transform="translate(803.46019,-155.57118)">
1647 <path
1648 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1649 d="m 1200,220.00002 v 9.99999 0"
1650 id="path29548-5-1-3-6-3-1-0-3-4-1-3-5-5" />
1651 <path
1652 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1653 d="m 1220,219.99997 v 5.00004 0"
1654 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5-6-0-5"
1655 inkscape:transform-center-x="14.782001"
1656 inkscape:transform-center-y="-0.085282837" />
1657 <path
1658 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1659 d="m 1240,219.99997 v 5.00004 0"
1660 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9-1-3-4"
1661 inkscape:transform-center-x="14.782001"
1662 inkscape:transform-center-y="-0.085282837" />
1663 <path
1664 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1665 d="m 1260,219.99997 v 5.00004 0"
1666 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9-2-6-7"
1667 inkscape:transform-center-x="14.782001"
1668 inkscape:transform-center-y="-0.085282837" />
1669 <path
1670 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1671 d="m 1280,219.99997 v 5.00004 0"
1672 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1-9-1-6"
1673 inkscape:transform-center-x="14.782001"
1674 inkscape:transform-center-y="-0.085282837" />
1675 <path
1676 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1677 d="m 1299.7216,219.99997 v 5.00004 0"
1678 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4-3-0-5"
1679 inkscape:transform-center-x="-14.78205"
1680 inkscape:transform-center-y="-0.085282837" />
1681 </g>
1682 <path
1683 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1684 d="m 2123.4601,64.428843 v 9.99999 0"
1685 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0-1-6-6" />
1686 <path
1687 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1688 d="m 2123.3825,64.223284 v 9.99999 0"
1689 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0-1-6-3" />
1690 <text
1691 xml:space="preserve"
1692 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1693 x="2245.5474"
1694 y="94.839027"
1695 id="text1185-9-7-1-1-8-1-0-4-2-8-2-4-2-7"><tspan
1696 sodipodi:role="line"
1697 x="2245.5474"
1698 y="94.839027"
1699 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1700 id="tspan31345-4-0-4-81-5-2-8-7-0-4">Apr.</tspan><tspan
1701 sodipodi:role="line"
1702 x="2245.5474"
1703 y="112.83571"
1704 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
1705 id="tspan49906-7-3-8-2-8-9-9-8-6-5">2030</tspan></text>
1706 <g
1707 id="g1267-4-5-2-7-4-1-2"
1708 transform="translate(923.39972,-155.42436)">
1709 <path
1710 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1711 d="m 1200,220.00002 v 9.99999 0"
1712 id="path29548-5-1-3-6-3-1-0-3-4-1-3-5-5-5" />
1713 <path
1714 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1715 d="m 1220,219.99997 v 5.00004 0"
1716 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5-6-0-5-4"
1717 inkscape:transform-center-x="14.782001"
1718 inkscape:transform-center-y="-0.085282837" />
1719 <path
1720 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1721 d="m 1240,219.99997 v 5.00004 0"
1722 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9-1-3-4-7"
1723 inkscape:transform-center-x="14.782001"
1724 inkscape:transform-center-y="-0.085282837" />
1725 <path
1726 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1727 d="m 1260,219.99997 v 5.00004 0"
1728 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9-2-6-7-4"
1729 inkscape:transform-center-x="14.782001"
1730 inkscape:transform-center-y="-0.085282837" />
1731 <path
1732 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1733 d="m 1280,219.99997 v 5.00004 0"
1734 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1-9-1-6-4"
1735 inkscape:transform-center-x="14.782001"
1736 inkscape:transform-center-y="-0.085282837" />
1737 <path
1738 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1739 d="m 1299.7216,219.99997 v 5.00004 0"
1740 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4-3-0-5-3"
1741 inkscape:transform-center-x="-14.78205"
1742 inkscape:transform-center-y="-0.085282837" />
1743 </g>
1744 <g
1745 id="g1267-4-5-2-7-4-1-2-0"
1746 transform="translate(1043.3579,-155.33829)">
1747 <path
1748 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1749 d="m 1200,220.00002 v 9.99999 0"
1750 id="path29548-5-1-3-6-3-1-0-3-4-1-3-5-5-5-6" />
1751 <path
1752 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1753 d="m 1220,219.99997 v 5.00004 0"
1754 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5-6-0-5-4-8"
1755 inkscape:transform-center-x="14.782001"
1756 inkscape:transform-center-y="-0.085282837" />
1757 <path
1758 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1759 d="m 1240,219.99997 v 5.00004 0"
1760 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9-1-3-4-7-9"
1761 inkscape:transform-center-x="14.782001"
1762 inkscape:transform-center-y="-0.085282837" />
1763 <path
1764 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1765 d="m 1260,219.99997 v 5.00004 0"
1766 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9-2-6-7-4-2"
1767 inkscape:transform-center-x="14.782001"
1768 inkscape:transform-center-y="-0.085282837" />
1769 <path
1770 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1771 d="m 1280,219.99997 v 5.00004 0"
1772 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1-9-1-6-4-6"
1773 inkscape:transform-center-x="14.782001"
1774 inkscape:transform-center-y="-0.085282837" />
1775 <path
1776 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1777 d="m 1299.7216,219.99997 v 5.00004 0"
1778 id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4-3-0-5-3-6"
1779 inkscape:transform-center-x="-14.78205"
1780 inkscape:transform-center-y="-0.085282837" />
1781 </g>
1782 <path
1783 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
1784 d="m 2243.3996,64.575663 v 9.99999 0"
1785 id="path29548-5-1-3-6-3-1-0-3-4-2-0-0-1-6-6-0" />
1786 <rect
1787 style="opacity:0.75;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.751473;stroke-opacity:1"
1788 id="rect917-0-0-4-4-9-4-5-3-9-2-36"
1789 width="38.418175"
1790 height="23.151052"
1791 x="2047.6135"
1792 y="-45.172161"
1793 ry="1.1605872" />
1794 <rect
1795 style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.98878;stroke-dasharray:none;stroke-opacity:1"
1796 id="rect917-0-0-4-4-9-4-5-3-9-2-36-7"
1797 width="186.42949"
1798 height="110.40546"
1799 x="2036.5294"
1800 y="-77.753708"
1801 ry="5.5347452" />
1802 <rect
1803 style="opacity:0.75;fill:#241f31;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.50949;stroke-opacity:1"
1804 id="rect917-0-0-4-4-9-4-5-3-9-2-6"
1805 width="21.197233"
1806 height="19.28739"
1807 x="2053.8164"
1808 y="-45.883858"
1809 ry="0.96689767" />
1810 <text
1811 xml:space="preserve"
1812 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1813 x="2132.4917"
1814 y="-57.687912"
1815 id="text1185-3-55-4-0-0-0-1-1-6-4-3-5"><tspan
1816 sodipodi:role="line"
1817 x="2132.4917"
1818 y="-57.687912"
1819 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
1820 id="tspan10317-2-9-1-4-6-5-6-6-5">Legend</tspan></text>
1821 <text
1822 xml:space="preserve"
1823 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1824 x="2098.0986"
1825 y="-31.899874"
1826 id="text1185-3-55-4-0-0-0-1-1-6-4-3-5-2"><tspan
1827 sodipodi:role="line"
1828 x="2098.0986"
1829 y="-31.899874"
1830 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
1831 id="tspan10317-2-9-1-4-6-5-6-6-5-9">Future</tspan></text>
1832 <rect
1833 style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.50949;stroke-opacity:1"
1834 id="rect917-0-0-4-4-9-4-5-3-9-2-6-1"
1835 width="21.197233"
1836 height="19.28739"
1837 x="2053.8672"
1838 y="-21.756365"
1839 ry="0.96689767" />
1840 <text
1841 xml:space="preserve"
1842 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1843 x="2128.7158"
1844 y="-7.6722765"
1845 id="text1185-3-55-4-0-0-0-1-1-6-4-3-5-2-2"><tspan
1846 sodipodi:role="line"
1847 x="2128.7158"
1848 y="-7.6722765"
1849 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
1850 id="tspan10317-2-9-1-4-6-5-6-6-5-9-7">Current (Apr. 25)</tspan></text>
1851 <text
1852 xml:space="preserve"
1853 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1854 x="2109.363"
1855 y="16.03771"
1856 id="text1185-3-55-4-0-0-0-1-1-6-4-3-5-2-2-9"><tspan
1857 sodipodi:role="line"
1858 x="2109.363"
1859 y="16.03771"
1860 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
1861 id="tspan10317-2-9-1-4-6-5-6-6-5-9-7-3">End-of-life</tspan></text>
1862 <rect
1863 style="opacity:0.5;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.50949;stroke-opacity:1"
1864 id="rect917-0-0-4-4-9-4-5-3-9-2-6-1-0"
1865 width="21.197233"
1866 height="19.28739"
1867 x="2054.0239"
1868 y="1.9667883"
1869 ry="0.96689767" />
1870 <rect
1871 style="opacity:0.5;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.85786;stroke-opacity:1"
1872 id="rect917-0-0-4-4-9-4-5-6"
1873 width="120.80748"
1874 height="45.000004"
1875 x="703.10553"
1876 y="-165.72791"
1877 ry="2.2558987" />
1878 <text
1879 xml:space="preserve"
1880 style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1881 x="752.16809"
1882 y="-147.18787"
1883 id="text1185-3-55-4-0-0-0-1-2"><tspan
1884 sodipodi:role="line"
1885 x="752.16809"
1886 y="-147.18787"
1887 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
1888 id="tspan1">Nanbield</tspan><tspan
1889 sodipodi:role="line"
1890 x="752.16809"
1891 y="-129.19119"
1892 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
1893 id="tspan2">4.3</tspan></text>
1740 </g> 1894 </g>
1741 <style 1895 <style
1742 type="text/css" 1896 type="text/css"
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 0fc92550a5..14b635013b 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -58,24 +58,34 @@ Supported Linux Distributions
58Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is 58Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is
59supported on the following distributions: 59supported on the following distributions:
60 60
61- Ubuntu 20.04 (LTS)
62
63- Ubuntu 22.04 (LTS) 61- Ubuntu 22.04 (LTS)
64 62
65- Fedora 38 63- Ubuntu 24.04 (LTS)
64
65- Ubuntu 24.10
66
67- Fedora 39
66 68
67- CentOS Stream 8 69- Fedora 40
70
71- Fedora 41
72
73- CentOS Stream 9
68 74
69- Debian GNU/Linux 11 (Bullseye) 75- Debian GNU/Linux 11 (Bullseye)
70 76
71- Debian GNU/Linux 12 (Bookworm) 77- Debian GNU/Linux 12 (Bookworm)
72 78
73- OpenSUSE Leap 15.4 79- OpenSUSE Leap 15.5
80
81- OpenSUSE Leap 15.6
74 82
75- AlmaLinux 8 83- AlmaLinux 8
76 84
77- AlmaLinux 9 85- AlmaLinux 9
78 86
87- Rocky 8
88
79- Rocky 9 89- Rocky 9
80 90
81The following distribution versions are still tested, even though the 91The following distribution versions are still tested, even though the
@@ -83,11 +93,15 @@ organizations publishing them no longer make updates publicly available:
83 93
84- Ubuntu 18.04 (LTS) 94- Ubuntu 18.04 (LTS)
85 95
96- Ubuntu 20.04 (LTS)
97
86- Ubuntu 23.04 98- Ubuntu 23.04
87 99
88Note that the Yocto Project doesn't have access to private updates 100Note that the Yocto Project doesn't have access to private updates
89that some of these versions may have. Therefore, our testing has 101that some of these versions may have. Therefore, our testing has
90limited value if you have access to such updates. 102limited value if you have access to such updates. Also, :term:`buildtools`
103may have to be used on older releases in order to get current enough
104tools, such as python.
91 105
92Finally, here are the distribution versions which were previously 106Finally, here are the distribution versions which were previously
93tested on former revisions of "&DISTRO_NAME;", but no longer are: 107tested on former revisions of "&DISTRO_NAME;", but no longer are:
@@ -131,7 +145,7 @@ tested on former revisions of "&DISTRO_NAME;", but no longer are:
131 interested in hearing about your experience. For information on 145 interested in hearing about your experience. For information on
132 how to submit a bug, see the Yocto Project 146 how to submit a bug, see the Yocto Project
133 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>` 147 :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
134 and the ":doc:`../contributor-guide/report-defect`" 148 and the ":doc:`/contributor-guide/report-defect`"
135 section in the Yocto Project and OpenEmbedded Contributor Guide. 149 section in the Yocto Project and OpenEmbedded Contributor Guide.
136 150
137Required Packages for the Build Host 151Required Packages for the Build Host
@@ -148,12 +162,30 @@ Ubuntu and Debian
148----------------- 162-----------------
149 163
150Here are the packages needed to build an image on a headless system 164Here are the packages needed to build an image on a headless system
151with a supported Ubuntu or Debian Linux distribution:: 165with a supported Ubuntu or Debian Linux distribution:
166
167.. literalinclude:: ../tools/host_packages_scripts/ubuntu_essential.sh
168 :language: shell
169
170You also need to ensure you have the ``en_US.UTF-8`` locale enabled::
171
172 $ locale --all-locales | grep en_US.utf8
173
174If this is not the case, you can reconfigure the ``locales`` package to add it
175(requires an interactive shell)::
152 176
153 $ sudo apt install &UBUNTU_HOST_PACKAGES_ESSENTIAL; 177 $ sudo dpkg-reconfigure locales
154 178
155.. note:: 179.. note::
156 180
181 - If you are not in an interactive shell, ``dpkg-reconfigure`` will
182 not work as expected. To add the locale you will need to edit
183 ``/etc/locale.gen`` file to add/uncomment the ``en_US.UTF-8`` locale.
184 A naive way to do this as root is::
185
186 $ echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
187 $ locale-gen
188
157 - If your build system has the ``oss4-dev`` package installed, you 189 - If your build system has the ``oss4-dev`` package installed, you
158 might experience QEMU build failures due to the package installing 190 might experience QEMU build failures due to the package installing
159 its own custom ``/usr/include/linux/soundcard.h`` on the Debian 191 its own custom ``/usr/include/linux/soundcard.h`` on the Debian
@@ -162,45 +194,71 @@ with a supported Ubuntu or Debian Linux distribution::
162 $ sudo apt build-dep qemu 194 $ sudo apt build-dep qemu
163 $ sudo apt remove oss4-dev 195 $ sudo apt remove oss4-dev
164 196
165Here are the packages needed to build Project documentation manuals:: 197Here are the packages needed to build Project documentation manuals:
198
199.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs.sh
200 :language: shell
201
202In addition to the previous packages, here are the packages needed to build the
203documentation in PDF format:
166 204
167 $ sudo apt install git make inkscape texlive-latex-extra 205.. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs_pdf.sh
168 $ sudo apt install sphinx python3-saneyaml python3-sphinx-rtd-theme 206 :language: shell
169 207
170Fedora Packages 208Fedora Packages
171--------------- 209---------------
172 210
173Here are the packages needed to build an image on a headless system 211Here are the packages needed to build an image on a headless system
174with a supported Fedora Linux distribution:: 212with a supported Fedora Linux distribution:
213
214.. literalinclude:: ../tools/host_packages_scripts/fedora_essential.sh
215 :language: shell
216
217Here are the packages needed to build Project documentation manuals:
218
219.. literalinclude:: ../tools/host_packages_scripts/fedora_docs.sh
220 :language: shell
175 221
176 $ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL; 222.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
223 :language: shell
177 224
178Here are the packages needed to build Project documentation manuals:: 225In addition to the previous packages, here are the packages needed to build the
226documentation in PDF format:
179 227
180 $ sudo dnf install git make python3-pip which inkscape texlive-fncychap 228.. literalinclude:: ../tools/host_packages_scripts/fedora_docs_pdf.sh
181 &PIP3_HOST_PACKAGES_DOC; 229 :language: shell
182 230
183openSUSE Packages 231openSUSE Packages
184----------------- 232-----------------
185 233
186Here are the packages needed to build an image on a headless system 234Here are the packages needed to build an image on a headless system
187with a supported openSUSE distribution:: 235with a supported openSUSE distribution:
188 236
189 $ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL; 237.. literalinclude:: ../tools/host_packages_scripts/opensuse_essential.sh
238 :language: shell
190 239
191Here are the packages needed to build Project documentation manuals:: 240Here are the packages needed to build Project documentation manuals:
192 241
193 $ sudo zypper install git make python3-pip which inkscape texlive-fncychap 242.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs.sh
194 &PIP3_HOST_PACKAGES_DOC; 243 :language: shell
195 244
245.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
246 :language: shell
247
248In addition to the previous packages, here are the packages needed to build the
249documentation in PDF format:
250
251.. literalinclude:: ../tools/host_packages_scripts/opensuse_docs_pdf.sh
252 :language: shell
196 253
197AlmaLinux Packages 254AlmaLinux Packages
198------------------ 255------------------
199 256
200Here are the packages needed to build an image on a headless system 257Here are the packages needed to build an image on a headless system
201with a supported AlmaLinux distribution:: 258with a supported AlmaLinux distribution:
202 259
203 $ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL; 260.. literalinclude:: ../tools/host_packages_scripts/almalinux_essential.sh
261 :language: shell
204 262
205.. note:: 263.. note::
206 264
@@ -215,10 +273,26 @@ with a supported AlmaLinux distribution::
215 - The ``makecache`` command consumes additional Metadata from 273 - The ``makecache`` command consumes additional Metadata from
216 ``epel-release``. 274 ``epel-release``.
217 275
218Here are the packages needed to build Project documentation manuals:: 276Here are the packages needed to build Project documentation manuals:
277
278.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs.sh
279 :language: shell
280
281.. literalinclude:: ../tools/host_packages_scripts/pip3_docs.sh
282 :language: shell
283
284.. warning::
285
286 Unlike Fedora or OpenSUSE, AlmaLinux does not provide the packages
287 ``texlive-collection-fontsextra``, ``texlive-collection-lang*`` and
288 ``texlive-collection-latexextra``, so you may run into issues. These may be
289 installed using `tlmgr <https://tug.org/texlive/tlmgr.html>`_.
290
291In addition to the previous packages, here are the packages needed to build the
292documentation in PDF format:
219 293
220 $ sudo dnf install git make python3-pip which inkscape texlive-fncychap 294.. literalinclude:: ../tools/host_packages_scripts/almalinux_docs_pdf.sh
221 &PIP3_HOST_PACKAGES_DOC; 295 :language: shell
222 296
223.. _system-requirements-buildtools: 297.. _system-requirements-buildtools:
224 298
@@ -319,7 +393,7 @@ If you would prefer not to use the ``install-buildtools`` script, you can instea
319download and run a pre-built :term:`buildtools` installer yourself with the following 393download and run a pre-built :term:`buildtools` installer yourself with the following
320steps: 394steps:
321 395
322#. Go to :yocto_dl:`/releases/yocto/yocto-&DISTRO;/buildtools/`, locate and 396#. Go to :yocto_dl:`/releases/yocto/&DISTRO_REL_LATEST_TAG;/buildtools/`, locate and
323 download the ``.sh`` file corresponding to your host architecture 397 download the ``.sh`` file corresponding to your host architecture
324 and to :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make`. 398 and to :term:`buildtools`, :term:`buildtools-extended` or :term:`buildtools-make`.
325 399
diff --git a/documentation/ref-manual/tasks.rst b/documentation/ref-manual/tasks.rst
index c28cd7a94a..e379c424d8 100644
--- a/documentation/ref-manual/tasks.rst
+++ b/documentation/ref-manual/tasks.rst
@@ -358,7 +358,7 @@ information.
358``do_populate_sdk_ext`` 358``do_populate_sdk_ext``
359----------------------- 359-----------------------
360 360
361Creates the file and directory structure for an installable extensible 361Creates the file and directory structure for an installable extensible
362SDK (eSDK). See the ":ref:`overview-manual/concepts:sdk generation`" 362SDK (eSDK). See the ":ref:`overview-manual/concepts:sdk generation`"
363section in the Yocto Project Overview and Concepts Manual for more 363section in the Yocto Project Overview and Concepts Manual for more
364information. 364information.
@@ -412,12 +412,10 @@ them. You can learn more by looking at the
412------------- 412-------------
413 413
414Unpacks the source code into a working directory pointed to by 414Unpacks the source code into a working directory pointed to by
415``${``\ :term:`WORKDIR`\ ``}``. The :term:`S` 415``${``\ :term:`UNPACKDIR`\ ``}``.
416variable also plays a role in where unpacked source files ultimately 416For more information on how source files are unpacked, see the
417reside. For more information on how source files are unpacked, see the
418":ref:`overview-manual/concepts:source fetching`" 417":ref:`overview-manual/concepts:source fetching`"
419section in the Yocto Project Overview and Concepts Manual and also see 418section in the Yocto Project Overview and Concepts Manual.
420the :term:`WORKDIR` and :term:`S` variable descriptions.
421 419
422Manually Called Tasks 420Manually Called Tasks
423===================== 421=====================
@@ -616,8 +614,8 @@ information on how the root filesystem is created.
616 614
617Boots an image and performs runtime tests within the image. For 615Boots an image and performs runtime tests within the image. For
618information on automatically testing images, see the 616information on automatically testing images, see the
619":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 617":ref:`test-manual/runtime-testing:performing automated runtime testing`"
620section in the Yocto Project Development Tasks Manual. 618section in the Yocto Project Test Environment Manual.
621 619
622.. _ref-tasks-testimage_auto: 620.. _ref-tasks-testimage_auto:
623 621
@@ -629,8 +627,8 @@ after it has been built. This task is enabled when you set
629:term:`TESTIMAGE_AUTO` equal to "1". 627:term:`TESTIMAGE_AUTO` equal to "1".
630 628
631For information on automatically testing images, see the 629For information on automatically testing images, see the
632":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 630":ref:`test-manual/runtime-testing:performing automated runtime testing`"
633section in the Yocto Project Development Tasks Manual. 631section in the Yocto Project Test Environment Manual.
634 632
635Kernel-Related Tasks 633Kernel-Related Tasks
636==================== 634====================
@@ -727,7 +725,7 @@ tool, which you then use to modify the kernel configuration.
727 $ bitbake linux-yocto -c menuconfig 725 $ bitbake linux-yocto -c menuconfig
728 726
729 727
730See the ":ref:`kernel-dev/common:using \`\`menuconfig\`\``" 728See the ":ref:`kernel-dev/common:using ``menuconfig```"
731section in the Yocto Project Linux Kernel Development Manual for more 729section in the Yocto Project Linux Kernel Development Manual for more
732information on this configuration tool. 730information on this configuration tool.
733 731
@@ -751,7 +749,7 @@ which can then be applied by subsequent tasks such as
751 749
752Runs ``make menuconfig`` for the kernel. For information on 750Runs ``make menuconfig`` for the kernel. For information on
753``menuconfig``, see the 751``menuconfig``, see the
754":ref:`kernel-dev/common:using \`\`menuconfig\`\``" 752":ref:`kernel-dev/common:using ``menuconfig```"
755section in the Yocto Project Linux Kernel Development Manual. 753section in the Yocto Project Linux Kernel Development Manual.
756 754
757.. _ref-tasks-savedefconfig: 755.. _ref-tasks-savedefconfig:
diff --git a/documentation/ref-manual/terms.rst b/documentation/ref-manual/terms.rst
index ad9c46c339..9f61061415 100644
--- a/documentation/ref-manual/terms.rst
+++ b/documentation/ref-manual/terms.rst
@@ -63,7 +63,7 @@ universal, the list includes them just in case:
63 This term refers to the area used by the OpenEmbedded build system for 63 This term refers to the area used by the OpenEmbedded build system for
64 builds. The area is created when you ``source`` the setup environment 64 builds. The area is created when you ``source`` the setup environment
65 script that is found in the Source Directory 65 script that is found in the Source Directory
66 (i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``). The 66 (i.e. :ref:`ref-manual/structure:``oe-init-build-env```). The
67 :term:`TOPDIR` variable points to the :term:`Build Directory`. 67 :term:`TOPDIR` variable points to the :term:`Build Directory`.
68 68
69 You have a lot of flexibility when creating the :term:`Build Directory`. 69 You have a lot of flexibility when creating the :term:`Build Directory`.
@@ -228,23 +228,23 @@ universal, the list includes them just in case:
228 228
229 As far as bootloaders are concerned, :term:`Initramfs` and "initrd" 229 As far as bootloaders are concerned, :term:`Initramfs` and "initrd"
230 images are still copied to RAM in the same way. That's why most 230 images are still copied to RAM in the same way. That's why most
231 most bootloaders refer to :term:`Initramfs` images as "initrd" 231 most bootloaders refer to :term:`Initramfs` images as "initrd"
232 or "init RAM disk". 232 or "init RAM disk".
233 233
234 This kind of mechanism is typically used for two reasons: 234 This kind of mechanism is typically used for two reasons:
235 235
236 - For booting the same kernel binary on multiple systems requiring 236 - For booting the same kernel binary on multiple systems requiring
237 different device drivers. The :term:`Initramfs` image is then customized 237 different device drivers. The :term:`Initramfs` image is then customized
238 for each type of system, to include the specific kernel modules 238 for each type of system, to include the specific kernel modules
239 necessary to access the final root filesystem. This technique 239 necessary to access the final root filesystem. This technique
240 is used on all GNU / Linux distributions for desktops and servers. 240 is used on all GNU / Linux distributions for desktops and servers.
241 241
242 - For booting faster. As the root filesystem is extracted into RAM, 242 - For booting faster. As the root filesystem is extracted into RAM,
243 accessing the first user-space applications is very fast, compared 243 accessing the first user-space applications is very fast, compared
244 to having to initialize a block device, to access multiple blocks 244 to having to initialize a block device, to access multiple blocks
245 from it, and to go through a filesystem having its own overhead. 245 from it, and to go through a filesystem having its own overhead.
246 For example, this allows to display a splashscreen very early, 246 For example, this allows to display a splashscreen very early,
247 and to later take care of mounting the final root filesystem and 247 and to later take care of mounting the final root filesystem and
248 loading less time-critical kernel drivers. 248 loading less time-critical kernel drivers.
249 249
250 This cpio archive can either be loaded to RAM by the bootloader, 250 This cpio archive can either be loaded to RAM by the bootloader,
@@ -452,7 +452,7 @@ universal, the list includes them just in case:
452 the Source Directory, if you do, the top-level directory name of the 452 the Source Directory, if you do, the top-level directory name of the
453 Source Directory is derived from the Yocto Project release tarball. 453 Source Directory is derived from the Yocto Project release tarball.
454 For example, downloading and unpacking poky tarballs from 454 For example, downloading and unpacking poky tarballs from
455 :yocto_dl:`/releases/yocto/&DISTRO_REL_TAG;/` 455 :yocto_dl:`/releases/yocto/&DISTRO_REL_LATEST_TAG;/`
456 results in a Source Directory whose root folder is named poky. 456 results in a Source Directory whose root folder is named poky.
457 457
458 458
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 435481c9aa..c56418e2a2 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -8,13 +8,13 @@ This chapter lists common variables used in the OpenEmbedded build
8system and gives an overview of their function and contents. 8system and gives an overview of their function and contents.
9 9
10:term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>` 10:term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>`
11:term:`D` :term:`E <EFI_PROVIDER>` :term:`F <FEATURE_PACKAGES>` 11:term:`D` :term:`E <EFI_PROVIDER>` :term:`F <FAKEROOT>`
12:term:`G <GCCPIE>` :term:`H <HOMEPAGE>` :term:`I <ICECC_DISABLED>` 12:term:`G <GCCPIE>` :term:`H <HGDIR>` :term:`I <ICECC_CLASS_DISABLE>`
13:term:`K <KARCH>` :term:`L <LABELS>` :term:`M <MACHINE>` 13:term:`K <KARCH>` :term:`L <LABELS>` :term:`M <MACHINE>`
14:term:`N <NATIVELSBSTRING>` :term:`O <OBJCOPY>` :term:`P` 14:term:`N <NATIVELSBSTRING>` :term:`O <OBJCOPY>` :term:`P`
15:term:`R <RANLIB>` :term:`S` :term:`T` 15:term:`Q <QA_EMPTY_DIRS>` :term:`R <RANLIB>` :term:`S` :term:`T`
16:term:`U <UBOOT_CONFIG>` :term:`V <VOLATILE_LOG_DIR>` 16:term:`U <UBOOT_BINARY>` :term:`V <VIRTUAL-RUNTIME>`
17:term:`W <WARN_QA>` :term:`X <XSERVER>` 17:term:`W <WARN_QA>` :term:`X <XSERVER>` :term:`Z <ZSTD_THREADS>`
18 18
19.. glossary:: 19.. glossary::
20 :sorted: 20 :sorted:
@@ -143,7 +143,7 @@ system and gives an overview of their function and contents.
143 information on how this variable is used. 143 information on how this variable is used.
144 144
145 :term:`AR` 145 :term:`AR`
146 The minimal command and arguments used to run ``ar``. 146 The minimal command and arguments used to run :manpage:`ar <ar(1)>`.
147 147
148 :term:`ARCHIVER_MODE` 148 :term:`ARCHIVER_MODE`
149 When used with the :ref:`ref-classes-archiver` class, 149 When used with the :ref:`ref-classes-archiver` class,
@@ -165,7 +165,8 @@ system and gives an overview of their function and contents.
165 ``meta/classes/archiver.bbclass`` file in the :term:`Source Directory`. 165 ``meta/classes/archiver.bbclass`` file in the :term:`Source Directory`.
166 166
167 :term:`AS` 167 :term:`AS`
168 Minimal command and arguments needed to run the assembler. 168 Minimal command and arguments needed to run the :manpage:`assembler
169 <as(1)>`.
169 170
170 :term:`ASSUME_PROVIDED` 171 :term:`ASSUME_PROVIDED`
171 Lists recipe names (:term:`PN` values) BitBake does not 172 Lists recipe names (:term:`PN` values) BitBake does not
@@ -209,12 +210,11 @@ system and gives an overview of their function and contents.
209 SRCREV = "${AUTOREV}" 210 SRCREV = "${AUTOREV}"
210 211
211 If you use the previous statement to retrieve the latest version of 212 If you use the previous statement to retrieve the latest version of
212 software, you need to be sure :term:`PV` contains 213 software, you need to make sure :term:`PV` contains the ``+`` sign so
213 ``${``\ :term:`SRCPV`\ ``}``. For example, suppose you have a kernel 214 :term:`bitbake` includes source control information to :term:`PKGV` when
214 recipe that inherits the :ref:`ref-classes-kernel` class and you 215 packaging the recipe. For example::
215 use the previous statement. In this example, ``${SRCPV}`` does not 216
216 automatically get into :term:`PV`. Consequently, you need to change 217 PV = "6.10.y+git"
217 :term:`PV` in your recipe so that it does contain ``${SRCPV}``.
218 218
219 For more information see the 219 For more information see the
220 ":ref:`dev-manual/packages:automatically incrementing a package version number`" 220 ":ref:`dev-manual/packages:automatically incrementing a package version number`"
@@ -225,6 +225,12 @@ system and gives an overview of their function and contents.
225 must set this variable in your recipe. The 225 must set this variable in your recipe. The
226 :ref:`ref-classes-syslinux` class checks this variable. 226 :ref:`ref-classes-syslinux` class checks this variable.
227 227
228 :term:`AUTOTOOLS_SCRIPT_PATH`
229 When using the :ref:`ref-classes-autotools` class, the
230 :term:`AUTOTOOLS_SCRIPT_PATH` variable stores the location of the
231 different scripts used by the Autotools build system. The default
232 value for this variable is :term:`S`.
233
228 :term:`AVAILTUNES` 234 :term:`AVAILTUNES`
229 The list of defined CPU and Application Binary Interface (ABI) 235 The list of defined CPU and Application Binary Interface (ABI)
230 tunings (i.e. "tunes") available for use by the OpenEmbedded build 236 tunings (i.e. "tunes") available for use by the OpenEmbedded build
@@ -259,7 +265,7 @@ system and gives an overview of their function and contents.
259 build process. By default, this directory is the same as the 265 build process. By default, this directory is the same as the
260 :term:`S` directory, which is defined as:: 266 :term:`S` directory, which is defined as::
261 267
262 S = "${WORKDIR}/${BP}" 268 S = "${UNPACKDIR}/${BP}"
263 269
264 You can separate the (:term:`S`) directory and the directory pointed to 270 You can separate the (:term:`S`) directory and the directory pointed to
265 by the :term:`B` variable. Most Autotools-based recipes support 271 by the :term:`B` variable. Most Autotools-based recipes support
@@ -294,6 +300,35 @@ system and gives an overview of their function and contents.
294 :term:`PACKAGE_EXCLUDE` variables for related 300 :term:`PACKAGE_EXCLUDE` variables for related
295 information. 301 information.
296 302
303 :term:`BAREBOX_BINARY`
304 When using the :ref:`ref-classes-barebox` class, this variable allows you
305 to specify a particular binary that should be deployed and installed.
306
307 The barebox build system can build multiple barebox binaries at once.
308 By default, all built binaries will be deployed and installed under their
309 original name.
310
311 Here is an example usage of this variable::
312
313 BAREBOX_BINARY = "barebox-boundarydevices-imx6dl-nitrogen6x-1g.img"
314
315 :term:`BAREBOX_CONFIG`
316 When using the :ref:`ref-classes-barebox` class, this variable allows you
317 to specify the name of the barebox defconfig to build.
318 The name must be a defconfig file known to the barebox build environment.
319 This variable is mainly useful for generic use cases where a dedicated
320 configuration is not required.
321 The :ref:`ref-classes-barebox` class itself already sets it for some QEMU
322 machines::
323
324 BAREBOX_CONFIG:qemuarm = "multi_v7_defconfig"
325 BAREBOX_CONFIG:qemuarm64 = "multi_v8_defconfig"
326 BAREBOX_CONFIG:qemux86-64 = "efi_defconfig"
327
328 Except for these, the default value of :term:`BAREBOX_CONFIG` is empty.
329 For more information on how to provide a barebox configuration, see the
330 :ref:`ref-classes-barebox` class.
331
297 :term:`BASE_LIB` 332 :term:`BASE_LIB`
298 The library directory name for the CPU or Application Binary 333 The library directory name for the CPU or Application Binary
299 Interface (ABI) tune. The :term:`BASE_LIB` applies only in the Multilib 334 Interface (ABI) tune. The :term:`BASE_LIB` applies only in the Multilib
@@ -362,23 +397,8 @@ system and gives an overview of their function and contents.
362 :term:`BB_CURRENTTASK` 397 :term:`BB_CURRENTTASK`
363 See :term:`bitbake:BB_CURRENTTASK` in the BitBake manual. 398 See :term:`bitbake:BB_CURRENTTASK` in the BitBake manual.
364 399
365 :term:`BB_DANGLINGAPPENDS_WARNONLY` 400 :term:`BB_CURRENT_MC`
366 Defines how BitBake handles situations where an append file 401 See :term:`bitbake:BB_CURRENT_MC` in the BitBake manual.
367 (``.bbappend``) has no corresponding recipe file (``.bb``). This
368 condition often occurs when layers get out of sync (e.g. ``oe-core``
369 bumps a recipe version and the old recipe no longer exists and the
370 other layer has not been updated to the new version of the recipe
371 yet).
372
373 The default fatal behavior is safest because it is the sane reaction
374 given something is out of sync. It is important to realize when your
375 changes are no longer being applied.
376
377 You can change the default behavior by setting this variable to "1",
378 "yes", or "true" in your ``local.conf`` file, which is located in the
379 :term:`Build Directory`: Here is an example::
380
381 BB_DANGLINGAPPENDS_WARNONLY = "1"
382 402
383 :term:`BB_DEFAULT_TASK` 403 :term:`BB_DEFAULT_TASK`
384 See :term:`bitbake:BB_DEFAULT_TASK` in the BitBake manual. 404 See :term:`bitbake:BB_DEFAULT_TASK` in the BitBake manual.
@@ -540,6 +560,13 @@ system and gives an overview of their function and contents.
540 :term:`BB_GENERATE_SHALLOW_TARBALLS` 560 :term:`BB_GENERATE_SHALLOW_TARBALLS`
541 See :term:`bitbake:BB_GENERATE_SHALLOW_TARBALLS` in the BitBake manual. 561 See :term:`bitbake:BB_GENERATE_SHALLOW_TARBALLS` in the BitBake manual.
542 562
563 :term:`BB_GIT_DEFAULT_DESTSUFFIX`
564 See :term:`bitbake:BB_GIT_DEFAULT_DESTSUFFIX` in the BitBake manual.
565
566 In :term:`OpenEmbedded-Core (OE-Core)`, this variable is set to
567 :term:`BP` by default in :oe_git:`bitbake.conf
568 </openembedded-core/tree/meta/conf/bitbake.conf>`.
569
543 :term:`BB_GIT_SHALLOW` 570 :term:`BB_GIT_SHALLOW`
544 See :term:`bitbake:BB_GIT_SHALLOW` in the BitBake manual. 571 See :term:`bitbake:BB_GIT_SHALLOW` in the BitBake manual.
545 572
@@ -561,6 +588,10 @@ system and gives an overview of their function and contents.
561 :term:`BB_INVALIDCONF` 588 :term:`BB_INVALIDCONF`
562 See :term:`bitbake:BB_INVALIDCONF` in the BitBake manual. 589 See :term:`bitbake:BB_INVALIDCONF` in the BitBake manual.
563 590
591 :term:`BB_LOADFACTOR_MAX`
592 The system load threshold above which BitBake will stop runnig extra
593 tasks.
594
564 :term:`BB_LOGCONFIG` 595 :term:`BB_LOGCONFIG`
565 See :term:`bitbake:BB_LOGCONFIG` in the BitBake manual. 596 See :term:`bitbake:BB_LOGCONFIG` in the BitBake manual.
566 597
@@ -688,6 +719,9 @@ system and gives an overview of their function and contents.
688 :term:`BB_TASKHASH` 719 :term:`BB_TASKHASH`
689 See :term:`bitbake:BB_TASKHASH` in the BitBake manual. 720 See :term:`bitbake:BB_TASKHASH` in the BitBake manual.
690 721
722 :term:`BB_USE_HOME_NPMRC`
723 See :term:`bitbake:BB_USE_HOME_NPMRC` in the BitBake manual.
724
691 :term:`BB_VERBOSE_LOGS` 725 :term:`BB_VERBOSE_LOGS`
692 See :term:`bitbake:BB_VERBOSE_LOGS` in the BitBake manual. 726 See :term:`bitbake:BB_VERBOSE_LOGS` in the BitBake manual.
693 727
@@ -968,55 +1002,165 @@ system and gives an overview of their function and contents.
968 variable is a useful pointer in case a bug in the software being 1002 variable is a useful pointer in case a bug in the software being
969 built needs to be manually reported. 1003 built needs to be manually reported.
970 1004
1005 :term:`BUILD_AR`
1006 Specifies the architecture-specific :manpage:`archiver <ar(1)>` for the
1007 build host, and its default definition is derived in part from
1008 :term:`BUILD_PREFIX`::
1009
1010 BUILD_AR = "${BUILD_PREFIX}ar"
1011
1012 When building a :ref:`ref-classes-native` recipe, :term:`AR` is set to the
1013 value of this variable by default.
1014
1015 The :term:`BUILD_AR` variable should not be set manually, and is rarely
1016 used in recipes as :term:`AR` contains the appropriate value depending on
1017 the context (native or target recipes). Exception be made for target
1018 recipes that need to use the :manpage:`archiver <ar(1)>` from the build
1019 host at some point during the build.
1020
971 :term:`BUILD_ARCH` 1021 :term:`BUILD_ARCH`
972 Specifies the architecture of the build host (e.g. ``i686``). The 1022 Specifies the architecture of the build host (e.g. ``i686``). The
973 OpenEmbedded build system sets the value of :term:`BUILD_ARCH` from the 1023 OpenEmbedded build system sets the value of :term:`BUILD_ARCH` from the
974 machine name reported by the ``uname`` command. 1024 machine name reported by the ``uname`` command.
975 1025
1026 :term:`BUILD_AS`
1027 Specifies the architecture-specific :manpage:`assembler <as(1)>` for the
1028 build host, and its default definition is derived in part from
1029 :term:`BUILD_PREFIX`::
1030
1031 BUILD_AS = "${BUILD_PREFIX}as ${BUILD_AS_ARCH}"
1032
1033 When building a :ref:`ref-classes-native` recipe, :term:`AS` is set to the
1034 value of this variable by default.
1035
1036 The :term:`BUILD_AS` variable should not be set manually, and is rarely
1037 used in recipes as :term:`AS` contains the appropriate value depending on
1038 the context (native or target recipes). Exception be made for target
1039 recipes that need to use the :manpage:`assembler <as(1)>` from the build
1040 host at some point during the build.
1041
976 :term:`BUILD_AS_ARCH` 1042 :term:`BUILD_AS_ARCH`
977 Specifies the architecture-specific assembler flags for the build 1043 Specifies the architecture-specific assembler flags for the build
978 host. By default, the value of :term:`BUILD_AS_ARCH` is empty. 1044 host. By default, the value of :term:`BUILD_AS_ARCH` is empty.
979 1045
1046 :term:`BUILD_CC`
1047 Specifies the architecture-specific C compiler for the build host,
1048 and its default definition is derived in part from :term:`BUILD_PREFIX`
1049 and :term:`BUILD_CC_ARCH`::
1050
1051 BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
1052
1053 When building a :ref:`ref-classes-native` recipe, :term:`CC` is set to the
1054 value of this variable by default.
1055
1056 The :term:`BUILD_CC` variable should not be set manually, and is rarely
1057 used in recipes as :term:`CC` contains the appropriate value depending on
1058 the context (native or target recipes). Exception be made for target
1059 recipes that need to use the compiler from the build host at some point
1060 during the build.
1061
980 :term:`BUILD_CC_ARCH` 1062 :term:`BUILD_CC_ARCH`
981 Specifies the architecture-specific C compiler flags for the build 1063 Specifies the architecture-specific C compiler flags for the build
982 host. By default, the value of :term:`BUILD_CC_ARCH` is empty. 1064 host. By default, the value of :term:`BUILD_CC_ARCH` is empty.
983 1065
984 :term:`BUILD_CCLD` 1066 :term:`BUILD_CCLD`
985 Specifies the linker command to be used for the build host when the C 1067 Specifies the :manpage:`linker <ld(1)>` command to be used for the build
986 compiler is being used as the linker. By default, :term:`BUILD_CCLD` 1068 host when the C compiler is being used as the linker, and its default
987 points to GCC and passes as arguments the value of 1069 definition is derived in part from :term:`BUILD_PREFIX` and
988 :term:`BUILD_CC_ARCH`, assuming 1070 :term:`BUILD_CC_ARCH`::
989 :term:`BUILD_CC_ARCH` is set. 1071
1072 BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
1073
1074 When building a :ref:`ref-classes-native` recipe, :term:`CCLD` is set to
1075 the value of this variable by default.
1076
1077 The :term:`BUILD_CCLD` variable should not be set manually, and is rarely
1078 used in recipes as :term:`CCLD` contains the appropriate value depending on
1079 the context (native or target recipes). Exception be made for target
1080 recipes that need to use the :manpage:`linker <ld(1)>` from the build host
1081 at some point during the build.
990 1082
991 :term:`BUILD_CFLAGS` 1083 :term:`BUILD_CFLAGS`
992 Specifies the flags to pass to the C compiler when building for the 1084 Specifies the flags to pass to the C compiler when building for the
993 build host. When building in the ``-native`` context, 1085 build host. When building a :ref:`ref-classes-native` recipe,
994 :term:`CFLAGS` is set to the value of this variable by 1086 :term:`CFLAGS` is set to the value of this variable by
995 default. 1087 default.
996 1088
1089 :term:`BUILD_CPP`
1090 Specifies the C preprocessor command (to both the C and the C++ compilers)
1091 when building for the build host, and its default definition is derived in
1092 part from :term:`BUILD_PREFIX` and :term:`BUILD_CC_ARCH`::
1093
1094 BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E"
1095
1096 When building a :ref:`ref-classes-native` recipe, :term:`CPP` is set to
1097 the value of this variable by default.
1098
1099 The :term:`BUILD_CPP` variable should not be set manually, and is rarely
1100 used in recipes as :term:`CPP` contains the appropriate value depending on
1101 the context (native or target recipes). Exception be made for target
1102 recipes that need to use the preprocessor from the build host at some
1103 point during the build.
1104
997 :term:`BUILD_CPPFLAGS` 1105 :term:`BUILD_CPPFLAGS`
998 Specifies the flags to pass to the C preprocessor (i.e. to both the C 1106 Specifies the flags to pass to the C preprocessor (i.e. to both the C
999 and the C++ compilers) when building for the build host. When 1107 and the C++ compilers) when building for the build host. When
1000 building in the ``-native`` context, :term:`CPPFLAGS` 1108 building in the ``-native`` context, :term:`CPPFLAGS`
1001 is set to the value of this variable by default. 1109 is set to the value of this variable by default.
1002 1110
1111 :term:`BUILD_CXX`
1112 Specifies the architecture-specific C++ compiler for the build host,
1113 and its default definition is derived in part from :term:`BUILD_PREFIX`
1114 and :term:`BUILD_CC_ARCH`::
1115
1116 BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
1117
1118 When building a :ref:`ref-classes-native` recipe, :term:`CXX` is set to
1119 the value of this variable by default.
1120
1121 The :term:`BUILD_CXX` variable should not be set manually, and is rarely
1122 used in recipes as :term:`CXX` contains the appropriate value depending on
1123 the context (native or target recipes). Exception be made for target
1124 recipes that need to use the C++ compiler from the build host at some
1125 point during the build.
1126
1003 :term:`BUILD_CXXFLAGS` 1127 :term:`BUILD_CXXFLAGS`
1004 Specifies the flags to pass to the C++ compiler when building for the 1128 Specifies the flags to pass to the C++ compiler when building for the
1005 build host. When building in the ``-native`` context, 1129 build host. When building a :ref:`ref-classes-native` recipe,
1006 :term:`CXXFLAGS` is set to the value of this variable 1130 :term:`CXXFLAGS` is set to the value of this variable
1007 by default. 1131 by default.
1008 1132
1009 :term:`BUILD_FC` 1133 :term:`BUILD_FC`
1010 Specifies the Fortran compiler command for the build host. By 1134 Specifies the Fortran compiler command for the build host, and its default
1011 default, :term:`BUILD_FC` points to Gfortran and passes as arguments the 1135 definition is derived in part from :term:`BUILD_PREFIX` and
1012 value of :term:`BUILD_CC_ARCH`, assuming 1136 :term:`BUILD_CC_ARCH`::
1013 :term:`BUILD_CC_ARCH` is set. 1137
1138 BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
1139
1140 When building a :ref:`ref-classes-native` recipe, :term:`FC` is set to the
1141 value of this variable by default.
1142
1143 The :term:`BUILD_FC` variable should not be set manually, and is rarely
1144 used in recipes as :term:`FC` contains the appropriate value depending on
1145 the context (native or target recipes). Exception be made for target
1146 recipes that need to use the Fortran compiler from the build host at some
1147 point during the build.
1014 1148
1015 :term:`BUILD_LD` 1149 :term:`BUILD_LD`
1016 Specifies the linker command for the build host. By default, 1150 Specifies the linker command for the build host, and its default
1017 :term:`BUILD_LD` points to the GNU linker (ld) and passes as arguments 1151 definition is derived in part from :term:`BUILD_PREFIX` and
1018 the value of :term:`BUILD_LD_ARCH`, assuming 1152 :term:`BUILD_LD_ARCH`::
1019 :term:`BUILD_LD_ARCH` is set. 1153
1154 BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}"
1155
1156 When building a :ref:`ref-classes-native` recipe, :term:`LD` is set to the
1157 value of this variable by default.
1158
1159 The :term:`BUILD_LD` variable should not be set manually, and is rarely
1160 used in recipes as :term:`LD` contains the appropriate value depending on
1161 the context (native or target recipes). Exception be made for target
1162 recipes that need to use the linker from the build host at some point
1163 during the build.
1020 1164
1021 :term:`BUILD_LD_ARCH` 1165 :term:`BUILD_LD_ARCH`
1022 Specifies architecture-specific linker flags for the build host. By 1166 Specifies architecture-specific linker flags for the build host. By
@@ -1024,10 +1168,58 @@ system and gives an overview of their function and contents.
1024 1168
1025 :term:`BUILD_LDFLAGS` 1169 :term:`BUILD_LDFLAGS`
1026 Specifies the flags to pass to the linker when building for the build 1170 Specifies the flags to pass to the linker when building for the build
1027 host. When building in the ``-native`` context, 1171 host. When building a :ref:`ref-classes-native` recipe,
1028 :term:`LDFLAGS` is set to the value of this variable 1172 :term:`LDFLAGS` is set to the value of this variable
1029 by default. 1173 by default.
1030 1174
1175 :term:`BUILD_NM`
1176 Specifies the architecture-specific utility to list symbols from object
1177 files for the build host, and its default definition is derived in part
1178 from :term:`BUILD_PREFIX`::
1179
1180 BUILD_NM = "${BUILD_PREFIX}nm"
1181
1182 When building a :ref:`ref-classes-native` recipe, :term:`NM` is set to the
1183 value of this variable by default.
1184
1185 The :term:`BUILD_NM` variable should not be set manually, and is rarely
1186 used in recipes as :term:`NM` contains the appropriate value depending on
1187 the context (native or target recipes). Exception be made for target
1188 recipes that need to use the utility from the build host at some point
1189 during the build.
1190
1191 :term:`BUILD_OBJCOPY`
1192 Specifies the architecture-specific utility to copy object files for the
1193 build host, and its default definition is derived in part from
1194 :term:`BUILD_PREFIX`::
1195
1196 BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy"
1197
1198 When building a :ref:`ref-classes-native` recipe, :term:`OBJCOPY` is set
1199 to the value of this variable by default.
1200
1201 The :term:`BUILD_OBJCOPY` variable should not be set manually, and is
1202 rarely used in recipes as :term:`OBJCOPY` contains the appropriate value
1203 depending on the context (native or target recipes). Exception be made for
1204 target recipes that need to use the utility from the build host at some
1205 point during the build.
1206
1207 :term:`BUILD_OBJDUMP`
1208 Specifies the architecture-specific utility to display object files
1209 information for the build host, and its default definition is derived in
1210 part from :term:`BUILD_PREFIX`::
1211
1212 BUILD_OBJDUMP = "${BUILD_PREFIX}objdump"
1213
1214 When building a :ref:`ref-classes-native` recipe, :term:`OBJDUMP` is set
1215 to the value of this variable by default.
1216
1217 The :term:`BUILD_OBJDUMP` variable should not be set manually, and is
1218 rarely used in recipes as :term:`OBJDUMP` contains the appropriate value
1219 depending on the context (native or target recipes). Exception be made for
1220 target recipes that need to use the utility from the build host at some
1221 point during the build.
1222
1031 :term:`BUILD_OPTIMIZATION` 1223 :term:`BUILD_OPTIMIZATION`
1032 Specifies the optimization flags passed to the C compiler when 1224 Specifies the optimization flags passed to the C compiler when
1033 building for the build host or the SDK. The flags are passed through 1225 building for the build host or the SDK. The flags are passed through
@@ -1048,11 +1240,53 @@ system and gives an overview of their function and contents.
1048 build system uses the :term:`BUILD_PREFIX` value to set the 1240 build system uses the :term:`BUILD_PREFIX` value to set the
1049 :term:`TARGET_PREFIX` when building for :ref:`ref-classes-native` recipes. 1241 :term:`TARGET_PREFIX` when building for :ref:`ref-classes-native` recipes.
1050 1242
1243 :term:`BUILD_RANLIB`
1244 Specifies the architecture-specific utility to generate indexes for
1245 archives for the build host, and its default definition is derived in part
1246 from :term:`BUILD_PREFIX`::
1247
1248 BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D"
1249
1250 When building a :ref:`ref-classes-native` recipe, :term:`RANLIB` is set to
1251 the value of this variable by default.
1252
1253 The :term:`BUILD_RANLIB` variable should not be set manually, and is
1254 rarely used in recipes as :term:`RANLIB` contains the appropriate value
1255 depending on the context (native or target recipes). Exception be made for
1256 target recipes that need to use the utility from the build host at some
1257 point during the build.
1258
1259 :term:`BUILD_READELF`
1260 Specifies the architecture-specific utility to display information about
1261 ELF files for the build host, and its default definition is derived in
1262 part from :term:`BUILD_PREFIX`::
1263
1264 BUILD_READELF = "${BUILD_PREFIX}readelf"
1265
1266 When building a :ref:`ref-classes-native` recipe, :term:`READELF` is set
1267 to the value of this variable by default.
1268
1269 The :term:`BUILD_READELF` variable should not be set manually, and is
1270 rarely used in recipes as :term:`READELF` contains the appropriate value
1271 depending on the context (native or target recipes). Exception be made for
1272 target recipes that need to use the utility from the build host at some
1273 point during the build.
1274
1051 :term:`BUILD_STRIP` 1275 :term:`BUILD_STRIP`
1052 Specifies the command to be used to strip debugging symbols from 1276 Specifies the command to be used to strip debugging symbols from binaries
1053 binaries produced for the build host. By default, :term:`BUILD_STRIP` 1277 produced for the build host, and its default definition is derived in part
1054 points to 1278 from :term:`BUILD_PREFIX`::
1055 ``${``\ :term:`BUILD_PREFIX`\ ``}strip``. 1279
1280 BUILD_STRIP = "${BUILD_PREFIX}strip"
1281
1282 When building a :ref:`ref-classes-native` recipe, :term:`STRIP` is set to
1283 the value of this variable by default.
1284
1285 The :term:`BUILD_STRIP` variable should not be set manually, and is
1286 rarely used in recipes as :term:`STRIP` contains the appropriate value
1287 depending on the context (native or target recipes). Exception be made for
1288 target recipes that need to use the utility from the build host at some
1289 point during the build.
1056 1290
1057 :term:`BUILD_SYS` 1291 :term:`BUILD_SYS`
1058 Specifies the system, including the architecture and the operating 1292 Specifies the system, including the architecture and the operating
@@ -1245,9 +1479,22 @@ system and gives an overview of their function and contents.
1245 :term:`Metadata` so it does not need to be parsed every time 1479 :term:`Metadata` so it does not need to be parsed every time
1246 BitBake is started. 1480 BitBake is started.
1247 1481
1482 :term:`CARGO_INSTALL_LIBRARIES`
1483 When inheriting the :ref:`ref-classes-cargo` class, the variable
1484 :term:`CARGO_INSTALL_LIBRARIES` can be set to a non-empty value by
1485 individual recipes to enable the installation of the libraries the
1486 recipe has built in ``${B}/target/${CARGO_TARGET_SUBDIR}`` (files ending
1487 with ``.so`` or ``.rlib``). By default this variable is not defined and
1488 libraries are not installed, to replicate the behavior of the ``cargo
1489 install`` command.
1490
1248 :term:`CC` 1491 :term:`CC`
1249 The minimal command and arguments used to run the C compiler. 1492 The minimal command and arguments used to run the C compiler.
1250 1493
1494 :term:`CCLD`
1495 The minimal command and arguments used to run the linker when the C
1496 compiler is being used as the linker.
1497
1251 :term:`CFLAGS` 1498 :term:`CFLAGS`
1252 Specifies the flags to pass to the C compiler. This variable is 1499 Specifies the flags to pass to the C compiler. This variable is
1253 exported to an environment variable and thus made visible to the 1500 exported to an environment variable and thus made visible to the
@@ -1265,6 +1512,17 @@ system and gives an overview of their function and contents.
1265 - :term:`BUILDSDK_CFLAGS` when building for 1512 - :term:`BUILDSDK_CFLAGS` when building for
1266 an SDK (i.e. ``nativesdk-``) 1513 an SDK (i.e. ``nativesdk-``)
1267 1514
1515 :term:`CHECKLAYER_REQUIRED_TESTS`
1516 The :term:`CHECKLAYER_REQUIRED_TESTS` variable lists the QA tests that are
1517 required to be enabled to pass the Yocto Project Compatible status for a
1518 layer. It is meant to be a read-only variable and any change to the
1519 variable may be done with the approval of the :oe_wiki:`Technical Steering
1520 Committee (TSC) </TSC>`.
1521
1522 For more information on the Yocto Project Compatible status, see
1523 the :ref:`dev-manual/layers:Making Sure Your Layer is Compatible With
1524 Yocto Project` section of the Yocto Project Development Manual.
1525
1268 :term:`CLASSOVERRIDE` 1526 :term:`CLASSOVERRIDE`
1269 An internal variable specifying the special class override that 1527 An internal variable specifying the special class override that
1270 should currently apply (e.g. "class-target", "class-native", and so 1528 should currently apply (e.g. "class-target", "class-native", and so
@@ -1491,6 +1749,17 @@ system and gives an overview of their function and contents.
1491 :term:`CONFIGURE_FLAGS` 1749 :term:`CONFIGURE_FLAGS`
1492 The minimal arguments for GNU configure. 1750 The minimal arguments for GNU configure.
1493 1751
1752 :term:`CONFIGURE_SCRIPT`
1753 When using the :ref:`ref-classes-autotools` class, the
1754 :term:`CONFIGURE_SCRIPT` variable stores the location of the ``configure``
1755 script for the Autotools build system. The default definition for this
1756 variable is::
1757
1758 CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure"
1759
1760 Where :term:`AUTOTOOLS_SCRIPT_PATH` is the location of the of the
1761 Autotools build system scripts, which defaults to :term:`S`.
1762
1494 :term:`CONFLICT_DISTRO_FEATURES` 1763 :term:`CONFLICT_DISTRO_FEATURES`
1495 When inheriting the :ref:`ref-classes-features_check` 1764 When inheriting the :ref:`ref-classes-features_check`
1496 class, this variable identifies distribution features that would be 1765 class, this variable identifies distribution features that would be
@@ -1674,9 +1943,27 @@ system and gives an overview of their function and contents.
1674 variable only in certain contexts (e.g. when building for kernel 1943 variable only in certain contexts (e.g. when building for kernel
1675 and kernel module recipes). 1944 and kernel module recipes).
1676 1945
1946 :term:`CVE_CHECK_CREATE_MANIFEST`
1947 Specifies whether to create a CVE manifest to place in the deploy
1948 directory. The default is "1".
1949
1677 :term:`CVE_CHECK_IGNORE` 1950 :term:`CVE_CHECK_IGNORE`
1678 This variable is deprecated and should be replaced by :term:`CVE_STATUS`. 1951 This variable is deprecated and should be replaced by :term:`CVE_STATUS`.
1679 1952
1953 :term:`CVE_CHECK_MANIFEST_JSON`
1954 Specifies the path to the CVE manifest in JSON format. See
1955 :term:`CVE_CHECK_CREATE_MANIFEST`.
1956
1957 :term:`CVE_CHECK_MANIFEST_JSON_SUFFIX`
1958 Allows to modify the JSON manifest suffix. See
1959 :term:`CVE_CHECK_MANIFEST_JSON`.
1960
1961 :term:`CVE_CHECK_REPORT_PATCHED`
1962 Specifies whether or not the :ref:`ref-classes-cve-check`
1963 class should report patched or ignored CVEs. The default is "1", but you
1964 may wish to set it to "0" if you do not need patched or ignored CVEs in
1965 the logs.
1966
1680 :term:`CVE_CHECK_SHOW_WARNINGS` 1967 :term:`CVE_CHECK_SHOW_WARNINGS`
1681 Specifies whether or not the :ref:`ref-classes-cve-check` 1968 Specifies whether or not the :ref:`ref-classes-cve-check`
1682 class should generate warning messages on the console when unpatched 1969 class should generate warning messages on the console when unpatched
@@ -1688,6 +1975,11 @@ system and gives an overview of their function and contents.
1688 The list of package names (:term:`PN`) for which 1975 The list of package names (:term:`PN`) for which
1689 CVEs (Common Vulnerabilities and Exposures) are ignored. 1976 CVEs (Common Vulnerabilities and Exposures) are ignored.
1690 1977
1978 :term:`CVE_DB_INCR_UPDATE_AGE_THRES`
1979 Specifies the maximum age of the CVE database in seconds for an
1980 incremental update (instead of a full-download). Use "0" to force a
1981 full-download.
1982
1691 :term:`CVE_DB_UPDATE_INTERVAL` 1983 :term:`CVE_DB_UPDATE_INTERVAL`
1692 Specifies the CVE database update interval in seconds, as used by 1984 Specifies the CVE database update interval in seconds, as used by
1693 ``cve-update-db-native``. The default value is "86400" i.e. once a day 1985 ``cve-update-db-native``. The default value is "86400" i.e. once a day
@@ -1862,6 +2154,13 @@ system and gives an overview of their function and contents.
1862 by :term:`BBFILE_PRIORITY` if that variable is different between two 2154 by :term:`BBFILE_PRIORITY` if that variable is different between two
1863 layers that contain different versions of the same recipe. 2155 layers that contain different versions of the same recipe.
1864 2156
2157 :term:`DEFAULT_TIMEZONE`
2158 Specifies the time zone set in the image.
2159
2160 This variable causes the ``tzdata`` package to configure
2161 ``${sysconfdir}/localtime`` accordingly. Valid values are all files
2162 found in ``/usr/share/zoneinfo`` like ``CET`` or ``Asia/Baku``.
2163
1865 :term:`DEFAULTTUNE` 2164 :term:`DEFAULTTUNE`
1866 The default CPU and Application Binary Interface (ABI) tunings (i.e. 2165 The default CPU and Application Binary Interface (ABI) tunings (i.e.
1867 the "tune") used by the OpenEmbedded build system. The 2166 the "tune") used by the OpenEmbedded build system. The
@@ -1951,7 +2250,7 @@ system and gives an overview of their function and contents.
1951 resides within the :term:`Build Directory` as ``${TMPDIR}/deploy``. 2250 resides within the :term:`Build Directory` as ``${TMPDIR}/deploy``.
1952 2251
1953 For more information on the structure of the Build Directory, see 2252 For more information on the structure of the Build Directory, see
1954 ":ref:`ref-manual/structure:the build directory --- \`\`build/\`\``" section. 2253 ":ref:`ref-manual/structure:the build directory --- ``build/```" section.
1955 For more detail on the contents of the ``deploy`` directory, see the 2254 For more detail on the contents of the ``deploy`` directory, see the
1956 ":ref:`overview-manual/concepts:images`", 2255 ":ref:`overview-manual/concepts:images`",
1957 ":ref:`overview-manual/concepts:package feeds`", and 2256 ":ref:`overview-manual/concepts:package feeds`", and
@@ -1993,7 +2292,7 @@ system and gives an overview of their function and contents.
1993 contents of :term:`IMGDEPLOYDIR` by the :ref:`ref-classes-image` class. 2292 contents of :term:`IMGDEPLOYDIR` by the :ref:`ref-classes-image` class.
1994 2293
1995 For more information on the structure of the :term:`Build Directory`, see 2294 For more information on the structure of the :term:`Build Directory`, see
1996 ":ref:`ref-manual/structure:the build directory --- \`\`build/\`\``" section. 2295 ":ref:`ref-manual/structure:the build directory --- ``build/```" section.
1997 For more detail on the contents of the ``deploy`` directory, see the 2296 For more detail on the contents of the ``deploy`` directory, see the
1998 ":ref:`overview-manual/concepts:images`" and 2297 ":ref:`overview-manual/concepts:images`" and
1999 ":ref:`overview-manual/concepts:application development sdk`" sections both in 2298 ":ref:`overview-manual/concepts:application development sdk`" sections both in
@@ -2284,7 +2583,7 @@ system and gives an overview of their function and contents.
2284 You can safely share this directory between multiple builds on the 2583 You can safely share this directory between multiple builds on the
2285 same development machine. For additional information on how the build 2584 same development machine. For additional information on how the build
2286 process gets source files when working behind a firewall or proxy 2585 process gets source files when working behind a firewall or proxy
2287 server, see this specific question in the ":doc:`faq`" 2586 server, see this specific question in the ":doc:`/ref-manual/faq`"
2288 chapter. You can also refer to the 2587 chapter. You can also refer to the
2289 ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`" 2588 ":yocto_wiki:`Working Behind a Network Proxy </Working_Behind_a_Network_Proxy>`"
2290 Wiki page. 2589 Wiki page.
@@ -2321,6 +2620,11 @@ system and gives an overview of their function and contents.
2321 specifies the size of padding appended to the device tree blob, used as 2620 specifies the size of padding appended to the device tree blob, used as
2322 extra space typically for additional properties during boot. 2621 extra space typically for additional properties during boot.
2323 2622
2623 :term:`EFI_ARCH`
2624 The CPU architecture name within EFI standard. Set in
2625 :oe_git:`meta/conf/image-uefi.conf
2626 <openembedded-core/tree/meta/conf/image-uefi.conf>`.
2627
2324 :term:`EFI_PROVIDER` 2628 :term:`EFI_PROVIDER`
2325 When building bootable images (i.e. where ``hddimg``, ``iso``, or 2629 When building bootable images (i.e. where ``hddimg``, ``iso``, or
2326 ``wic.vmdk`` is in :term:`IMAGE_FSTYPES`), the 2630 ``wic.vmdk`` is in :term:`IMAGE_FSTYPES`), the
@@ -2330,6 +2634,12 @@ system and gives an overview of their function and contents.
2330 See the :ref:`ref-classes-systemd-boot` and :ref:`ref-classes-image-live` 2634 See the :ref:`ref-classes-systemd-boot` and :ref:`ref-classes-image-live`
2331 classes for more information. 2635 classes for more information.
2332 2636
2637 :term:`EFI_UKI_DIR`
2638 The primary place for the UKI image inside the EFI System Partition.
2639
2640 :term:`EFI_UKI_PATH`
2641 The path for the UKI image inside the root filesystem.
2642
2333 :term:`ENABLE_BINARY_LOCALE_GENERATION` 2643 :term:`ENABLE_BINARY_LOCALE_GENERATION`
2334 Variable that controls which locales for ``glibc`` are generated 2644 Variable that controls which locales for ``glibc`` are generated
2335 during the build (useful if the target device has 64Mbytes of RAM or 2645 during the build (useful if the target device has 64Mbytes of RAM or
@@ -2486,6 +2796,13 @@ system and gives an overview of their function and contents.
2486 external tools. See the :ref:`ref-classes-kernel-yocto` class in 2796 external tools. See the :ref:`ref-classes-kernel-yocto` class in
2487 ``meta/classes-recipe`` to see how the variable is used. 2797 ``meta/classes-recipe`` to see how the variable is used.
2488 2798
2799 :term:`EXTERNAL_KERNEL_DEVICETREE`
2800 When inheriting :ref:`ref-classes-kernel-fit-image` and a
2801 :term:`PREFERRED_PROVIDER` for ``virtual/dtb`` set to ``devicetree``, the
2802 variable :term:`EXTERNAL_KERNEL_DEVICETREE` can be used to specify a
2803 directory containing one or more compiled device tree or device tree
2804 overlays to use.
2805
2489 :term:`KERNEL_LOCALVERSION` 2806 :term:`KERNEL_LOCALVERSION`
2490 This variable allows to append a string to the version 2807 This variable allows to append a string to the version
2491 of the kernel image. This corresponds to the ``CONFIG_LOCALVERSION`` 2808 of the kernel image. This corresponds to the ``CONFIG_LOCALVERSION``
@@ -2553,10 +2870,14 @@ system and gives an overview of their function and contents.
2553 - "dbg-pkgs" --- adds -dbg packages for all installed packages including 2870 - "dbg-pkgs" --- adds -dbg packages for all installed packages including
2554 symbol information for debugging and profiling. 2871 symbol information for debugging and profiling.
2555 2872
2556 - "debug-tweaks" --- makes an image suitable for debugging. For example, allows root logins without passwords and 2873 - "empty-root-password" --- This feature can be used if you want to
2557 enables post-installation logging. See the 'allow-empty-password' and 2874 allow root login with an empty password.
2558 'post-install-logging' features in the ":ref:`ref-features-image`" 2875 - "allow-empty-password" --- Allows Dropbear and OpenSSH to accept
2559 section for more information. 2876 logins from accounts having an empty password string.
2877 - "allow-root-login" --- Allows Dropbear and OpenSSH to accept root logins.
2878 - "post-install-logging" --- Enables logging postinstall script runs to
2879 the ``/var/log/postinstall.log`` file on first boot of the image on
2880 the target system.
2560 - "dev-pkgs" --- adds -dev packages for all installed packages. This is 2881 - "dev-pkgs" --- adds -dev packages for all installed packages. This is
2561 useful if you want to develop against the libraries in the image. 2882 useful if you want to develop against the libraries in the image.
2562 - "read-only-rootfs" --- creates an image whose root filesystem is 2883 - "read-only-rootfs" --- creates an image whose root filesystem is
@@ -2729,6 +3050,9 @@ system and gives an overview of their function and contents.
2729 :term:`FAKEROOTNOENV` 3050 :term:`FAKEROOTNOENV`
2730 See :term:`bitbake:FAKEROOTNOENV` in the BitBake manual. 3051 See :term:`bitbake:FAKEROOTNOENV` in the BitBake manual.
2731 3052
3053 :term:`FC`
3054 The minimal command and arguments used to run the Fortran compiler.
3055
2732 :term:`FEATURE_PACKAGES` 3056 :term:`FEATURE_PACKAGES`
2733 Defines one or more packages to include in an image when a specific 3057 Defines one or more packages to include in an image when a specific
2734 item is included in :term:`IMAGE_FEATURES`. 3058 item is included in :term:`IMAGE_FEATURES`.
@@ -2960,41 +3284,57 @@ system and gives an overview of their function and contents.
2960 :ref:`ref-tasks-patch` task as well. 3284 :ref:`ref-tasks-patch` task as well.
2961 3285
2962 :term:`FILESYSTEM_PERMS_TABLES` 3286 :term:`FILESYSTEM_PERMS_TABLES`
2963 Allows you to define your own file permissions settings table as part 3287 Allows you to define your own file permissions settings tables as part
2964 of your configuration for the packaging process. For example, suppose 3288 of your configuration for the packaging process. For example, suppose
2965 you need a consistent set of custom permissions for a set of groups 3289 you need a consistent set of custom permissions for a set of groups
2966 and users across an entire work project. It is best to do this in the 3290 and users across an entire work project. It is best to do this in the
2967 packages themselves but this is not always possible. 3291 packages themselves but this is not always possible.
2968 3292
2969 By default, the OpenEmbedded build system uses the ``fs-perms.txt``, 3293 By default, the OpenEmbedded build system uses the ``fs-perms.txt``,
2970 which is located in the ``meta/files`` folder in the :term:`Source Directory`. 3294 ``fs-perms-volatile-log.txt`` and ``fs-perms-volatile-tmp.txt`` which are
2971 If you create your own file 3295 located in the ``meta/files`` folder in the :term:`Source Directory`. If
2972 permissions setting table, you should place it in your layer or the 3296 you create your own permission setting table files, you should place
2973 distro's layer. 3297 those in your layer.
2974 3298
2975 You define the :term:`FILESYSTEM_PERMS_TABLES` variable in the 3299 You can override the value of :term:`FILESYSTEM_PERMS_TABLES` variable
2976 ``conf/local.conf`` file, which is found in the :term:`Build Directory`, 3300 in your distribution configuration file to point to your custom
2977 to point to your custom ``fs-perms.txt``. You can specify more than a 3301 permission table files. You can specify one or more file permissions
2978 single file permissions setting table. The paths you specify to these 3302 setting tables. The paths that you specify to these files must be defined
2979 files must be defined within the :term:`BBPATH` variable. 3303 within the :term:`BBPATH` variable.
2980 3304
2981 For guidance on how to create your own file permissions settings 3305 In order to disable the volatile log, which is enabled by default, one
2982 table file, examine the existing ``fs-perms.txt``. 3306 can remove the ``files/fs-perms-volatile-log.txt`` value from
3307 ``FILESYSTEM_PERMS_TABLES``. Similarly, in order to disable the volatile
3308 tmp, one can remove the ``files/fs-perms-volatile-tmp.txt`` value.
3309
3310 For guidance on how to define your own file permissions settings
3311 tables, examine the existing ``fs-perms.txt``,
3312 ``fs-perms-volatile-log.txt`` and ``fs-perms-volatile-tmp.txt`` files.
3313
3314 :term:`FIRMWARE_COMPRESSION`
3315 The :term:`FIRMWARE_COMPRESSION` allows compressing the firmware provided
3316 by the ``linux-firmware`` recipe. The default value of this variable is an
3317 empty string (no compression), and the possible values it can take are
3318 ``xz`` and ``zst``. This can allow significant disk space savings.
3319
3320 For this to work, the Linux Kernel requires the
3321 ``CONFIG_FW_LOADER_COMPRESS_XZ`` or ``CONFIG_FW_LOADER_COMPRESS_ZSTD``
3322 configuration options to be set.
2983 3323
2984 :term:`FIT_ADDRESS_CELLS` 3324 :term:`FIT_ADDRESS_CELLS`
2985 Specifies the value of the ``#address-cells`` value for the 3325 Specifies the value of the ``#address-cells`` value for the
2986 description of the FIT image. 3326 description of the FIT image.
2987 3327
2988 The default value is set to "1" by the :ref:`ref-classes-kernel-fitimage` 3328 The default value is set to "1" by the :ref:`ref-classes-kernel-fit-image`
2989 class, which corresponds to 32 bit addresses. 3329 class, which corresponds to 32 bit addresses.
2990 3330
2991 For platforms that need to set 64 bit addresses, for example in 3331 For platforms that need to set 64 bit addresses, for example in
2992 :term:`UBOOT_LOADADDRESS` and :term:`UBOOT_ENTRYPOINT`, you need to 3332 :term:`UBOOT_LOADADDRESS` and :term:`UBOOT_ENTRYPOINT`, you need to
2993 set this value to "2", as two 32 bit values (cells) will be needed 3333 set this value to "2", as two 32 bit values (cells) will be needed
2994 to represent such addresses. 3334 to represent such addresses.
2995 3335
2996 Here is an example setting "0x400000000" as a load address:: 3336 Here is an example setting "0x400000000" as a load address::
2997 3337
2998 FIT_ADDRESS_CELLS = "2" 3338 FIT_ADDRESS_CELLS = "2"
2999 UBOOT_LOADADDRESS= "0x04 0x00000000" 3339 UBOOT_LOADADDRESS= "0x04 0x00000000"
3000 3340
@@ -3004,11 +3344,11 @@ system and gives an overview of their function and contents.
3004 Specifies the default device tree binary (dtb) file for a FIT image 3344 Specifies the default device tree binary (dtb) file for a FIT image
3005 when multiple ones are provided. 3345 when multiple ones are provided.
3006 3346
3007 This variable is used in the :ref:`ref-classes-kernel-fitimage` class. 3347 This variable is used in the :ref:`ref-classes-kernel-fit-image` class.
3008 3348
3009 :term:`FIT_DESC` 3349 :term:`FIT_DESC`
3010 Specifies the description string encoded into a FIT image. The 3350 Specifies the description string encoded into a FIT image. The
3011 default value is set by the :ref:`ref-classes-kernel-fitimage` class as 3351 default value is set by the :ref:`ref-classes-kernel-fit-image` class as
3012 follows:: 3352 follows::
3013 3353
3014 FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}" 3354 FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
@@ -3017,12 +3357,12 @@ system and gives an overview of their function and contents.
3017 Decides whether to generate the keys for signing the FIT image if 3357 Decides whether to generate the keys for signing the FIT image if
3018 they don't already exist. The keys are created in 3358 they don't already exist. The keys are created in
3019 :term:`UBOOT_SIGN_KEYDIR`. The default value is set to "0" 3359 :term:`UBOOT_SIGN_KEYDIR`. The default value is set to "0"
3020 by the :ref:`ref-classes-kernel-fitimage` class. 3360 by the :ref:`ref-classes-kernel-fit-image` class.
3021 3361
3022 :term:`FIT_HASH_ALG` 3362 :term:`FIT_HASH_ALG`
3023 Specifies the hash algorithm used in creating the FIT Image. 3363 Specifies the hash algorithm used in creating the FIT Image.
3024 This variable is set by default to "sha256" by the 3364 This variable is set by default to "sha256" by the
3025 :ref:`ref-classes-kernel-fitimage` class. 3365 :ref:`ref-classes-kernel-fit-image` class.
3026 3366
3027 :term:`FIT_KERNEL_COMP_ALG` 3367 :term:`FIT_KERNEL_COMP_ALG`
3028 The compression algorithm to use for the kernel image inside the FIT Image. 3368 The compression algorithm to use for the kernel image inside the FIT Image.
@@ -3041,42 +3381,89 @@ system and gives an overview of their function and contents.
3041 :term:`FIT_KEY_GENRSA_ARGS` 3381 :term:`FIT_KEY_GENRSA_ARGS`
3042 Arguments to ``openssl genrsa`` for generating a RSA private key for 3382 Arguments to ``openssl genrsa`` for generating a RSA private key for
3043 signing the FIT image. The default value is set to "-F4" by the 3383 signing the FIT image. The default value is set to "-F4" by the
3044 :ref:`ref-classes-kernel-fitimage` class. 3384 :ref:`ref-classes-kernel-fit-image` class.
3045 3385
3046 :term:`FIT_KEY_REQ_ARGS` 3386 :term:`FIT_KEY_REQ_ARGS`
3047 Arguments to ``openssl req`` for generating a certificate for signing 3387 Arguments to ``openssl req`` for generating a certificate for signing
3048 the FIT image. The default value is "-batch -new" by the 3388 the FIT image. The default value is "-batch -new" by the
3049 :ref:`ref-classes-kernel-fitimage` class, "batch" for 3389 :ref:`ref-classes-kernel-fit-image` class, "batch" for
3050 non interactive mode and "new" for generating new keys. 3390 non interactive mode and "new" for generating new keys.
3051 3391
3052 :term:`FIT_KEY_SIGN_PKCS` 3392 :term:`FIT_KEY_SIGN_PKCS`
3053 Format for the public key certificate used for signing the FIT image. 3393 Format for the public key certificate used for signing the FIT image.
3054 The default value is set to "x509" by the 3394 The default value is set to "x509" by the
3055 :ref:`ref-classes-kernel-fitimage` class. 3395 :ref:`ref-classes-kernel-fit-image` class.
3056 3396
3057 :term:`FIT_SIGN_ALG` 3397 :term:`FIT_SIGN_ALG`
3058 Specifies the signature algorithm used in creating the FIT Image. 3398 Specifies the signature algorithm used in creating the FIT Image.
3059 This variable is set by default to "rsa2048" by the 3399 This variable is set by default to "rsa2048" by the
3060 :ref:`ref-classes-kernel-fitimage` class. 3400 :ref:`ref-classes-kernel-fit-image` class.
3061 3401
3062 :term:`FIT_PAD_ALG` 3402 :term:`FIT_PAD_ALG`
3063 Specifies the padding algorithm used in creating the FIT Image. 3403 Specifies the padding algorithm used in creating the FIT Image.
3064 The default value is set to "pkcs-1.5" by the 3404 The default value is set to "pkcs-1.5" by the
3065 :ref:`ref-classes-kernel-fitimage` class. 3405 :ref:`ref-classes-kernel-fit-image` class.
3066 3406
3067 :term:`FIT_SIGN_INDIVIDUAL` 3407 :term:`FIT_SIGN_INDIVIDUAL`
3068 If set to "1", then the :ref:`ref-classes-kernel-fitimage` 3408 If set to "1", the :ref:`ref-classes-kernel-fit-image` class signs each
3069 class will sign the kernel, dtb and ramdisk images individually in addition 3409 image node individually, including the kernel, DTB, RAM disk, and any
3070 to signing the FIT image itself. This could be useful if you are 3410 other image types present in the FIT image, in addition to signing the
3071 intending to verify signatures in another context than booting via 3411 configuration nodes.
3072 U-Boot. 3412 This can be useful if you need to verify signatures outside of the
3073 3413 U-Boot boot process. By default, this variable is set to "0".
3074 This variable is set to "0" by default. 3414
3415 If :term:`UBOOT_SIGN_ENABLE` is set to "1" and
3416 :term:`FIT_SIGN_INDIVIDUAL` remains at its default value of "0", only the
3417 configuration nodes are signed. Since configuration nodes include hashes
3418 of their referenced image nodes, the integrity of the entire FIT image is
3419 ensured as long as the image nodes are loaded via the configuration nodes
3420 and the hashes of the image nodes are checked. That's usually the case.
3421
3422 Enabling :term:`FIT_SIGN_INDIVIDUAL` typically increases complexity for
3423 little benefit. There might be exceptions such as image nodes that are
3424 not referenced by any configuration node or loaded directly for whatever
3425 reason.
3426 For most use cases, setting this variable to "0" provides sufficient
3427 security.
3428
3429 For further details, refer to the official U-Boot documentation:
3430 `U-Boot fit signature <https://docs.u-boot.org/en/latest/usage/fit/signature.html>`__
3431 and more specifically at:
3432 `U-Boot signed configurations <https://docs.u-boot.org/en/latest/usage/fit/signature.html#signed-configurations>`__.
3433
3434 Signing only the image nodes is intentionally not implemented by
3435 :term:`OpenEmbedded-Core (OE-Core)`, as it is vulnerable to mix-and-match
3436 attacks.
3075 3437
3076 :term:`FIT_SIGN_NUMBITS` 3438 :term:`FIT_SIGN_NUMBITS`
3077 Size of the private key used in the FIT image, in number of bits. 3439 Size of the private key used in the FIT image, in number of bits.
3078 The default value for this variable is set to "2048" 3440 The default value for this variable is set to "2048"
3079 by the :ref:`ref-classes-kernel-fitimage` class. 3441 by the :ref:`ref-classes-kernel-fit-image` class.
3442
3443 :term:`FIT_UBOOT_ENV`
3444 This variable allows to add a U-Boot script as a text file to the
3445 FIT image. Such a script can be sourced from the U-Boot shell.
3446
3447 When inheriting the :ref:`ref-classes-kernel-fit-image` class a
3448 script file should be included in the :term:`SRC_URI` of the Linux
3449 kernel recipe.
3450
3451 Example:
3452
3453 - Add a script ``boot.cmd`` to the Linux kernel recipe::
3454
3455 FIT_UBOOT_ENV = "boot.cmd"
3456 SRC_URI += "file://${FIT_UBOOT_ENV}"
3457
3458 - Use the script file from the U-Boot shell. The name of the script in
3459 FIT image is ``bootscr-${FIT_UBOOT_ENV}``. This example loads the FIT
3460 image from a TFTP server::
3461
3462 tftp $loadaddr $fit_tftp_path
3463 source $loadaddr#bootscr-boot.cmd
3464
3465 More information can be found in the official U-Boot documentation:
3466 `U-Boot source command <https://docs.u-boot.org/en/latest/usage/cmd/source.html#fit-image.f>`__
3080 3467
3081 :term:`FONT_EXTRA_RDEPENDS` 3468 :term:`FONT_EXTRA_RDEPENDS`
3082 When inheriting the :ref:`ref-classes-fontcache` class, 3469 When inheriting the :ref:`ref-classes-fontcache` class,
@@ -3263,6 +3650,11 @@ system and gives an overview of their function and contents.
3263 See the :ref:`ref-classes-grub-efi` class for more 3650 See the :ref:`ref-classes-grub-efi` class for more
3264 information on how this variable is used. 3651 information on how this variable is used.
3265 3652
3653 :term:`GRUB_MKIMAGE_OPTS`
3654 This variable controls additional options passed to the ``grub-mkimage``
3655 command in the GNU GRand Unified Bootloader (GRUB) recipe during the
3656 ``do_mkimage`` task.
3657
3266 :term:`GRUB_OPTS` 3658 :term:`GRUB_OPTS`
3267 Additional options to add to the GNU GRand Unified Bootloader (GRUB) 3659 Additional options to add to the GNU GRand Unified Bootloader (GRUB)
3268 configuration. Use a semi-colon character (``;``) to separate 3660 configuration. Use a semi-colon character (``;``) to separate
@@ -3280,6 +3672,11 @@ system and gives an overview of their function and contents.
3280 :ref:`ref-classes-grub-efi` class for more information 3672 :ref:`ref-classes-grub-efi` class for more information
3281 on how this variable is used. 3673 on how this variable is used.
3282 3674
3675 :term:`GRUB_TITLE`
3676 Specifies custom titles for GRUB labels defined in :term:`LABELS`. See
3677 the :ref:`ref-classes-grub-efi` class for more information on how this
3678 variable is used.
3679
3283 :term:`GTKIMMODULES_PACKAGES` 3680 :term:`GTKIMMODULES_PACKAGES`
3284 When inheriting the :ref:`ref-classes-gtk-immodules-cache` class, 3681 When inheriting the :ref:`ref-classes-gtk-immodules-cache` class,
3285 this variable specifies the packages that contain the GTK+ input 3682 this variable specifies the packages that contain the GTK+ input
@@ -3308,6 +3705,20 @@ system and gives an overview of their function and contents.
3308 - mips 3705 - mips
3309 - mipsel 3706 - mipsel
3310 3707
3708 :term:`HOST_AS_ARCH`
3709 Specifies architecture-specific assembler flags.
3710
3711 Default initialization for :term:`HOST_AS_ARCH` varies depending on what
3712 is being built:
3713
3714 - :term:`TARGET_AS_ARCH` when building for the
3715 target
3716
3717 - :term:`BUILD_AS_ARCH` when building for the build host (i.e.
3718 ``-native``)
3719
3720 - :term:`SDK_AS_ARCH` when building for an SDK (i.e. ``nativesdk-``)
3721
3311 :term:`HOST_CC_ARCH` 3722 :term:`HOST_CC_ARCH`
3312 Specifies architecture-specific compiler flags that are passed to the 3723 Specifies architecture-specific compiler flags that are passed to the
3313 C compiler. 3724 C compiler.
@@ -3321,8 +3732,20 @@ system and gives an overview of their function and contents.
3321 - :term:`BUILD_CC_ARCH` when building for the build host (i.e. 3732 - :term:`BUILD_CC_ARCH` when building for the build host (i.e.
3322 ``-native``) 3733 ``-native``)
3323 3734
3324 - ``BUILDSDK_CC_ARCH`` when building for an SDK (i.e. 3735 - :term:`SDK_CC_ARCH` when building for an SDK (i.e. ``nativesdk-``)
3325 ``nativesdk-``) 3736
3737 :term:`HOST_LD_ARCH`
3738 Specifies architecture-specific linker flags.
3739
3740 Default initialization for :term:`HOST_LD_ARCH` varies depending on what
3741 is being built:
3742
3743 - :term:`TARGET_LD_ARCH` when building for the target
3744
3745 - :term:`BUILD_LD_ARCH` when building for the build host (i.e.
3746 ``-native``)
3747
3748 - :term:`SDK_LD_ARCH` when building for an SDK (i.e. ``nativesdk-``)
3326 3749
3327 :term:`HOST_OS` 3750 :term:`HOST_OS`
3328 Specifies the name of the target operating system, which is normally 3751 Specifies the name of the target operating system, which is normally
@@ -3757,6 +4180,25 @@ system and gives an overview of their function and contents.
3757 clear the value of this variable (set the value to ""). For example, 4180 clear the value of this variable (set the value to ""). For example,
3758 this is typically cleared in :term:`Initramfs` image recipes. 4181 this is typically cleared in :term:`Initramfs` image recipes.
3759 4182
4183 :term:`IMAGE_OUTPUT_MANIFEST`
4184 When inheriting the :ref:`ref-classes-image` class directly or through the
4185 :ref:`ref-classes-core-image` class, the :term:`IMAGE_OUTPUT_MANIFEST`
4186 points to a manifest ``json`` file that lists what images were created by
4187 various image creation tasks (as defined by the :term:`IMAGE_FSTYPES`
4188 variable). It is set in the :ref:`ref-classes-image` class as follows::
4189
4190 IMAGE_OUTPUT_MANIFEST = "${IMAGE_OUTPUT_MANIFEST_DIR}/manifest.json"
4191
4192 :term:`IMAGE_OUTPUT_MANIFEST_DIR`
4193 When inheriting the :ref:`ref-classes-image` class directly or through the
4194 :ref:`ref-classes-core-image` class, the :term:`IMAGE_OUTPUT_MANIFEST_DIR` points to
4195 a directory that stores a manifest ``json`` file that lists what
4196 images were created by various image creation tasks (as defined by the
4197 :term:`IMAGE_FSTYPES` variable). It is set in the :ref:`ref-classes-image`
4198 class as follows::
4199
4200 IMAGE_OUTPUT_MANIFEST_DIR = "${WORKDIR}/deploy-image-output-manifest"
4201
3760 :term:`IMAGE_OVERHEAD_FACTOR` 4202 :term:`IMAGE_OVERHEAD_FACTOR`
3761 Defines a multiplier that the build system applies to the initial 4203 Defines a multiplier that the build system applies to the initial
3762 image size for cases when the multiplier times the returned disk 4204 image size for cases when the multiplier times the returned disk
@@ -3863,6 +4305,36 @@ system and gives an overview of their function and contents.
3863 4305
3864 IMAGE_ROOTFS_EXTRA_SPACE = "41943040" 4306 IMAGE_ROOTFS_EXTRA_SPACE = "41943040"
3865 4307
4308 :term:`IMAGE_ROOTFS_MAXSIZE`
4309 Defines the maximum allowed size of the generated image in kilobytes.
4310 The build will fail if the generated image size exceeds this value.
4311
4312 The generated image size undergoes several calculation steps before being
4313 compared to :term:`IMAGE_ROOTFS_MAXSIZE`.
4314 In the first step, the size of the directory pointed to by :term:`IMAGE_ROOTFS`
4315 is calculated.
4316 In the second step, the result from the first step is multiplied
4317 by :term:`IMAGE_OVERHEAD_FACTOR`.
4318 In the third step, the result from the second step is compared with
4319 :term:`IMAGE_ROOTFS_SIZE`. The larger value of these is added to
4320 :term:`IMAGE_ROOTFS_EXTRA_SPACE`.
4321 In the fourth step, the result from the third step is checked for
4322 a decimal part. If it has one, it is rounded up to the next integer.
4323 If it does not, it is simply converted into an integer.
4324 In the fifth step, the :term:`IMAGE_ROOTFS_ALIGNMENT` is added to the result
4325 from the fourth step and "1" is subtracted.
4326 In the sixth step, the remainder of the division between the result
4327 from the fifth step and :term:`IMAGE_ROOTFS_ALIGNMENT` is subtracted from the
4328 result of the fifth step. In this way, the result from the fourth step is
4329 rounded up to the nearest multiple of :term:`IMAGE_ROOTFS_ALIGNMENT`.
4330
4331 Thus, if the :term:`IMAGE_ROOTFS_MAXSIZE` is set, is compared with the result
4332 of the above calculations and is independent of the final image type.
4333 No default value is set for :term:`IMAGE_ROOTFS_MAXSIZE`.
4334
4335 It's a good idea to set this variable for images that need to fit on a limited
4336 space (e.g. SD card, a fixed-size partition, ...).
4337
3866 :term:`IMAGE_ROOTFS_SIZE` 4338 :term:`IMAGE_ROOTFS_SIZE`
3867 Defines the size in Kbytes for the generated image. The OpenEmbedded 4339 Defines the size in Kbytes for the generated image. The OpenEmbedded
3868 build system determines the final size for the generated image using 4340 build system determines the final size for the generated image using
@@ -3943,6 +4415,7 @@ system and gives an overview of their function and contents.
3943 - wic.bz2 4415 - wic.bz2
3944 - wic.gz 4416 - wic.gz
3945 - wic.lzma 4417 - wic.lzma
4418 - wic.zst
3946 4419
3947 For more information about these types of images, see 4420 For more information about these types of images, see
3948 ``meta/classes-recipe/image_types*.bbclass`` in the :term:`Source Directory`. 4421 ``meta/classes-recipe/image_types*.bbclass`` in the :term:`Source Directory`.
@@ -3967,19 +4440,29 @@ system and gives an overview of their function and contents.
3967 files to be deployed into :term:`IMGDEPLOYDIR`, and the class will take 4440 files to be deployed into :term:`IMGDEPLOYDIR`, and the class will take
3968 care of copying them into :term:`DEPLOY_DIR_IMAGE` afterwards. 4441 care of copying them into :term:`DEPLOY_DIR_IMAGE` afterwards.
3969 4442
4443 :term:`IMGMANIFESTDIR`
4444 When inheriting the :ref:`ref-classes-image` class directly or through the
4445 :ref:`ref-classes-core-image` class, the :term:`IMGMANIFESTDIR` setting
4446 points to a temporary area that stores manifest ``json`` files, that list
4447 what images were created by various images creation tasks (as defined by
4448 the :term:`IMAGE_FSTYPES` variable). It is set in the
4449 :ref:`ref-classes-image` class as follows::
4450
4451 IMGMANIFESTDIR = "${WORKDIR}/image-task-manifest"
4452
3970 :term:`INCOMPATIBLE_LICENSE` 4453 :term:`INCOMPATIBLE_LICENSE`
3971 Specifies a space-separated list of license names (as they would 4454 Specifies a space-separated list of license names (as they would
3972 appear in :term:`LICENSE`) that should be excluded 4455 appear in :term:`LICENSE`) that should be excluded
3973 from the build (if set globally), or from an image (if set locally 4456 from the build (if set globally), or from an image (if set locally
3974 in an image recipe). 4457 in an image recipe).
3975 4458
3976 When the variable is set globally, recipes that provide no alternatives to listed 4459 When the variable is set globally, recipes that provide no alternatives to listed
3977 incompatible licenses are not built. Packages that are individually 4460 incompatible licenses are not built. Packages that are individually
3978 licensed with the specified incompatible licenses will be deleted. 4461 licensed with the specified incompatible licenses will be deleted.
3979 Most of the time this does not allow a feasible build (because it becomes impossible 4462 Most of the time this does not allow a feasible build (because it becomes impossible
3980 to satisfy build time dependencies), so the recommended way to 4463 to satisfy build time dependencies), so the recommended way to
3981 implement license restrictions is to set the variable in specific 4464 implement license restrictions is to set the variable in specific
3982 image recipes where the restrictions must apply. That way there 4465 image recipes where the restrictions must apply. That way there
3983 are no build time restrictions, but the license check is still 4466 are no build time restrictions, but the license check is still
3984 performed when the image's filesystem is assembled from packages. 4467 performed when the image's filesystem is assembled from packages.
3985 4468
@@ -4033,7 +4516,25 @@ system and gives an overview of their function and contents.
4033 The default value of the variable is set as follows in the 4516 The default value of the variable is set as follows in the
4034 ``meta/conf/distro/defaultsetup.conf`` file:: 4517 ``meta/conf/distro/defaultsetup.conf`` file::
4035 4518
4036 INHERIT_DISTRO ?= "debian devshell sstate license" 4519 INHERIT_DISTRO ?= "debian devshell sstate license remove-libtool create-spdx"
4520
4521 :term:`INHIBIT_AUTOTOOLS_DEPS`
4522 Prevents the :ref:`ref-classes-autotools` class from automatically adding
4523 its default build-time dependencies.
4524
4525 When a recipe inherits the :ref:`ref-classes-autotools` class, several
4526 native cross tools such as ``autoconf-native``, ``automake-native``,
4527 ``libtool-native``, ``libtool-cross`` are added to :term:`DEPENDS` to
4528 support the ``autotools`` build process.
4529
4530 To prevent the build system from adding these dependencies automatically,
4531 set the :term:`INHIBIT_AUTOTOOLS_DEPS` variable as follows::
4532
4533 INHIBIT_AUTOTOOLS_DEPS = "1"
4534
4535 By default, the value of :term:`INHIBIT_AUTOTOOLS_DEPS` is empty. Setting
4536 it to "0" does not disable inhibition. Only the empty string will disable
4537 inhibition.
4037 4538
4038 :term:`INHIBIT_DEFAULT_DEPS` 4539 :term:`INHIBIT_DEFAULT_DEPS`
4039 Prevents the default dependencies, namely the C compiler and standard 4540 Prevents the default dependencies, namely the C compiler and standard
@@ -4044,6 +4545,23 @@ system and gives an overview of their function and contents.
4044 Set the variable to "1" to prevent the default dependencies from 4545 Set the variable to "1" to prevent the default dependencies from
4045 being added. 4546 being added.
4046 4547
4548 :term:`INHIBIT_DEFAULT_RUST_DEPS`
4549 Prevents the :ref:`ref-classes-rust` class from automatically adding
4550 its default build-time dependencies.
4551
4552 When a recipe inherits the :ref:`ref-classes-rust` class, several
4553 tools such as ``rust-native`` and ``${RUSTLIB_DEP}`` (only added when cross-compiling) are added
4554 to :term:`DEPENDS` to support the ``rust`` build process.
4555
4556 To prevent the build system from adding these dependencies automatically,
4557 set the :term:`INHIBIT_DEFAULT_RUST_DEPS` variable as follows::
4558
4559 INHIBIT_DEFAULT_RUST_DEPS = "1"
4560
4561 By default, the value of :term:`INHIBIT_DEFAULT_RUST_DEPS` is empty. Setting
4562 it to "0" does not disable inhibition. Only the empty string will disable
4563 inhibition.
4564
4047 :term:`INHIBIT_PACKAGE_DEBUG_SPLIT` 4565 :term:`INHIBIT_PACKAGE_DEBUG_SPLIT`
4048 Prevents the OpenEmbedded build system from splitting out debug 4566 Prevents the OpenEmbedded build system from splitting out debug
4049 information during packaging. By default, the build system splits out 4567 information during packaging. By default, the build system splits out
@@ -4090,6 +4608,25 @@ system and gives an overview of their function and contents.
4090 even if the toolchain's binaries are strippable, there are other files 4608 even if the toolchain's binaries are strippable, there are other files
4091 needed for the build that are not strippable. 4609 needed for the build that are not strippable.
4092 4610
4611 :term:`INHIBIT_UPDATERCD_BBCLASS`
4612 Prevents the :ref:`ref-classes-update-rc.d` class from automatically
4613 installing and registering SysV init scripts for packages.
4614
4615 When a recipe inherits the :ref:`ref-classes-update-rc.d` class, init
4616 scripts are typically installed and registered for the packages listed in
4617 :term:`INITSCRIPT_PACKAGES`. This ensures that the relevant
4618 services are started and stopped at the appropriate runlevels using the
4619 traditional SysV init system.
4620
4621 To prevent the build system from adding these scripts and configurations
4622 automatically, set the :term:`INHIBIT_UPDATERCD_BBCLASS` variable as follows::
4623
4624 INHIBIT_UPDATERCD_BBCLASS = "1"
4625
4626 By default, the value of :term:`INHIBIT_UPDATERCD_BBCLASS` is empty. Setting
4627 it to "0" does not disable inhibition. Only the empty string will disable
4628 inhibition.
4629
4093 :term:`INIT_MANAGER` 4630 :term:`INIT_MANAGER`
4094 Specifies the system init manager to use. Available options are: 4631 Specifies the system init manager to use. Available options are:
4095 4632
@@ -4256,6 +4793,20 @@ system and gives an overview of their function and contents.
4256 See the :term:`MACHINE` variable for additional 4793 See the :term:`MACHINE` variable for additional
4257 information. 4794 information.
4258 4795
4796 :term:`INITRAMFS_MAXSIZE`
4797 Defines the maximum allowed size of the :term:`Initramfs` image in Kbytes.
4798 The build will fail if the :term:`Initramfs` image size exceeds this value.
4799
4800 The :term:`Initramfs` image size undergoes several calculation steps before
4801 being compared to :term:`INITRAMFS_MAXSIZE`.
4802 These steps are the same as those used for :term:`IMAGE_ROOTFS_MAXSIZE`
4803 and are described in detail in that entry.
4804
4805 Thus, :term:`INITRAMFS_MAXSIZE` is compared with the result of the calculations
4806 and is independent of the final image type (e.g. compressed).
4807 A default value for :term:`INITRAMFS_MAXSIZE` is set in
4808 :oe_git:`meta/conf/bitbake.conf </openembedded-core/tree/meta/conf/bitbake.conf>`.
4809
4259 :term:`INITRAMFS_MULTICONFIG` 4810 :term:`INITRAMFS_MULTICONFIG`
4260 Defines the multiconfig to create a multiconfig dependency to be used by 4811 Defines the multiconfig to create a multiconfig dependency to be used by
4261 the :ref:`ref-classes-kernel` class. 4812 the :ref:`ref-classes-kernel` class.
@@ -4321,8 +4872,7 @@ system and gives an overview of their function and contents.
4321 4872
4322 The value in :term:`INITSCRIPT_PARAMS` is passed through to the 4873 The value in :term:`INITSCRIPT_PARAMS` is passed through to the
4323 ``update-rc.d`` command. For more information on valid parameters, 4874 ``update-rc.d`` command. For more information on valid parameters,
4324 please see the ``update-rc.d`` manual page at 4875 please see the manual page: :manpage:`update-rc.d <update-rc.d(8)>`.
4325 https://manpages.debian.org/buster/init-system-helpers/update-rc.d.8.en.html
4326 4876
4327 :term:`INSANE_SKIP` 4877 :term:`INSANE_SKIP`
4328 Specifies the QA checks to skip for a specific package within a 4878 Specifies the QA checks to skip for a specific package within a
@@ -4426,6 +4976,60 @@ system and gives an overview of their function and contents.
4426 ":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`" 4976 ":ref:`kernel-dev/common:using an "in-tree" \`\`defconfig\`\` file`"
4427 section in the Yocto Project Linux Kernel Development Manual. 4977 section in the Yocto Project Linux Kernel Development Manual.
4428 4978
4979 :term:`KCONF_AUDIT_LEVEL`
4980 When inheriting the :ref:`ref-classes-kernel-yocto` class and when the
4981 :term:`KMETA_AUDIT` variable is set to a non-empty string, the
4982 :term:`KCONF_AUDIT_LEVEL` variable specifies whether to report Kernel
4983 configuration values that are different from the user-specified value. Its
4984 value is a positive integer (default: 1):
4985
4986 - 0: no reporting is done.
4987
4988 - 1: report the problems as warnings and trigger an error if
4989 :term:`KMETA_AUDIT_WERROR` is set.
4990
4991 - 2: if the :ref:`ref-tasks-kernel_configme` has failed to generate a
4992 ``.config`` file, print the content of the ``merge_config_build.log``
4993 file containing the errors, instead of just providing the path to
4994 that file.
4995
4996 For more details see the :ref:`ref-classes-kernel-yocto` class and the
4997 :yocto_git:`symbol_why.py </yocto-kernel-tools/tree/tools/symbol_why.py>`
4998 script in :yocto_git:`yocto-kernel-tools </yocto-kernel-tools>`.
4999
5000 :term:`KCONF_BSP_AUDIT_LEVEL`
5001 When inheriting the :ref:`ref-classes-kernel-yocto` class and when the
5002 :term:`KMETA_AUDIT` variable is set to a non-empty string, the
5003 :term:`KCONF_BSP_AUDIT_LEVEL` variable can be set to report:
5004
5005 #. User-specified Kernel configurations that did not make it into the final
5006 Kernel configuration.
5007
5008 #. Configurations defined in multiple input files with differing values.
5009
5010 Its value is a positive integer (default: 0):
5011
5012 - 0: no reporting is done.
5013
5014 - 1: reporting of configuration options that did not make it in the
5015 final configuration is done and is not limited to the current
5016 architecture (``ARCH``) in use.
5017
5018 - 2: reporting of configuration options that did not make it in the
5019 final configuration is done and is strictly limited to the current
5020 architecture (``ARCH``) in use.
5021
5022 - 3: report the problems found when this variable equals 2, and also
5023 report configurations options defined in multiple input files with
5024 differing values.
5025
5026 For value 1, 2 and 3 an error is produced if :term:`KMETA_AUDIT_WERROR`
5027 is set.
5028
5029 For more details see the :ref:`ref-classes-kernel-yocto` class and the
5030 :yocto_git:`symbol_why.py </yocto-kernel-tools/tree/tools/symbol_why.py>`
5031 script in :yocto_git:`yocto-kernel-tools </yocto-kernel-tools>`.
5032
4429 :term:`KCONFIG_MODE` 5033 :term:`KCONFIG_MODE`
4430 When used with the :ref:`ref-classes-kernel-yocto` 5034 When used with the :ref:`ref-classes-kernel-yocto`
4431 class, specifies the kernel configuration values to use for options 5035 class, specifies the kernel configuration values to use for options
@@ -4439,15 +5043,8 @@ system and gives an overview of their function and contents.
4439 options not explicitly specified will be disabled in the kernel 5043 options not explicitly specified will be disabled in the kernel
4440 config. 5044 config.
4441 5045
4442 In case :term:`KCONFIG_MODE` is not set the behaviour will depend on where 5046 In case :term:`KCONFIG_MODE` is not set the ``defconfig`` file
4443 the ``defconfig`` file is coming from. An "in-tree" ``defconfig`` file 5047 will be handled in ``allnoconfig`` mode.
4444 will be handled in ``alldefconfig`` mode, a ``defconfig`` file placed
4445 in ``${WORKDIR}`` through a meta-layer will be handled in
4446 ``allnoconfig`` mode.
4447
4448 An "in-tree" ``defconfig`` file can be selected via the
4449 :term:`KBUILD_DEFCONFIG` variable. :term:`KCONFIG_MODE` does not need to
4450 be explicitly set.
4451 5048
4452 A ``defconfig`` file compatible with ``allnoconfig`` mode can be 5049 A ``defconfig`` file compatible with ``allnoconfig`` mode can be
4453 generated by copying the ``.config`` file from a working Linux kernel 5050 generated by copying the ``.config`` file from a working Linux kernel
@@ -4485,22 +5082,33 @@ system and gives an overview of their function and contents.
4485 :term:`KERNEL_CLASSES` 5082 :term:`KERNEL_CLASSES`
4486 A list of classes defining kernel image types that the 5083 A list of classes defining kernel image types that the
4487 :ref:`ref-classes-kernel` class should inherit. You typically 5084 :ref:`ref-classes-kernel` class should inherit. You typically
4488 append this variable to enable extended image types. An example is 5085 append this variable to enable extended image types.
4489 ":ref:`ref-classes-kernel-fitimage`", which enables
4490 FIT image support and resides in ``meta/classes-recipe/kernel-fitimage.bbclass``.
4491 You can register custom kernel image types with the 5086 You can register custom kernel image types with the
4492 :ref:`ref-classes-kernel` class using this variable. 5087 :ref:`ref-classes-kernel` class using this variable.
4493 5088
5089 :term:`KERNEL_CONSOLE`
5090 The :term:`KERNEL_CONSOLE` variable holds the value of the ``console``
5091 parameter of the kernel command line and can be used in places such as a
5092 ``wks`` description file for :ref:`Wic images <dev-manual/wic:creating
5093 partitioned images using wic>`.
5094
5095 The default value of this variable is extracted from the first console
5096 device and setting in :term:`SERIAL_CONSOLES`. If nothing is found in
5097 :term:`SERIAL_CONSOLES`, the default value is set to ``ttyS0,115200``.
5098
5099 For more information, see the `Kernel command-line documentation
5100 <https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html>`__.
5101
4494 :term:`KERNEL_DANGLING_FEATURES_WARN_ONLY` 5102 :term:`KERNEL_DANGLING_FEATURES_WARN_ONLY`
4495 When kernel configuration fragments are missing for some 5103 When kernel configuration fragments are missing for some
4496 :term:`KERNEL_FEATURES` specified by layers or BSPs, 5104 :term:`KERNEL_FEATURES` specified by layers or BSPs,
4497 building and configuring the kernel stops with an error. 5105 building and configuring the kernel stops with an error.
4498 5106
4499 You can turn these errors into warnings by setting the 5107 You can turn these errors into warnings by setting the
4500 following in ``conf/local.conf``:: 5108 following in ``conf/local.conf``::
4501 5109
4502 KERNEL_DANGLING_FEATURES_WARN_ONLY = "1" 5110 KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
4503 5111
4504 You will still be warned that runtime issues may occur, 5112 You will still be warned that runtime issues may occur,
4505 but at least the kernel configuration and build process will 5113 but at least the kernel configuration and build process will
4506 be allowed to continue. 5114 be allowed to continue.
@@ -4749,6 +5357,27 @@ system and gives an overview of their function and contents.
4749 the :term:`KERNEL_PATH` variable. Both variables are common variables 5357 the :term:`KERNEL_PATH` variable. Both variables are common variables
4750 used by external Makefiles to point to the kernel source directory. 5358 used by external Makefiles to point to the kernel source directory.
4751 5359
5360 :term:`KERNEL_SPLIT_MODULES`
5361 When inheriting the :ref:`ref-classes-kernel-module-split` class, this
5362 variable controls whether kernel modules are split into separate packages
5363 or bundled into a single package.
5364
5365 For some use cases, a monolithic kernel module package
5366 :term:`KERNEL_PACKAGE_NAME` that contains all modules built from the
5367 kernel sources may be preferred to speed up the installation.
5368
5369 By default, this variable is set to ``1``, resulting in one package per
5370 module. Setting it to any other value will generate a single monolithic
5371 package containing all kernel modules.
5372
5373 .. note::
5374
5375 If :term:`KERNEL_SPLIT_MODULES` is set to 0, it is still possible to
5376 install all kernel modules at once by adding ``kernel-modules`` (assuming
5377 :term:`KERNEL_PACKAGE_NAME` is ``kernel-modules``) to :term:`IMAGE_INSTALL`.
5378 The way it works is that a placeholder "kernel-modules" package will be
5379 created and will depend on every other individual kernel module packages.
5380
4752 :term:`KERNEL_SRC` 5381 :term:`KERNEL_SRC`
4753 The location of the kernel sources. This variable is set to the value 5382 The location of the kernel sources. This variable is set to the value
4754 of the :term:`STAGING_KERNEL_DIR` within the :ref:`ref-classes-module` 5383 of the :term:`STAGING_KERNEL_DIR` within the :ref:`ref-classes-module`
@@ -4817,6 +5446,20 @@ system and gives an overview of their function and contents.
4817 However, the OpenEmbedded build system understands the machine as 5446 However, the OpenEmbedded build system understands the machine as
4818 "core2-32-intel-common". 5447 "core2-32-intel-common".
4819 5448
5449 :term:`KMETA_AUDIT`
5450 When inheriting the :ref:`ref-classes-kernel-yocto` class, the
5451 :term:`KMETA_AUDIT` variable enables or disables auditing of Linux Kernel
5452 configuration. The default value for this variable is "yes", and auditing
5453 is enabled. Set this variable to an empty string to disable auditing.
5454
5455 :term:`KMETA_AUDIT_WERROR`
5456 When inheriting the :ref:`ref-classes-kernel-yocto` class and when the
5457 :term:`KMETA_AUDIT` and the :term:`KMETA_AUDIT_WERROR` variables are set
5458 to non-empty strings, produce an error if Linux kernel configuration
5459 problems were detected, instead of warnings only. For more details on the
5460 Linux Kernel configuration auditing feature, see :term:`KCONF_AUDIT_LEVEL`
5461 and :term:`KCONF_BSP_AUDIT_LEVEL`.
5462
4820 :term:`KTYPE` 5463 :term:`KTYPE`
4821 Defines the kernel type to be used in assembling the configuration. 5464 Defines the kernel type to be used in assembling the configuration.
4822 The linux-yocto recipes define "standard", "tiny", and "preempt-rt" 5465 The linux-yocto recipes define "standard", "tiny", and "preempt-rt"
@@ -4891,7 +5534,8 @@ system and gives an overview of their function and contents.
4891 ``LAYERVERSION_mylayer``). 5534 ``LAYERVERSION_mylayer``).
4892 5535
4893 :term:`LD` 5536 :term:`LD`
4894 The minimal command and arguments used to run the linker. 5537 The minimal command and arguments used to run the :manpage:`linker
5538 <ld(1)>`.
4895 5539
4896 :term:`LDFLAGS` 5540 :term:`LDFLAGS`
4897 Specifies the flags to pass to the linker. This variable is exported 5541 Specifies the flags to pass to the linker. This variable is exported
@@ -5069,7 +5713,7 @@ system and gives an overview of their function and contents.
5069 The :term:`LINUX_VERSION` variable is used to define :term:`PV` 5713 The :term:`LINUX_VERSION` variable is used to define :term:`PV`
5070 for the recipe:: 5714 for the recipe::
5071 5715
5072 PV = "${LINUX_VERSION}+git${SRCPV}" 5716 PV = "${LINUX_VERSION}+git"
5073 5717
5074 :term:`LINUX_VERSION_EXTENSION` 5718 :term:`LINUX_VERSION_EXTENSION`
5075 A string extension compiled into the version string of the Linux 5719 A string extension compiled into the version string of the Linux
@@ -5327,6 +5971,10 @@ system and gives an overview of their function and contents.
5327 you to specify the inclusion of debugging symbols and the compiler 5971 you to specify the inclusion of debugging symbols and the compiler
5328 optimizations (none, performance or size). 5972 optimizations (none, performance or size).
5329 5973
5974 :term:`MESON_INSTALL_TAGS`
5975 A variable for the :ref:`ref-classes-meson` class, allowing to specify
5976 install tags (``--tags`` argument of the ``meson install`` command).
5977
5330 :term:`MESON_TARGET` 5978 :term:`MESON_TARGET`
5331 A variable for the :ref:`ref-classes-meson` class, allowing to choose 5979 A variable for the :ref:`ref-classes-meson` class, allowing to choose
5332 a Meson target to build in :ref:`ref-tasks-compile`. Otherwise, the 5980 a Meson target to build in :ref:`ref-tasks-compile`. Otherwise, the
@@ -5465,6 +6113,11 @@ system and gives an overview of their function and contents.
5465 specifies the base directory for auto-mounting filesystems. The 6113 specifies the base directory for auto-mounting filesystems. The
5466 default value is "/run/media". 6114 default value is "/run/media".
5467 6115
6116 :term:`MOUNT_GROUP`
6117 On non-systemd systems (where ``udev-extraconf`` is being used),
6118 specifies the mount group for auto-mounting filesystems. The
6119 default value is "disk".
6120
5468 :term:`MULTIMACH_TARGET_SYS` 6121 :term:`MULTIMACH_TARGET_SYS`
5469 Uniquely identifies the type of the target system for which packages 6122 Uniquely identifies the type of the target system for which packages
5470 are being built. This variable allows output for different types of 6123 are being built. This variable allows output for different types of
@@ -5497,7 +6150,7 @@ system and gives an overview of their function and contents.
5497 variable is set. 6150 variable is set.
5498 6151
5499 :term:`NM` 6152 :term:`NM`
5500 The minimal command and arguments to run ``nm``. 6153 The minimal command and arguments to run :manpage:`nm <nm(1)>`.
5501 6154
5502 :term:`NO_GENERIC_LICENSE` 6155 :term:`NO_GENERIC_LICENSE`
5503 Avoids QA errors when you use a non-common, non-CLOSED license in a 6156 Avoids QA errors when you use a non-common, non-CLOSED license in a
@@ -5570,11 +6223,38 @@ system and gives an overview of their function and contents.
5570 6223
5571 NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot" 6224 NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts ovmf u-boot"
5572 6225
6226 :term:`NVD_DB_VERSION`
6227 The :term:`NVD_DB_VERSION` variable allows choosing the CVE feed when
6228 using the :ref:`ref-classes-cve-check` class. It can be one of:
6229
6230 - ``NVD2`` (default): the NVD feed with API version 2
6231 - ``FKIE``: the `FKIE-CAD <https://github.com/fkie-cad/nvd-json-data-feeds>`__
6232 feed reconstruction
6233 - ``NVD1``: the NVD JSON feed (deprecated)
6234
6235 In case of a malformed feed name, the ``NVD2`` feed is selected and an
6236 error is printed.
6237
6238 :term:`NVDCVE_API_KEY`
6239 The NVD API key used to retrieve data from the CVE database when
6240 using :ref:`ref-classes-cve-check`.
6241
6242 By default, no API key is used, which results in larger delays between API
6243 requests and limits the number of queries to the public rate limits posted
6244 at the `NVD developer's page <https://nvd.nist.gov/developers/start-here>`__.
6245
6246 NVD API keys can be requested through the
6247 `Request an API Key <https://nvd.nist.gov/developers/request-an-api-key>`__
6248 page. You can set this variable to the NVD API key in your ``local.conf`` file.
6249 Example::
6250
6251 NVDCVE_API_KEY = "fe753&7a2-1427-347d-23ff-b2e2b7ca5f3"
6252
5573 :term:`OBJCOPY` 6253 :term:`OBJCOPY`
5574 The minimal command and arguments to run ``objcopy``. 6254 The minimal command and arguments to run :manpage:`objcopy <objcopy(1)>`.
5575 6255
5576 :term:`OBJDUMP` 6256 :term:`OBJDUMP`
5577 The minimal command and arguments to run ``objdump``. 6257 The minimal command and arguments to run :manpage:`objdump <objdump(1)>`.
5578 6258
5579 :term:`OE_BINCONFIG_EXTRA_MANGLE` 6259 :term:`OE_BINCONFIG_EXTRA_MANGLE`
5580 When inheriting the :ref:`ref-classes-binconfig` class, 6260 When inheriting the :ref:`ref-classes-binconfig` class,
@@ -5599,14 +6279,6 @@ system and gives an overview of their function and contents.
5599 6279
5600 OECMAKE_GENERATOR = "Unix Makefiles" 6280 OECMAKE_GENERATOR = "Unix Makefiles"
5601 6281
5602 :term:`OE_IMPORTS`
5603 An internal variable used to tell the OpenEmbedded build system what
5604 Python modules to import for every Python function run by the system.
5605
5606 .. note::
5607
5608 Do not set this variable. It is for internal use only.
5609
5610 :term:`OE_INIT_ENV_SCRIPT` 6282 :term:`OE_INIT_ENV_SCRIPT`
5611 The name of the build environment setup script for the purposes of 6283 The name of the build environment setup script for the purposes of
5612 setting up the environment within the extensible SDK. The default 6284 setting up the environment within the extensible SDK. The default
@@ -5642,6 +6314,13 @@ system and gives an overview of their function and contents.
5642 For additional information on how this variable is used, see the 6314 For additional information on how this variable is used, see the
5643 initialization script. 6315 initialization script.
5644 6316
6317 :term:`OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS`
6318 Set build target(s) for build reproducibility testing but activate
6319 :ref:`shared state <overview-manual/concepts:shared state cache>` build
6320 for most dependencies (i.e. the ones explicitly listed in DEPENDS, which
6321 may not be all dependencies, c.f. [depends] varflags, PACKAGE_DEPENDS and
6322 other implementations). See :doc:`/test-manual/reproducible-builds`.
6323
5645 :term:`OEQA_REPRODUCIBLE_TEST_PACKAGE` 6324 :term:`OEQA_REPRODUCIBLE_TEST_PACKAGE`
5646 Set the package manager(s) for build reproducibility testing. 6325 Set the package manager(s) for build reproducibility testing.
5647 See :yocto_git:`reproducible.py </poky/tree/meta/lib/oeqa/selftest/cases/reproducible.py>` 6326 See :yocto_git:`reproducible.py </poky/tree/meta/lib/oeqa/selftest/cases/reproducible.py>`
@@ -5666,6 +6345,16 @@ system and gives an overview of their function and contents.
5666 default by setting the variable in a custom distribution 6345 default by setting the variable in a custom distribution
5667 configuration file. 6346 configuration file.
5668 6347
6348 :term:`OPKG_MAKE_INDEX_EXTRA_PARAMS`
6349 Specifies extra parameters for the ``opkg-make-index`` command.
6350
6351 :term:`OPKGBUILDCMD`
6352 The variable :term:`OPKGBUILDCMD` specifies the command used to build opkg
6353 packages when using the :ref:`ref-classes-package_ipk` class. It is
6354 defined in :ref:`ref-classes-package_ipk` as::
6355
6356 OPKGBUILDCMD ??= 'opkg-build -Z zstd -a "${ZSTD_DEFAULTS}"'
6357
5669 :term:`OVERLAYFS_ETC_DEVICE` 6358 :term:`OVERLAYFS_ETC_DEVICE`
5670 When the :ref:`ref-classes-overlayfs-etc` class is 6359 When the :ref:`ref-classes-overlayfs-etc` class is
5671 inherited, specifies the device to be mounted for the read/write 6360 inherited, specifies the device to be mounted for the read/write
@@ -6432,7 +7121,7 @@ system and gives an overview of their function and contents.
6432 For examples of how this data is used, see the 7121 For examples of how this data is used, see the
6433 ":ref:`overview-manual/concepts:automatically added runtime dependencies`" 7122 ":ref:`overview-manual/concepts:automatically added runtime dependencies`"
6434 section in the Yocto Project Overview and Concepts Manual and the 7123 section in the Yocto Project Overview and Concepts Manual and the
6435 ":ref:`dev-manual/debugging:viewing package information with \`\`oe-pkgdata-util\`\``" 7124 ":ref:`dev-manual/debugging:viewing package information with ``oe-pkgdata-util```"
6436 section in the Yocto Project Development Tasks Manual. For more 7125 section in the Yocto Project Development Tasks Manual. For more
6437 information on the shared, global-state directory, see 7126 information on the shared, global-state directory, see
6438 :term:`STAGING_DIR_HOST`. 7127 :term:`STAGING_DIR_HOST`.
@@ -6473,6 +7162,23 @@ system and gives an overview of their function and contents.
6473 The version of the package(s) built by the recipe. By default, 7162 The version of the package(s) built by the recipe. By default,
6474 :term:`PKGV` is set to :term:`PV`. 7163 :term:`PKGV` is set to :term:`PV`.
6475 7164
7165 If :term:`PV` contains the ``+`` sign, source control information will be
7166 included in :term:`PKGV` later in the packaging phase. For more
7167 information, see the :doc:`/dev-manual/external-scm` section of the Yocto
7168 Project Development Tasks Manual.
7169
7170 .. warning::
7171
7172 Since source control information is included in a late stage by the
7173 :ref:`ref-classes-package` class, it cannot be seen from the BitBake
7174 environment with ``bitbake -e`` or ``bitbake-getvar``. Instead, after
7175 the package is built, the version information can be retrieved with
7176 ``oe-pkgdata-util package-info <package name>``. See the
7177 :ref:`dev-manual/debugging:Viewing Package Information with
7178 ``oe-pkgdata-util``` section of the Yocto Project Development Tasks
7179 Manual for more information on ``oe-pkgdata-util``.
7180
7181
6476 :term:`PN` 7182 :term:`PN`
6477 This variable can have two separate functions depending on the 7183 This variable can have two separate functions depending on the
6478 context: a recipe name or a resulting package name. 7184 context: a recipe name or a resulting package name.
@@ -6585,6 +7291,28 @@ system and gives an overview of their function and contents.
6585 :term:`PREFERRED_PROVIDERS` 7291 :term:`PREFERRED_PROVIDERS`
6586 See :term:`bitbake:PREFERRED_PROVIDERS` in the BitBake manual. 7292 See :term:`bitbake:PREFERRED_PROVIDERS` in the BitBake manual.
6587 7293
7294 :term:`PREFERRED_RPROVIDER`
7295 The :term:`PREFERRED_RPROVIDER` variable works like the
7296 :term:`PREFERRED_PROVIDER` variable, but it denotes packages that provide a
7297 *runtime* component. Runtime providers are declared in recipes that set
7298 the :term:`RPROVIDES` variable for a specific package.
7299
7300 For example::
7301
7302 PREFERRED_RPROVIDER_virtual-x-terminal-emulator = "rxvt-unicode"
7303
7304 This statement sets the runtime provider for the X terminal emulator to
7305 ``rxvt-unicode``. The ``rxvt-unicode`` package is a runtime provider of
7306 this component because the ``rxvt-unicode`` recipe set the following
7307 :term:`RPROVIDES` definition for the ``rxvt-unicode`` (``${PN}``)
7308 package::
7309
7310 RPROVIDES:${PN} = "virtual-x-terminal-emulator"
7311
7312 For more information on virtual providers, see the
7313 ":ref:`dev-manual/new-recipe:using virtual providers`" section in the
7314 Yocto Project Development Tasks Manual.
7315
6588 :term:`PREFERRED_VERSION` 7316 :term:`PREFERRED_VERSION`
6589 If there are multiple versions of a recipe available, this variable 7317 If there are multiple versions of a recipe available, this variable
6590 determines which version should be given preference. You must always 7318 determines which version should be given preference. You must always
@@ -6607,22 +7335,14 @@ system and gives an overview of their function and contents.
6607 string. You cannot use the wildcard character in any other 7335 string. You cannot use the wildcard character in any other
6608 location of the string. 7336 location of the string.
6609 7337
6610 The specified version is matched against :term:`PV`, which 7338 The specified version is matched against :term:`PV`, which does not
6611 does not necessarily match the version part of the recipe's filename. 7339 necessarily match the version part of the recipe's filename.
6612 For example, consider two recipes ``foo_1.2.bb`` and ``foo_git.bb``
6613 where ``foo_git.bb`` contains the following assignment::
6614 7340
6615 PV = "1.1+git${SRCPV}" 7341 If you want to select a recipe named ``foo_git.bb`` which has :term:`PV`
6616 7342 set to ``1.2.3+git``, you can do so by setting ```PREFERRED_VERSION_foo``
6617 In this case, the correct way to select 7343 to ``1.2.3%`` (i.e. simply setting ``PREFERRED_VERSION_foo`` to ``git``
6618 ``foo_git.bb`` is by using an assignment such as the following:: 7344 will not work as the name of the recipe isn't used, but rather its
6619 7345 :term:`PV` definition).
6620 PREFERRED_VERSION_foo = "1.1+git%"
6621
6622 Compare that previous example
6623 against the following incorrect example, which does not work::
6624
6625 PREFERRED_VERSION_foo = "git"
6626 7346
6627 Sometimes the :term:`PREFERRED_VERSION` variable can be set by 7347 Sometimes the :term:`PREFERRED_VERSION` variable can be set by
6628 configuration files in a way that is hard to change. You can use 7348 configuration files in a way that is hard to change. You can use
@@ -6776,6 +7496,11 @@ system and gives an overview of their function and contents.
6776 service <dev-manual/packages:working with a pr service>`. You can 7496 service <dev-manual/packages:working with a pr service>`. You can
6777 set :term:`PRSERV_HOST` to other values to use a remote PR service. 7497 set :term:`PRSERV_HOST` to other values to use a remote PR service.
6778 7498
7499 :term:`PRSERV_UPSTREAM`
7500 This variable can be used to specify an upstream PR server for the local
7501 PR server to connect to, in the form of ``host:port``.
7502
7503 This makes it possible to implement local fixes to an upstream package.
6779 7504
6780 :term:`PSEUDO_IGNORE_PATHS` 7505 :term:`PSEUDO_IGNORE_PATHS`
6781 A comma-separated (without spaces) list of path prefixes that should be ignored 7506 A comma-separated (without spaces) list of path prefixes that should be ignored
@@ -6787,12 +7512,22 @@ system and gives an overview of their function and contents.
6787 7512
6788 :term:`PTEST_ENABLED` 7513 :term:`PTEST_ENABLED`
6789 Specifies whether or not :ref:`Package 7514 Specifies whether or not :ref:`Package
6790 Test <dev-manual/packages:testing packages with ptest>` (ptest) 7515 Test <test-manual/ptest:testing packages with ptest>` (ptest)
6791 functionality is enabled when building a recipe. You should not set 7516 functionality is enabled when building a recipe. You should not set
6792 this variable directly. Enabling and disabling building Package Tests 7517 this variable directly. Enabling and disabling building Package Tests
6793 at build time should be done by adding "ptest" to (or removing it 7518 at build time should be done by adding "ptest" to (or removing it
6794 from) :term:`DISTRO_FEATURES`. 7519 from) :term:`DISTRO_FEATURES`.
6795 7520
7521 :term:`PTEST_PYTEST_DIR`
7522 Within the :ref:`ref-classes-ptest-python-pytest` class, the
7523 :term:`PTEST_PYTEST_DIR` variable represents the path within the source
7524 tree of a Python package holding the unit tests to be run with the
7525 `pytest <https://docs.pytest.org>`__ framework. The default value for this
7526 variable is ``tests``.
7527
7528 For more information, see
7529 the :ref:`ref-classes-ptest-python-pytest` class documentation.
7530
6796 :term:`PV` 7531 :term:`PV`
6797 The version of the recipe. The version is normally extracted from the 7532 The version of the recipe. The version is normally extracted from the
6798 recipe filename. For example, if the recipe is named 7533 recipe filename. For example, if the recipe is named
@@ -6811,6 +7546,19 @@ system and gives an overview of their function and contents.
6811 explicitly if that will not match the package name (e.g. where the 7546 explicitly if that will not match the package name (e.g. where the
6812 package name has a prefix, underscores, uppercase letters etc.) 7547 package name has a prefix, underscores, uppercase letters etc.)
6813 7548
7549 :term:`PYPI_PACKAGE_EXT`
7550 When inheriting the :ref:`ref-classes-pypi` class, specifies the
7551 file extension to use when fetching a package from `PyPI
7552 <https://pypi.org/>`__. Default is ``tar.gz``.
7553
7554 :term:`PYPI_SRC_URI`
7555 When inheriting the :ref:`ref-classes-pypi` class, specifies the
7556 full `pythonhosted <https://files.pythonhosted.org/>`__ URI for
7557 fetching the package to be built. The default value is constructed
7558 based upon :term:`PYPI_PACKAGE`, :term:`PYPI_PACKAGE_EXT`, and
7559 :term:`PV`. Most recipes will not need to set this variable unless
7560 they are building an unstable (i.e. development) version.
7561
6814 :term:`PYTHON_ABI` 7562 :term:`PYTHON_ABI`
6815 When used by recipes that inherit the :ref:`ref-classes-setuptools3` 7563 When used by recipes that inherit the :ref:`ref-classes-setuptools3`
6816 class, denotes the Application Binary Interface (ABI) currently in use 7564 class, denotes the Application Binary Interface (ABI) currently in use
@@ -6844,7 +7592,7 @@ system and gives an overview of their function and contents.
6844 QA_EMPTY_DIRS_RECOMMENDATION:/dev = "but all devices must be created at runtime" 7592 QA_EMPTY_DIRS_RECOMMENDATION:/dev = "but all devices must be created at runtime"
6845 7593
6846 :term:`RANLIB` 7594 :term:`RANLIB`
6847 The minimal command and arguments to run ``ranlib``. 7595 The minimal command and arguments to run :manpage:`ranlib <ranlib(1)>`.
6848 7596
6849 :term:`RCONFLICTS` 7597 :term:`RCONFLICTS`
6850 The list of packages that conflict with packages. Note that packages 7598 The list of packages that conflict with packages. Note that packages
@@ -6981,6 +7729,9 @@ system and gives an overview of their function and contents.
6981 ":ref:`bitbake-user-manual/bitbake-user-manual-execution:dependencies`" sections in the 7729 ":ref:`bitbake-user-manual/bitbake-user-manual-execution:dependencies`" sections in the
6982 BitBake User Manual for additional information on tasks and dependencies. 7730 BitBake User Manual for additional information on tasks and dependencies.
6983 7731
7732 :term:`READELF`
7733 The minimal command and arguments to run :manpage:`readelf <readelf(1)>`.
7734
6984 :term:`RECIPE_MAINTAINER` 7735 :term:`RECIPE_MAINTAINER`
6985 This variable defines the name and e-mail address of the maintainer of a 7736 This variable defines the name and e-mail address of the maintainer of a
6986 recipe. Such information can be used by human users submitted changes, 7737 recipe. Such information can be used by human users submitted changes,
@@ -7034,6 +7785,17 @@ system and gives an overview of their function and contents.
7034 The default value is ``"${WORKDIR}/recipe-sysroot-native"``. 7785 The default value is ``"${WORKDIR}/recipe-sysroot-native"``.
7035 Do not modify it. 7786 Do not modify it.
7036 7787
7788 :term:`RECIPE_UPGRADE_EXTRA_TASKS`
7789 When upgrading a recipe with ``devtool upgrade``, the variable
7790 :term:`RECIPE_UPGRADE_EXTRA_TASKS` specifies a space-delimited list of
7791 tasks to run after the new sources have been unpacked.
7792
7793 For some recipes, after the new source has been unpacked, additional tasks
7794 may need to be run during an upgrade. A good example of this is recipes
7795 which inherit :ref:`ref-classes-cargo-update-recipe-crates`, where the
7796 `do_update_crates` task needs to be run whenever Cargo.toml/Cargo.lock have
7797 changed in the source.
7798
7037 :term:`REPODIR` 7799 :term:`REPODIR`
7038 See :term:`bitbake:REPODIR` in the BitBake manual. 7800 See :term:`bitbake:REPODIR` in the BitBake manual.
7039 7801
@@ -7058,6 +7820,41 @@ system and gives an overview of their function and contents.
7058 If both :term:`REQUIRED_VERSION` and :term:`PREFERRED_VERSION` are set 7820 If both :term:`REQUIRED_VERSION` and :term:`PREFERRED_VERSION` are set
7059 for the same recipe, the :term:`REQUIRED_VERSION` value applies. 7821 for the same recipe, the :term:`REQUIRED_VERSION` value applies.
7060 7822
7823 :term:`RETAIN_DIRS_ALWAYS`
7824 When inheriting the :ref:`ref-classes-retain` class, this variable holds
7825 space-separated recipe-specific directories to always save in a tarball
7826 whether the recipe build has failed or not.
7827
7828 :term:`RETAIN_DIRS_FAILURE`
7829 When inheriting the :ref:`ref-classes-retain` class, this variable holds
7830 space-separated recipe-specific directories to save in a tarball on
7831 failure of the recipe's build.
7832
7833 :term:`RETAIN_DIRS_GLOBAL_ALWAYS`
7834 When inheriting the :ref:`ref-classes-retain` class, this variable holds
7835 space-separated directories that are not specific to a recipe to save in a
7836 tarball whether the build has failed or not.
7837
7838 :term:`RETAIN_DIRS_GLOBAL_FAILURE`
7839 When inheriting the :ref:`ref-classes-retain` class, this variable holds
7840 space-separated directories that are not specific to a recipe to save in a
7841 tarball on build failure.
7842
7843 :term:`RETAIN_ENABLED`
7844 Disables the creation of a tarball of the work directory done by the
7845 :ref:`ref-classes-retain` class. Can be set to specific recipes to disable
7846 the class when the class was inherited globally with :term:`INHERIT`.
7847
7848 :term:`RETAIN_OUTDIR`
7849 When inheriting the :ref:`ref-classes-retain` class, this variable
7850 specifies the directory where to save the tarball of the work directory.
7851 The default directory is ``${TMPDIR}/retain``.
7852
7853 :term:`RETAIN_TARBALL_SUFFIX`
7854 When inheriting the :ref:`ref-classes-retain` class, this variable
7855 specifies the suffix of the tarball of the work directory. The default
7856 suffix is ``${DATETIME}.tar.gz``.
7857
7061 :term:`RM_WORK_EXCLUDE` 7858 :term:`RM_WORK_EXCLUDE`
7062 With :ref:`ref-classes-rm-work` enabled, this variable 7859 With :ref:`ref-classes-rm-work` enabled, this variable
7063 specifies a list of recipes whose work directories should not be removed. 7860 specifies a list of recipes whose work directories should not be removed.
@@ -7075,17 +7872,12 @@ system and gives an overview of their function and contents.
7075 prefer to have a read-only root filesystem and prefer to keep 7872 prefer to have a read-only root filesystem and prefer to keep
7076 writeable data in one place. 7873 writeable data in one place.
7077 7874
7078 You can override the default by setting the variable in any layer or 7875 When setting ``INIT_MANAGER = systemd``, the default will be set to::
7079 in the ``local.conf`` file. Because the default is set using a "weak"
7080 assignment (i.e. "??="), you can use either of the following forms to
7081 define your override::
7082 7876
7083 ROOT_HOME = "/root"
7084 ROOT_HOME ?= "/root" 7877 ROOT_HOME ?= "/root"
7085 7878
7086 These 7879 You can also override the default by setting the variable in your distro
7087 override examples use ``/root``, which is probably the most commonly 7880 configuration or in the ``local.conf`` file.
7088 used override.
7089 7881
7090 :term:`ROOTFS` 7882 :term:`ROOTFS`
7091 Indicates a filesystem image to include as the root filesystem. 7883 Indicates a filesystem image to include as the root filesystem.
@@ -7147,6 +7939,9 @@ system and gives an overview of their function and contents.
7147 :term:`IMAGE_ROOTFS` variable for more 7939 :term:`IMAGE_ROOTFS` variable for more
7148 information. 7940 information.
7149 7941
7942 :term:`RPMBUILD_EXTRA_PARAMS`
7943 Specifies extra user-defined parameters for the ``rpmbuild`` command.
7944
7150 :term:`RPROVIDES` 7945 :term:`RPROVIDES`
7151 A list of package name aliases that a package also provides. These 7946 A list of package name aliases that a package also provides. These
7152 aliases are useful for satisfying runtime dependencies of other 7947 aliases are useful for satisfying runtime dependencies of other
@@ -7272,7 +8067,7 @@ system and gives an overview of their function and contents.
7272 :term:`S` 8067 :term:`S`
7273 The location in the :term:`Build Directory` where 8068 The location in the :term:`Build Directory` where
7274 unpacked recipe source code resides. By default, this directory is 8069 unpacked recipe source code resides. By default, this directory is
7275 ``${``\ :term:`WORKDIR`\ ``}/${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``, 8070 ``${``\ :term:`UNPACKDIR`\ ``}/${``\ :term:`BPN`\ ``}-${``\ :term:`PV`\ ``}``,
7276 where ``${BPN}`` is the base recipe name and ``${PV}`` is the recipe 8071 where ``${BPN}`` is the base recipe name and ``${PV}`` is the recipe
7277 version. If the source tarball extracts the code to a directory named 8072 version. If the source tarball extracts the code to a directory named
7278 anything other than ``${BPN}-${PV}``, or if the source code is 8073 anything other than ``${BPN}-${PV}``, or if the source code is
@@ -7285,19 +8080,10 @@ system and gives an overview of their function and contents.
7285 ``poky/build``. In this case, the work directory the build system 8080 ``poky/build``. In this case, the work directory the build system
7286 uses to keep the unpacked recipe for ``db`` is the following:: 8081 uses to keep the unpacked recipe for ``db`` is the following::
7287 8082
7288 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/db-5.1.19 8083 poky/build/tmp/work/qemux86-poky-linux/db/5.1.19-r3/sources/db-5.1.19
7289 8084
7290 The unpacked source code resides in the ``db-5.1.19`` folder. 8085 The unpacked source code resides in the ``db-5.1.19`` folder.
7291 8086
7292 This next example assumes a Git repository. By default, Git
7293 repositories are cloned to ``${WORKDIR}/git`` during
7294 :ref:`ref-tasks-fetch`. Since this path is different
7295 from the default value of :term:`S`, you must set it specifically so the
7296 source can be located::
7297
7298 SRC_URI = "git://path/to/repo.git;branch=main"
7299 S = "${WORKDIR}/git"
7300
7301 :term:`SANITY_REQUIRED_UTILITIES` 8087 :term:`SANITY_REQUIRED_UTILITIES`
7302 Specifies a list of command-line utilities that should be checked for 8088 Specifies a list of command-line utilities that should be checked for
7303 during the initial sanity checking process when running BitBake. If 8089 during the initial sanity checking process when running BitBake. If
@@ -7323,15 +8109,27 @@ system and gives an overview of their function and contents.
7323 Specifies the type of archive to create for the SDK. Valid values: 8109 Specifies the type of archive to create for the SDK. Valid values:
7324 8110
7325 - ``tar.xz`` (default) 8111 - ``tar.xz`` (default)
8112 - ``tar.zst``
8113 - ``7zip``
7326 - ``zip`` 8114 - ``zip``
7327 8115
7328 Only one archive type can be specified. 8116 Only one archive type can be specified.
7329 8117
8118 :term:`SDK_AS_ARCH`
8119 Specifies architecture-specific assembler flags when building
8120 :ref:`ref-classes-nativesdk` recipes. By default, the value of
8121 :term:`SDK_AS_ARCH` equals the one of :term:`BUILD_AS_ARCH`.
8122
7330 :term:`SDK_BUILDINFO_FILE` 8123 :term:`SDK_BUILDINFO_FILE`
7331 When using the :ref:`ref-classes-image-buildinfo` class, 8124 When using the :ref:`ref-classes-image-buildinfo` class,
7332 specifies the file in the SDK to write the build information into. The 8125 specifies the file in the SDK to write the build information into. The
7333 default value is "``/buildinfo``". 8126 default value is "``/buildinfo``".
7334 8127
8128 :term:`SDK_CC_ARCH`
8129 Specifies the architecture-specific C compiler flags when building
8130 :ref:`ref-classes-nativesdk` recipes. By default, the value of
8131 :term:`SDK_CC_ARCH` equals the one of :term:`BUILD_CC_ARCH`.
8132
7335 :term:`SDK_CUSTOM_TEMPLATECONF` 8133 :term:`SDK_CUSTOM_TEMPLATECONF`
7336 When building the extensible SDK, if :term:`SDK_CUSTOM_TEMPLATECONF` is set to 8134 When building the extensible SDK, if :term:`SDK_CUSTOM_TEMPLATECONF` is set to
7337 "1" and a ``conf/templateconf.cfg`` file exists in the :term:`Build Directory` 8135 "1" and a ``conf/templateconf.cfg`` file exists in the :term:`Build Directory`
@@ -7413,6 +8211,11 @@ system and gives an overview of their function and contents.
7413 :term:`SDK_EXT_TYPE` is set to "minimal", and defaults to "1" if 8211 :term:`SDK_EXT_TYPE` is set to "minimal", and defaults to "1" if
7414 :term:`SDK_EXT_TYPE` is set to "full". 8212 :term:`SDK_EXT_TYPE` is set to "full".
7415 8213
8214 :term:`SDK_LD_ARCH`
8215 Specifies architecture-specific linker flags when building
8216 :ref:`ref-classes-nativesdk` recipes. By default, the value of
8217 :term:`SDK_LD_ARCH` equals the one of :term:`BUILD_LD_ARCH`.
8218
7416 :term:`SDK_NAME` 8219 :term:`SDK_NAME`
7417 The base name for SDK output files. The default value (as set in 8220 The base name for SDK output files. The default value (as set in
7418 ``meta-poky/conf/distro/poky.conf``) is derived from the 8221 ``meta-poky/conf/distro/poky.conf``) is derived from the
@@ -7647,11 +8450,6 @@ system and gives an overview of their function and contents.
7647 class, this variable can be used to specify additional arguments to be 8450 class, this variable can be used to specify additional arguments to be
7648 passed to ``setup.py build`` in the ``setuptools3_do_compile()`` task. 8451 passed to ``setup.py build`` in the ``setuptools3_do_compile()`` task.
7649 8452
7650 :term:`SETUPTOOLS_INSTALL_ARGS`
7651 When used by recipes that inherit the :ref:`ref-classes-setuptools3`
7652 class, this variable can be used to specify additional arguments to be
7653 passed to ``setup.py install`` in the ``setuptools3_do_install()`` task.
7654
7655 :term:`SETUPTOOLS_SETUP_PATH` 8453 :term:`SETUPTOOLS_SETUP_PATH`
7656 When used by recipes that inherit the :ref:`ref-classes-setuptools3` 8454 When used by recipes that inherit the :ref:`ref-classes-setuptools3`
7657 class, this variable should be used to specify the directory in which 8455 class, this variable should be used to specify the directory in which
@@ -7660,7 +8458,6 @@ system and gives an overview of their function and contents.
7660 sources are fetched from a Git repository and ``setup.py`` is in a 8458 sources are fetched from a Git repository and ``setup.py`` is in a
7661 ``python/pythonmodule`` subdirectory, you would have this:: 8459 ``python/pythonmodule`` subdirectory, you would have this::
7662 8460
7663 S = "${WORKDIR}/git"
7664 SETUPTOOLS_SETUP_PATH = "${S}/python/pythonmodule" 8461 SETUPTOOLS_SETUP_PATH = "${S}/python/pythonmodule"
7665 8462
7666 :term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS` 8463 :term:`SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS`
@@ -7704,6 +8501,53 @@ system and gives an overview of their function and contents.
7704 might break at runtime if the interface of the recipe was changed 8501 might break at runtime if the interface of the recipe was changed
7705 after the other had been built. 8502 after the other had been built.
7706 8503
8504 :term:`SIGGEN_LOCKEDSIGS`
8505 The list of locked tasks, with the form::
8506
8507 SIGGEN_LOCKEDSIGS += "<package>:<task>:<signature>"
8508
8509 If ``<signature>`` exists for the specified ``<task>`` and ``<package>``
8510 in the sstate cache, BitBake will use the cached output instead of
8511 rebuilding the ``<task>``. If it does not exist, BitBake will build the
8512 ``<task>`` and the sstate cache will be used next time.
8513
8514 Example::
8515
8516 SIGGEN_LOCKEDSIGS += "bc:do_compile:09772aa4532512baf96d433484f27234d4b7c11dd9cda0d6f56fa1b7ce6f25f0"
8517
8518 You can obtain the signature of all the tasks for the recipe ``bc`` using::
8519
8520 bitbake -S none bc
8521
8522 Then you can look at files in ``build/tmp/stamps/<arch>/bc`` and look for
8523 files like: ``<PV>.do_compile.sigdata.09772aa4532512baf96d433484f27234d4b7c11dd9cda0d6f56fa1b7ce6f25f0``.
8524
8525 Alternatively, you can also use :doc:`bblock </dev-manual/bblock>` to
8526 generate this line for you.
8527
8528 :term:`SIGGEN_LOCKEDSIGS_TASKSIG_CHECK`
8529 Specifies the debug level of task signature check. 3 levels are supported:
8530
8531 * ``info``: displays a "Note" message to remind the user that a task is locked
8532 and the current signature matches the locked one.
8533 * ``warn``: displays a "Warning" message if a task is locked and the current
8534 signature does not match the locked one.
8535 * ``error``: same as warn but displays an "Error" message and aborts.
8536
8537 :term:`SIGGEN_LOCKEDSIGS_TYPES`
8538 Allowed overrides for :term:`SIGGEN_LOCKEDSIGS`. This is mainly used
8539 for architecture specific locks. A common value for
8540 :term:`SIGGEN_LOCKEDSIGS_TYPES` is ``${PACKAGE_ARCHS}``::
8541
8542 SIGGEN_LOCKEDSIGS_TYPES += "${PACKAGE_ARCHS}"
8543
8544 SIGGEN_LOCKEDSIGS_core2-64 += "bc:do_compile:09772aa4532512baf96d433484f27234d4b7c11dd9cda0d6f56fa1b7ce6f25f0"
8545 SIGGEN_LOCKEDSIGS_cortexa57 += "bc:do_compile:12178eb6d55ef602a8fe638e49862fd247e07b228f0f08967697b655bfe4bb61"
8546
8547 Here, the ``do_compile`` task from ``bc`` will be locked only for
8548 ``core2-64`` and ``cortexa57`` but not for other architectures such as
8549 ``mips32r2``.
8550
7707 :term:`SITEINFO_BITS` 8551 :term:`SITEINFO_BITS`
7708 Specifies the number of bits for the target system CPU. The value 8552 Specifies the number of bits for the target system CPU. The value
7709 should be either "32" or "64". 8553 should be either "32" or "64".
@@ -7814,6 +8658,31 @@ system and gives an overview of their function and contents.
7814 8658
7815 You can specify only a single URL in :term:`SOURCE_MIRROR_URL`. 8659 You can specify only a single URL in :term:`SOURCE_MIRROR_URL`.
7816 8660
8661 .. note::
8662
8663 If the mirror is protected behind a username and password, the
8664 :term:`build host` needs to be configured so the :term:`build system
8665 <OpenEmbedded Build System>` is able to fetch from the mirror.
8666
8667 The recommended way to do that is by setting the following parameters
8668 in ``$HOME/.netrc`` (``$HOME`` being the :term:`build host` home
8669 directory)::
8670
8671 machine example.com
8672 login <user>
8673 password <password>
8674
8675 This file requires permissions set to ``400`` or ``600`` to prevent
8676 other users from reading the file::
8677
8678 chmod 600 "$HOME/.netrc"
8679
8680 Another method to configure the username and password is from the URL
8681 in :term:`SOURCE_MIRROR_URL` directly, with the ``user`` and ``pswd``
8682 parameters::
8683
8684 SOURCE_MIRROR_URL = "http://example.com/my_source_mirror;user=<user>;pswd=<password>"
8685
7817 :term:`SPDX_ARCHIVE_PACKAGED` 8686 :term:`SPDX_ARCHIVE_PACKAGED`
7818 This option allows to add to :term:`SPDX` output compressed archives 8687 This option allows to add to :term:`SPDX` output compressed archives
7819 of the files in the generated target packages. 8688 of the files in the generated target packages.
@@ -7868,7 +8737,7 @@ system and gives an overview of their function and contents.
7868 This option allows to associate `SPDX annotations 8737 This option allows to associate `SPDX annotations
7869 <https://spdx.github.io/spdx-spec/v2.3/annotations/>`__ to a recipe, 8738 <https://spdx.github.io/spdx-spec/v2.3/annotations/>`__ to a recipe,
7870 using the values of variables in the recipe:: 8739 using the values of variables in the recipe::
7871 8740
7872 ANNOTATION1 = "First annotation for recipe" 8741 ANNOTATION1 = "First annotation for recipe"
7873 ANNOTATION2 = "Second annotation for recipe" 8742 ANNOTATION2 = "Second annotation for recipe"
7874 SPDX_CUSTOM_ANNOTATION_VARS = "ANNOTATION1 ANNOTATION2" 8743 SPDX_CUSTOM_ANNOTATION_VARS = "ANNOTATION1 ANNOTATION2"
@@ -7911,11 +8780,38 @@ system and gives an overview of their function and contents.
7911 image), compared to just using the :ref:`ref-classes-create-spdx` class 8780 image), compared to just using the :ref:`ref-classes-create-spdx` class
7912 with no option. 8781 with no option.
7913 8782
8783 :term:`SPDX_INCLUDE_COMPILED_SOURCES`
8784 This option allows the same as :term:`SPDX_INCLUDE_SOURCES` but including
8785 only the sources used to compile the host tools and the target packages.
8786 While :term:`SPDX_INCLUDE_SOURCES` includes all files in the source
8787 directory as source file descriptions, :term:`SPDX_INCLUDE_COMPILED_SOURCES`
8788 includes only the sources that are used to produce the binaries delivered
8789 as packages. The source files that are not used during compilation are not
8790 included in the SBOM. It uses debugsource information generated during
8791 ``do_package`` to filter out source files.
8792
8793 This enables an external tool to use the SPDX information to disregard
8794 vulnerabilities that are not compiled in the packages.
8795
8796 Enable this option as follows::
8797
8798 SPDX_INCLUDE_COMPILED_SOURCES = "1"
8799
8800 According to our tests, building ``core-image-minimal`` for the
8801 ``qemux86-64`` machine, enabling this option compared with the
8802 :term:`SPDX_INCLUDE_SOURCES` reduces the size of the ``tmp/deploy/spdx``
8803 directory from 2GB to 1.6GB.
8804
7914 :term:`SPDX_NAMESPACE_PREFIX` 8805 :term:`SPDX_NAMESPACE_PREFIX`
7915 This option could be used in order to change the prefix of ``spdxDocument`` 8806 This option could be used in order to change the prefix of ``spdxDocument``
7916 and the prefix of ``documentNamespace``. It is set by default to 8807 and the prefix of ``documentNamespace``. It is set by default to
7917 ``http://spdx.org/spdxdoc``. 8808 ``http://spdx.org/spdxdoc``.
7918 8809
8810 :term:`SPDX_PACKAGE_VERSION`
8811 This variable controls the package version as seen in the SPDX 3.0 JSON
8812 output (``software_packageVersion``). The default value for this variable
8813 is :term:`PV`.
8814
7919 :term:`SPDX_PRETTY` 8815 :term:`SPDX_PRETTY`
7920 This option makes the SPDX output more human-readable, using 8816 This option makes the SPDX output more human-readable, using
7921 identation and newlines, instead of the default output in a 8817 identation and newlines, instead of the default output in a
@@ -7988,10 +8884,10 @@ system and gives an overview of their function and contents.
7988 class. 8884 class.
7989 8885
7990 :term:`SPL_SIGN_KEYNAME` 8886 :term:`SPL_SIGN_KEYNAME`
7991 The name of keys used by the :ref:`ref-classes-kernel-fitimage` class 8887 The name of keys used by the :ref:`ref-classes-uboot-sign` class
7992 for signing U-Boot FIT image stored in the :term:`SPL_SIGN_KEYDIR` 8888 for signing U-Boot FIT image stored in the :term:`SPL_SIGN_KEYDIR`
7993 directory. If we have for example a ``dev.key`` key and a ``dev.crt`` 8889 directory. If we have for example a ``dev.key`` key and a ``dev.crt``
7994 certificate stored in the :term:`SPL_SIGN_KEYDIR` directory, you will 8890 certificate stored in the :term:`SPL_SIGN_KEYDIR` directory, you will
7995 have to set :term:`SPL_SIGN_KEYNAME` to ``dev``. 8891 have to set :term:`SPL_SIGN_KEYNAME` to ``dev``.
7996 8892
7997 :term:`SPLASH` 8893 :term:`SPLASH`
@@ -8028,7 +8924,7 @@ system and gives an overview of their function and contents.
8028 8924
8029 EXTRA_OECONF += "--disable-startup-msg --enable-img-fullscreen" 8925 EXTRA_OECONF += "--disable-startup-msg --enable-img-fullscreen"
8030 8926
8031 For information on append files, see the 8927 For information on append files, see the
8032 ":ref:`dev-manual/layers:appending other layers metadata with your layer`" 8928 ":ref:`dev-manual/layers:appending other layers metadata with your layer`"
8033 section. 8929 section.
8034 8930
@@ -8094,21 +8990,23 @@ system and gives an overview of their function and contents.
8094 (SCM). 8990 (SCM).
8095 8991
8096 :term:`SRCPV` 8992 :term:`SRCPV`
8097 Returns the version string of the current package. This string is 8993 The variable :term:`SRCPV` is deprecated. It was previously used to
8098 used to help define the value of :term:`PV`. 8994 include source control information in :term:`PV` for :term:`bitbake` to
8995 work correctly but this is no longer a requirement. Source control
8996 information will be automatically included by :term:`bitbake` in the
8997 variable :term:`PKGV` during packaging if the ``+`` sign is present in
8998 :term:`PV`.
8099 8999
8100 The :term:`SRCPV` variable is defined in the ``meta/conf/bitbake.conf`` 9000 .. note::
8101 configuration file in the :term:`Source Directory` as
8102 follows::
8103 9001
8104 SRCPV = "${@bb.fetch2.get_srcrev(d)}" 9002 The :term:`SRCPV` variable used to be defined in the
9003 ``meta/conf/bitbake.conf`` configuration file in the :term:`Source
9004 Directory` as follows::
8105 9005
8106 Recipes that need to define :term:`PV` do so with the help of the 9006 SRCPV = "${@bb.fetch2.get_srcrev(d)}"
8107 :term:`SRCPV`. For example, the ``ofono`` recipe (``ofono_git.bb``)
8108 located in ``meta/recipes-connectivity`` in the Source Directory
8109 defines :term:`PV` as follows::
8110 9007
8111 PV = "0.12-git${SRCPV}" 9008 The ``get_srcrev`` function can still be used to include source control
9009 information in variables manually.
8112 9010
8113 :term:`SRCREV` 9011 :term:`SRCREV`
8114 The revision of the source code used to build the package. This 9012 The revision of the source code used to build the package. This
@@ -8219,10 +9117,38 @@ system and gives an overview of their function and contents.
8219 file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \ 9117 file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
8220 file://.* file:///some-local-dir/sstate/PATH" 9118 file://.* file:///some-local-dir/sstate/PATH"
8221 9119
9120 .. note::
9121
9122 If the mirror is protected behind a username and password, the
9123 :term:`build host` needs to be configured so the :term:`build system
9124 <OpenEmbedded Build System>` is able to download the sstate cache using
9125 authentication.
9126
9127 The recommended way to do that is by setting the following parameters
9128 in ``$HOME/.netrc`` (``$HOME`` being the :term:`build host` home
9129 directory)::
9130
9131 machine someserver.tld
9132 login <user>
9133 password <password>
9134
9135 This file requires permissions set to ``400`` or ``600`` to prevent
9136 other users from reading the file::
9137
9138 chmod 600 "$HOME/.netrc"
9139
9140 Another method to configure the username and password is from the
9141 URL in :term:`SSTATE_MIRRORS` directly, with the ``user`` and ``pswd``
9142 parameters::
9143
9144 SSTATE_MIRRORS ?= "\
9145 file://.* https://someserver.tld/share/sstate/PATH;user=<user>;pswd=<password>;downloadfilename=PATH \
9146 "
9147
8222 The Yocto Project actually shares the cache data objects built by its 9148 The Yocto Project actually shares the cache data objects built by its
8223 autobuilder:: 9149 autobuilder::
8224 9150
8225 SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH" 9151 SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH"
8226 9152
8227 As such binary artifacts are built for the generic QEMU machines 9153 As such binary artifacts are built for the generic QEMU machines
8228 supported by the various Poky releases, they are less likely to be 9154 supported by the various Poky releases, they are less likely to be
@@ -8246,6 +9172,26 @@ system and gives an overview of their function and contents.
8246 9172
8247 For details on the process, see the :ref:`ref-classes-staging` class. 9173 For details on the process, see the :ref:`ref-classes-staging` class.
8248 9174
9175 :term:`SSTATE_SKIP_CREATION`
9176 The :term:`SSTATE_SKIP_CREATION` variable can be used to skip the
9177 creation of :ref:`shared state <overview-manual/concepts:shared state cache>`
9178 tarball files. It makes sense e.g. for image creation tasks as tarring images
9179 and keeping them in sstate would consume a lot of disk space.
9180
9181 In general it is not recommended to use this variable as missing sstate
9182 artefacts adversely impact the build, particularly for entries in the
9183 middle of dependency chains. The case it can make sense is where the
9184 size and time costs of the artefact are similar to just running the
9185 tasks. This generally only applies to end artefact output like images.
9186
9187 The syntax to disable it for one task is::
9188
9189 SSTATE_SKIP_CREATION:task-image-complete = "1"
9190
9191 The syntax to disable it for the whole recipe is::
9192
9193 SSTATE_SKIP_CREATION = "1"
9194
8249 :term:`STAGING_BASE_LIBDIR_NATIVE` 9195 :term:`STAGING_BASE_LIBDIR_NATIVE`
8250 Specifies the path to the ``/lib`` subdirectory of the sysroot 9196 Specifies the path to the ``/lib`` subdirectory of the sysroot
8251 directory for the build host. 9197 directory for the build host.
@@ -8292,7 +9238,7 @@ system and gives an overview of their function and contents.
8292 9238
8293 For information on how staging for recipe-specific sysroots occurs, 9239 For information on how staging for recipe-specific sysroots occurs,
8294 see the :ref:`ref-tasks-populate_sysroot` 9240 see the :ref:`ref-tasks-populate_sysroot`
8295 task, the ":ref:`sdk-manual/extensible:sharing files between recipes`" 9241 task, the ":ref:`dev-manual/devtool:sharing files between recipes`"
8296 section in the Yocto Project Development Tasks Manual, the 9242 section in the Yocto Project Development Tasks Manual, the
8297 ":ref:`overview-manual/concepts:configuration, compilation, and staging`" 9243 ":ref:`overview-manual/concepts:configuration, compilation, and staging`"
8298 section in the Yocto Project Overview and Concepts Manual, and the 9244 section in the Yocto Project Overview and Concepts Manual, and the
@@ -8436,8 +9382,8 @@ system and gives an overview of their function and contents.
8436 places stamps. The default directory is ``${TMPDIR}/stamps``. 9382 places stamps. The default directory is ``${TMPDIR}/stamps``.
8437 9383
8438 :term:`STRIP` 9384 :term:`STRIP`
8439 The minimal command and arguments to run ``strip``, which is used to 9385 The minimal command and arguments to run :manpage:`strip <strip(1)>`,
8440 strip symbols. 9386 which is used to strip symbols.
8441 9387
8442 :term:`SUMMARY` 9388 :term:`SUMMARY`
8443 The short (72 characters or less) summary of the binary package for 9389 The short (72 characters or less) summary of the binary package for
@@ -8515,29 +9461,6 @@ system and gives an overview of their function and contents.
8515 /sysroot-only \ 9461 /sysroot-only \
8516 " 9462 "
8517 9463
8518 :term:`SYSROOT_DIRS_IGNORE`
8519 Directories that are not staged into the sysroot by the
8520 :ref:`ref-tasks-populate_sysroot` task. You
8521 can use this variable to exclude certain subdirectories of
8522 directories listed in :term:`SYSROOT_DIRS` from
8523 staging. By default, the following directories are not staged::
8524
8525 SYSROOT_DIRS_IGNORE = " \
8526 ${mandir} \
8527 ${docdir} \
8528 ${infodir} \
8529 ${datadir}/X11/locale \
8530 ${datadir}/applications \
8531 ${datadir}/bash-completion \
8532 ${datadir}/fonts \
8533 ${datadir}/gtk-doc/html \
8534 ${datadir}/installed-tests \
8535 ${datadir}/locale \
8536 ${datadir}/pixmaps \
8537 ${datadir}/terminfo \
8538 ${libdir}/${BPN}/ptest \
8539 "
8540
8541 Consider the following example in which you need to manipulate this variable. 9464 Consider the following example in which you need to manipulate this variable.
8542 Assume you have a recipe ``A`` that provides a shared library ``.so.*`` that is 9465 Assume you have a recipe ``A`` that provides a shared library ``.so.*`` that is
8543 installed into a custom folder other than "``${libdir}``" 9466 installed into a custom folder other than "``${libdir}``"
@@ -8549,7 +9472,7 @@ system and gives an overview of their function and contents.
8549 is just to show the usefulness of setting :term:`SYSROOT_DIRS`. 9472 is just to show the usefulness of setting :term:`SYSROOT_DIRS`.
8550 9473
8551 When a recipe ``B`` :term:`DEPENDS` on ``A``, it means what is in 9474 When a recipe ``B`` :term:`DEPENDS` on ``A``, it means what is in
8552 :term:`SYSROOT_DIRS` will be copied from :term:`D` of the recipe ``B`` 9475 :term:`SYSROOT_DIRS` will be copied from :term:`D` of the recipe ``A``
8553 into ``B``'s :term:`SYSROOT_DESTDIR` that is "``${WORKDIR}/sysroot-destdir``". 9476 into ``B``'s :term:`SYSROOT_DESTDIR` that is "``${WORKDIR}/sysroot-destdir``".
8554 9477
8555 Now, since ``/opt/lib`` is not in :term:`SYSROOT_DIRS`, it will never be copied to 9478 Now, since ``/opt/lib`` is not in :term:`SYSROOT_DIRS`, it will never be copied to
@@ -8567,6 +9490,29 @@ system and gives an overview of their function and contents.
8567 9490
8568 TARGET_LDFLAGS:append = " -L${RECIPE_SYSROOT}/opt/lib" 9491 TARGET_LDFLAGS:append = " -L${RECIPE_SYSROOT}/opt/lib"
8569 9492
9493 :term:`SYSROOT_DIRS_IGNORE`
9494 Directories that are not staged into the sysroot by the
9495 :ref:`ref-tasks-populate_sysroot` task. You
9496 can use this variable to exclude certain subdirectories of
9497 directories listed in :term:`SYSROOT_DIRS` from
9498 staging. By default, the following directories are not staged::
9499
9500 SYSROOT_DIRS_IGNORE = " \
9501 ${mandir} \
9502 ${docdir} \
9503 ${infodir} \
9504 ${datadir}/X11/locale \
9505 ${datadir}/applications \
9506 ${datadir}/bash-completion \
9507 ${datadir}/fonts \
9508 ${datadir}/gtk-doc/html \
9509 ${datadir}/installed-tests \
9510 ${datadir}/locale \
9511 ${datadir}/pixmaps \
9512 ${datadir}/terminfo \
9513 ${libdir}/${BPN}/ptest \
9514 "
9515
8570 :term:`SYSROOT_DIRS_NATIVE` 9516 :term:`SYSROOT_DIRS_NATIVE`
8571 Extra directories staged into the sysroot by the 9517 Extra directories staged into the sysroot by the
8572 :ref:`ref-tasks-populate_sysroot` task for 9518 :ref:`ref-tasks-populate_sysroot` task for
@@ -8792,6 +9738,10 @@ system and gives an overview of their function and contents.
8792 value so that executables built using the SDK also have the flags 9738 value so that executables built using the SDK also have the flags
8793 applied. 9739 applied.
8794 9740
9741 :term:`TARGET_DBGSRC_DIR`
9742 Specifies the target path to debug source files. The default is
9743 ``/usr/src/debug/${PN}/${PV}``.
9744
8795 :term:`TARGET_FPU` 9745 :term:`TARGET_FPU`
8796 Specifies the method for handling FPU code. For FPU-less targets, 9746 Specifies the method for handling FPU code. For FPU-less targets,
8797 which include most ARM CPUs, the variable must be set to "soft". If 9747 which include most ARM CPUs, the variable must be set to "soft". If
@@ -8869,19 +9819,6 @@ system and gives an overview of their function and contents.
8869 9819
8870 You can select "glibc", "musl", "newlib", or "baremetal". 9820 You can select "glibc", "musl", "newlib", or "baremetal".
8871 9821
8872 :term:`TCLIBCAPPEND`
8873 Specifies a suffix to be appended onto the :term:`TMPDIR` value. The
8874 suffix identifies the ``libc`` variant for building. When you are
8875 building for multiple variants with the same :term:`Build Directory`,
8876 this mechanism ensures that output for different ``libc`` variants is
8877 kept separate to avoid potential conflicts.
8878
8879 In the ``defaultsetup.conf`` file, the default value of
8880 :term:`TCLIBCAPPEND` is "-${TCLIBC}". However, distros such as poky,
8881 which normally only support one ``libc`` variant, set
8882 :term:`TCLIBCAPPEND` to "" in their distro configuration file resulting
8883 in no suffix being applied.
8884
8885 :term:`TCMODE` 9822 :term:`TCMODE`
8886 Specifies the toolchain selector. :term:`TCMODE` controls the 9823 Specifies the toolchain selector. :term:`TCMODE` controls the
8887 characteristics of the generated packages and images by telling the 9824 characteristics of the generated packages and images by telling the
@@ -8993,8 +9930,8 @@ system and gives an overview of their function and contents.
8993 file. 9930 file.
8994 9931
8995 For more information on testing images, see the 9932 For more information on testing images, see the
8996 ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 9933 ":ref:`test-manual/runtime-testing:performing automated runtime testing`"
8997 section in the Yocto Project Development Tasks Manual. 9934 section in the Yocto Project Test Environment Manual.
8998 9935
8999 :term:`TEST_SERIALCONTROL_CMD` 9936 :term:`TEST_SERIALCONTROL_CMD`
9000 For automated hardware testing, specifies the command to use to 9937 For automated hardware testing, specifies the command to use to
@@ -9065,8 +10002,8 @@ system and gives an overview of their function and contents.
9065 TEST_SUITES = "test_A test_B" 10002 TEST_SUITES = "test_A test_B"
9066 10003
9067 For more information on testing images, see the 10004 For more information on testing images, see the
9068 ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 10005 ":ref:`test-manual/runtime-testing:performing automated runtime testing`"
9069 section in the Yocto Project Development Tasks Manual. 10006 section in the Yocto Project Test Environment Manual.
9070 10007
9071 :term:`TEST_TARGET` 10008 :term:`TEST_TARGET`
9072 Specifies the target controller to use when running tests against a 10009 Specifies the target controller to use when running tests against a
@@ -9084,8 +10021,8 @@ system and gives an overview of their function and contents.
9084 You can provide the following arguments with :term:`TEST_TARGET`: 10021 You can provide the following arguments with :term:`TEST_TARGET`:
9085 10022
9086 - *"qemu":* Boots a QEMU image and runs the tests. See the 10023 - *"qemu":* Boots a QEMU image and runs the tests. See the
9087 ":ref:`dev-manual/runtime-testing:enabling runtime tests on qemu`" section 10024 ":ref:`test-manual/runtime-testing:enabling runtime tests on qemu`" section
9088 in the Yocto Project Development Tasks Manual for more 10025 in the Yocto Project Test Environment Manual for more
9089 information. 10026 information.
9090 10027
9091 - *"simpleremote":* Runs the tests on target hardware that is 10028 - *"simpleremote":* Runs the tests on target hardware that is
@@ -9100,8 +10037,8 @@ system and gives an overview of their function and contents.
9100 ``meta/lib/oeqa/controllers/simpleremote.py``. 10037 ``meta/lib/oeqa/controllers/simpleremote.py``.
9101 10038
9102 For information on running tests on hardware, see the 10039 For information on running tests on hardware, see the
9103 ":ref:`dev-manual/runtime-testing:enabling runtime tests on hardware`" 10040 ":ref:`test-manual/runtime-testing:enabling runtime tests on hardware`"
9104 section in the Yocto Project Development Tasks Manual. 10041 section in the Yocto Project Test Environment Manual.
9105 10042
9106 :term:`TEST_TARGET_IP` 10043 :term:`TEST_TARGET_IP`
9107 The IP address of your hardware under test. The :term:`TEST_TARGET_IP` 10044 The IP address of your hardware under test. The :term:`TEST_TARGET_IP`
@@ -9137,10 +10074,15 @@ system and gives an overview of their function and contents.
9137 10074
9138 For more information 10075 For more information
9139 on enabling, running, and writing these tests, see the 10076 on enabling, running, and writing these tests, see the
9140 ":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 10077 ":ref:`test-manual/runtime-testing:performing automated runtime testing`"
9141 section in the Yocto Project Development Tasks Manual and the 10078 section in the Yocto Project Test Environment Manual and the
9142 ":ref:`ref-classes-testimage`" section. 10079 ":ref:`ref-classes-testimage`" section.
9143 10080
10081 :term:`TESTIMAGE_FAILED_QA_ARTIFACTS`
10082 When using the :ref:`ref-classes-testimage` class, the variable
10083 :term:`TESTIMAGE_FAILED_QA_ARTIFACTS` lists space-separated paths on the
10084 target to retrieve onto the host.
10085
9144 :term:`THISDIR` 10086 :term:`THISDIR`
9145 The directory in which the file BitBake is currently parsing is 10087 The directory in which the file BitBake is currently parsing is
9146 located. Do not manually set this variable. 10088 located. Do not manually set this variable.
@@ -9417,13 +10359,13 @@ system and gives an overview of their function and contents.
9417 :term:`UBOOT_DTB_LOADADDRESS` 10359 :term:`UBOOT_DTB_LOADADDRESS`
9418 Specifies the load address for the dtb image used by U-Boot. During FIT 10360 Specifies the load address for the dtb image used by U-Boot. During FIT
9419 image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in 10361 image creation, the :term:`UBOOT_DTB_LOADADDRESS` variable is used in
9420 :ref:`ref-classes-kernel-fitimage` class to specify the load address to be 10362 :ref:`ref-classes-kernel-fit-image` class to specify the load address to be
9421 used in creating the dtb sections of Image Tree Source for the FIT image. 10363 used in creating the dtb sections of Image Tree Source for the FIT image.
9422 10364
9423 :term:`UBOOT_DTBO_LOADADDRESS` 10365 :term:`UBOOT_DTBO_LOADADDRESS`
9424 Specifies the load address for the dtbo image used by U-Boot. During FIT 10366 Specifies the load address for the dtbo image used by U-Boot. During FIT
9425 image creation, the :term:`UBOOT_DTBO_LOADADDRESS` variable is used in 10367 image creation, the :term:`UBOOT_DTBO_LOADADDRESS` variable is used in
9426 :ref:`ref-classes-kernel-fitimage` class to specify the load address to be 10368 :ref:`ref-classes-kernel-fit-image` class to specify the load address to be
9427 used in creating the dtbo sections of Image Tree Source for the FIT image. 10369 used in creating the dtbo sections of Image Tree Source for the FIT image.
9428 10370
9429 :term:`UBOOT_ENTRYPOINT` 10371 :term:`UBOOT_ENTRYPOINT`
@@ -9435,17 +10377,55 @@ system and gives an overview of their function and contents.
9435 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation. 10377 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation.
9436 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation. 10378 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation.
9437 10379
9438 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10380 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
9439 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`, 10381 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`,
9440 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10382 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
9441 classes. 10383 classes.
9442 10384
10385 :term:`UBOOT_ENV`
10386 This variable allows to add additional environment variables or a script
10387 to be installed together with U-Boot.
10388 This file, typically ``uEnv.txt`` or ``boot.cmd``, is installed in
10389 ``/boot`` as well as copied to the :term:`DEPLOYDIR` directory.
10390
10391 For machine configurations needing one of these files a ``.bbappend``
10392 file should include it in the :term:`SRC_URI` of the U-Boot recipe.
10393
10394 If the variable :term:`UBOOT_ENV_SUFFIX` is set to ``scr`` the script is
10395 packaged as a uImage (``mkimage -T script..``) otherwise it gets
10396 installed verbatim.
10397
10398 Some examples:
10399
10400 - Adding a script ``boot.cmd`` as a uImage to ``/boot``::
10401
10402 UBOOT_ENV = "boot"
10403 UBOOT_ENV_SUFFIX = "scr"
10404 SRC_URI += "file://${UBOOT_ENV_SRC}"
10405
10406 - Adding a script ``uEnv.txt`` as a plain text file to ``/boot``::
10407
10408 UBOOT_ENV = "uEnv"
10409 UBOOT_ENV_SUFFIX = "txt"
10410 SRC_URI += "file://${UBOOT_ENV_BINARY}"
10411
10412 :term:`UBOOT_ENV_SRC_SUFFIX`
10413 If :term:`UBOOT_ENV_SUFFIX` is set to ``scr`` this is the suffix of the
10414 plain text script file as it is specified in the :term:`SRC_URI` of the
10415 U-Boot recipe. It defaults to ``cmd``.
10416
10417 :term:`UBOOT_ENV_SUFFIX`
10418 If this variable is set to ``scr`` the script referred to by
10419 :term:`UBOOT_ENV` gets packaged as a uImage before it gets installed.
10420 The default is ``txt`` which means the script is installed as-is, with
10421 no modification.
10422
9443 :term:`UBOOT_FIT_ADDRESS_CELLS` 10423 :term:`UBOOT_FIT_ADDRESS_CELLS`
9444 Specifies the value of the ``#address-cells`` value for the 10424 Specifies the value of the ``#address-cells`` value for the
9445 description of the U-Boot FIT image. 10425 description of the U-Boot FIT image.
9446 10426
9447 The default value is set to "1" by the :ref:`ref-classes-uboot-sign` 10427 The default value is set to "1" by the :ref:`ref-classes-uboot-sign`
9448 class, which corresponds to 32 bit addresses. 10428 class, which corresponds to 32 bit addresses.
9449 10429
9450 For platforms that need to set 64 bit addresses in 10430 For platforms that need to set 64 bit addresses in
9451 :term:`UBOOT_LOADADDRESS` and :term:`UBOOT_ENTRYPOINT`, you need to 10431 :term:`UBOOT_LOADADDRESS` and :term:`UBOOT_ENTRYPOINT`, you need to
@@ -9453,12 +10433,60 @@ system and gives an overview of their function and contents.
9453 to represent such addresses. 10433 to represent such addresses.
9454 10434
9455 Here is an example setting "0x400000000" as a load address:: 10435 Here is an example setting "0x400000000" as a load address::
9456 10436
9457 UBOOT_FIT_ADDRESS_CELLS = "2" 10437 UBOOT_FIT_ADDRESS_CELLS = "2"
9458 UBOOT_LOADADDRESS= "0x04 0x00000000" 10438 UBOOT_LOADADDRESS= "0x04 0x00000000"
9459 10439
9460 See `more details about #address-cells <https://elinux.org/Device_Tree_Usage#How_Addressing_Works>`__. 10440 See `more details about #address-cells <https://elinux.org/Device_Tree_Usage#How_Addressing_Works>`__.
9461 10441
10442 :term:`UBOOT_FIT_ARM_TRUSTED_FIRMWARE`
10443 `Trusted Firmware-A (TF-A) <https://www.trustedfirmware.org/projects/tf-a>`__
10444 is a reference implementation of secure world software for Arm A-Profile
10445 architectures (Armv8-A and Armv7-A), including an Exception Level 3 (EL3)
10446 Secure Monitor. This variable enables the generation of a U-Boot FIT
10447 image with a Trusted Firmware-A (TF-A) binary.
10448
10449 Its default value is "0", so set it to "1" to enable this functionality::
10450
10451 UBOOT_FIT_ARM_TRUSTED_FIRMWARE = "1"
10452
10453 :term:`UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE`
10454 Specifies the path to the Trusted Firmware-A (TF-A) binary. Its default
10455 value is "bl31.bin"::
10456
10457 UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE ?= "bl31.bin"
10458
10459 If a relative path is provided, the file is expected to be relative to
10460 U-Boot's :term:`B` directory. An absolute path can be provided too,
10461 e.g.::
10462
10463 UBOOT_FIT_ARM_TRUSTED_FIRMWARE_IMAGE ?= "${DEPLOY_DIR_IMAGE}/bl31.bin"
10464
10465 If the Trusted Firmware-A (TF-A) binary is built in a separate recipe,
10466 you must add the necessary dependency in a U-Boot ``.bbappend`` file. The
10467 recipe name for Trusted Firmware-A (TF-A) binary is
10468 ``trusted-firmware-a``, which comes from the
10469 :yocto_git:`meta-arm </meta-arm>` layer::
10470
10471 do_compile[depends] += "trusted-firmware-a:do_deploy"
10472
10473 :term:`UBOOT_FIT_CONF_FIRMWARE`
10474 Adds one image to the ``firmware`` property of the configuration node of
10475 the U-Boot Image Tree Source (ITS). Sets the ``firmware`` property to
10476 select the image to boot first::
10477
10478 UBOOT_FIT_CONF_FIRMWARE = "fwa"
10479
10480 If not set, the first entry in "loadables" is used to boot instead.
10481
10482 :term:`UBOOT_FIT_CONF_USER_LOADABLES`
10483 Adds one or more user-defined images to the ``loadables`` property of the
10484 configuration node of the U-Boot Image Tree Source (ITS). This variable
10485 is handled by the local shell in the recipe so appropriate escaping
10486 should be done, e.g. escaping quotes.::
10487
10488 UBOOT_FIT_CONF_USER_LOADABLES = '\"fwa\", \"fwb\"'
10489
9462 :term:`UBOOT_FIT_DESC` 10490 :term:`UBOOT_FIT_DESC`
9463 Specifies the description string encoded into a U-Boot fitImage. The default 10491 Specifies the description string encoded into a U-Boot fitImage. The default
9464 value is set by the :ref:`ref-classes-uboot-sign` class as follows:: 10492 value is set by the :ref:`ref-classes-uboot-sign` class as follows::
@@ -9507,6 +10535,105 @@ system and gives an overview of their function and contents.
9507 of bits. The default value for this variable is set to "2048" 10535 of bits. The default value for this variable is set to "2048"
9508 by the :ref:`ref-classes-uboot-sign` class. 10536 by the :ref:`ref-classes-uboot-sign` class.
9509 10537
10538 :term:`UBOOT_FIT_TEE`
10539 A Trusted Execution Environment (TEE) is a secure environment for
10540 executing code, ensuring high levels of trust in asset management within
10541 the surrounding system. This variable enables the generation of a U-Boot
10542 FIT image with a Trusted Execution Environment (TEE) binary.
10543
10544 Its default value is "0", so set it to "1" to enable this functionality::
10545
10546 UBOOT_FIT_TEE = "1"
10547
10548 :term:`UBOOT_FIT_TEE_IMAGE`
10549 Specifies the path to the Trusted Execution Environment (TEE) binary. Its
10550 default value is "tee-raw.bin"::
10551
10552 UBOOT_FIT_TEE_IMAGE ?= "tee-raw.bin"
10553
10554 If a relative path is provided, the file is expected to be relative to
10555 U-Boot's :term:`B` directory. An absolute path can be provided too,
10556 e.g.::
10557
10558 UBOOT_FIT_TEE_IMAGE ?= "${DEPLOY_DIR_IMAGE}/tee-raw.bin"
10559
10560 If the Trusted Execution Environment (TEE) binary is built in a separate
10561 recipe, you must add the necessary dependency in a U-Boot ``.bbappend``
10562 file. The recipe name for Trusted Execution Environment (TEE) binary is
10563 ``optee-os``, which comes from the :yocto_git:`meta-arm </meta-arm>`
10564 layer::
10565
10566 do_compile[depends] += "optee-os:do_deploy"
10567
10568 :term:`UBOOT_FIT_USER_SETTINGS`
10569 Add a user-specific snippet to the U-Boot Image Tree Source (ITS). This
10570 variable allows the user to add one or more user-defined ``/images`` node
10571 to the U-Boot Image Tree Source (ITS). For more details, please refer to
10572 https://fitspec.osfw.foundation/\ .
10573
10574 The original content of the U-Boot Image Tree Source (ITS) is as
10575 follows::
10576
10577 images {
10578 uboot {
10579 description = "U-Boot image";
10580 data = /incbin/("u-boot-nodtb.bin");
10581 type = "standalone";
10582 os = "u-boot";
10583 arch = "";
10584 compression = "none";
10585 load = <0x80000000>;
10586 entry = <0x80000000>;
10587 };
10588 };
10589
10590 Users can include their custom ITS snippet in this variable, e.g.::
10591
10592 UBOOT_FIT_FWA_ITS = '\
10593 fwa {\n\
10594 description = \"FW A\";\n\
10595 data = /incbin/(\"fwa.bin\");\n\
10596 type = \"firmware\";\n\
10597 arch = \"\";\n\
10598 os = \"\";\n\
10599 load = <0xb2000000>;\n\
10600 entry = <0xb2000000>;\n\
10601 compression = \"none\";\n\
10602 };\n\
10603 '
10604
10605 UBOOT_FIT_USER_SETTINGS = "${UBOOT_FIT_FWA_ITS}"
10606
10607 This variable is handled by the local shell in the recipe so appropriate
10608 escaping should be done, e.g. escaping quotes and adding newlines with
10609 ``\n``.
10610
10611 The generated content of the U-Boot Image Tree Source (ITS) is as
10612 follows::
10613
10614 images {
10615 uboot {
10616 description = "U-Boot image";
10617 data = /incbin/("u-boot-nodtb.bin");
10618 type = "standalone";
10619 os = "u-boot";
10620 arch = "";
10621 compression = "none";
10622 load = <0x80000000>;
10623 entry = <0x80000000>;
10624 };
10625 fwa {
10626 description = "FW A";
10627 data = /incbin/("fwa.bin");
10628 type = "firmware";
10629 arch = "";
10630 os = "";
10631 load = <0xb2000000>;
10632 entry = <0xb2000000>;
10633 compression = "none";
10634 };
10635 };
10636
9510 :term:`UBOOT_FITIMAGE_ENABLE` 10637 :term:`UBOOT_FITIMAGE_ENABLE`
9511 This variable allows to generate a FIT image for U-Boot, which is one 10638 This variable allows to generate a FIT image for U-Boot, which is one
9512 of the ways to implement a verified boot process. 10639 of the ways to implement a verified boot process.
@@ -9516,7 +10643,7 @@ system and gives an overview of their function and contents.
9516 UBOOT_FITIMAGE_ENABLE = "1" 10643 UBOOT_FITIMAGE_ENABLE = "1"
9517 10644
9518 See the :ref:`ref-classes-uboot-sign` class for details. 10645 See the :ref:`ref-classes-uboot-sign` class for details.
9519 10646
9520 :term:`UBOOT_LOADADDRESS` 10647 :term:`UBOOT_LOADADDRESS`
9521 Specifies the load address for the U-Boot image. During U-Boot image 10648 Specifies the load address for the U-Boot image. During U-Boot image
9522 creation, the :term:`UBOOT_LOADADDRESS` variable is passed as a 10649 creation, the :term:`UBOOT_LOADADDRESS` variable is passed as a
@@ -9527,7 +10654,7 @@ system and gives an overview of their function and contents.
9527 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation. 10654 - The :term:`FIT_ADDRESS_CELLS` variable for FIT image creation.
9528 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation. 10655 - The :term:`UBOOT_FIT_ADDRESS_CELLS` variable for U-Boot FIT image creation.
9529 10656
9530 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10657 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
9531 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`, 10658 :ref:`ref-classes-kernel-uimage`, :ref:`ref-classes-kernel`,
9532 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10659 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
9533 classes. 10660 classes.
@@ -9555,15 +10682,15 @@ system and gives an overview of their function and contents.
9555 10682
9556 :term:`UBOOT_MKIMAGE` 10683 :term:`UBOOT_MKIMAGE`
9557 Specifies the name of the mkimage command as used by the 10684 Specifies the name of the mkimage command as used by the
9558 :ref:`ref-classes-kernel-fitimage` class to assemble 10685 :ref:`ref-classes-kernel-fit-image` class to assemble
9559 the FIT image. This can be used to substitute an alternative command, wrapper 10686 the FIT image. This can be used to substitute an alternative command, wrapper
9560 script or function if desired. The default is "uboot-mkimage". 10687 script or function if desired. The default is "uboot-mkimage".
9561 10688
9562 :term:`UBOOT_MKIMAGE_DTCOPTS` 10689 :term:`UBOOT_MKIMAGE_DTCOPTS`
9563 Options for the device tree compiler passed to ``mkimage -D`` feature 10690 Options for the device tree compiler passed to ``mkimage -D`` feature
9564 while creating a FIT image with the :ref:`ref-classes-kernel-fitimage` 10691 while creating a FIT image with the :ref:`ref-classes-kernel-fit-image`
9565 class. If :term:`UBOOT_MKIMAGE_DTCOPTS` is not set then the 10692 class. If :term:`UBOOT_MKIMAGE_DTCOPTS` is not set then the
9566 :ref:`ref-classes-kernel-fitimage` class will not pass the ``-D`` option 10693 :ref:`ref-classes-kernel-fit-image` class will not pass the ``-D`` option
9567 to ``mkimage``. 10694 to ``mkimage``.
9568 10695
9569 This variable is also used by the :ref:`ref-classes-uboot-sign` class. 10696 This variable is also used by the :ref:`ref-classes-uboot-sign` class.
@@ -9574,42 +10701,42 @@ system and gives an overview of their function and contents.
9574 10701
9575 :term:`UBOOT_MKIMAGE_SIGN` 10702 :term:`UBOOT_MKIMAGE_SIGN`
9576 Specifies the name of the mkimage command as used by the 10703 Specifies the name of the mkimage command as used by the
9577 :ref:`ref-classes-kernel-fitimage` class to sign 10704 :ref:`ref-classes-kernel-fit-image` class to sign
9578 the FIT image after it has been assembled (if enabled). This can be used 10705 the FIT image after it has been assembled (if enabled). This can be used
9579 to substitute an alternative command, wrapper script or function if 10706 to substitute an alternative command, wrapper script or function if
9580 desired. The default is "${:term:`UBOOT_MKIMAGE`}". 10707 desired. The default is "${:term:`UBOOT_MKIMAGE`}".
9581 10708
9582 :term:`UBOOT_MKIMAGE_SIGN_ARGS` 10709 :term:`UBOOT_MKIMAGE_SIGN_ARGS`
9583 Optionally specifies additional arguments for the 10710 Optionally specifies additional arguments for the
9584 :ref:`ref-classes-kernel-fitimage` class to pass to the 10711 :ref:`ref-classes-kernel-fit-image` class to pass to the
9585 mkimage command when signing the FIT image. 10712 mkimage command when signing the FIT image.
9586 10713
9587 :term:`UBOOT_RD_ENTRYPOINT` 10714 :term:`UBOOT_RD_ENTRYPOINT`
9588 Specifies the entrypoint for the RAM disk image. During FIT image 10715 Specifies the entrypoint for the RAM disk image. During FIT image
9589 creation, the :term:`UBOOT_RD_ENTRYPOINT` variable is used in 10716 creation, the :term:`UBOOT_RD_ENTRYPOINT` variable is used in
9590 :ref:`ref-classes-kernel-fitimage` class to specify the entrypoint to be 10717 :ref:`ref-classes-kernel-fit-image` class to specify the entrypoint to be
9591 used in creating the Image Tree Source for the FIT image. 10718 used in creating the Image Tree Source for the FIT image.
9592 10719
9593 :term:`UBOOT_RD_LOADADDRESS` 10720 :term:`UBOOT_RD_LOADADDRESS`
9594 Specifies the load address for the RAM disk image. During FIT image 10721 Specifies the load address for the RAM disk image. During FIT image
9595 creation, the :term:`UBOOT_RD_LOADADDRESS` variable is used in 10722 creation, the :term:`UBOOT_RD_LOADADDRESS` variable is used in
9596 :ref:`ref-classes-kernel-fitimage` class to specify the load address to 10723 :ref:`ref-classes-kernel-fit-image` class to specify the load address to
9597 be used in creating the Image Tree Source for the FIT image. 10724 be used in creating the Image Tree Source for the FIT image.
9598 10725
9599 :term:`UBOOT_SIGN_ENABLE` 10726 :term:`UBOOT_SIGN_ENABLE`
9600 Enable signing of FIT image. The default value is "0". 10727 Enable signing of FIT image. The default value is "0".
9601 10728
9602 This variable is used by the :ref:`ref-classes-kernel-fitimage`, 10729 This variable is used by the :ref:`ref-classes-kernel-fit-image`,
9603 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign` 10730 :ref:`ref-classes-uboot-config` and :ref:`ref-classes-uboot-sign`
9604 classes. 10731 classes.
9605 10732
9606 :term:`UBOOT_SIGN_KEYDIR` 10733 :term:`UBOOT_SIGN_KEYDIR`
9607 Location of the directory containing the RSA key and certificate used for 10734 Location of the directory containing the RSA key and certificate used for
9608 signing FIT image, used by the :ref:`ref-classes-kernel-fitimage` and 10735 signing FIT image, used by the :ref:`ref-classes-kernel-fit-image` and
9609 :ref:`ref-classes-uboot-sign` classes. 10736 :ref:`ref-classes-uboot-sign` classes.
9610 10737
9611 :term:`UBOOT_SIGN_KEYNAME` 10738 :term:`UBOOT_SIGN_KEYNAME`
9612 The name of keys used by the :ref:`ref-classes-kernel-fitimage` class 10739 The name of keys used by the :ref:`ref-classes-kernel-fit-image` class
9613 for signing U-Boot FIT image stored in the :term:`UBOOT_SIGN_KEYDIR` 10740 for signing U-Boot FIT image stored in the :term:`UBOOT_SIGN_KEYDIR`
9614 directory. If we have for example a ``dev.key`` key and a ``dev.crt`` 10741 directory. If we have for example a ``dev.key`` key and a ``dev.crt``
9615 certificate stored in the :term:`UBOOT_SIGN_KEYDIR` directory, you will 10742 certificate stored in the :term:`UBOOT_SIGN_KEYDIR` directory, you will
@@ -9628,6 +10755,43 @@ system and gives an overview of their function and contents.
9628 passes and uses "all" for the target during the U-Boot building 10755 passes and uses "all" for the target during the U-Boot building
9629 process. 10756 process.
9630 10757
10758 :term:`UKIFY_CMD`
10759 When inheriting the :ref:`ref-classes-uki` class,
10760 `ukify <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__ command to build
10761 `Unified Kernel Image (UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__.
10762 Defaults to ``ukify build``.
10763
10764 :term:`UKI_CMDLINE`
10765 When inheriting the :ref:`ref-classes-uki` class, the kernel command line
10766 to use when booting the `Unified Kernel Image (UKI)
10767 <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__.
10768 Defaults to ``rootwait root=LABEL=root console=${KERNEL_CONSOLE}``.
10769
10770 :term:`UKI_CONFIG_FILE`
10771 When inheriting the :ref:`ref-classes-uki` class, an optional config
10772 file for the `ukify
10773 <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__
10774 command.
10775
10776 :term:`UKI_FILENAME`
10777 When inheriting the :ref:`ref-classes-uki` class, the output file name
10778 for the generated `Unified Kernel Image (UKI)
10779 <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__.
10780 Defaults to ``uki.efi``.
10781
10782 :term:`UKI_KERNEL_FILENAME`
10783 When inheriting the :ref:`ref-classes-uki` class, the kernel image file
10784 name to use as input. Defaults to :term:`KERNEL_IMAGETYPE`.
10785
10786 :term:`UKI_SB_CERT`
10787 When inheriting the :ref:`ref-classes-uki` class, optional UEFI
10788 secureboot certificate matching the private key in :term:`UKI_SB_KEY`.
10789
10790 :term:`UKI_SB_KEY`
10791 When inheriting the :ref:`ref-classes-uki` class, optional UEFI
10792 secureboot private key to sign the `Unified Kernel Image (UKI)
10793 <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__.
10794
9631 :term:`UNKNOWN_CONFIGURE_OPT_IGNORE` 10795 :term:`UNKNOWN_CONFIGURE_OPT_IGNORE`
9632 Specifies a list of options that, if reported by the configure script 10796 Specifies a list of options that, if reported by the configure script
9633 as being invalid, should not generate a warning during the 10797 as being invalid, should not generate a warning during the
@@ -9645,6 +10809,11 @@ system and gives an overview of their function and contents.
9645 :ref:`ref-classes-insane` class and is only enabled if the 10809 :ref:`ref-classes-insane` class and is only enabled if the
9646 recipe inherits the :ref:`ref-classes-autotools` class. 10810 recipe inherits the :ref:`ref-classes-autotools` class.
9647 10811
10812 :term:`UNPACKDIR`
10813 This variable, used by the :ref:`ref-classes-base` class,
10814 specifies where fetches sources should be unpacked by the
10815 :ref:`ref-tasks-unpack` task.
10816
9648 :term:`UPDATERCPN` 10817 :term:`UPDATERCPN`
9649 For recipes inheriting the 10818 For recipes inheriting the
9650 :ref:`ref-classes-update-rc.d` class, :term:`UPDATERCPN` 10819 :ref:`ref-classes-update-rc.d` class, :term:`UPDATERCPN`
@@ -9746,6 +10915,12 @@ system and gives an overview of their function and contents.
9746 ``meta-poky/conf/templates/default/local.conf.sample`` in the 10915 ``meta-poky/conf/templates/default/local.conf.sample`` in the
9747 :term:`Source Directory`. 10916 :term:`Source Directory`.
9748 10917
10918 :term:`USERADD_DEPENDS`
10919 Specifies a list of recipes that create users / groups (via
10920 :term:`USERADD_PARAM` / :term:`GROUPADD_PARAM`) which a recipe
10921 depends upon. This ensures that those users / groups are available
10922 when building a recipe.
10923
9749 :term:`USERADD_ERROR_DYNAMIC` 10924 :term:`USERADD_ERROR_DYNAMIC`
9750 If set to ``error``, forces the OpenEmbedded build system to produce 10925 If set to ``error``, forces the OpenEmbedded build system to produce
9751 an error if the user identification (``uid``) and group 10926 an error if the user identification (``uid``) and group
@@ -9898,26 +11073,6 @@ system and gives an overview of their function and contents.
9898 11073
9899 PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd" 11074 PACKAGE_INSTALL = "${INITRAMFS_SCRIPTS} ${VIRTUAL-RUNTIME_base-utils} base-passwd"
9900 11075
9901 :term:`VOLATILE_LOG_DIR`
9902 Specifies the persistence of the target's ``/var/log`` directory,
9903 which is used to house postinstall target log files.
9904
9905 By default, :term:`VOLATILE_LOG_DIR` is set to "yes", which means the
9906 file is not persistent. You can override this setting by setting the
9907 variable to "no" to make the log directory persistent.
9908
9909 :term:`VOLATILE_TMP_DIR`
9910 Specifies the persistence of the target's ``/tmp`` directory.
9911
9912 By default, :term:`VOLATILE_TMP_DIR` is set to "yes", in which case
9913 ``/tmp`` links to a directory which resides in RAM in a ``tmpfs``
9914 filesystem.
9915
9916 If instead, you want the ``/tmp`` directory to be persistent, set the
9917 variable to "no" to make it a regular directory in the root filesystem.
9918
9919 This supports both sysvinit and systemd based systems.
9920
9921 :term:`WARN_QA` 11076 :term:`WARN_QA`
9922 Specifies the quality assurance checks whose failures are reported as 11077 Specifies the quality assurance checks whose failures are reported as
9923 warnings by the OpenEmbedded build system. You set this variable in 11078 warnings by the OpenEmbedded build system. You set this variable in
@@ -9925,9 +11080,39 @@ system and gives an overview of their function and contents.
9925 can control with this variable, see the 11080 can control with this variable, see the
9926 ":ref:`ref-classes-insane`" section. 11081 ":ref:`ref-classes-insane`" section.
9927 11082
11083 :term:`WATCHDOG_RUNTIME_SEC`
11084 For the ``systemd`` recipe, this controls the value of the
11085 ``RuntimeWatchdogSec`` option in ``/etc/systemd/system.conf``. The default
11086 value is an empty string.
11087
9928 :term:`WATCHDOG_TIMEOUT` 11088 :term:`WATCHDOG_TIMEOUT`
9929 Specifies the timeout in seconds used by the ``watchdog`` recipe and 11089 Specifies the timeout in seconds used by the ``watchdog-config`` recipe
9930 also by ``systemd`` during reboot. The default is 60 seconds. 11090 and also by ``systemd`` during reboot. The default is 60 seconds.
11091
11092 :term:`WIC_CREATE_EXTRA_ARGS`
11093 If the :term:`IMAGE_FSTYPES` variable contains "wic", the build
11094 will generate a
11095 :ref:`Wic image <dev-manual/wic:creating partitioned images using wic>`
11096 automatically when BitBake builds an image recipe. As part of
11097 this process BitBake will invoke the "`wic create`" command. The
11098 :term:`WIC_CREATE_EXTRA_ARGS` variable is placed at the end of this
11099 command which allows the user to supply additional arguments.
11100
11101 One such useful purpose for this mechanism is to add the ``-D`` (or
11102 ``--debug``) argument to the "`wic create`" command. This increases the
11103 amount of debugging information written out to the Wic log during the
11104 Wic creation process.
11105
11106 :term:`WIC_SECTOR_SIZE`
11107 The variable :term:`WIC_SECTOR_SIZE` controls the sector size of Wic
11108 images. In the background, this controls the value of the
11109 ``PARTED_SECTOR_SIZE`` environment variable passed to the ``parted``
11110 command-line utility, used to generated the images. The default value is
11111 ``512``.
11112
11113 For more information on how to create Wic images, see the
11114 ":ref:`dev-manual/wic:creating partitioned images using wic`" section in
11115 the Yocto Project Development Tasks Manual.
9931 11116
9932 :term:`WIRELESS_DAEMON` 11117 :term:`WIRELESS_DAEMON`
9933 For ``connman`` and ``packagegroup-base``, specifies the wireless 11118 For ``connman`` and ``packagegroup-base``, specifies the wireless
@@ -10038,6 +11223,11 @@ system and gives an overview of their function and contents.
10038 memory and become problematic with parallelism elsewhere in the build. 11223 memory and become problematic with parallelism elsewhere in the build.
10039 "50%" has been found to be a good value. 11224 "50%" has been found to be a good value.
10040 11225
11226 :term:`ZSTD_COMPRESSION_LEVEL`
11227 Specifies the compression level to be used with ZStandard compression
11228 (from ``1`` to ``19``, set to ``3`` by default, following upstream choice).
11229 Higher levels produce smaller files, but take longer to complete.
11230
10041 :term:`ZSTD_THREADS` 11231 :term:`ZSTD_THREADS`
10042 Specifies the number of parallel threads that should be used when 11232 Specifies the number of parallel threads that should be used when
10043 using ZStandard compression. 11233 using ZStandard compression.
diff --git a/documentation/ref-manual/yocto-project-supported-features.rst b/documentation/ref-manual/yocto-project-supported-features.rst
new file mode 100644
index 0000000000..0e6c33cf6e
--- /dev/null
+++ b/documentation/ref-manual/yocto-project-supported-features.rst
@@ -0,0 +1,267 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3**************************************************
4Yocto Project Supported Architectures And Features
5**************************************************
6
7The Yocto Project is putting continuous efforts into testing the changes made to
8the :term:`OpenEmbedded-Core (OE-Core)` metadata and core tools. The details on
9how this test environment functions is described in the
10:doc:`/test-manual/index`.
11
12These tests are also run for stable and :term:`LTS` versions of the Yocto
13Project. See the :doc:`/ref-manual/release-process` section of the Yocto Project
14Reference Manual for more information on these types of releases.
15
16The infrastructure behind the test environment is the
17:ref:`Yocto Project Autobuilder <test-manual/intro:Yocto Project Autobuilder
18Overview>`. The Autobuilder contains a set of Builders that are associated to an
19architecture or a feature to test. For example, the ``qemuarm64`` builder
20corresponds to testing the ARM 64-bit architecture.
21
22Below is a comprehensive list of target architectures and features that are
23supported, as well as their level of support. For each architecture or feature,
24their corresponding builders are also listed.
25
26Primary Supported
27=================
28
29The term "primary" means that dedicated builds for these architectures or
30features are being run on a daily basis on the Yocto Project Autobuilder and
31also tested with incoming changes before they merge. These changes are usually
32on the "-next" Git branches of the :term:`OpenEmbedded-Core (OE-Core)`
33repositories.
34
35Below is a list of primary tested features, their maintainer(s) and builder(s):
36
37.. list-table::
38 :widths: 20 20 20 40
39 :header-rows: 1
40
41 * - Feature
42 - Description
43 - Maintainer(s)
44 - Builder(s)
45 * - :wikipedia:`ARM <ARM_architecture_family>`
46 - ARM architecture testing
47 - Collective effort
48 - genericarm64,
49 genericarm64-alt,
50 musl-qemuarm64,
51 qemuarm,
52 qemuarm-alt,
53 qemuarm-oecore,
54 qemuarm-tc,
55 qemuarm64,
56 qemuarm64-alt,
57 qemuarm64-armhost,
58 qemuarm64-ltp,
59 qemuarm64-ptest,
60 qemuarm64-tc,
61 qemuarmv5
62 * - :yocto_git:`Beaglebone </poky/tree/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf>`
63 - Beaglebone image and SDK build testing
64 - Collective effort
65 - beaglebone,
66 beaglebone-alt
67 * - :doc:`Reproducible </test-manual/reproducible-builds>`
68 - reproducibility testing
69 - Collective effort
70 - reproducible
71 * - :term:`Buildtools`
72 - Buildtools generation
73 - Collective effort
74 - buildtools
75 * - `meta-agl-core <https://gerrit.automotivelinux.org/gerrit/AGL/meta-agl>`__
76 - meta-agl-core layer testing
77 - TBD
78 - meta-agl-core
79 * - `meta-arm <https://git.yoctoproject.org/meta-arm>`__
80 - meta-arm layer testing
81 - meta-arm mailing list <meta-arm@lists.yoctoproject.org>
82 - meta-arm
83 * - `meta-aws <https://github.com/aws4embeddedlinux/meta-aws>`__
84 - meta-aws layer testing
85 - TBD
86 - meta-aws
87 * - `meta-intel <https://git.yoctoproject.org/meta-intel>`__
88 - meta-intel layer testing
89 - meta-intel mailing list <meta-intel@lists.yoctoproject.org>
90 - meta-intel
91 * - `meta-exein <https://github.com/exein-io/meta-exein>`__
92 - meta-exein layer testing
93 - TBD
94 - meta-exein
95 * - `meta-webosose <https://github.com/webosose/meta-webosose>`__
96 - meta-webosose layer testing
97 - TBD
98 - meta-webosose
99 * - :ref:`Multilib <dev-manual/libraries:Combining Multiple Versions of Library Files into One Image>`
100 - Multilib feature testing
101 - Collective effort
102 - multilib
103 * - :term:`OpenEmbedded-Core selftest<OpenEmbedded-Core (OE-Core)>`
104 - OpenEmbedded-Core layers selftests
105 - Collective effort
106 - oe-selftest-fedora,
107 oe-selftest-debian,
108 oe-selftest-armhost
109 * - Package managers
110 - Package managers (RPM, DEB and IPK formats) testing in the
111 :term:`OpenEmbedded Build System` (different from the
112 ``package-management`` :term:`image feature <IMAGE_FEATURES>`)
113 - Collective effort
114 - pkgman-non-rpm (other builders use RPM by default)
115 * - :ref:`Patchtest <contributor-guide/submit-changes:Validating Patches with Patchtest>`
116 - Patchtest tool selftests
117 - Collective effort
118 - patchtest-selftest
119 * - :wikipedia:`RISC-V (64-bit) <RISC-V>`
120 - RISC-V architecture testing (64-bit)
121 - Collective effort
122 - qemuriscv64,
123 qemuriscv64-ptest,
124 qemuriscv64-tc
125 * - :wikipedia:`systemd <Systemd>`
126 - Systemd init manager testing
127 - Collective effort
128 - no-x11, qa-extras2
129 * - :term:`Toaster`
130 - Toaster web interface testing
131 - Collective effort
132 - toaster
133 * - :ref:`Wic <dev-manual/wic:creating partitioned images using wic>`
134 - WIC image creation testing
135 - Collective effort
136 - wic
137 * - :wikipedia:`X86 <X86>`
138 - X86 architecture testing
139 - Collective effort
140 - genericx86,
141 genericx86-64,
142 genericx86-64-alt,
143 genericx86-alt,
144 musl-qemux86,
145 musl-qemux86-64,
146 qemux86,
147 qemux86-64,
148 qemux86-64-alt,
149 qemux86-64-ltp,
150 qemux86-64-ptest,
151 qemux86-64-tc,
152 qemux86-64-x32,
153 qemux86-alt,
154 qemux86-tc,
155 qemux86-world,
156 qemux86-world-alt
157
158Secondary Supported
159===================
160
161The term "secondary" means that in some cases there is code/feature/support
162which is desired by people using the project and is in the project's interests
163to support, however there isn't wide enough interest and support to justify
164testing all incoming changes on it. There are however project member
165organisations and maintainers willing to run tests and review fixes.
166
167This category may be applicable as support/usage in an area develops and grows,
168or as support/usage fades but we continue to have tests. It can also apply where
169resourcing isn't available for full primary support but there is
170member/maintainer support for running tests.
171
172We therefore have the following criteria and policies for such items:
173
174- It can be clearly isolated and defined by specific configuration.
175
176- There is a clear documented group of maintainers agreeing to maintain it.
177
178- Those maintainers are active and responsive.
179
180- It is being actively and publicly tested (potentially using
181 the :ref:`Autobuilder <test-manual/intro:Yocto Project Autobuilder Overview>`
182 by agreement, or otherwise).
183
184- Testing would not be part of standard incoming change testing and regressions
185 would not block incoming patches.
186
187- The :yocto_wiki:`SWAT </Yocto_Build_Failure_Swat_Team>` team would not handle
188 any test builds on the Autobuilder.
189
190- Test results can be submitted as part of the release process if desired.
191
192The Yocto Project :oe_wiki:`Technical Steering Committee (TSC) </TSC>` makes
193decisions on features in this status and Autobuilder testing. Such support would
194be dropped if the maintainers/testing were inactive.
195
196If you are interested in providing resources for improving testing please
197contact the :oe_wiki:`Technical Steering Committee (TSC) </TSC>`.
198
199Below is a list of secondary tested features, their maintainer(s) and
200builder(s):
201
202.. list-table::
203 :widths: 20 20 20 40
204 :header-rows: 1
205
206 * - Feature
207 - Description
208 - Maintainer(s)
209 - Builder(s)
210 * - :wikipedia:`PowerPC (32-bit) <PowerPC>`
211 - PowerPC architecture testing (32-bit)
212 - Peter Marko,
213 Adrian Freihofer
214 - qemuppc,
215 qemuppc-tc
216 * - :oe_git:`meta-openembedded </meta-openembedded>`
217 - meta-openembedded layer testing
218 - Collective effort / openembedded-devel mailing list <openebedded-devel@lists.openembedded.org>
219 - meta-oe
220 * - `meta-mingw <https://git.yoctoproject.org/meta-mingw>`__
221 - mingw based SDKs testing
222 - TBD
223 - meta-mingw
224 * - `meta-virtualization <https://git.yoctoproject.org/meta-virtualization/>`__
225 - meta-virtualization layer testing
226 - meta-virtualization mailing list <meta-virtualization@lists.yoctoproject.org>
227 - meta-virt
228 * - :wikipedia:`RISC-V (32-bit) <RISC-V>`
229 - RISC-V architecture testing (32-bit)
230 - TBD
231 - qemuriscv32,
232 qemuriscv32,
233 qemuriscv32-tc
234
235Untested
236========
237
238"Untested" means that whilst the configurations are present in the project, we
239don't currently run the tests on any regular basis and new changes are not
240tested against them. We may take patches in these areas if they make sense but
241it is on a best effort only basis.
242
243.. list-table::
244 :widths: 20 20 20 40
245 :header-rows: 1
246
247 * - Feature
248 - Description
249 - Maintainer(s)
250 - Builder(s)
251 * - :wikipedia:`MIPS <MIPS_architecture>`
252 - MIPS architecture testing
253 - No maintainers
254 - qemumips,
255 qemumips64,
256 qemumips-alt,
257 qemumips-tc,
258 qemumips64-tc
259 * - :wikipedia:`PowerPC (32-bit) <PowerPC>` Systemd
260 - PowerPC architecture testing (32-bit) with systemd
261 - No maintainers
262 - qemuppc-alt
263 * - :wikipedia:`PowerPC (64-bit) <PowerPC>`
264 - PowerPC architecture testing (64-bit)
265 - No maintainers
266 - qemuppc64,
267 qemuppc64-tc