diff options
Diffstat (limited to 'documentation/ref-manual')
-rw-r--r-- | documentation/ref-manual/classes.rst | 590 | ||||
-rw-r--r-- | documentation/ref-manual/devtool-reference.rst | 96 | ||||
-rw-r--r-- | documentation/ref-manual/faq.rst | 41 | ||||
-rw-r--r-- | documentation/ref-manual/features.rst | 37 | ||||
-rw-r--r-- | documentation/ref-manual/images.rst | 25 | ||||
-rw-r--r-- | documentation/ref-manual/index.rst | 1 | ||||
-rw-r--r-- | documentation/ref-manual/qa-checks.rst | 18 | ||||
-rw-r--r-- | documentation/ref-manual/release-process.rst | 25 | ||||
-rw-r--r-- | documentation/ref-manual/resources.rst | 7 | ||||
-rw-r--r-- | documentation/ref-manual/structure.rst | 46 | ||||
-rw-r--r-- | documentation/ref-manual/svg/releases.svg | 1250 | ||||
-rw-r--r-- | documentation/ref-manual/system-requirements.rst | 130 | ||||
-rw-r--r-- | documentation/ref-manual/tasks.rst | 22 | ||||
-rw-r--r-- | documentation/ref-manual/terms.rst | 14 | ||||
-rw-r--r-- | documentation/ref-manual/variables.rst | 1746 | ||||
-rw-r--r-- | documentation/ref-manual/yocto-project-supported-features.rst | 267 |
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 | |||
136 | The :ref:`ref-classes-barebox` class manages building the barebox bootloader. | ||
137 | |||
138 | If a file named ``defconfig`` is included in the :term:`SRC_URI`, it will be | ||
139 | copied to ``.config`` in the build directory and used as the barebox | ||
140 | configuration. | ||
141 | Instead of providing a ``defconfig`` file, you can set :term:`BAREBOX_CONFIG` | ||
142 | to a defconfig provided by the barebox source tree. | ||
143 | If neither ``defconfig`` nor :term:`BAREBOX_CONFIG` is specified, the class | ||
144 | will raise an error. | ||
145 | |||
146 | The :ref:`ref-classes-barebox` class supports config fragments and internally | ||
147 | includes the :ref:`ref-classes-cml1` class to provide `Kconfig | ||
148 | <https://docs.kernel.org/kbuild/kconfig-language.html>`__ support for | ||
149 | barebox, enabling tasks such as :ref:`ref-tasks-menuconfig` and | ||
150 | :ref:`ref-tasks-diffconfig`. | ||
151 | |||
152 | The 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. | ||
155 | This setup supports both using the barebox binaries as independent artifacts | ||
156 | and installing them into a rootfs. | ||
157 | :term:`BAREBOX_BINARY` can be used to select a distinct binary to deploy and | ||
158 | install. | ||
159 | If ``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>` | ||
161 | to define the default installation paths and naming conventions. | ||
162 | |||
163 | The compiled-in barebox environment can be extended by adding environment files | ||
164 | to the ``BAREBOX_ENV_DIR``. | ||
165 | The ``BAREBOX_FIRMWARE_DIR`` variable allows you to specify the firmware blob | ||
166 | search 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 | ||
162 | The :ref:`ref-classes-bin-package` class is a helper class for recipes that extract the | 199 | The :ref:`ref-classes-bin-package` class is a helper class for recipes, that |
163 | contents of a binary package (e.g. an RPM) and install those contents | 200 | disables the :ref:`ref-tasks-configure` and :ref:`ref-tasks-compile` tasks and |
164 | rather than building the binary from source. The binary package is | 201 | copies the content of the :term:`S` directory into the :term:`D` directory. This |
165 | extracted and new packages in the configured output package format are | 202 | is useful for installing binary packages (e.g. RPM packages) by passing the |
166 | created. Extraction and installation of proprietary binaries is a good | 203 | package in the :term:`SRC_URI` variable and inheriting this class. |
167 | example use for this class. | ||
168 | 204 | ||
169 | .. note:: | 205 | For RPMs and other packages that do not contain a subdirectory, you should set |
206 | the :term:`SRC_URI` option ``subdir`` to :term:`BP` so that the contents are | ||
207 | extracted to the directory expected by the default value of :term:`S`. For | ||
208 | example:: | ||
209 | |||
210 | SRC_URI = "https://example.com/downloads/somepackage.rpm;subdir=${BP}" | ||
211 | |||
212 | This 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}" | 216 | The :ref:`ref-classes-bin-package` class will copy the extracted content of the |
217 | tarball 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 | 219 | This class assumes that the content of the package as installed in :term:`S` |
182 | more information on supported BitBake Fetchers. | 220 | mirrors the expected layout once installed on the target, which is generally the |
221 | case for binary packages. For example, an RPM package for a library would | ||
222 | usually 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 | ||
554 | After building the software with Bitbake, CVE check output reports are available in ``tmp/deploy/cve`` | 602 | After building the software with Bitbake, CVE check output reports are available in ``tmp/deploy/cve`` |
555 | and image specific summaries in ``tmp/deploy/images/*.cve`` or ``tmp/deploy/images/*.json`` files. | 603 | and image specific summaries in ``tmp/deploy/images/*.json`` files. |
556 | 604 | ||
557 | When building, the CVE checker will emit build time warnings for any detected | 605 | When building, the CVE checker will emit build time warnings for any detected |
558 | issues which are in the state ``Unpatched``, meaning that CVE issue seems to affect the software component | 606 | issues 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 |
565 | CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file. | 613 | CVE 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 | |||
567 | If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status | 622 | If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status |
568 | mapped to ``Ignored``, then the CVE state is reported as ``Ignored``:: | 623 | mapped 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`" |
597 | section in the Development Tasks Manual. | 652 | section in the Development Tasks Manual. |
598 | 653 | ||
654 | .. _ref-classes-cython: | ||
655 | |||
656 | ``cython`` | ||
657 | ========== | ||
658 | |||
659 | The :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` | |||
665 | to the desired size, in bytes. | 729 | to the desired size, in bytes. |
666 | 730 | ||
667 | See :oe_git:`devicetree.bbclass sources | 731 | See :oe_git:`devicetree.bbclass sources |
668 | </openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>` | 732 | </openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>` |
669 | for further variables controlling this class. | 733 | for further variables controlling this class. |
670 | 734 | ||
671 | Here is an excerpt of an example ``recipes-kernel/linux/devicetree-acme.bb`` | 735 | Here 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 | ||
940 | See the associated :term:`GO_WORKDIR` variable. | 1004 | See the associated :term:`GO_WORKDIR` variable. |
941 | 1005 | ||
1006 | .. _ref-classes-go-vendor: | ||
1007 | |||
1008 | ``go-vendor`` | ||
1009 | ============= | ||
1010 | |||
1011 | The :ref:`ref-classes-go-vendor` class implements support for offline builds, | ||
1012 | also known as Go vendoring. In such a scenario, the module dependencias are | ||
1013 | downloaded during the :ref:`ref-tasks-fetch` task rather than when modules are | ||
1014 | imported, thus being coherent with Yocto's concept of fetching every source | ||
1015 | beforehand. | ||
1016 | |||
1017 | The dependencies are unpacked into the modules' ``vendor`` directory, where a | ||
1018 | manifest 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 | ||
1075 | Each ``LABEL`` defined in the :term:`LABELS` variable creates a GRUB boot | ||
1076 | entry, and some variables can be defined individually per ``LABEL``. The label | ||
1077 | specific override names are defined as ``grub_LABEL``. | ||
1078 | |||
1079 | For example, for a label ``factory``, the override name would be | ||
1080 | ``grub_factory``. A custom GRUB menu entry titled "Factory Install" with the | ||
1081 | additional 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 | ||
1641 | The :ref:`ref-classes-kernel-fitimage` class provides support to pack a kernel image, | 1744 | The :ref:`ref-classes-kernel-fit-image` class provides support to pack a kernel image, |
1642 | device trees, a U-boot script, an :term:`Initramfs` bundle and a RAM disk | 1745 | device trees, a U-boot script, and an :term:`Initramfs` into a single FIT image. |
1643 | into a single FIT image. In theory, a FIT image can support any number | 1746 | In theory, a FIT image can support any number of kernels, U-boot scripts, |
1644 | of kernels, U-boot scripts, :term:`Initramfs` bundles, RAM disks and device-trees. | 1747 | :term:`Initramfs`, and device trees. |
1645 | However, :ref:`ref-classes-kernel-fitimage` currently only supports | 1748 | However, :ref:`ref-classes-kernel-fit-image` currently only supports |
1646 | limited usecases: just one kernel image, an optional U-boot script, | 1749 | limited usecases: just one kernel image, an optional U-boot script, |
1647 | an optional :term:`Initramfs` bundle, an optional RAM disk, and any number of | 1750 | an optional :term:`Initramfs`, and any number of device trees. |
1648 | device trees. | 1751 | |
1649 | 1752 | The FIT image is created by a recipe which inherits the | |
1650 | To create a FIT image, it is required that :term:`KERNEL_CLASSES` | 1753 | :ref:`ref-classes-kernel-fit-image` class. |
1651 | is set to include ":ref:`ref-classes-kernel-fitimage`" and one of :term:`KERNEL_IMAGETYPE`, | 1754 | One such example is the ``linux-yocto-fitimage`` recipe which creates a FIT |
1652 | :term:`KERNEL_ALT_IMAGETYPE` or :term:`KERNEL_IMAGETYPES` to include "fitImage". | 1755 | image for the Linux Yocto kernel. |
1653 | 1756 | Additionally, it is required that :term:`KERNEL_CLASSES` is set to include | |
1654 | The options for the device tree compiler passed to ``mkimage -D`` | 1757 | :ref:`ref-classes-kernel-fit-extra-artifacts`. |
1655 | when creating the FIT image are specified using the | 1758 | The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required kernel |
1656 | :term:`UBOOT_MKIMAGE_DTCOPTS` variable. | 1759 | artifacts 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. | |
1658 | Only 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 | 1762 | The simplest example for building a FIT image is to add:: |
1660 | address where the kernel image is to be loaded by U-Boot is | 1763 | |
1661 | specified 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 | |
1663 | is necessary if such addresses are 64 bit ones. | 1766 | to the machine :term:`configuration file` and to execute:: |
1664 | 1767 | ||
1665 | Multiple 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 | |
1667 | The address where the device tree is to be loaded by U-Boot is | 1770 | This results in a ``fitImage`` file deployed to the :term:`DEPLOY_DIR_IMAGE` |
1668 | specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays | 1771 | directory and a ``linux-yocto-fitimage`` package which can be installed. |
1669 | and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries. | 1772 | |
1670 | 1773 | The same approach works for all variants of the ``linux-yocto`` kernel. | |
1671 | Only a single RAM disk can be added to the FIT image created by | 1774 | For 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. | 1775 | lines to the machine configuration file:: |
1673 | The address where the RAM disk image is to be loaded by U-Boot | 1776 | |
1674 | is 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 | |
1677 | is not set to 1. | 1780 | The FIT image, this time including the RT kernel, is built again by calling:: |
1678 | 1781 | ||
1679 | Only 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 | |
1681 | In case of :term:`Initramfs`, the kernel is configured to be bundled with the root filesystem | 1784 | For other kernels provided by other layers, the same approach would work. |
1682 | in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin). | 1785 | However, it is usually more intuitive to add a custom FIT image recipe next to |
1683 | When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem. | 1786 | the custom kernel recipe. |
1684 | The :term:`Initramfs` bundle can be enabled when :term:`INITRAMFS_IMAGE` | 1787 | For example, if a layer provides a ``linux-vanilla`` recipe, a |
1685 | is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1. | 1788 | ``linux-vanilla-fitimage`` recipe may be added as well. |
1686 | The address where the :term:`Initramfs` bundle is to be loaded by U-boot is specified | 1789 | The ``linux-vanilla-fitimage`` recipe can be created as a customized copy of |
1687 | by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`. | 1790 | the ``linux-yocto-fitimage`` recipe. |
1688 | 1791 | ||
1689 | Only a single U-boot boot script can be added to the FIT image created by | 1792 | Usually the kernel is built as a dependency of an image. |
1690 | :ref:`ref-classes-kernel-fitimage` and the boot script is optional. | 1793 | If the FIT image should be used as a replacement for the kernel image which |
1691 | The boot script is specified in the ITS file as a text file containing | 1794 | is installed in the root filesystem, then the following variables can be set |
1692 | U-boot commands. When using a boot script the user should configure the | 1795 | e.g. in the machine configuration file:: |
1693 | U-boot :ref:`ref-tasks-install` task to copy the script to sysroot. | 1796 | |
1694 | So 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 |
1695 | class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to | 1798 | KERNEL_CLASSES += "kernel-fit-extra-artifacts" |
1696 | load the boot script from the FIT image and execute it. | 1799 | |
1697 | 1800 | # Do not install the kernel image package | |
1698 | The FIT image generated by the :ref:`ref-classes-kernel-fitimage` class is signed when the | 1801 | RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = "" |
1699 | variables :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" |
1701 | appropriately. 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 |
1704 | the :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 | 1809 | The :ref:`ref-classes-kernel-fit-image` class processes several variables that | |
1810 | allow 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 | |||
1874 | The :ref:`ref-classes-kernel-fit-extra-artifacts` class exposes the required | ||
1875 | kernel artifacts to the :term:`DEPLOY_DIR_IMAGE` directory. | ||
1876 | These artifacts are used by the :ref:`ref-classes-kernel-fit-image` class to | ||
1877 | create a FIT image that can include the kernel, device trees, an optional | ||
1878 | U-Boot script, and an optional Initramfs. | ||
1879 | |||
1880 | This class is typically included by adding it to the :term:`KERNEL_CLASSES` | ||
1881 | variable in your kernel recipe or machine configuration when building FIT images. | ||
1882 | It ensures that all necessary files are available for packaging into the FIT image, | ||
1883 | such as the kernel binary, device tree blobs (DTBs), and other related files. | ||
1884 | |||
1885 | For example, to enable this class, set:: | ||
1886 | |||
1887 | KERNEL_CLASSES += "kernel-fit-extra-artifacts" | ||
1888 | |||
1889 | This is required when using the :ref:`ref-classes-kernel-fit-image` class to | ||
1890 | generate 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` | |||
1840 | class is enabled by default because it is inherited by the | 2024 | class 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 | |||
1848 | The :ref:`ref-classes-migrate_localcount` class verifies a recipe's localcount data and | ||
1849 | increments 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 | ||
2012 | Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both | 2190 | Although applied differently, the :ref:`ref-classes-nativesdk` class is used with both |
2013 | methods. The advantage of the second method is that you do not need to | 2191 | methods. 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. | |||
2022 | Disables packaging tasks for those recipes and classes where packaging | 2200 | Disables packaging tasks for those recipes and classes where packaging |
2023 | is not needed. | 2201 | is not needed. |
2024 | 2202 | ||
2203 | .. _ref-classes-nospdx: | ||
2204 | |||
2205 | ``nospdx`` | ||
2206 | ========== | ||
2207 | |||
2208 | The :ref:`ref-classes-nospdx` allows a recipe to opt out of SPDX | ||
2209 | generation 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 | ||
2361 | Internally this uses the :ref:`ref-classes-python_pep517` class. | 2547 | Internally this uses the :ref:`ref-classes-python_pep517` class. |
2362 | 2548 | ||
2549 | .. _ref-classes-python_maturin: | ||
2550 | |||
2551 | ``python_maturin`` | ||
2552 | ================== | ||
2553 | |||
2554 | The :ref:`ref-classes-python_maturin` class provides support for python-maturin, a replacement | ||
2555 | for setuptools_rust and another "backend" for building Python Wheels. | ||
2556 | |||
2557 | .. _ref-classes-python_mesonpy: | ||
2558 | |||
2559 | ``python_mesonpy`` | ||
2560 | ================== | ||
2561 | |||
2562 | The :ref:`ref-classes-python_mesonpy` class enables building Python modules which use the | ||
2563 | meson-python build system. | ||
2564 | |||
2565 | Internally 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. | |||
2563 | This class is intended to be inherited by individual recipes. However, | 2767 | This class is intended to be inherited by individual recipes. However, |
2564 | the class' functionality is largely disabled unless "ptest" appears in | 2768 | the 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`" |
2567 | section in the Yocto Project Development Tasks Manual for more information | 2771 | section in the Yocto Project Development Tasks Manual for more information |
2568 | on ptest. | 2772 | on ptest. |
2569 | 2773 | ||
@@ -2587,9 +2791,23 @@ Enables package tests (ptests) specifically for GNOME packages, which | |||
2587 | have tests intended to be executed with ``gnome-desktop-testing``. | 2791 | have tests intended to be executed with ``gnome-desktop-testing``. |
2588 | 2792 | ||
2589 | For information on setting up and running ptests, see the | 2793 | For 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`" |
2591 | section in the Yocto Project Development Tasks Manual. | 2795 | section in the Yocto Project Development Tasks Manual. |
2592 | 2796 | ||
2797 | .. _ref-classes-ptest-python-pytest: | ||
2798 | |||
2799 | ``ptest-python-pytest`` | ||
2800 | ======================= | ||
2801 | |||
2802 | The :ref:`ref-classes-ptest-python-pytest` class can be inherited in Python-based | ||
2803 | recipes to automatically configure the :ref:`ref-classes-ptest` class for Python | ||
2804 | packages leveraging the `pytest <https://docs.pytest.org>`__ unit test framework. | ||
2805 | |||
2806 | Within the recipe, the :term:`PTEST_PYTEST_DIR` variable specifies the path to | ||
2807 | the 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`` | ||
2809 | script 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 | |||
2683 | are created and stored in | 2901 | are 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 | |||
2909 | The :ref:`ref-classes-retain` class can be used to create a tarball of the work | ||
2910 | directory for a recipe when one of its tasks fails, or any other nominated | ||
2911 | directories. It is useful in cases where the environment in which builds are run | ||
2912 | is ephemeral or otherwise inaccessible for examination during debugging. | ||
2913 | |||
2914 | To enable, add the following to your configuration:: | ||
2915 | |||
2916 | INHERIT += "retain" | ||
2917 | |||
2918 | The class can be disabled for specific recipes using the :term:`RETAIN_ENABLED` | ||
2919 | variable. | ||
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 | ||
2871 | The :ref:`ref-classes-sign_rpm` class supports generating signed RPM packages. | 3106 | The :ref:`ref-classes-sign_rpm` class supports generating signed RPM packages. |
2872 | 3107 | ||
2873 | .. _ref-classes-siteconfig: | ||
2874 | |||
2875 | ``siteconfig`` | ||
2876 | ============== | ||
2877 | |||
2878 | The :ref:`ref-classes-siteconfig` class provides functionality for handling site | ||
2879 | configuration. The class is used by the :ref:`ref-classes-autotools` class to | ||
2880 | accelerate 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 | ||
3162 | For information on how to enable, run, and create new tests, see the | 3388 | For 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`" |
3164 | section in the Yocto Project Development Tasks Manual. | 3390 | section 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 | ||
3280 | See U-Boot's documentation for details about `verified boot | 3521 | See 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>`__ |
3282 | and the `signature process | 3523 | and 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 | ||
3285 | See also the description of :ref:`ref-classes-kernel-fitimage` class, which this class | 3526 | See also the description of :ref:`ref-classes-kernel-fit-image` class, which this class |
3286 | imitates. | 3527 | imitates. |
3287 | 3528 | ||
3529 | .. _ref-classes-uki: | ||
3530 | |||
3531 | ``uki`` | ||
3532 | ======= | ||
3533 | |||
3534 | The :ref:`ref-classes-uki` class provides support for `Unified Kernel Image | ||
3535 | (UKI) <https://uapi-group.org/specifications/specs/unified_kernel_image/>`__ | ||
3536 | format. UKIs combine kernel, :term:`Initramfs`, signatures, metadata etc to a | ||
3537 | single UEFI firmware compatible binary. The class is intended to be inherited | ||
3538 | by rootfs image recipes. The build configuration should also use an | ||
3539 | :term:`Initramfs`, ``systemd-boot`` as boot menu provider and have UEFI support | ||
3540 | on target hardware. Using ``systemd`` as init is recommended. Image builds | ||
3541 | should create an ESP partition for UEFI firmware and copy ``systemd-boot`` and | ||
3542 | UKI 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>`. | ||
3545 | UKIs are generated using ``systemd`` reference implementation `ukify | ||
3546 | <https://www.freedesktop.org/software/systemd/man/latest/ukify.html>`__. | ||
3547 | This class uses a number of variables but tries to find sensible defaults for | ||
3548 | them. | ||
3549 | |||
3550 | The 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 | |||
3571 | For 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>`. | ||
3574 | Also 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 | ||
3576 | verifies that the target system booted the same UKI binary as was set at | ||
3577 | buildtime 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 | |||
3444 | The :ref:`ref-classes-vala` class supports recipes that need to build software written | 3735 | The :ref:`ref-classes-vala` class supports recipes that need to build software written |
3445 | using the Vala programming language. | 3736 | using the Vala programming language. |
3446 | 3737 | ||
3738 | .. _ref-classes-vex: | ||
3739 | |||
3740 | ``vex`` | ||
3741 | ======== | ||
3742 | |||
3743 | The :ref:`ref-classes-vex` class is used to generate metadata needed by external | ||
3744 | tools to check for vulnerabilities, for example CVEs. It can be used as a | ||
3745 | replacement for :ref:`ref-classes-cve-check`. | ||
3746 | |||
3747 | In order to use this class, inherit the class in the ``local.conf`` file and it | ||
3748 | will add the ``generate_vex`` task for every recipe:: | ||
3749 | |||
3750 | INHERIT += "vex" | ||
3751 | |||
3752 | If an image is built it will generate a report in :term:`DEPLOY_DIR_IMAGE` for | ||
3753 | all the packages used, it will also generate a file for all recipes used in the | ||
3754 | build. | ||
3755 | |||
3756 | Variables use the ``CVE_CHECK`` prefix to keep compatibility with the | ||
3757 | :ref:`ref-classes-cve-check` class. | ||
3758 | |||
3759 | Example 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 |
3456 | to specify additional configuration options to be passed on the Waf | 3772 | to specify additional configuration options to be passed on the Waf |
3457 | command line. | 3773 | command line. |
3774 | |||
3775 | .. _ref-classes-yocto-check-layer: | ||
3776 | |||
3777 | ``yocto-check-layer`` | ||
3778 | ===================== | ||
3779 | |||
3780 | The :ref:`ref-classes-yocto-check-layer` class is used by the | ||
3781 | :oe_git:`yocto-check-layer </openembedded-core/tree/scripts/yocto-check-layer>` | ||
3782 | script to ensure that packages from Yocto Project Compatible layers don't skip | ||
3783 | required QA checks listed in :term:`CHECKLAYER_REQUIRED_TESTS` defined by the | ||
3784 | :ref:`ref-classes-insane` class. | ||
3785 | |||
3786 | It adds an anonymous python function with extra processing to all recipes, | ||
3787 | and globally inheriting this class with :term:`INHERIT` is not advised. Instead | ||
3788 | the ``yocto-check-layer`` script should be used as it handles usage of this | ||
3789 | class. | ||
3790 | |||
3791 | For more information on the Yocto Project | ||
3792 | Compatible layers, see the :ref:`dev-manual/layers:Making Sure Your Layer is | ||
3793 | Compatible 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 | |||
24 | has a number of sub-commands for each function. You can run | 24 | has 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 | ||
79 | As directed in the general help output, you can | 74 | As 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 | |||
436 | forth. | 432 | forth. |
437 | 433 | ||
438 | You can read more on the ``devtool upgrade`` workflow in the | 434 | You 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`" |
440 | section in the Yocto Project Application Development and the Extensible | 436 | section in the Yocto Project Application Development and the Extensible |
441 | Software Development Kit (eSDK) manual. You can also see an example of | 437 | Software Development Kit (eSDK) manual. You can also see an example of |
442 | how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using \`\`devtool upgrade\`\``" | 438 | how to use ``devtool upgrade`` in the ":ref:`dev-manual/upgrading-recipes:using ``devtool upgrade```" |
443 | section in the Yocto Project Development Tasks Manual. | 439 | section 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 | |||
468 | Finish Working on a Recipe | ||
469 | ========================== | ||
470 | |||
471 | Use the ``devtool finish`` command to push any committed changes to the | ||
472 | specified recipe in the specified layer and remove it from your workspace. | ||
473 | |||
474 | This is roughly equivalent to the ``devtool update-recipe`` command followed by | ||
475 | the ``devtool reset`` command. The changes must have been committed to the git | ||
476 | repository 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 | ||
472 | Building Your Recipe | 482 | Building Your Recipe |
@@ -543,6 +553,26 @@ the packages are already on the target. Consequently, when a runtime | |||
543 | call is made in the application for a dependent function (e.g. a library | 553 | call is made in the application for a dependent function (e.g. a library |
544 | call), the function cannot be found. | 554 | call), 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 | |||
546 | To be sure you have all the dependencies local to the target, you need | 576 | To be sure you have all the dependencies local to the target, you need |
547 | to be sure that the packages are pre-deployed (installed) on the target | 577 | to be sure that the packages are pre-deployed (installed) on the target |
548 | before attempting to run your application. | 578 | before attempting to run your application. |
@@ -618,3 +648,43 @@ a match. | |||
618 | 648 | ||
619 | When you use the ``devtool search`` command, you must supply a keyword. | 649 | When you use the ``devtool search`` command, you must supply a keyword. |
620 | The command uses the keyword when searching for a match. | 650 | The command uses the keyword when searching for a match. |
651 | |||
652 | Alternatively, the ``devtool find-recipe`` command can be used to search for | ||
653 | recipe files instead of recipe names. Likewise, you must supply a keyword. | ||
654 | |||
655 | .. _devtool-get-the-configure-script-help: | ||
656 | |||
657 | Get Information on Recipe Configuration Scripts | ||
658 | =============================================== | ||
659 | |||
660 | Use the ``devtool configure-help`` command to get help on the configuration | ||
661 | script options for a given recipe. You must supply the recipe name to the | ||
662 | command. For example, it shows the output of ``./configure --help`` for | ||
663 | :ref:`autotools <ref-classes-autotools>`-based recipes. | ||
664 | |||
665 | The ``configure-help`` command will also display the configuration options | ||
666 | currently in use, including the ones passed through the :term:`EXTRA_OECONF` | ||
667 | variable. | ||
668 | |||
669 | .. _devtool-generate-an-ide-configuration-for-a-recipe: | ||
670 | |||
671 | Generate an IDE Configuration for a Recipe | ||
672 | ========================================== | ||
673 | |||
674 | The ``devtool ide-sdk`` automatically creates an IDE configuration and SDK to | ||
675 | work on a given recipe. Depending on the ``--mode`` parameter, different types | ||
676 | of 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 | |||
684 | The ``--target`` option can be used to specify a ``username@hostname`` string | ||
685 | and create a remote debugging configuration for the recipe. Similarly to | ||
686 | ``devtool deploy-target``, it requires an SSH server running on the target. | ||
687 | |||
688 | For further details on the ``devtool ide-sdk`` command, see the | ||
689 | ":doc:`/sdk-manual/extensible`" chapter in the Yocto Project Application | ||
690 | Development 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 | |||
45 | Wiki. Don't hesitate to contribute to this page if you know other such | 45 | Wiki. Don't hesitate to contribute to this page if you know other such |
46 | products. | 46 | products. |
47 | 47 | ||
48 | Why 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 | ||
52 | focus that is not entirely aligned with a customisable "embedded" build | ||
53 | system/environment. | ||
54 | |||
55 | It understandably mandates certain layouts and configurations which may | ||
56 | or 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. | ||
58 | For example `musl <https://www.musl-libc.org/>`__ support in systemd is | ||
59 | problematic. | ||
60 | |||
61 | If it were our default, we would have to align with all their choices | ||
62 | and this doesn't make sense. It is therefore a configuration option and | ||
63 | available to anyone where the design goals align. But we are clear it | ||
64 | is not the only way to handle init. | ||
65 | |||
66 | Our automated testing includes it through the ``poky-altcfg`` :term:`DISTRO` and | ||
67 | we don't really need it to be the default: it is tested, it works, and people | ||
68 | can choose to use it. | ||
69 | |||
48 | Building environment | 70 | Building environment |
49 | ==================== | 71 | ==================== |
50 | 72 | ||
@@ -259,6 +281,25 @@ Within the :term:`Build Directory`, is the ``tmp`` directory. To remove all the | |||
259 | build output yet preserve any source code or downloaded files from | 281 | build output yet preserve any source code or downloaded files from |
260 | previous builds, simply remove the ``tmp`` directory. | 282 | previous builds, simply remove the ``tmp`` directory. |
261 | 283 | ||
284 | Why isn't there a way to append bbclass files like bbappend for recipes? | ||
285 | ------------------------------------------------------------------------ | ||
286 | |||
287 | The Yocto Project has consciously chosen not to implement such functionality. | ||
288 | Class code is designed to be shared and reused, and exposes some level of | ||
289 | configuration to its users. We want to encourage people to share these changes | ||
290 | so we can build the best classes. | ||
291 | |||
292 | If the ``append`` functionality was available for classes, our evidence and | ||
293 | experience suggest that people would create their custom changes in their | ||
294 | layer instead of sharing and discussing the issues and/or limitations they | ||
295 | encountered. This would lead to bizarre class interactions when new layers are | ||
296 | included. We therefore consciously choose to have a natural pressure to share | ||
297 | class code improvements or fixes. | ||
298 | |||
299 | There are also technical considerations like which recipes a class append would | ||
300 | apply to and how that would fit within the layer model. These are complications | ||
301 | we think we can live without! | ||
302 | |||
262 | Customizing generated images | 303 | Customizing 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 | |||
12 | included in the generated images. Distributions can select which | 12 | included in the generated images. Distributions can select which |
13 | features they want to support through the :term:`DISTRO_FEATURES` variable, | 13 | features they want to support through the :term:`DISTRO_FEATURES` variable, |
14 | which is set or appended to in a distribution's configuration file such | 14 | which is set or appended to in a distribution's configuration file such |
15 | as ``poky.conf``, ``poky-tiny.conf``, ``poky-lsb.conf`` and so forth. | 15 | as ``poky.conf``, ``poky-tiny.conf``, ``poky-altcfg.conf`` and so forth. |
16 | Machine features are set in the :term:`MACHINE_FEATURES` variable, which is | 16 | Machine features are set in the :term:`MACHINE_FEATURES` variable, which is |
17 | set in the machine configuration file and specifies the hardware | 17 | set in the machine configuration file and specifies the hardware |
18 | features for a given machine. | 18 | features 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 | ||
804 | Configuring and Disabling QA Checks | 808 | Configuring 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 | ||
104 | This started with version 3.1 ("Dunfell"), released in April 2020, which | 104 | This started with version 3.1 ("Dunfell"), released in April 2020, which |
105 | the project initially committed to supporting for two years, but this duration | 105 | the project initially committed to supporting for two years, but this duration |
106 | was later extended to four years. Similarly, the following :term:`LTS` release, | 106 | was later extended to four years. |
107 | version 4.0 ("Kirkstone"), was released two years later in May 2022 and the | ||
108 | project committed to supporting it for four years too. | ||
109 | 107 | ||
110 | Therefore, a new :term:`LTS` release is made every two years and is supported | 108 | A new :term:`LTS` release is made every two years and is supported for four |
111 | for four years. This offers more stability to project users and leaves more | 109 | years. This offers more stability to project users and leaves more time to |
112 | time to upgrade to the following :term:`LTS` release. | 110 | upgrade to the following :term:`LTS` release. |
111 | |||
112 | The 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 | ||
114 | See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management | 117 | See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management |
115 | of stable and :term:`LTS` releases. | 118 | of stable and :term:`LTS` releases. |
116 | 119 | ||
120 | This 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 | |||
143 | developer, you can validate your projects. This section overviews the | 148 | developer, you can validate your projects. This section overviews the |
144 | available test infrastructure used in the Yocto Project. For information | 149 | available test infrastructure used in the Yocto Project. For information |
145 | on how to run available tests on your projects, see the | 150 | on 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`" |
147 | section in the Yocto Project Development Tasks Manual. | 152 | section in the Yocto Project Test Environment Manual. |
148 | 153 | ||
149 | The QA/testing infrastructure is woven into the project to the point | 154 | The QA/testing infrastructure is woven into the project to the point |
150 | where core developers take some of it for granted. The infrastructure | 155 | where 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 | |||
185 | them and the Yocto Project development team can run them faster and more | 190 | them and the Yocto Project development team can run them faster and more |
186 | efficiently. | 191 | efficiently. |
187 | 192 | ||
188 | The Yocto Project's main Autobuilder (&YOCTO_AB_URL;) publicly tests each Yocto | 193 | The Yocto Project's main :yocto_ab:`Autobuilder <>` publicly tests each Yocto |
189 | Project release's code in the :oe_git:`openembedded-core </openembedded-core>`, | 194 | Project 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 |
191 | testing occurs for both the current state of the "master" branch and also for | 196 | testing 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 | |||
23 | to the project either by creating and sending pull requests, or by | 23 | to the project either by creating and sending pull requests, or by |
24 | submitting patches through email. For information on how to do both as | 24 | submitting patches through email. For information on how to do both as |
25 | well as information on how to identify the maintainer for each area of | 25 | well as information on how to identify the maintainer for each area of |
26 | code, see the :doc:`../contributor-guide/index`. | 26 | code, see the :doc:`/contributor-guide/index`. |
27 | 27 | ||
28 | .. _resources-bugtracker: | 28 | .. _resources-bugtracker: |
29 | 29 | ||
@@ -45,7 +45,7 @@ your expectations). | |||
45 | For a general procedure and guidelines on how to use Bugzilla to submit a bug | 45 | For a general procedure and guidelines on how to use Bugzilla to submit a bug |
46 | against the Yocto Project, see the following: | 46 | against 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 | |||
343 | This configuration file is generated by :doc:`bblock </dev-manual/bblock>` and | ||
344 | contains the signatures locked by ``bblock``. By default, it does not exist | ||
345 | and 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`" | |||
484 | section in the Yocto Project Application Development and the Extensible | 493 | section in the Yocto Project Application Development and the Extensible |
485 | Software Development Kit (eSDK) manual. | 494 | Software Development Kit (eSDK) manual. |
486 | 495 | ||
496 | .. _structure-build-tmp-hosttools: | ||
497 | |||
498 | ``build/tmp/hosttools/`` | ||
499 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
500 | |||
501 | The OpenEmbedded build system uses this directory to create symbolic links to | ||
502 | some of the host components that are allowed to be called within tasks. These | ||
503 | are basic components listed in the :ref:`ref-manual/system-requirements:required | ||
504 | packages 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 | ||
506 | contamination. | ||
507 | |||
508 | .. _structure-build-tmp-pkgdata: | ||
509 | |||
510 | ``build/tmp/pkgdata/`` | ||
511 | ~~~~~~~~~~~~~~~~~~~~~~ | ||
512 | |||
513 | The OpenEmbedded build system uses this directory to store package metadata | ||
514 | generated during the :ref:`ref-tasks-packagedata` task. The files stored in this | ||
515 | directory contain information about each output package produced by the | ||
516 | OpenEmbedded build system, and are used in different ways by the build system | ||
517 | such 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`` | |||
578 | built within the Yocto Project. For this package, a work directory of | 611 | built 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 |
580 | to as the :term:`WORKDIR`, is created. Within this directory, the source is | 613 | to as the :term:`WORKDIR`, is created. Within this directory, the source is |
581 | unpacked to ``linux-qemux86-standard-build`` and then patched by Quilt. | 614 | unpacked 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 |
583 | the Yocto Project Development Tasks Manual for more information.) Within | 616 | the Yocto Project Development Tasks Manual for more information.) Within |
584 | the ``linux-qemux86-standard-build`` directory, standard Quilt | 617 | the ``linux-qemux86-standard-build`` directory, standard Quilt |
@@ -657,8 +690,15 @@ Here are key subdirectories within each recipe work directory: | |||
657 | 690 | ||
658 | For efficiency, the OpenEmbedded build system creates and uses this | 691 | For efficiency, the OpenEmbedded build system creates and uses this |
659 | directory to hold recipes that share a work directory with other | 692 | directory to hold recipes that share a work directory with other |
660 | recipes. In practice, this is only used for ``gcc`` and its variants | 693 | recipes. 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 | ||
696 | artifacts available to out-of-tree kernel modules or other kernel-dependent | ||
697 | recipes. | ||
698 | |||
699 | In practice, only a few recipes make use of the ``work-shared`` directory. This | ||
700 | directory is especially useful for recipes that would induce a lot of storage | ||
701 | space 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 | |||
58 | Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is | 58 | Currently, the &DISTRO; release ("&DISTRO_NAME;") of the Yocto Project is |
59 | supported on the following distributions: | 59 | supported 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 | ||
81 | The following distribution versions are still tested, even though the | 91 | The 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 | ||
88 | Note that the Yocto Project doesn't have access to private updates | 100 | Note that the Yocto Project doesn't have access to private updates |
89 | that some of these versions may have. Therefore, our testing has | 101 | that some of these versions may have. Therefore, our testing has |
90 | limited value if you have access to such updates. | 102 | limited value if you have access to such updates. Also, :term:`buildtools` |
103 | may have to be used on older releases in order to get current enough | ||
104 | tools, such as python. | ||
91 | 105 | ||
92 | Finally, here are the distribution versions which were previously | 106 | Finally, here are the distribution versions which were previously |
93 | tested on former revisions of "&DISTRO_NAME;", but no longer are: | 107 | tested 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 | ||
137 | Required Packages for the Build Host | 151 | Required Packages for the Build Host |
@@ -148,12 +162,30 @@ Ubuntu and Debian | |||
148 | ----------------- | 162 | ----------------- |
149 | 163 | ||
150 | Here are the packages needed to build an image on a headless system | 164 | Here are the packages needed to build an image on a headless system |
151 | with a supported Ubuntu or Debian Linux distribution:: | 165 | with a supported Ubuntu or Debian Linux distribution: |
166 | |||
167 | .. literalinclude:: ../tools/host_packages_scripts/ubuntu_essential.sh | ||
168 | :language: shell | ||
169 | |||
170 | You also need to ensure you have the ``en_US.UTF-8`` locale enabled:: | ||
171 | |||
172 | $ locale --all-locales | grep en_US.utf8 | ||
173 | |||
174 | If 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 | ||
165 | Here are the packages needed to build Project documentation manuals:: | 197 | Here are the packages needed to build Project documentation manuals: |
198 | |||
199 | .. literalinclude:: ../tools/host_packages_scripts/ubuntu_docs.sh | ||
200 | :language: shell | ||
201 | |||
202 | In addition to the previous packages, here are the packages needed to build the | ||
203 | documentation 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 | ||
170 | Fedora Packages | 208 | Fedora Packages |
171 | --------------- | 209 | --------------- |
172 | 210 | ||
173 | Here are the packages needed to build an image on a headless system | 211 | Here are the packages needed to build an image on a headless system |
174 | with a supported Fedora Linux distribution:: | 212 | with a supported Fedora Linux distribution: |
213 | |||
214 | .. literalinclude:: ../tools/host_packages_scripts/fedora_essential.sh | ||
215 | :language: shell | ||
216 | |||
217 | Here 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 | ||
178 | Here are the packages needed to build Project documentation manuals:: | 225 | In addition to the previous packages, here are the packages needed to build the |
226 | documentation 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 | ||
183 | openSUSE Packages | 231 | openSUSE Packages |
184 | ----------------- | 232 | ----------------- |
185 | 233 | ||
186 | Here are the packages needed to build an image on a headless system | 234 | Here are the packages needed to build an image on a headless system |
187 | with a supported openSUSE distribution:: | 235 | with 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 | ||
191 | Here are the packages needed to build Project documentation manuals:: | 240 | Here 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 | |||
248 | In addition to the previous packages, here are the packages needed to build the | ||
249 | documentation in PDF format: | ||
250 | |||
251 | .. literalinclude:: ../tools/host_packages_scripts/opensuse_docs_pdf.sh | ||
252 | :language: shell | ||
196 | 253 | ||
197 | AlmaLinux Packages | 254 | AlmaLinux Packages |
198 | ------------------ | 255 | ------------------ |
199 | 256 | ||
200 | Here are the packages needed to build an image on a headless system | 257 | Here are the packages needed to build an image on a headless system |
201 | with a supported AlmaLinux distribution:: | 258 | with 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 | ||
218 | Here are the packages needed to build Project documentation manuals:: | 276 | Here 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 | |||
291 | In addition to the previous packages, here are the packages needed to build the | ||
292 | documentation 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 | |||
319 | download and run a pre-built :term:`buildtools` installer yourself with the following | 393 | download and run a pre-built :term:`buildtools` installer yourself with the following |
320 | steps: | 394 | steps: |
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 | ||
361 | Creates the file and directory structure for an installable extensible | 361 | Creates the file and directory structure for an installable extensible |
362 | SDK (eSDK). See the ":ref:`overview-manual/concepts:sdk generation`" | 362 | SDK (eSDK). See the ":ref:`overview-manual/concepts:sdk generation`" |
363 | section in the Yocto Project Overview and Concepts Manual for more | 363 | section in the Yocto Project Overview and Concepts Manual for more |
364 | information. | 364 | information. |
@@ -412,12 +412,10 @@ them. You can learn more by looking at the | |||
412 | ------------- | 412 | ------------- |
413 | 413 | ||
414 | Unpacks the source code into a working directory pointed to by | 414 | Unpacks the source code into a working directory pointed to by |
415 | ``${``\ :term:`WORKDIR`\ ``}``. The :term:`S` | 415 | ``${``\ :term:`UNPACKDIR`\ ``}``. |
416 | variable also plays a role in where unpacked source files ultimately | 416 | For more information on how source files are unpacked, see the |
417 | reside. 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`" |
419 | section in the Yocto Project Overview and Concepts Manual and also see | 418 | section in the Yocto Project Overview and Concepts Manual. |
420 | the :term:`WORKDIR` and :term:`S` variable descriptions. | ||
421 | 419 | ||
422 | Manually Called Tasks | 420 | Manually Called Tasks |
423 | ===================== | 421 | ===================== |
@@ -616,8 +614,8 @@ information on how the root filesystem is created. | |||
616 | 614 | ||
617 | Boots an image and performs runtime tests within the image. For | 615 | Boots an image and performs runtime tests within the image. For |
618 | information on automatically testing images, see the | 616 | information 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`" |
620 | section in the Yocto Project Development Tasks Manual. | 618 | section 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 | ||
631 | For information on automatically testing images, see the | 629 | For 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`" |
633 | section in the Yocto Project Development Tasks Manual. | 631 | section in the Yocto Project Test Environment Manual. |
634 | 632 | ||
635 | Kernel-Related Tasks | 633 | Kernel-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 | ||
730 | See the ":ref:`kernel-dev/common:using \`\`menuconfig\`\``" | 728 | See the ":ref:`kernel-dev/common:using ``menuconfig```" |
731 | section in the Yocto Project Linux Kernel Development Manual for more | 729 | section in the Yocto Project Linux Kernel Development Manual for more |
732 | information on this configuration tool. | 730 | information on this configuration tool. |
733 | 731 | ||
@@ -751,7 +749,7 @@ which can then be applied by subsequent tasks such as | |||
751 | 749 | ||
752 | Runs ``make menuconfig`` for the kernel. For information on | 750 | Runs ``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```" |
755 | section in the Yocto Project Linux Kernel Development Manual. | 753 | section 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 | |||
8 | system and gives an overview of their function and contents. | 8 | system 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 | ************************************************** | ||
4 | Yocto Project Supported Architectures And Features | ||
5 | ************************************************** | ||
6 | |||
7 | The Yocto Project is putting continuous efforts into testing the changes made to | ||
8 | the :term:`OpenEmbedded-Core (OE-Core)` metadata and core tools. The details on | ||
9 | how this test environment functions is described in the | ||
10 | :doc:`/test-manual/index`. | ||
11 | |||
12 | These tests are also run for stable and :term:`LTS` versions of the Yocto | ||
13 | Project. See the :doc:`/ref-manual/release-process` section of the Yocto Project | ||
14 | Reference Manual for more information on these types of releases. | ||
15 | |||
16 | The infrastructure behind the test environment is the | ||
17 | :ref:`Yocto Project Autobuilder <test-manual/intro:Yocto Project Autobuilder | ||
18 | Overview>`. The Autobuilder contains a set of Builders that are associated to an | ||
19 | architecture or a feature to test. For example, the ``qemuarm64`` builder | ||
20 | corresponds to testing the ARM 64-bit architecture. | ||
21 | |||
22 | Below is a comprehensive list of target architectures and features that are | ||
23 | supported, as well as their level of support. For each architecture or feature, | ||
24 | their corresponding builders are also listed. | ||
25 | |||
26 | Primary Supported | ||
27 | ================= | ||
28 | |||
29 | The term "primary" means that dedicated builds for these architectures or | ||
30 | features are being run on a daily basis on the Yocto Project Autobuilder and | ||
31 | also tested with incoming changes before they merge. These changes are usually | ||
32 | on the "-next" Git branches of the :term:`OpenEmbedded-Core (OE-Core)` | ||
33 | repositories. | ||
34 | |||
35 | Below 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 | |||
158 | Secondary Supported | ||
159 | =================== | ||
160 | |||
161 | The term "secondary" means that in some cases there is code/feature/support | ||
162 | which is desired by people using the project and is in the project's interests | ||
163 | to support, however there isn't wide enough interest and support to justify | ||
164 | testing all incoming changes on it. There are however project member | ||
165 | organisations and maintainers willing to run tests and review fixes. | ||
166 | |||
167 | This category may be applicable as support/usage in an area develops and grows, | ||
168 | or as support/usage fades but we continue to have tests. It can also apply where | ||
169 | resourcing isn't available for full primary support but there is | ||
170 | member/maintainer support for running tests. | ||
171 | |||
172 | We 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 | |||
192 | The Yocto Project :oe_wiki:`Technical Steering Committee (TSC) </TSC>` makes | ||
193 | decisions on features in this status and Autobuilder testing. Such support would | ||
194 | be dropped if the maintainers/testing were inactive. | ||
195 | |||
196 | If you are interested in providing resources for improving testing please | ||
197 | contact the :oe_wiki:`Technical Steering Committee (TSC) </TSC>`. | ||
198 | |||
199 | Below is a list of secondary tested features, their maintainer(s) and | ||
200 | builder(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 | |||
235 | Untested | ||
236 | ======== | ||
237 | |||
238 | "Untested" means that whilst the configurations are present in the project, we | ||
239 | don't currently run the tests on any regular basis and new changes are not | ||
240 | tested against them. We may take patches in these areas if they make sense but | ||
241 | it 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 | ||