Migration notes for 6.0 (wrynose)

This section provides migration information for moving to the Yocto Project 6.0 Release (codename “wrynose”) from the prior release. For a list of new features and enhancements, see the Release notes for 6.0 (wrynose) section.

The 6.0 (wrynose) release is the new LTS release after 5.0 (scarthgap). If you are migrating from the 5.0 version, be sure to read the previous migration guides:

See also the list of new features and enhancements of the previous releases:

Supported kernel versions

The OLDEST_KERNEL setting is XXX in this release, meaning that out the box, older kernels are not supported. See 4.3 migration notes for details.

Supported distributions

Compared to the previous releases, running BitBake is supported on new GNU/Linux distributions:

  • XXX

On the other hand, some earlier distributions are no longer supported:

  • XXX

See all supported distributions.

BitBake fetcher removals

The following BitBake fetchers have been disabled or removed:

  • The npm and npmsw (NPM) fetchers were disabled due to security concerns (355cd22) and lack of maintenance.

    All associated tests have been disabled.

  • Support for the Bazaar fetcher was dropped (8e057d5).

  • Support for the OSC fetcher was dropped (99497c1).

  • Support for the CVS fetcher was dropped (5427500).

Default INIT_MANAGER definition changed to systemd

The default definition of INIT_MANAGER in the defaultsetup.conf file was changed from none to systemd.

This means that users of the default distro setup (appearing as the nodistro DISTRO) will be using systemd as the default init manager.

This does not change the default init manager of the Poky distribution, which remains SysVinit.

Reverting to SysVinit can be done by specifying the INIT_MANAGER in your own DISTRO configuration file:

INIT_MANAGER = "sysvinit"

See commit 0b4061c for more information.

Changes to the list of DISTRO_FEATURES enabled by default

The following DISTRO_FEATURES are now enabled by default in meta/conf/bitbake.conf:

  • multiarch: Enable building applications with multiple architecture support.

  • opengl: Include the Open Graphics Library, which is a cross-language multi-platform application programming interface used for rendering two and three-dimensional graphics.

  • ptest: Enable building the package tests where supported by individual recipes. To add the built ptest packages to the image, add ptest-pkgs to IMAGE_FEATURES in your image recipe.

  • vulkan: Include support for the Vulkan API.

  • wayland: Include the Wayland display server protocol and the library that supports it.

See commit 2e1e7c8 for more information.

native and cross classes DEBUG_BUILD change

Previously, setting DEBUG_BUILD to “1” globally would prevent the OpenEmbedded Build System from stripping target, native and cross binaries. This was changed so that only target binaries are stripped when this variable is set.

This change can be reverted by setting the two following lines in a configuration file:

INHIBIT_SYSROOT_STRIP:class-cross = "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}"
INHIBIT_SYSROOT_STRIP:class-native = "${@oe.utils.vartrue('DEBUG_BUILD', '1', '', d)}"

See commit 3c29afe for more information.

U-Boot configuration flow changes (uboot-config)

Declaring multiple U-Boot configurations used to be entirely defined by one UBOOT_CONFIG variable flag per configuration, e.g.:

UBOOT_CONFIG ??= "foo bar"
UBOOT_CONFIG[foo] = "config,images,binary"
UBOOT_CONFIG[bar] = "config2,images2,binary2"

This has now been split into more variable flags, e.g.:

UBOOT_CONFIG ??= "foo bar"
UBOOT_CONFIG[foo] = "config"
UBOOT_CONFIG[bar] = "config2"

UBOOT_CONFIG_IMAGE_FSTYPES[bar] = "fstype"

UBOOT_CONFIG_BINARY[foo] = "binary"

UBOOT_CONFIG_MAKE_OPTS[foo] = "FOO=1"
UBOOT_CONFIG_MAKE_OPTS[bar] = "BAR=1"

UBOOT_CONFIG_FRAGMENTS[foo] = "foo.fragment"

See the documentation of the uboot-config for full details.

While the previous legacy approach is still supported, it will be removed in for the next release. Users are advised to migrate to the new approach.

See commit cd9e730 for more information.

Note

Single configuration builds have not changed and are still declared using the following statements:

UBOOT_MACHINE = "config"
UBOOT_BINARY = "u-boot.bin"

Rust language changes

systemd changes

Support for SysVinit compatibility in systemd was dropped

Support for the SysVinit compatibility in systemd was dropped.

This is due to recent announcements in systemd which is planning to drop support for the SysVinit compatibility.

This means that the systemd and sysvinit distro features cannot be used together anymore.

Users are advised to switch to one init manager or the other entirely.

See commit d9ec9e2 for more information.

Recipe changes

Removed variables

The following variables have been removed:

Removed recipes

The following recipes have been removed in this release:

  • jquery: The last users of this recipe were the reproducible tests, but have been reworked to use the jQuery CDN instead with d3ee549 (See aae793a)

  • systemd-compat-units: Dropped as a consequence of removing SysVinit support in systemd

Removed PACKAGECONFIG options

Removed classes

The following classes have been removed in this release:

  • oelint: remove as most of the checks done by this class are done in other areas of code now, making this class obsolete.

Removed features

The following features have been removed in this release:

Miscellaneous changes

  • meson: drop meson_do_qa_configure as it was non-functional (0514b45)