Migration notes for 6.1 (blacksail)

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

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.

useradd: replace GROUPMEMS_PARAM assignments to USERMOD_PARAMS

The groupmems command is removed from the shadow recipe starting from version 4.20. The same functionality provided by groupmems can be achieved with the usermod command.

Assignments made to the GROUPMEMS_PARAM variable can be converted to use USERMOD_PARAMS, by replacing:

GROUPMEMS_PARAM:${PN} = "--add user --group group1; \
                         --add user --group group2"

With:

USERMOD_PARAM:${PN} = "--append --groups group1 user; \
                       --append --groups group2 user"

Or written more simply as:

USERMOD_PARAM:${PN} = "--append --groups group1,group2 user"

See (b8da733) for more details.

Removal of oe.utils.all_distro_features() and oe.utils.any_distro_features()

The oe.utils.all_distro_features() and oe.utils.any_distro_features() functions have been removed from OpenEmbedded-Core (OE-Core).

Those can be replaced by bb.utils.contains() and bb.utils.contains_any() calls:

oe.utils.all_distro_features("x y", ...) -> bb.utils.contains("DISTRO_FEATURES", "x y", ...)

And:

oe.utils.any_distro_features("x y", ...) -> bb.utils.contains_any("DISTRO_FEATURES", "x y", ...)

LICENSE is now a SPDX License Expression

The LICENSE variable is now a SPDX License Expression instead of the custom license expressions that have been used historically.

The changes required for the new expressions are as follows:

  1. The & operator is replaced with AND

  2. The | operator is replaced with OR

  3. Any license value which is not a valid SPDX License Expression is an error.

  4. Custom (non SPDX License Identifier) licenses are still allowed, as long as they are prefixed with LicenseRef-. The behavior of looking for the license text in LICENSE_PATH (with or without the LicenseRef- prefix) or NO_GENERIC_LICENSE is unchanged, and may still be used.

  5. CLOSED as a license is deprecated and will issue a warning. This license is effectively “no license” (usually meaning e.g. “All rights reserved”), but a more precise definition is to provide some sort of actual license text using a custom license. This provides a more consistent definition of the license text, since the meaning of “no license” may vary by jurisdiction. Keep in mind that you can still have a common license file in LICENSE_PATH and refer to it with a LicenseRef- license. Note that when you do this, you will also need to provide a LIC_FILES_CHKSUM value to point to your license file.

  6. The generic PD (Public Domain) license is no longer allowed (since it is not a valid SPDX License Identifier). Additionally, the meaning of “Public Domain” varies by jurisdiction, so leaving the exact license text unspecified is not recommended. Instead, either find a matching SPDX license (The SPDX License Check website can be useful here), or use a LicenseRef- with NO_GENERIC_LICENSE to specify the actual license text.

  7. The WITH operator should now be used to describe an exception to a license, instead of a bespoke license identifier. For example, the old bespoke license Apache-2.0-with-LLVM-exception would become Apache-2.0 WITH LLVM-exception. For a list of the valid license exceptions, see SPDX License Exception.

  8. Because of the change to use WITH instead of bespoke licenses, there is a change in how INCOMPATIBLE_LICENSE works. Anything listed in this variable will match a single license (unchanged), but it will also match the left-hand (license) side of a WITH expression. To allow a license with a specific SPDX License Exception, the SPDX license exception must be listed in INCOMPATIBLE_LICENSE_EXCEPTIONS.

    Practically speaking, the place where this comes up the most is when attempting to exclude GPLv3 code using INCOMPATIBLE_LICENSE. Previously, this would have allowed any GPLv3-with-exception license, since they were bespoke licenses that did not match the GPL-3.0* LGPL-3.0* expansion. Now, however, the licenses will match because they are e.g. GPL-3.0-or-later WITH exception. As such, any exceptions to the GPLv3 that should be allowed must be listed in INCOMPATIBLE_LICENSE_EXCEPTIONS.

Currently, the older syntax for license expressions is still parsed and automatically converted to a SPDX License Expression, but a warning is issued when this occurs. This support will eventually be removed and the only valid values for these variables will be SPDX License Expression.

Removed recipes

  • libdazzle, libhandy: no longer a dependency of the epiphany recipe, moved to meta-gnome (in meta-openembedded) (32d91b6)

  • libpcre: obsolete project now replaced by libpcre2 (057cccd)

Removed PACKAGECONFIG options

Removed classes

Miscellaneous changes