Release notes for 6.0 (wrynose)
This document lists new features and enhancements for the Yocto Project 6.0 Release (codename “wrynose”). For a list of breaking changes and migration guides, see the Migration 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:
New Features / Enhancements in 6.0
Linux kernel 6.18, gcc 15.2, glibc 2.43, LLVM 22.1.2, and over 300 other recipe upgrades
Minimum Python version required on the host: 3.9.
New variables:
The OPENSSH_HOST_KEY_DIR variable can be used to specify the directory where OpenSSH host keys are stored. The default value is
/etc/ssh(addd80d)The OPENSSH_HOST_KEY_DIR_READONLY_CONFIG variable can be used to specify the directory where OpenSSH host keys are stored when the device uses a read-only filesystem. The default value is
/var/run/ssh(addd80d)The SPDX_INCLUDE_KERNEL_CONFIG can be set to “1” to export the Linux kernel configuration (
CONFIG_*parameters) into the SPDX document when using the create-spdx class (228a968)The SPDX_INCLUDE_PACKAGECONFIG variable can be set to “1” to export a recipe’s PACKAGECONFIG features (enabled/disabled) into the SPDX document when using the create-spdx class (228a968)
The SPDX_PACKAGE_URL allows specifying a space-separated list of Package URLs (purls) for the software Package when using the create-spdx class (874b2d3)
The SPDX_GIT_PURL_MAPPINGS variable allows mapping domain names to PURLs (Package URLs) in SPDX documents (9f1825e)
The SPDX_CONCLUDED_LICENSE allows specifying the
hasConcludedLicenseobject of individual SBOM packages when using the create-spdx class (bb21c6a)The FIT_MKIMAGE_EXTRA_OPTS variable allows passing extra options to the
mkimagecommand when creating a FIT image with the kernel-fit-image class (d925d67)The FIT_CONF_MAPPINGS variable allows mapping extra configurations to existing ones or rename an existing configuration in FIT images created with the kernel-fit-image class (e30f809)
The UBOOT_CONFIG_FRAGMENTS and UBOOT_FRAGMENTS allow supplying additional configuration fragments to the existing U-Boot configuration. See the definition of the variables for more information, and the documentation of the uboot-config class (9e96d3d)
The IMAGE_EXTRA_PARTITION_FILES allows specifying extra files from the deploy directory (DEPLOY_DIR_IMAGE) to install in a WIC partition created with the
extra_partitionplugin (e152607)The FIT_LOADABLES, FIT_LOADABLE_FILENAME, FIT_LOADABLE_TYPE, FIT_LOADABLE_ARCH, FIT_LOADABLE_OS and FIT_LOADABLE_LOADADDRESS variables can be used to specify arbitrary
loadablesin a FIT image (2535427)
Kernel-related changes:
kernel-fit-image: Support arbitrary loadables (2535427)
kernel-yocto: Allow enabling Rust in the kernel by adding
rustto the KERNEL_FEATURES (for Linux kernel recipes inheriting this class) (6719ed4)Disable ccache support when Linux kernel Rust support is enabled (d80d006)
New core recipes:
libconfig: Import recipe from https://git.openembedded.org/meta-openembedded/, needed by one of the Mesa recipes (1a0196a)python3-sphinxcontrib-svg2pdfconverter: Used for the generation of the Yocto Project documentation (f3f0019)python3-pyzstd: Import from meta-python, needed by theukifytool of systemd v258 (88a2713)python3-uv-build: This recipe adds theuvPython build backend, required bypython3-cryptography(0880cd2)blueprint-compiler: Add the recipe as it became a dependency of theepiphanyrecipe after its upgrade to 49.2 (4212392)python3-sbom-cve-check: New recipe for building and using sbom-cve-check, a lightweight SBOM CVE analysis tool (0fdacec)python3-shacl2code,python3-hatch-build-scripts,python3-spdx-python-model: Added as dependencies ofpython3-sbom-cve-check(4862221, 41591af, a83eaca)libfyaml: Added as a dependency ofappstream(b8b7b58)meta-world-recipe-sbom: Building this recipe will produce SBOM documents for each recipe present in the build environment, using the create-spdx class. This is different from the image SBOM which can also be generated using the create-spdx class after building an image. See Creating a Software Bill of Materials for more information (d999ac4)python3-kirk: The Kirk application is a fork ofrunltp-ngand became the official LTP tests executor (c33fd4e)wic: This recipe builds the WIC command-line tool. This used to be part of OpenEmbedded-Core (OE-Core) but is now externally managed (25ca1cb, b9e2a2f)
New core classes:
kernel-yocto-rust: Adds the required dependencies to build the Rust components of the Linux kernel (6c90097)
module-rust: Support for building out-of-tree Rust kernel modules. An example recipe using this class can be found in meta-skeleton/recipes-kernel/rust-out-of-tree-module (76fd22f, 76fd22f)
sbom-cve-check: Class for post-build CVE analysis of an image, which uses the sbom-cve-check tool internally (8ef22ad)
sbom-cve-check-recipe: Class for post-build CVE analysis of recipes (using the recipe SBOM, meaning building the software provided by the recipe is not needed), which uses the sbom-cve-check tool internally (e2518b1)
Global configuration changes:
base-passwd: Add aclockgroup as systemd version v258 introduces this group to enable applications like linuxptp to open clocks without root privileges (aad8493)bitbake.conf:remove DEBUG_PREFIX_MAP from TARGET_LDFLAGS (1797741)
The default definition of TARGET_LDFLAGS used to contain the value of DEBUG_PREFIX_MAP, to fix binary reproducibility issues. This was no longer needed after the originating GCC bug was fixed (1797741)
Switch BB_SIGNATURE_HANDLER to
OEEquivHashand BB_HASHSERVE toautoby default (5596ea1, 4a38840)
The uninative class is now enabled by default. This allows reuse of native sstate built on one distro on another (722897f)
The no-static-libs.inc file, disabling most static libraries in various recipes, is now included by default in the default distro setup (appearing as the
nodistroDISTRO) (03fc931)The security_flags.inc file, adding various security related flags to the default compiler and linker, is now included by default in the default distro setup (appearing as
nodistroDISTRO) (4c2d64c)The yocto-space-optimize.inc file, adding various space optimization tweaks, is now included by default in the default distro setup (appearing as
nodistroDISTRO) (175fcf9)
Architecture-specific changes:
QEMU /
runqemuchanges:qemuboot`: Make the tap interface nameserver configurable through QB_TAP_NAMESERVER (0e8c258)qemu: Disable thelibkeyutilsfeature (30cc9f5)runqemu-extract-sdk: Support thetar.zstformat (650bb45)qemurunner: Improveqmpmodule detection (a7386d0)runqemu: Support.tar.zst,.tar,xz,.tarrootfs archive types (3a6172f)runqemu: Allow VNC to be used as a fallback when there is noDISPLAYset (df9e9f3)
Documentation changes:
The documentation build now fetches the list of active and inactive version of the documentation from the remote releases.json file. This also applies to the BitBake documentation.
Go changes:
Rust changes:
Wic Image Creator changes:
SDK-related changes:
Testing-related changes:
ptest support was added for the following recipes:
selftests: Use SHA256 keys for RPM tests (692919b)oeqa: Open JSON files to parse in a context manager (e96baf5)resulttool: Add ptest support to the JUnit output format (2abe2d7)do_testimage: Print last lines of kernel log on test fail (fea3c44)
reproducible: Use the jQuery CDN instead ofjquery-native(d3ee549)selftest: Test installation of recipes with complex packaging (6f3aab6)Add
test_sdk_runqemuto test the execution ofrunqemufrom an SDK (7fbb281)Add tests for Rust support in the Linux kernel (01ea2b2, 10dff9f)
Replace
runltpwithkirk, as it became the new official LTP test executor (c1e5ed4)WIC related tests were updated after wic was moved to its own repository and is externally managed (b9e2a2f)
Utility script changes:classes
bitbake-config-build: It is now possible to disable all fragments starting with a prefix by issuingbitbake-config-build disable-fragment <prefix>/(573695d)recipetool: Support PEP639-variant of license key in Pythonpyproject.tomlfiles (9d1a7bb)create-pull-request: Keep commit hash to be pulled in cover email (c78f5ae)yocto-check-layer: Add messages intest_readmeassertions (9fe883c)improve_kernel_cve_report:
BitBake changes:
bitbake-layers:Add a
--show-variantsoption to theshow-recipessubcommand to display BBCLASSEXTEND variants (353d5e9)Fix the branch detection method of
layerindex-fetch(af9dd01)
bitbake-setup:Implement symlinking local sources into builds with the
--use-local-sourceoption of theinitsubcommand (ed5a3a0)Correct several scenarios in layer updates (aa15cc7)
Source in the
git-remotesection can now be specified more simply with theuriproperty, instead of theremotesproperty (7941a5d). For example:"bitbake": { "git-remote": { "uri": "https://git.openembedded.org/bitbake", "branch": "master", "rev": "master" } }
Use the internal registry if run from a Git checkout, from a remote BitBake repository otherwise (675e907)
Fragments passed in the
oe-fragments-one-ofproperty can now contain descriptions (29f2cee)Improve the readability of choices during the bitbake-setup init command (d970063)
Enable coloring of the diff outputs when using the bitbake-setup status or bitbake-setup update commands
The bitbake-setup update now behaves in a non-destructive way: local commits and modifications to layers are taken into account, and the tool will either stop or warn the user that the update is possible or not (2ee3a19)
Share Shared State by default between builds, by adding a definition for SSTATE_DIR and BB_HASHSERVE_DB_DIR in the
site.conffile created by bitbake-setup init (a70c336)Generate config files for VSCode by default, unless
--no-init-vscodeis passed to bitbake-setup init (92fd721)
The
unpack()function (the one containing the logic of the do_unpack task), can now take anupdateargument to allow updating a Git repository in-place rather than deleting it and re-creating it. An alias function namedunpack_update()was created for this unpack mode. See The Non-Destructive Update (unpack_update) for more information (e7d5e15)cooker: Use BB_HASHSERVE_DB_DIR as hash server database location. If unset, the existing behavior is preserved (b339d05)bitbake-getvar: Show close matches when no providers are found (1f8fa7c)The
GIT_CONFIG_GLOBALenvironment variable will now be taken into account by the Git fetcher, to allow passing a different set of Git configuration options when fetching Git repositories (4c37844)
Packaging changes:
Clang/LLVM related changes:
SPDX-related changes:
Output SBOM documents now include recipe metadata (d999ac4)
spdx30_tasks: Fix SPDX_CUSTOM_ANNOTATION_VARS implementation (52ab3b6)kernel: Add a task to export the kernel configuration to SPDX (228a968)
Add support for exporting the PACKAGECONFIG to SPDX (7ec61ac)
Add suport for package URLs (PURLs) through SPDX_PACKAGE_URL (874b2d3)
create-spdx-2.2: Add CVEs in CVE_CHECK_IGNORE to the list of fixed CVEs in the output SBOM (f852522)The create-spdx class used to include VEX statements in the SPDX documents tied to each packages. This is no longer the case, as these statements are now found in the SPDX documents for recipes directly. This was done to decrease the duplication of these statements for packages that were generated by the same recipe.
The output SPDX document for an image recipe will still include the VEX statements, as the SPDX document for the image also include the recipe SPDX metadata.
The inclusion of VEX statements in SPDX documents can be controlled with the SPDX_INCLUDE_VEX variable (d999ac4)
devtoolchanges:Patchtest-related changes:
insane / sanity classes related changes:
Reject TMPDIR containing redundant slashes to avoid errors in executions of do_populate_sysroot (3e72ebe)
sanity: Warn when the Shared State cache directory (SSTATE_DIR) is outside of the build directory (BUILDDIR), but the Hash Equivalence database is inside it (491de0d)
Security changes:
A new document was added to the Yocto Project documentation: Yocto Project Security Reference. It is intended to document how to report vulnerabilities to the Yocto Project security team.
cve-check-related changes:
New PACKAGECONFIG options for individual recipes:
curl:schannelgstreamer1.0-plugins-good:qt6libinput:lua,libwacom,mtdevlibrepo:sequoiamesa:expat,zlibopenssl:legacyopkg:acl,xattrorc:hotdocpython3:freethreading(experimental, see c569901)python3-cryptography:legacy-openssl
systemd related changes:
Package
ukifyseparately, with thesystemd-ukifypackage name (e924274)
U-Boot related changes:
uboot-config: Add support for generating the U-Boot initial environment in binary format using UBOOT_INITIAL_ENV_BINARY (cf11b14)
A new way of specifying multiple U-Boot configurations has been added (cd9e730). See U-Boot configuration flow changes (ref-classes-uboot-config)
Miscellaneous changes:
curl: EnsureCURL_CA_BUNDLEfrom host environment is respected (545e43a)weston: Add PipeWire as runtime dependency whenpipewireis part of PACKAGECONFIG (9f52867)uki: Use basename of device trees available via KERNEL_DEVICETREE (27a7fbb)
rpcbind: Set the owner of/run/rpcbindtorpc(80e4289)udev-extraconf: Splitautomountandautonetinto seperate packages (udev-extraconf-automountandudev-extraconf-autonet) (08662d7)e2fsprogs: Fix a bug for files larger than 2GB (683a1e7)mesa: Add support for thevirtio,gfxstream,hasvkVulkan drivers (8e7ffdc, 3b56f14)mesa: Drop VDPAU remnants in the recipe after upstream support was removed (3b05f58)cross: Propagate dependencies to
outhash, improving hash equivalence (267b651)run-postinsts: Propagate exit status to therun-postinsts.servicesystemd service (7f74d88)freetype: Use meson instead of autotools* (7395e4f)wpa-supplicant:overlayfs: Remove helper unit (623c20f)kea: Replacekeactrlwith kea daemons (kea-dhcp*) in initscripts (7f9d929), and removekeactrlfrom the recipe (08c3877)initramfs-framework:perl: Providepod2man(in the recipe’s PROVIDES definition). This is used by many other recipes to produce man pages. This allows existing recipes to explicitly depend onpod2man-nativeto produce man pages (1d1e55d)build-sysroots: Add sysroot tasks to default build and remove warning (e73f150)Licenses and manifests are now deployed in the SDK when setting COPY_LIC_DIRS and/or COPY_LIC_MANIFEST, for both host and target sysroots (f757ae4)
openssl: Disable TLS 1.0/1.1 by default (d5501e7)python3-cryptography: Disablelegacy-opensslfeature by default (1acd199)openssl: Add support for config snippet includes. This can be done by installing extra configuration files in${sysconfdir}/ssl/openssl.cnf.d/(34bafcf)busybox:Enable SELinux support if DISTRO_FEATURES contains
selinux(c544f12)Do not build SUID binary without an applet (1406f95)
coreutils:killanduptimeare no longer provided by the recipe (cedeb95)license_image.bbclass: Report all packages with incompatible license (when using INCOMPATIBLE_LICENSE) (57fe3e4)python3: Package all of the compression module intopython3-compression(5f34680)gobject-introspection: Disable cache for the scanner during the do_compile task (GI_SCANNER_DISABLE_CACHE=1), to fix an intermittent build failure (2b55dd1)archiver: Don’t try to preserve all attributes when copying files (6e83136)
Known Issues in 6.0
Recipe License changes in 6.0
The following changes have been made to the LICENSE values set by recipes:
Recipe |
Previous value |
New value |
|---|---|---|
|
Previous value |
New value |
Security Fixes in 6.0
The following CVEs have been fixed:
Recipe |
CVE IDs |
|---|---|
|
CVE-xxx-xxxx, … |
Recipe Upgrades in 6.0
The following recipes have been upgraded:
Recipe |
Previous version |
New version |
|---|---|---|
|
Previous version |
New version |
Contributors to 6.0
Thanks to the following people who contributed to this release: