Release 5.1 (styhead)

Migration notes for 5.1 (styhead)

This section provides migration information for moving to the Yocto Project 5.1 Release (codename “styhead”) from the prior release.

WORKDIR changes

S = ${WORKDIR} no longer supported

If a recipe has S set to be WORKDIR, this is no longer supported, and an error will be issued. The recipe should be changed to:

S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"

Any WORKDIR references where files from SRC_URI are referenced should be changed to S. These are commonly in do_compile, do_compile, do_install and LIC_FILES_CHKSUM.

WORKDIR references in recipes

WORKDIR references in other recipes need auditing. If they reference files from SRC_URI, they likely need changing to UNPACKDIR. These are commonly in do_compile and do_install for things like service or configuration files. One unusual case is ${WORKDIR}/${BP} which should probably be set to ${S}.

References to ../ in LIC_FILES_CHKSUM or elsewhere may need changing to UNPACKDIR. References to WORKDIR in sed commands are usually left as they are.

General notes

Files from do_unpack now unpack to WORKDIR/sources-unpack/ rather than WORKDIR/.

If S is set to a subdirectory under WORKDIR and that subdirectory exists in sources-unpack after do_unpack runs, it is moved to WORKDIR. This means that S = "${WORKDIR}/${BP}", S = "${WORKDIR}/git" and also deeper paths continue to work as expected without changes. We cannot use symlinks to do this as it breaks autotools based recipes. Keeping all sources under sources-unpack wasn’t considered as it meant more invasive recipes changes. The key objective was separating the do_unpack task output from WORKDIR.

Previously, S was always created but after the recent changes it is no longer the case. This means the check in do_unpack_qa triggers where S is not created by a recipe while it didn’t happen before. This can require to add an S definition to a recipe that only uses file:// SRC_URI entries. To be consistent, the following pattern is recommended:

S = "${WORKDIR}/sources"
UNPACKDIR = "${S}"

Building C files from UNPACKDIR without setting S to point at it does not work as the debug prefix mapping doesn’t handle that.

devtool and recipetool have been updated to handle this and their support for S = WORKDIR and oe-local-files has been removed.

Supported kernel versions

The OLDEST_KERNEL setting is still “5.15” 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:

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

See all supported distributions.

Go language changes

systemd changes

Recipe changes

Deprecated variables

Removed variables

The following variables have been removed:

Removed recipes

The following recipes have been removed in this release:

Removed classes

No classes have been removed in this release.

QEMU changes

Miscellaneous changes