summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2023-05-05 20:41:51 +0300
committerPatrick Williams <patrick@stwcx.xyz>2023-05-05 20:51:59 +0300
commit67c9d4e715c705cd05fd04f7c8cd4fad300a4666 (patch)
treea3efca9adc8fa82ff9bd7e8811302683782f2609
parent3901fcf25850ef583b35e62432ed5413f5d0725f (diff)
downloadopenbmc-2.14.0.tar.xz
mickledore: subtree updates2.14.0
poky: 878271e1a1..ddb298ce89: Lee Chee Yang (1): release-notes-4.2: remove/merge duplicates entries Michael Halstead (1): docs: add support for mickledore (4.2) release Michael Opdenacker (14): ref-manual: classes.rst: document devicetree.bbclass ref-manual: remove unused and obsolete file ref-manual: variables.rst: add wikipedia shortcut for "getty" overview-manual: update section about source archives manuals: document SPDX_CUSTOM_ANNOTATION_VARS overview-manual: development-environment: update text and screenshots ref-manual: add "Mixin" term migration-guides: release-notes-4.0.9.rst: add missing SPDX info migration-guides: fixes and improvements to 4.2 release notes manuals: expand init manager documentation ref-manual: variables.rst: document KERNEL_DANGLING_FEATURES_WARN_ONLY dev-manual: init-manager.rst: add summary ref-manual: system-requirements.rst: fix AlmaLinux variable name ref-manual: variables.rst: don't mention the INIT_MANAGER "none" option meta-arm: c60d7865dd..0b5724266a: Rui Miguel Silva (1): arm-bsp/u-boot: corstone1000: remove debug messages and fix env Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia92e16d53bbc83b1dbfbfb28254b7dbc88a8c9d2
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch54
-rw-r--r--meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-corstone1000-set-kernel_addr-based-on-boot_idx.patch37
-rw-r--r--poky/documentation/dev-manual/device-manager.rst2
-rw-r--r--poky/documentation/dev-manual/init-manager.rst159
-rw-r--r--poky/documentation/dev-manual/sbom.rst3
-rw-r--r--poky/documentation/dev-manual/start.rst45
-rw-r--r--poky/documentation/migration-guides/release-notes-4.0.9.rst2
-rw-r--r--poky/documentation/migration-guides/release-notes-4.2.rst212
-rw-r--r--poky/documentation/overview-manual/development-environment.rst34
-rwxr-xr-xpoky/documentation/overview-manual/figures/index-downloads.pngbin18142 -> 0 bytes
-rw-r--r--poky/documentation/overview-manual/figures/source-repos.pngbin298757 -> 775796 bytes
-rw-r--r--poky/documentation/overview-manual/figures/yp-download.pngbin82939 -> 518257 bytes
-rw-r--r--poky/documentation/poky.yaml.in12
-rw-r--r--poky/documentation/ref-manual/TODO11
-rw-r--r--poky/documentation/ref-manual/classes.rst43
-rw-r--r--poky/documentation/ref-manual/release-process.rst8
-rw-r--r--poky/documentation/ref-manual/system-requirements.rst2
-rw-r--r--poky/documentation/ref-manual/terms.rst8
-rw-r--r--poky/documentation/ref-manual/variables.rst85
-rwxr-xr-xpoky/documentation/set_versions.py6
20 files changed, 434 insertions, 289 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
index d1fa8ffb25..bd6b9991ec 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
@@ -1,4 +1,4 @@
-From 7c694af3fd5de372349f740b62cd3d909483fe2e Mon Sep 17 00:00:00 2001
+From 0c2bd094b7686e9497327d825470cb90aa29d10f Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Wed, 1 Feb 2023 16:19:40 +0000
Subject: [PATCH 40/43] corstone1000: add nvmxip, fwu-mdata and gpt options
@@ -10,15 +10,14 @@ and fwu metadata will be available.
Upstream-Status: Pending
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
- configs/corstone1000_defconfig | 31 +++++++++++++++++++------------
- fs/fs.c | 5 +++++
- 2 files changed, 24 insertions(+), 12 deletions(-)
+ configs/corstone1000_defconfig | 33 ++++++++++++++++++++-------------
+ 1 file changed, 20 insertions(+), 13 deletions(-)
diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index e009faee0252..711cf13592db 100644
+index e009faee0252..96bb86ec91e9 100644
--- a/configs/corstone1000_defconfig
+++ b/configs/corstone1000_defconfig
-@@ -4,13 +4,15 @@ CONFIG_TARGET_CORSTONE1000=y
+@@ -4,18 +4,20 @@ CONFIG_TARGET_CORSTONE1000=y
CONFIG_TEXT_BASE=0x80000000
CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_NR_DRAM_BANKS=1
@@ -36,6 +35,12 @@ index e009faee0252..711cf13592db 100644
CONFIG_FIT=y
CONFIG_BOOTDELAY=3
CONFIG_USE_BOOTARGS=y
+ CONFIG_BOOTARGS="console=ttyAMA0 loglevel=9 ip=dhcp earlyprintk"
+-CONFIG_BOOTCOMMAND="run retrieve_kernel_load_addr; echo Loading kernel from $kernel_addr to memory ... ; unzip $kernel_addr 0x90000000; loadm 0x90000000 $kernel_addr_r 0xf00000; usb start; usb reset; run distro_bootcmd; bootefi $kernel_addr_r $fdtcontroladdr;"
++CONFIG_BOOTCOMMAND="echo Loading kernel from $kernel_addr to memory ... ; unzip $kernel_addr 0x90000000; loadm 0x90000000 $kernel_addr_r 0xf00000; usb start; usb reset; run distro_bootcmd; bootefi $kernel_addr_r $fdtcontroladdr;"
+ CONFIG_CONSOLE_RECORD=y
+ CONFIG_LOGLEVEL=7
+ # CONFIG_DISPLAY_CPUINFO is not set
@@ -23,11 +25,16 @@ CONFIG_LOGLEVEL=7
CONFIG_SYS_MAXARGS=64
CONFIG_SYS_CBSIZE=512
@@ -93,41 +98,6 @@ index e009faee0252..711cf13592db 100644
-CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
+CONFIG_FWU_MULTI_BANK_UPDATE=y
+# CONFIG_TOOLS_MKEFICAPSULE is not set
-diff --git a/fs/fs.c b/fs/fs.c
-index 8324b4a22f20..f54955a2b7f6 100644
---- a/fs/fs.c
-+++ b/fs/fs.c
-@@ -437,11 +437,13 @@ int fs_set_blk_dev(const char *ifname, const char *dev_part_str, int fstype)
- }
- #endif
-
-+ log_err("RUI: fs_set_blk_dev fstype: %d\n", fstype);
- part = part_get_info_by_dev_and_name_or_num(ifname, dev_part_str, &fs_dev_desc,
- &fs_partition, 1);
- if (part < 0)
- return -1;
-
-+ log_err("RUI: fs_set_blk_dev 1\n");
- for (i = 0, info = fstypes; i < ARRAY_SIZE(fstypes); i++, info++) {
- if (fstype != FS_TYPE_ANY && info->fstype != FS_TYPE_ANY &&
- fstype != info->fstype)
-@@ -450,6 +452,8 @@ int fs_set_blk_dev(const char *ifname, const char *dev_part_str, int fstype)
- if (!fs_dev_desc && !info->null_dev_desc_ok)
- continue;
-
-+ log_err("RUI: fs_set_blk_dev 2: info->fstype: %d part: %d\n",
-+ info->fstype, part);
- if (!info->probe(fs_dev_desc, &fs_partition)) {
- fs_type = info->fstype;
- fs_dev_part = part;
-@@ -457,6 +461,7 @@ int fs_set_blk_dev(const char *ifname, const char *dev_part_str, int fstype)
- }
- }
-
-+ log_err("RUI: fs_set_blk_dev 3\n");
- return -1;
- }
-
--
-2.39.2
+2.40.0
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-corstone1000-set-kernel_addr-based-on-boot_idx.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-corstone1000-set-kernel_addr-based-on-boot_idx.patch
index 25e248b734..547ea954a2 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-corstone1000-set-kernel_addr-based-on-boot_idx.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-corstone1000-set-kernel_addr-based-on-boot_idx.patch
@@ -1,4 +1,4 @@
-From e8272dc9390adfd0818d1093c83f3b5c07649a95 Mon Sep 17 00:00:00 2001
+From d736c596f7a8446955d35bef5adae22de24ab9ab Mon Sep 17 00:00:00 2001
From: Rui Miguel Silva <rui.silva@linaro.org>
Date: Thu, 23 Feb 2023 10:35:00 +0000
Subject: [PATCH 42/43] corstone1000: set kernel_addr based on boot_idx
@@ -13,12 +13,13 @@ then set the env variable kernel_addr with that value.
Upstream-Status: Pending
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
---
- board/armltd/corstone1000/corstone1000.c | 55 +++++++++++++++++++++++-
- configs/corstone1000_defconfig | 1 +
- 2 files changed, 55 insertions(+), 1 deletion(-)
+ board/armltd/corstone1000/corstone1000.c | 58 +++++++++++++++++++++-
+ board/armltd/corstone1000/corstone1000.env | 8 ---
+ configs/corstone1000_defconfig | 1 +
+ 3 files changed, 58 insertions(+), 9 deletions(-)
diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index 0a58ccd99cdd..0923ca6e8c5b 100644
+index 0a58ccd99cdd..b767195cccb6 100644
--- a/board/armltd/corstone1000/corstone1000.c
+++ b/board/armltd/corstone1000/corstone1000.c
@@ -5,13 +5,23 @@
@@ -45,7 +46,7 @@ index 0a58ccd99cdd..0923ca6e8c5b 100644
static struct mm_region corstone1000_mem_map[] = {
{
/* CVM */
-@@ -108,5 +118,48 @@ int dram_init_banksize(void)
+@@ -108,5 +118,51 @@ int dram_init_banksize(void)
void fwu_plat_get_bootidx(int *boot_idx)
{
@@ -70,6 +71,9 @@ index 0a58ccd99cdd..0923ca6e8c5b 100644
+ plat = dev_get_plat(dev);
+ device_find_first_child(dev, &bdev);
+ desc = dev_get_uclass_plat(bdev);
++ ret = fwu_get_active_index(&corstone1000_boot_idx);
++ if (ret < 0)
++ log_err("corstone1000: failed to read boot index\n");
+
+ if (!corstone1000_boot_idx)
+ ret = part_get_info_by_name(desc, CORSTONE1000_KERNEL_PRIMARY,
@@ -95,8 +99,25 @@ index 0a58ccd99cdd..0923ca6e8c5b 100644
+
+ return ret;
}
+diff --git a/board/armltd/corstone1000/corstone1000.env b/board/armltd/corstone1000/corstone1000.env
+index a6ee4962211b..ee318b1b1c30 100644
+--- a/board/armltd/corstone1000/corstone1000.env
++++ b/board/armltd/corstone1000/corstone1000.env
+@@ -2,12 +2,4 @@
+
+ usb_pgood_delay=250
+ boot_bank_flag=0x08005006
+-kernel_addr_bank_0=0x08280000
+-kernel_addr_bank_1=0x0936E000
+-retrieve_kernel_load_addr=
+- if itest.l *${boot_bank_flag} == 0; then
+- setenv kernel_addr $kernel_addr_bank_0;
+- else
+- setenv kernel_addr $kernel_addr_bank_1;
+- fi;
+ kernel_addr_r=0x88200000
diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index 711cf13592db..68054f755624 100644
+index 96bb86ec91e9..23e9e6ae5bd3 100644
--- a/configs/corstone1000_defconfig
+++ b/configs/corstone1000_defconfig
@@ -22,6 +22,7 @@ CONFIG_CONSOLE_RECORD=y
@@ -108,5 +129,5 @@ index 711cf13592db..68054f755624 100644
CONFIG_SYS_CBSIZE=512
# CONFIG_CMD_CONSOLE is not set
--
-2.39.2
+2.40.0
diff --git a/poky/documentation/dev-manual/device-manager.rst b/poky/documentation/dev-manual/device-manager.rst
index 4248c23b44..0343d19b9c 100644
--- a/poky/documentation/dev-manual/device-manager.rst
+++ b/poky/documentation/dev-manual/device-manager.rst
@@ -1,5 +1,7 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+.. _device-manager:
+
Selecting a Device Manager
**************************
diff --git a/poky/documentation/dev-manual/init-manager.rst b/poky/documentation/dev-manual/init-manager.rst
index 10c4754e62..b96e011ebf 100644
--- a/poky/documentation/dev-manual/init-manager.rst
+++ b/poky/documentation/dev-manual/init-manager.rst
@@ -1,71 +1,107 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+.. _init-manager:
+
Selecting an Initialization Manager
***********************************
-By default, the Yocto Project uses SysVinit as the initialization
-manager. However, there is also support for systemd, which is a full
-replacement for init with parallel starting of services, reduced shell
-overhead and other features that are used by many distributions.
+By default, the Yocto Project uses :wikipedia:`SysVinit <Init#SysV-style>` as
+the initialization manager. There is also support for BusyBox init, a simpler
+implementation, as well as support for :wikipedia:`systemd <Systemd>`, which
+is a full replacement for init with parallel starting of services, reduced
+shell overhead, increased security and resource limits for services, and other
+features that are used by many distributions.
+
+Within the system, SysVinit and BusyBox init treat system components as
+services. These services are maintained as shell scripts stored in the
+``/etc/init.d/`` directory.
-Within the system, SysVinit treats system components as services. These
-services are maintained as shell scripts stored in the ``/etc/init.d/``
-directory. Services organize into different run levels. This
-organization is maintained by putting links to the services in the
-``/etc/rcN.d/`` directories, where `N/` is one of the following options:
-"S", "0", "1", "2", "3", "4", "5", or "6".
+SysVinit is more elaborate than BusyBox init and organizes services in
+different run levels. This organization is maintained by putting links
+to the services in the ``/etc/rcN.d/`` directories, where `N/` is one
+of the following options: "S", "0", "1", "2", "3", "4", "5", or "6".
.. note::
Each runlevel has a dependency on the previous runlevel. This
dependency allows the services to work properly.
+Both SysVinit and BusyBox init are configured through the ``/etc/inittab``
+file, with a very similar syntax, though of course BusyBox init features
+are more limited.
+
In comparison, systemd treats components as units. Using units is a
broader concept as compared to using a service. A unit includes several
-different types of entities. Service is one of the types of entities.
+different types of entities. ``Service`` is one of the types of entities.
The runlevel concept in SysVinit corresponds to the concept of a target
in systemd, where target is also a type of supported unit.
-In a SysVinit-based system, services load sequentially (i.e. one by one)
-during init and parallelization is not supported. With systemd, services
-start in parallel. Needless to say, the method can have an impact on
-system startup performance.
+In systems with SysVinit or BusyBox init, services load sequentially (i.e. one
+by one) during init and parallelization is not supported. With systemd, services
+start in parallel. This method can have an impact on the startup performance
+of a given service, though systemd will also provide more services by default,
+therefore increasing the total system boot time. systemd also substantially
+increases system size because of its multiple components and the extra
+dependencies it pulls.
-If you want to use SysVinit, you do not have to do anything. But, if you
-want to use systemd, you must take some steps as described in the
-following sections.
+On the contrary, BusyBox init is the simplest and the lightest solution and
+also comes with BusyBox mdev as device manager, a lighter replacement to
+:wikipedia:`udev <Udev>`, which SysVinit and systemd both use.
-Using systemd Exclusively
+The ":ref:`device-manager`" chapter has more details about device managers.
+
+Using SysVinit with udev
=========================
-Set the :term:`INIT_MANAGER` variable in your distribution configuration
-file as follows::
+SysVinit with the udev device manager corresponds to the
+default setting in Poky. This corresponds to setting::
+
+ INIT_MANAGER = "sysvinit"
+
+Using BusyBox init with BusyBox mdev
+====================================
+
+BusyBox init with BusyBox mdev is the simplest and lightest solution
+for small root filesystems. All you need is BusyBox, which most systems
+have anyway::
+
+ INIT_MANAGER = "mdev-busybox"
+
+Using systemd
+=============
+
+The last option is to use systemd together with the udev device
+manager. This is the most powerful and versatile solution, especially
+for more complex systems::
INIT_MANAGER = "systemd"
This will enable systemd and remove sysvinit components from the image.
-See ``meta/conf/distro/include/init-manager-systemd.inc`` for exact
+See :yocto_git:`meta/conf/distro/include/init-manager-systemd.inc
+</poky/tree/meta/conf/distro/include/init-manager-systemd.inc>` for exact
details on what this does.
-Using systemd for the Main Image and Using SysVinit for the Rescue Image
-========================================================================
-
-Set these variables in your distribution configuration file as follows::
+Controling systemd from the target command line
+-----------------------------------------------
- DISTRO_FEATURES:append = " systemd"
- VIRTUAL-RUNTIME_init_manager = "systemd"
+Here is a quick reference for controling systemd from the command line on the
+target. Instead of opening and sometimes modifying files, most interaction
+happens through the ``systemctl`` and ``journalctl`` commands:
-Doing so causes your main image to use the
-``packagegroup-core-boot.bb`` recipe and systemd. The rescue/minimal
-image cannot use this package group. However, it can install SysVinit
-and the appropriate packages will have support for both systemd and
-SysVinit.
+- ``systemctl status``: show the status of all services
+- ``systemctl status <service>``: show the status of one service
+- ``systemctl [start|stop] <service>``: start or stop a service
+- ``systemctl [enable|disable] <service>``: enable or disable a service at boot time
+- ``systemctl list-units``: list all available units
+- ``journalctl -a``: show all logs for all services
+- ``journalctl -f``: show only the last log entries, and keep printing updates as they arrive
+- ``journalctl -u``: show only logs from a particular service
Using systemd-journald without a traditional syslog daemon
-==========================================================
+----------------------------------------------------------
Counter-intuitively, ``systemd-journald`` is not a syslog runtime or provider,
-and the proper way to use systemd-journald as your sole logging mechanism is to
+and the proper way to use ``systemd-journald`` as your sole logging mechanism is to
effectively disable syslog entirely by setting these variables in your distribution
configuration file::
@@ -73,5 +109,54 @@ configuration file::
VIRTUAL-RUNTIME_base-utils-syslog = ""
Doing so will prevent ``rsyslog`` / ``busybox-syslog`` from being pulled in by
-default, leaving only ``journald``.
-
+default, leaving only ``systemd-journald``.
+
+Summary
+-------
+
+The Yocto Project supports three different initialization managers, offering
+increasing levels of complexity and functionality:
+
+.. list-table::
+ :widths: 40 20 20 20
+ :header-rows: 1
+
+ * -
+ - BusyBox init
+ - SysVinit
+ - systemd
+ * - Size
+ - Small
+ - Small
+ - Big [#footnote-systemd-size]_
+ * - Complexity
+ - Small
+ - Medium
+ - High
+ * - Support for boot profiles
+ - No
+ - Yes ("runlevels")
+ - Yes ("targets")
+ * - Services defined as
+ - Shell scripts
+ - Shell scripts
+ - Description files
+ * - Starting services in parallel
+ - No
+ - No
+ - Yes
+ * - Setting service resource limits
+ - No
+ - No
+ - Yes
+ * - Support service isolation
+ - No
+ - No
+ - Yes
+ * - Integrated logging
+ - No
+ - No
+ - Yes
+
+.. [#footnote-systemd-size] Using systemd increases the ``core-image-minimal``
+ image size by 160\% for ``qemux86-64`` on Mickledore (4.2), compared to SysVinit.
diff --git a/poky/documentation/dev-manual/sbom.rst b/poky/documentation/dev-manual/sbom.rst
index 448c071c55..f51d08f84d 100644
--- a/poky/documentation/dev-manual/sbom.rst
+++ b/poky/documentation/dev-manual/sbom.rst
@@ -63,6 +63,9 @@ generated files are available in ``tmp/deploy/spdx/MACHINE`` too, such as:
(when :term:`SPDX_ARCHIVE_SOURCES` is set). Those are needed to fulfill
"source code access" license requirements.
+See also the :term:`SPDX_CUSTOM_ANNOTATION_VARS` variable which allows
+to associate custom notes to a recipe.
+
See the `tools page <https://spdx.dev/resources/tools/>`__ on the :term:`SPDX`
project website for a list of tools to consume and transform the :term:`SPDX`
data generated by the OpenEmbedded build system.
diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst
index 27fc0fcd01..4881481044 100644
--- a/poky/documentation/dev-manual/start.rst
+++ b/poky/documentation/dev-manual/start.rst
@@ -613,44 +613,23 @@ Use the following procedure to locate the latest upstream copy of the
For information on cloning a repository, see the
":ref:`dev-manual/start:cloning the \`\`poky\`\` repository`" section.
-Accessing Index of Releases
----------------------------
+Accessing Source Archives
+-------------------------
+
+The Yocto Project also provides source archives of its releases, which
+are available on :yocto_dl:`/releases/yocto/`. Then, choose the subdirectory
+containing the release you wish to use, for example
+:yocto_dl:`yocto-&DISTRO; </releases/yocto/yocto-&DISTRO;/>`.
-Yocto Project maintains an Index of Releases area that contains related
-files that contribute to the Yocto Project. Rather than Git
-repositories, these files are tarballs that represent snapshots in time
-of a given component.
+You will find there source archives of individual components (if you wish
+to use them individually), and of the corresponding Poky release bundling
+a selection of these components.
.. note::
The recommended method for accessing Yocto Project components is to
use Git to clone the upstream repository and work from within that
- locally cloned repository. However, this section documents how to
- use a tarball snapshot of any given component.
-
-Follow these steps to locate and download a particular tarball:
-
-#. *Access the Index of Releases:* Open a browser and go to
- :yocto_dl:`Index of Releases </releases>`. The
- list represents released components (e.g. ``bitbake``, ``sato``, and
- so on).
-
- .. note::
-
- The ``yocto`` directory contains the full array of released Poky
- tarballs. The ``poky`` directory in the Index of Releases was
- historically used for very early releases and exists now only for
- retroactive completeness.
-
-#. *Select a Component:* Click on any released component in which you
- are interested (e.g. ``yocto``).
-
-#. *Find the Tarball:* Drill down to find the associated tarball. For
- example, click on ``yocto-&DISTRO;`` to view files associated with the
- Yocto Project &DISTRO; release.
-
-#. *Download the Tarball:* Click the tarball to download and save a
- snapshot of the given component.
+ locally cloned repository.
Using the Downloads Page
------------------------
@@ -659,7 +638,7 @@ The :yocto_home:`Yocto Project Website <>` uses a "DOWNLOADS" page
from which you can locate and download tarballs of any Yocto Project
release. Rather than Git repositories, these files represent snapshot
tarballs similar to the tarballs located in the Index of Releases
-described in the ":ref:`dev-manual/start:accessing index of releases`" section.
+described in the ":ref:`dev-manual/start:accessing source archives`" section.
#. *Go to the Yocto Project Website:* Open The
:yocto_home:`Yocto Project Website <>` in your browser.
diff --git a/poky/documentation/migration-guides/release-notes-4.0.9.rst b/poky/documentation/migration-guides/release-notes-4.0.9.rst
index 883514e686..7c35b85810 100644
--- a/poky/documentation/migration-guides/release-notes-4.0.9.rst
+++ b/poky/documentation/migration-guides/release-notes-4.0.9.rst
@@ -1,3 +1,5 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
Release notes for Yocto-4.0.9 (Kirkstone)
-----------------------------------------
diff --git a/poky/documentation/migration-guides/release-notes-4.2.rst b/poky/documentation/migration-guides/release-notes-4.2.rst
index 04261244ff..473ea984c3 100644
--- a/poky/documentation/migration-guides/release-notes-4.2.rst
+++ b/poky/documentation/migration-guides/release-notes-4.2.rst
@@ -8,35 +8,19 @@ New Features / Enhancements in 4.2
- Linux kernel 6.1, glibc 2.37 and ~350 other recipe upgrades
-- Rust improvements:
-
- - This release adds Cargo support on the target, and includes
- automated QA tests for this functionality.
-
- - It also supports checksums for Rust crates and makes
- them mandatory for each crate in a recipe.
-
- - New :ref:`ref-classes-cargo-update-recipe-crates` class to
- enable updating :term:`SRC_URI` crate lists from ``Cargo.lock``
-
- - Enabled building Rust for baremetal targets
-
- - You can now also easily select to build beta or nightly
- versions of rust with a new :term:`RUST_CHANNEL` variable
- (use at own risk)
-
- - Support for local github repos in :term:`SRC_URI` as
- replacements for cargo dependencies
-
- - Use built-in rust targets for -native builds to save several
- minutes building the Rust toolchain
-
-- Python 3.8+ and GCC 8.0+ are now the minimum required versions on the build host
+- Python 3.8+ and GCC 8.0+ are now the minimum required versions on the build host.
+ For host distributions that do not provide it, this is included as part of the
+ :term:`buildtools` tarball.
- BitBake in this release now supports a new ``addpylib`` directive to enable
Python libraries within layers. For more information,
see :ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`.
+ This directive should be added to your layer configuration
+ as in the below example from ``meta/conf/layer.conf``::
+
+ addpylib ${LAYERDIR}/lib oe
+
- BitBake has seen multiple internal changes that may improve
memory and disk usage as well as parsing time, in particular:
@@ -51,6 +35,38 @@ New Features / Enhancements in 4.2
- BitBake's UI will now ping the server regularly to ensure
it is still alive.
+
+- New variables:
+
+ - :term:`VOLATILE_TMP_DIR` allows to specify
+ whether ``/tmp`` should be on persistent storage
+ or in RAM.
+
+ - :term:`SPDX_CUSTOM_ANNOTATION_VARS` allows to add
+ specific comments to the :term:`SPDX` description of a recipe.
+
+- Rust improvements:
+
+ - This release adds Cargo support on the target, and includes
+ automated QA tests for this functionality.
+
+ - It also supports checksums for Rust crates and makes
+ them mandatory for each crate in a recipe.
+
+ - New :ref:`ref-classes-cargo-update-recipe-crates` class to
+ enable updating :term:`SRC_URI` crate lists from ``Cargo.lock``
+
+ - Enabled building Rust for baremetal targets
+
+ - You can now also easily select to build beta or nightly
+ versions of Rust with a new :term:`RUST_CHANNEL` variable
+ (use at own risk)
+
+ - Support for local GitHub repos in :term:`SRC_URI` as
+ replacements for Cargo dependencies
+
+ - Use built-in Rust targets for ``-native`` builds to save several
+ minutes building the Rust toolchain
- Architecture-specific enhancements:
@@ -62,7 +78,7 @@ New Features / Enhancements in 4.2
- go: add support to build on ppc64le
- rust: rustfmt now working and installed for riscv32
- - libpng: enable NEON for aarch64 to enensure consistency with arm32.
+ - libpng: enable NEON for aarch64 to ensure consistency with arm32.
- baremetal-helloworld: Enable x86 and x86-64 ports
- Kernel-related enhancements:
@@ -92,11 +108,11 @@ New Features / Enhancements in 4.2
- Set ``QB_SMP`` with ?= to make it easier to modify
- Set ``QB_CPU`` with ?= to make it easier to modify (x86 configuration only)
- - New ``QB_NFSROOTFS_EXTRA_OPT`` to allow extra options to be appended to the nfs rootfs options in kernel boot args, e.g. ``"wsize=4096,rsize=4096"``
+ - New ``QB_NFSROOTFS_EXTRA_OPT`` to allow extra options to be appended to the NFS rootfs options in kernel boot args, e.g. ``"wsize=4096,rsize=4096"``
- New ``QB_SETUP_CMD`` and ``QB_CLEANUP_CMD`` to enable running custom shell setup and cleanup commands before and after QEMU.
- ``QB_DEFAULT_KERNEL`` now defaults to pick the bundled initramfs kernel image if the Linux kernel image is generated with :term:`INITRAMFS_IMAGE_BUNDLE` set to "1"
- Split out the QEMU guest agent to its own ``qemu-guest-agent`` package
- - runqemu: new "guestagent" option to enable communication with the guest agent
+ - runqemu: new ``guestagent`` option to enable communication with the guest agent
- runqemu: respect :term:`IMAGE_LINK_NAME` when searching for image
- Image-related enhancements:
@@ -106,10 +122,10 @@ New Features / Enhancements in 4.2
- wic Image Creator enhancements:
- - bootimg-efi: add support for directly loading Linux kernel UEFI stub
- - bootimg-efi: implement --include-path
- - Allow usage of fstype=none to specify an unformatted partition
- - Implement repeatable disk identifiers based on SOURCE_DATE_EPOCH
+ - ``bootimg-efi.py``: add support for directly loading Linux kernel UEFI stub
+ - ``bootimg-efi.py``: implement ``--include-path``
+ - Allow usage of ``fstype=none`` to specify an unformatted partition
+ - Implement repeatable disk identifiers based on :term:`SOURCE_DATE_EPOCH`
- FIT image related improvements:
@@ -133,7 +149,7 @@ New Features / Enhancements in 4.2
- ``unifdef``
- New :term:`SDK_ZIP_OPTIONS` variable to enable passing additional options to the zip command when preparing the SDK zip archive
- - New Rust SDK target packagegroup (packagegroup-rust-sdk-target)
+ - New Rust SDK target packagegroup (``packagegroup-rust-sdk-target``)
- Testing:
@@ -174,13 +190,12 @@ New Features / Enhancements in 4.2
- ptest support added to ``bc``, ``cpio`` and ``gnutls``, and fixes made to
ptests in numerous other recipes.
- - ``ptest-runner`` now adds a non-root "ptest" user for tests to run as
+ - ``ptest-runner`` now adds a non-root "ptest" user to run tests.
- - resulttool: add a --list-ptest option to the log subcommand to list ptest names
+ - ``resulttool``: add a ``--list-ptest`` option to the log subcommand to list ptest names
in a results file
- - resulttool: regression: add metadata filtering for oeselftest
-
+ - ``resulttool``: regression: add metadata filtering for oeselftest
- New :term:`PACKAGECONFIG` options in the following recipes:
@@ -188,7 +203,6 @@ New Features / Enhancements in 4.2
- ``base-passwd``
- ``cronie``
- ``cups``
- - ``cups``
- ``curl``
- ``file``
- ``gstreamer1.0-plugins-good``
@@ -217,30 +231,30 @@ New Features / Enhancements in 4.2
- Utility script changes:
- - devtool: ignore patch-fuzz errors when extracting source in order to enable fixing fuzz issues
- - oe-setup-layers: Make efficiently idempotent
- - oe-setup-layers: print a note about submodules if present
- - New buildstats-summary script to show a summary of the buildstats data
- - report-error: catch Nothing PROVIDES error
- - combo-layer: add sync-revs command
- - scripts: convert-overrides: Allow command-line customizations
+ - ``devtool``: ignore patch-fuzz errors when extracting source in order to enable fixing fuzz issues
+ - ``oe-setup-layers``: make efficiently idempotent
+ - ``oe-setup-layers``: print a note about submodules if present
+ - New ``buildstats-summary`` script to show a summary of the buildstats data
+ - :ref:`ref-classes-report-error` class: catch ``Nothing PROVIDES`` error
+ - ``combo-layer``: add ``sync-revs`` command
+ - ``convert-overrides``: allow command-line customizations
- bitbake-layers improvements:
- - layerindex-fetch: checkout layer(s) branch when clone exists
- - create: add -a/--add-layer option to add layer to bblayers.conf after creating layer
- - show-layers: improve output layout
+ - ``layerindex-fetch``: checkout layer(s) branch when clone exists
+ - ``create``: add ``-a``/``--add-layer option`` to add layer to ``bblayers.conf`` after creating layer
+ - ``show-layers``: improve output layout
- Other BitBake improvements:
- - Inline python snippets can now include dictionary expressions
+ - Inline Python snippets can now include dictionary expressions
- Evaluate the value of export/unexport/network flags so that they can be reset to "0"
- Make :term:`EXCLUDE_FROM_WORLD` boolean so that it can be reset to "0"
- - Support int values in bb.utils.to_boolean() in addition to strings
- - bitbake-getvar: Add a quiet command line argument
- - Allow the '@' character in variable flag names
+ - Support int values in ``bb.utils.to_boolean()`` in addition to strings
+ - ``bitbake-getvar``: Add a ``quiet`` command line argument
+ - Allow the ``@`` character in variable flag names
- Python library code will now be included when calculating task hashes
- - fetch2/npmsw: add more short forms for git operations
+ - ``fetch2/npmsw``: add more short forms for git operations
- Display a warning when ``SRCREV = "${AUTOREV}"`` is set too late to be effective
- Display all missing :term:`SRC_URI` checksums at once
- Improve error message for a missing multiconfig
@@ -249,77 +263,72 @@ New Features / Enhancements in 4.2
- Packaging changes:
- - rng-tools is no longer recommended by openssh, and the rng-tools service files have been split out to their own package
- - linux-firmware: split rtl8761 and amdgpu firmware
- - linux-firmware: add new fw file to ${PN}-qcom-adreno-a530
- - iproute2: separate routel and add python dependency
- - xinetd: move xconv.pl script to separate package
- - perf: Enable debug/source packaging
+ - ``rng-tools`` is no longer recommended by ``openssh``, and the ``rng-tools``
+ service files have been split out to their own package
+ - ``linux-firmware``: split ``rtl8761`` and ``amdgpu`` firmware
+ - ``linux-firmware``: add new firmware file to ``${PN}-qcom-adreno-a530``
+ - ``iproute2``: separate ``routel`` and add Python dependency
+ - ``xinetd``: move ``xconv.pl`` script to separate package
+ - ``perf``: enable debug/source packaging
- Miscellaneous changes:
- Supporting 64 bit dates on 32 bit platforms: several packages have been
- updated to pass Y2038 tests, and a QA check for 32 bit time and file
+ updated to pass year 2038 tests, and a QA check for 32 bit time and file
offset functions has been added (default off)
- Patch fuzz/Upstream-Status checking has been reworked:
+
- Upstream-Status checking is now configurable from :term:`WARN_QA`/:term:`ERROR_QA` (``patch-status-core``)
- Can now be enabled for non-core layers (``patch-status-noncore``)
- ``patch-fuzz`` is now in :term:`ERROR_QA` by default, and actually stops the build
- Many packages were updated to add large file support.
- - New :term:`VOLATILE_TMP_DIR` variable allows to specify whether ``/tmp``
- should be on persistent storage or in RAM.
-
- - vulkan-loader: Allow headless targets to build the loader
- - dhcpcd: fix to work with systemd
- - u-boot: Add /boot to :term:`SYSROOT_DIRS` to allow boot files to be used by other recipes
- - linux-firmware: don't put the firmware into the sysroot
- - cups: add :term:`PACKAGECONFIG` to control web interface and default to off
- - buildtools-tarball: export certificates to python and curl
- - yocto-check-layer: Allow OE-Core to be tested
- - yocto-check-layer: check for patch file upstream status
- - boost: enable building Boost.URL library
- - native: Drop special variable handling
- - poky: make it easier to set :term:`INIT_MANAGER` from local.conf
- - create-spdx: Add support for custom Annotations
- - create-spdx: Report downloads as separate packages
- - create-spdx: Removed the top-level image SPDX file and the JSON index file from :term:`DEPLOYDIR` to avoid confusion
- - os-release: replace ``DISTRO_CODENAME`` with ``VERSION_CODENAME`` (still set from :term:`DISTRO_CODENAME`)
- - weston: Add kiosk shell
- - overlayfs: Allow unused mount points
- - sstatesig: emit more helpful error message when not finding sstate manifest
- - pypi.bbclass: Set :term:`SRC_URI` downloadfilename with an optional prefix
- - poky-bleeding: Update and rework
- - package.bbclass: check if package names conflict via PKG:${PN} override in do_package
- - cve-update-nvd2-native: new NVD CVE database fetcher using the 2.0 API
- - mirrors.bbclass: use shallow tarball for binutils-native/nativesdk-binutils
- - meta/conf: move default configuration templates into meta/conf/templates/default
- - binutils: Enable --enable-new-dtags as per many Linux distributions
- - base-files: Drop localhost.localdomain from hosts file as per many Linux distributions
- - packagegroup-core-boot: make init-ifupdown package a recommendation
-
+ - ``vulkan-loader``: allow headless targets to build the loader
+ - ``dhcpcd``: fix to work with systemd
+ - ``u-boot``: add /boot to :term:`SYSROOT_DIRS` to allow boot files to be used by other recipes
+ - ``linux-firmware``: don't put the firmware into the sysroot
+ - ``cups``: add :term:`PACKAGECONFIG` to control web interface and default to off
+ - ``buildtools-tarball``: export certificates to python and curl
+ - ``yocto-check-layer``: allow OE-Core to be tested
+ - ``yocto-check-layer``: check for patch file upstream status
+ - ``boost``: enable building ``Boost.URL`` library
+ - ``native``: drop special variable handling
+ - Poky: make it easier to set :term:`INIT_MANAGER` from local.conf
+ - :ref:`ref-classes-create-spdx`: add support for custom annotations (:term:`SPDX_CUSTOM_ANNOTATION_VARS`)
+ - :ref:`ref-classes-create-spdx`: report downloads as separate packages
+ - :ref:`ref-classes-create-spdx`: remove the top-level image SPDX file and the JSON index file from :term:`DEPLOYDIR` to avoid confusion
+ - ``os-release``: replace ``DISTRO_CODENAME`` with ``VERSION_CODENAME`` (still set from :term:`DISTRO_CODENAME`)
+ - ``weston``: add kiosk shell
+ - :ref:`ref-classes-overlayfs`: Allow unused mount points
+ - ``sstatesig``: emit more helpful error message when not finding sstate manifest
+ - :ref:`ref-classes-pypi`.bbclass: Set :term:`SRC_URI` downloadfilename with an optional prefix
+ - ``poky-bleeding`` distro: update and rework
+ - :ref:`package.bbclass <ref-classes-package>`: check if package names conflict via ``PKG:${PN}`` override in :ref:`do_package <ref-tasks-package>`
+ - ``cve-update-nvd2-native``: new NVD CVE database fetcher using the 2.0 API
+ - :ref:`ref-classes-mirrors` class: use shallow tarball for ``binutils-native``/``nativesdk-binutils``
+ - ``meta/conf``: move default configuration templates into ``meta/conf/templates/default``
+ - ``binutils``: enable ``--enable-new-dtags`` as per many Linux distributions
+ - ``base-files``: drop ``localhost.localdomain`` from hosts file as per many Linux distributions
+ - ``packagegroup-core-boot``: make ``init-ifupdown`` package a recommendation
Known Issues in 4.2
~~~~~~~~~~~~~~~~~~~
-
Recipe License changes in 4.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following corrections have been made to the :term:`LICENSE` values set by recipes:
-- curl: set :term:`LICENSE` appropriately to "curl" as it is a special derivative of the MIT/X license, not exactly that license.
-- libgit2: added Zlib, ISC, LGPL-2.1-or-later and CC0-1.0 to :term:`LICENSE` covering portions of the included code.
-- linux-firmware: set package :term:`LICENSE` appropriately for all qcom packages
-
-
+- ``curl``: set :term:`LICENSE` appropriately to ``curl`` as it is a special derivative of the MIT/X license, not exactly that license.
+- ``libgit2``: added ``Zlib``, ``ISC``, ``LGPL-2.1-or-later`` and ``CC0-1.0`` to :term:`LICENSE` covering portions of the included code.
+- ``linux-firmware``: set package :term:`LICENSE` appropriately for all qcom packages
Security Fixes in 4.2
~~~~~~~~~~~~~~~~~~~~~
-- binutils: :cve:`2022-4285`, :cve:`2023-25586`
+- binutils: :cve:`2022-4285`, `CVE-2023-25586 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-25586>`__
- curl: :cve:`2022-32221`, :cve:`2022-35260`, :cve:`2022-42915`, :cve:`2022-42916`
- epiphany: :cve:`2023-26081`
- expat: :cve:`2022-43680`
@@ -327,7 +336,7 @@ Security Fixes in 4.2
- git: :cve:`2022-39260`, :cve:`2022-41903`, :cve:`2022-23521`, :cve:`2022-41953` (ignored)
- glibc: :cve:`2023-25139` (ignored)
- go: :cve:`2023-24532`, :cve:`2023-24537`
-- grub2: :cve:`2022-2601`, :cve:`2022-3775`, :cve:`2022-28736`
+- grub2: :cve:`2022-2601`, :cve:`2022-3775`, `CVE-2022-28736 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-28736>`__
- inetutils: :cve:`2019-0053`
- less: :cve:`2022-46663`
- libarchive: :cve:`2022-36227`
@@ -339,7 +348,7 @@ Security Fixes in 4.2
- openssl: :cve:`2022-3358`, :cve:`2022-3786`, :cve:`2022-3602`, :cve:`2022-3996`, :cve:`2023-0286`, :cve:`2022-4304`, :cve:`2022-4203`, :cve:`2023-0215`, :cve:`2022-4450`, :cve:`2023-0216`, :cve:`2023-0217`, :cve:`2023-0401`, :cve:`2023-0464`
- ppp: :cve:`2022-4603`
- python3-cryptography{-vectors}: :cve:`2022-3602`, :cve:`2022-3786`, :cve:`2023-23931`
-- python3: :cve:`2022-37460`
+- python3: `CVE-2022-37460 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-37460>`__
- qemu: :cve:`2022-3165`
- rust: :cve:`2022-46176`
- rxvt-unicode: :cve:`2022-4170`
@@ -353,7 +362,6 @@ Security Fixes in 4.2
- xdg-utils: :cve:`2022-4055`
- xserver-xorg: :cve:`2022-3550`, :cve:`2022-3551`, :cve:`2023-1393`, :cve:`2023-0494`, :cve:`2022-3553` (ignored)
-
Recipe Upgrades in 4.2
~~~~~~~~~~~~~~~~~~~~~~
@@ -712,9 +720,6 @@ Recipe Upgrades in 4.2
- zlib: upgrade 1.2.12 -> 1.2.13
- zstd: upgrade 1.5.2 -> 1.5.4
-
-
-
Contributors to 4.2
~~~~~~~~~~~~~~~~~~~
@@ -898,4 +903,3 @@ Thanks to the following people who contributed to this release:
- Zoltan Boszormenyi
- 张忠山
-
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index 0d931df3dc..6139e7a412 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -169,10 +169,9 @@ these tarballs gives you a snapshot of the released files.
In summary, here is where you can get the project files needed for
development:
-- :yocto_git:`Source Repositories: <>` This area contains IDE
- Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and
- Yocto Metadata Layers. You can create local copies of Git
- repositories for each of these areas.
+- :yocto_git:`Source Repositories: <>` This area contains Poky, Yocto
+ documentation, metadata layers, and Linux kernel. You can create local
+ copies of Git repositories for each of these areas.
.. image:: figures/source-repos.png
:width: 100%
@@ -181,28 +180,17 @@ development:
see the ":ref:`dev-manual/start:accessing source repositories`"
Section in the Yocto Project Development Tasks Manual.
-- :yocto_dl:`Index of /releases: </releases>` This is an index
- of releases such as Poky, Pseudo, installers for cross-development
- toolchains, miscellaneous support and all released versions of Yocto
- Project in the form of images or tarballs. Downloading and extracting
- these files does not produce a local copy of the Git repository but
- rather a snapshot of a particular release or image.
+- :yocto_dl:`Yocto release archives: </releases/yocto>` This is where you can
+ download tarballs corresponding to each Yocto Project release. Downloading
+ and extracting these files does not produce a local copy of a Git repository
+ but rather a snapshot corresponding to a particular release.
- .. image:: figures/index-downloads.png
- :align: center
- :width: 50%
-
- For steps on how to view and access these files, see the
- ":ref:`dev-manual/start:accessing index of releases`"
- section in the Yocto Project Development Tasks Manual.
-
-- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
-
- The Yocto Project website includes a "DOWNLOADS" page accessible
+- :yocto_home:`DOWNLOADS page </software-overview/downloads/>`:
+ The :yocto_home:`Yocto Project website <>` includes a "DOWNLOADS" page accessible
through the "SOFTWARE" menu that allows you to download any Yocto
Project release, tool, and Board Support Package (BSP) in tarball
- form. The tarballs are similar to those found in the
- :yocto_dl:`Index of /releases: </releases>` area.
+ form. The hyperlinks point to the tarballs under
+ :yocto_dl:`/releases/yocto/`.
.. image:: figures/yp-download.png
:width: 100%
diff --git a/poky/documentation/overview-manual/figures/index-downloads.png b/poky/documentation/overview-manual/figures/index-downloads.png
deleted file mode 100755
index d8d4475cee..0000000000
--- a/poky/documentation/overview-manual/figures/index-downloads.png
+++ /dev/null
Binary files differ
diff --git a/poky/documentation/overview-manual/figures/source-repos.png b/poky/documentation/overview-manual/figures/source-repos.png
index 603300b6d2..56023d585d 100644
--- a/poky/documentation/overview-manual/figures/source-repos.png
+++ b/poky/documentation/overview-manual/figures/source-repos.png
Binary files differ
diff --git a/poky/documentation/overview-manual/figures/yp-download.png b/poky/documentation/overview-manual/figures/yp-download.png
index bfd12b678a..c8b50ec8a7 100644
--- a/poky/documentation/overview-manual/figures/yp-download.png
+++ b/poky/documentation/overview-manual/figures/yp-download.png
Binary files differ
diff --git a/poky/documentation/poky.yaml.in b/poky/documentation/poky.yaml.in
index 1c072c1d05..b2b6a6330f 100644
--- a/poky/documentation/poky.yaml.in
+++ b/poky/documentation/poky.yaml.in
@@ -1,10 +1,10 @@
-DISTRO : "4.1"
-DISTRO_NAME_NO_CAP : "langdale"
-DISTRO_NAME : "Langdale"
-DISTRO_NAME_NO_CAP_MINUS_ONE : "kirkstone"
+DISTRO : "4.2"
+DISTRO_NAME_NO_CAP : "mickledore"
+DISTRO_NAME : "Mickledore"
+DISTRO_NAME_NO_CAP_MINUS_ONE : "langdale"
DISTRO_NAME_NO_CAP_LTS : "kirkstone"
-YOCTO_DOC_VERSION : "4.1"
-DISTRO_REL_TAG : "yocto-4.1"
+YOCTO_DOC_VERSION : "4.2"
+DISTRO_REL_TAG : "yocto-4.2"
DOCCONF_VERSION : "dev"
BITBAKE_SERIES : ""
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
diff --git a/poky/documentation/ref-manual/TODO b/poky/documentation/ref-manual/TODO
deleted file mode 100644
index 0510f54710..0000000000
--- a/poky/documentation/ref-manual/TODO
+++ /dev/null
@@ -1,11 +0,0 @@
-Handbook Todo List:
-
- * Document adding a new IMAGE_FEATURE to the customising images section
- * Add instructions about using zaurus/openmoko emulation
- * Add component overview/block diagrams
- * Software Development intro should mention its software development for
- intended target and could be a different arch etc and thus special case.
- * Expand insane.bbclass documentation to cover tests
- * Document remaining classes (see list in ref-classes)
- * Document formfactor
-
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 0762d1d8bc..a78368b380 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -580,6 +580,49 @@ add the task at the appropriate place, which is usually after
:ref:`ref-tasks-install`. The class then takes care of
staging the files from :term:`DEPLOYDIR` to :term:`DEPLOY_DIR_IMAGE`.
+.. _ref-classes-devicetree:
+
+``devicetree``
+==============
+
+The :ref:`ref-classes-devicetree` class allows to build a recipe that compiles
+device tree source files that are not in the kernel tree.
+
+The compilation of out-of-tree device tree sources is the same as the kernel
+in-tree device tree compilation process. This includes the ability to include
+sources from the kernel such as SoC ``dtsi`` files as well as C header files,
+such as ``gpio.h``.
+
+The :ref:`ref-tasks-compile` task will compile two kinds of files:
+
+- Regular device tree sources with a ``.dts`` extension.
+
+- Device tree overlays, detected from the presence of the ``/plugin/;``
+ string in the file contents.
+
+This class behaves in a similar way as the :ref:`ref-classes-kernel-devicetree`
+class, also deploying output files into ``/boot/devicetree``. However, this
+class stores the deployed device tree binaries into the ``devicetree``
+subdirectory. This avoids clashes with the :ref:`ref-classes-kernel-devicetree`
+output. Additionally, the device trees are populated into the sysroot for
+access via the sysroot from within other recipes.
+
+An extra padding is appended to non-overlay device trees binaries. This
+can typically be used as extra space for adding extra properties at boot time.
+The padding size can be modified by setting ``DT_PADDING_SIZE`` to the desired
+size, in bytes.
+
+See :oe_git:`devicetree.bbclass sources
+</openembedded-core/tree/meta/classes-recipe/devicetree.bbclass>`
+for further variables controlling this class.
+
+Here is an excerpt of an example ``recipes-kernel/linux/devicetree-acme.bb``
+recipe inheriting this class::
+
+ inherit devicetree
+ COMPATIBLE_MACHINE = "^mymachine$"
+ SRC_URI:mymachine = "file://mymachine.dts"
+
.. _ref-classes-devshell:
``devshell``
diff --git a/poky/documentation/ref-manual/release-process.rst b/poky/documentation/ref-manual/release-process.rst
index 170565f9bc..2ffbd935c7 100644
--- a/poky/documentation/ref-manual/release-process.rst
+++ b/poky/documentation/ref-manual/release-process.rst
@@ -87,6 +87,8 @@ stable release.
exception to this policy occurs when there is a strong reason such as
the fix happens to also be the preferred upstream approach.
+.. _ref-long-term-support-releases:
+
Long Term Support Releases
==========================
@@ -120,16 +122,16 @@ of stable and :term:`LTS` releases.
In some circumstances, a layer can be created by the community in order to
add a specific feature or support a new version of some package for an :term:`LTS`
- release. This is called a "mixin" layer. These are thin and specific
+ release. This is called a :term:`Mixin` layer. These are thin and specific
purpose layers which can be stacked with an :term:`LTS` release to "mix" a specific
feature into that build. These are created on an as-needed basis and
maintained by the people who need them.
Policies on testing these layers depend on how widespread their usage is and
- determined on a case-by-case basis. You can find some "mixin" layers in the
+ determined on a case-by-case basis. You can find some :term:`Mixin` layers in the
:yocto_git:`meta-lts-mixins </meta-lts-mixins>` repository. While the Yocto
Project provides hosting for those repositories, it does not provides
- testing on them. Other "mixin" layers may be released elsewhere by the wider
+ testing on them. Other :term:`Mixin` layers may be released elsewhere by the wider
community.
Testing and Quality Assurance
diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst
index fd4a8afb5d..91ed6d8d6d 100644
--- a/poky/documentation/ref-manual/system-requirements.rst
+++ b/poky/documentation/ref-manual/system-requirements.rst
@@ -182,7 +182,7 @@ AlmaLinux Packages
Here are the packages needed to build an image on a headless system
with a supported AlmaLinux distribution::
- $ sudo dnf install &ALMALINUX8_HOST_PACKAGES_ESSENTIAL;
+ $ sudo dnf install &ALMALINUX_HOST_PACKAGES_ESSENTIAL;
.. note::
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index 68313d0294..4baef38cfd 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -277,7 +277,7 @@ universal, the list includes them just in case:
This term means "Long Term Support", and in the context of the Yocto
Project, it corresponds to selected stable releases for which bug and
security fixes are provided for at least two years. See
- ":doc:`/ref-manual/release-process`" for details.
+ the :ref:`ref-long-term-support-releases` section for details.
:term:`Metadata`
A key element of the Yocto Project is the Metadata that
@@ -298,6 +298,12 @@ universal, the list includes them just in case:
:yocto_git:`yocto-kernel-cache </yocto-kernel-cache>`
Git repository.
+ :term:`Mixin`
+ A :term:`Mixin` layer is a layer which can be created by the community to
+ add a specific feature or support a new version of some package for an
+ :term:`LTS` release. See the :ref:`ref-long-term-support-releases`
+ section for details.
+
:term:`OpenEmbedded-Core (OE-Core)`
OE-Core is metadata comprised of
foundational recipes, classes, and associated files that are meant to
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index fd8579a043..32359291b2 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -3959,16 +3959,28 @@ system and gives an overview of their function and contents.
:term:`INIT_MANAGER`
Specifies the system init manager to use. Available options are:
- - ``sysvinit`` - System V init (default for poky)
- - ``systemd`` - systemd
- - ``mdev-busybox`` - mdev provided by busybox
- - ``none`` - no init manager
+ - ``sysvinit``
+ - ``systemd``
+ - ``mdev-busybox``
+
+ With ``sysvinit``, the init manager is set to
+ :wikipedia:`SysVinit <Init#SysV-style>`, the traditional UNIX init
+ system. This is the default choice in the Poky distribution, together with
+ the Udev device manager (see the ":ref:`device-manager`" section).
+
+ With ``systemd``, the init manager becomes :wikipedia:`systemd <Systemd>`,
+ which comes with the :wikipedia:`udev <Udev>` device manager.
+
+ With ``mdev-busybox``, the init manager becomes the much simpler BusyBox
+ init, together with the BusyBox mdev device manager. This is the simplest
+ and lightest solution, and probably the best choice for low-end systems
+ with a rather slow CPU and a limited amount of RAM.
More concretely, this is used to include
``conf/distro/include/init-manager-${INIT_MANAGER}.inc`` into the global
- configuration. You can have a look at the ``conf/distro/include/init-manager-*.inc``
- files for more information, and also the
- ":ref:`dev-manual/init-manager:selecting an initialization manager`"
+ configuration. You can have a look at the
+ :yocto_git:`meta/conf/distro/include/init-manager-*.inc </poky/tree/meta/conf/distro/include>`
+ files for more information, and also the ":ref:`init-manager`"
section in the Yocto Project Development Tasks Manual.
:term:`INITRAMFS_DEPLOY_DIR_IMAGE`
@@ -4346,6 +4358,20 @@ system and gives an overview of their function and contents.
You can register custom kernel image types with the
:ref:`ref-classes-kernel` class using this variable.
+ :term:`KERNEL_DANGLING_FEATURES_WARN_ONLY`
+ When kernel configuration fragments are missing for some
+ :term:`KERNEL_FEATURES` specified by layers or BSPs,
+ building and configuring the kernel stops with an error.
+
+ You can turn these errors into warnings by setting the
+ following in ``conf/local.conf``::
+
+ KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
+
+ You will still be warned that runtime issues may occur,
+ but at least the kernel configuration and build process will
+ be allowed to continue.
+
:term:`KERNEL_DEBUG_TIMESTAMPS`
If set to "1", enables timestamping functionality during building
the kernel. The default is "0" to disable this for reproducibility
@@ -7334,9 +7360,9 @@ system and gives an overview of their function and contents.
:term:`SERIAL_CONSOLES`
Defines a serial console (TTY) to enable using
- `getty <https://en.wikipedia.org/wiki/Getty_(Unix)>`__. Provide a
- value that specifies the baud rate followed by the TTY device name
- separated by a semicolon. Use spaces to separate multiple devices::
+ :wikipedia:`getty <Getty_(Unix)>`. Provide a value that specifies the
+ baud rate followed by the TTY device name separated by a semicolon.
+ Use spaces to separate multiple devices::
SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
@@ -7578,6 +7604,32 @@ system and gives an overview of their function and contents.
(+ 0.07\% with the tested image), compared to just enabling
:term:`SPDX_INCLUDE_SOURCES`.
+ :term:`SPDX_CUSTOM_ANNOTATION_VARS`
+ This option allows to associate `SPDX annotations
+ <https://spdx.github.io/spdx-spec/v2.3/annotations/>`__ to a recipe,
+ using the values of variables in the recipe::
+
+ ANNOTATION1 = "First annotation for recipe"
+ ANNOTATION2 = "Second annotation for recipe"
+ SPDX_CUSTOM_ANNOTATION_VARS = "ANNOTATION1 ANNOTATION2"
+
+ This will add a new block to the recipe ``.sdpx.json`` output::
+
+ "annotations": [
+ {
+ "annotationDate": "2023-04-18T08:32:12Z",
+ "annotationType": "OTHER",
+ "annotator": "Tool: oe-spdx-creator - 1.0",
+ "comment": "ANNOTATION1=First annotation for recipe"
+ },
+ {
+ "annotationDate": "2023-04-18T08:32:12Z",
+ "annotationType": "OTHER",
+ "annotator": "Tool: oe-spdx-creator - 1.0",
+ "comment": "ANNOTATION2=Second annotation for recipe"
+ }
+ ],
+
:term:`SPDX_INCLUDE_SOURCES`
This option allows to add a description of the source files used to build
the host tools and the target packages, to the ``spdx.json`` files in
@@ -8265,12 +8317,10 @@ system and gives an overview of their function and contents.
will be silently ignored.
:term:`SYSVINIT_ENABLED_GETTYS`
- When using
- :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
+ When using :ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
specifies a space-separated list of the virtual terminals that should
- run a `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
- (allowing login), assuming :term:`USE_VT` is not set to
- "0".
+ run a :wikipedia:`getty <Getty_(Unix)>` (allowing login), assuming
+ :term:`USE_VT` is not set to "0".
The default value for :term:`SYSVINIT_ENABLED_GETTYS` is "1" (i.e. only
run a getty on the first virtual terminal).
@@ -9177,9 +9227,8 @@ system and gives an overview of their function and contents.
:term:`USE_VT`
When using
:ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,
- determines whether or not to run a
- `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
- virtual terminals in order to enable logging in through those
+ determines whether or not to run a :wikipedia:`getty <Getty_(Unix)>`
+ on any virtual terminals in order to enable logging in through those
terminals.
The default value used for :term:`USE_VT` is "1" when no default value is
diff --git a/poky/documentation/set_versions.py b/poky/documentation/set_versions.py
index efaebe43b5..354dabe618 100755
--- a/poky/documentation/set_versions.py
+++ b/poky/documentation/set_versions.py
@@ -26,8 +26,8 @@ ourversion = None
if len(sys.argv) == 2:
ourversion = sys.argv[1]
-activereleases = ["langdale", "kirkstone", "dunfell"]
-devbranch = "mickledore"
+activereleases = ["mickledore", "kirkstone", "dunfell"]
+devbranch = "nanbield"
ltsseries = ["kirkstone", "dunfell"]
# used by run-docs-builds to get the default page
@@ -36,6 +36,7 @@ if ourversion == "getlatest":
sys.exit(0)
release_series = collections.OrderedDict()
+release_series["nanbield"] = "4.3"
release_series["mickledore"] = "4.2"
release_series["langdale"] = "4.1"
release_series["kirkstone"] = "4.0"
@@ -66,6 +67,7 @@ release_series["laverne"] = "0.9"
bitbake_mapping = {
+ "nanbield" : "2.6",
"mickledore" : "2.4",
"langdale" : "2.2",
"kirkstone" : "2.0",