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:

  • Kernel-related changes:

  • 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 the ukify tool of systemd v258 (88a2713)

    • python3-uv-build: This recipe adds the uv Python build backend, required by python3-cryptography (0880cd2)

    • blueprint-compiler: Add the recipe as it became a dependency of the epiphany recipe 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 of python3-sbom-cve-check (4862221, 41591af, a83eaca)

    • libfyaml: Added as a dependency of appstream (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 of runltp-ng and 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:

  • Global configuration changes:

  • Architecture-specific changes:

  • QEMU / runqemu changes:

    • qemuboot`: Make the tap interface nameserver configurable through QB_TAP_NAMESERVER (0e8c258)

    • qemu: Disable the libkeyutils feature (30cc9f5)

    • runqemu-extract-sdk: Support the tar.zst format (650bb45)

    • qemurunner: Improve qmp module detection (a7386d0)

    • runqemu: Support .tar.zst, .tar,xz, .tar rootfs archive types (3a6172f)

    • runqemu: Allow VNC to be used as a fallback when there is no DISPLAY set (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:

    • go: Disable workspaces when building (GOWORK="off") (c52c5e8)

    • meta-go-toolchain: Disable support for the riscv32 and ppc32 architectures, as this was not supported (f554071)

  • Rust changes:

    • Enable dynamic linking with llvm. This allows dynamically linking to libLLVM.so instead of linking statically (74ba238)

    • Install Rust library sources for make rustavailable support (2912ca3)

    • Enable dynamic LLVM linking by default (d0671c3)

  • Wic Image Creator changes:

    • wic/engine: Fix copying directories into wic image with ext* partitions (1ed38af)

    • Re-implement sector-size support (b50d6de)

  • 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 of jquery-native (d3ee549)

    • selftest: Test installation of recipes with complex packaging (6f3aab6)

    • Add test_sdk_runqemu to test the execution of runqemu from an SDK (7fbb281)

    • Add tests for Rust support in the Linux kernel (01ea2b2, 10dff9f)

    • Replace runltp with kirk, 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 issuing bitbake-config-build disable-fragment <prefix>/ (573695d)

    • recipetool: Support PEP639-variant of license key in Python pyproject.toml files (9d1a7bb)

    • buildhistory:

    • create-pull-request: Keep commit hash to be pulled in cover email (c78f5ae)

    • yocto-check-layer: Add messages in test_readme assertions (9fe883c)

    • improve_kernel_cve_report:

      • Sort kernel_compiled_files (682e5be)

      • Correct the description for fixed version (b76da20)

      • Update data if CVE exists (9ea6d92)

      • Validate that cve details field exists (80ff490)

  • BitBake changes:

    • bitbake-layers:

      • Add a --show-variants option to the show-recipes subcommand 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-source option of the init subcommand (ed5a3a0)

      • Convert print() calls to use a BitBake logger (6e511d0)

      • Correct several scenarios in layer updates (aa15cc7)

      • Source in the git-remote section can now be specified more simply with the uri property, instead of the remotes property (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-of property 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.conf file created by bitbake-setup init (a70c336)

      • Generate config files for VSCode by default, unless --no-init-vscode is passed to bitbake-setup init (92fd721)

    • The unpack() function (the one containing the logic of the do_unpack task), can now take an update argument to allow updating a Git repository in-place rather than deleting it and re-creating it. An alias function named unpack_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_GLOBAL environment 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:

    • compiler-rt:

      • Remove the need to depend on libgcc (f504b6b)

      • Always build C runtime (crt) files (56fe42a)

    • libcxx: Remove GNU runtime from dependencies (8034509)

    • libcxx/compiler-rt: Add support for llvm-libgcc, a drop-in replacement for libgcc and crt files (ed02230)

  • 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)

  • devtool changes:

    • ide-sdk:

      • Find bitbake-setup’s init-build-env first, and oe-init-build-env if not found (6ab7e9e)

      • Add gdbserver attach mode support (1191710)

      • Support GDB pretty-printing for C++ STL types (a69e2ba)

      • Support kernel module development (aaf15d6)

    • Add new patches in correct order when running devtool finish (fa7877d)

    • Prevent devtool modify -n from corrupting Linux kernel Git repos (d383ea3)

  • Patchtest-related changes:

  • insane / sanity classes related changes:

  • 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:

    • cve-update-nvd2-native: Use maximum CVSS score when extracting it from multiple sources (4f6192f)

    • Escape special characters in CPE 2.3 strings (9dd9c00)

  • New PACKAGECONFIG options for individual recipes:

    • curl: schannel

    • gstreamer1.0-plugins-good: qt6

    • libinput: lua, libwacom, mtdev

    • librepo: sequoia

    • mesa: expat, zlib

    • openssl: legacy

    • opkg: acl, xattr

    • orc: hotdoc

    • python3: freethreading (experimental, see c569901)

    • python3-cryptography: legacy-openssl

  • systemd related changes:

    • Package ukify separately, with the systemd-ukify package name (e924274)

  • U-Boot related changes:

  • Miscellaneous changes:

    • curl: Ensure CURL_CA_BUNDLE from host environment is respected (545e43a)

    • weston: Add PipeWire as runtime dependency when pipewire is part of PACKAGECONFIG (9f52867)

    • uki: Use basename of device trees available via KERNEL_DEVICETREE (27a7fbb)

    • rpcbind: Set the owner of /run/rpcbind to rpc (80e4289)

    • archiver: Remove WORKDIR from the patch directory (c99d228)

    • gtk4: Convert to use the gnomebase class (fcd5e7c)

    • udev-extraconf: Split automount and autonet into seperate packages (udev-extraconf-automount and udev-extraconf-autonet) (08662d7)

    • e2fsprogs: Fix a bug for files larger than 2GB (683a1e7)

    • mesa: Add support for the virtio, gfxstream, hasvk Vulkan 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 the run-postinsts.service systemd service (7f74d88)

    • freetype: Use meson instead of autotools* (7395e4f)

    • wpa-supplicant:

    • overlayfs: Remove helper unit (623c20f)

    • patch: Show full path when a patch fails to apply (602e28b)

    • kea: Replace keactrl with kea daemons (kea-dhcp*) in initscripts (7f9d929), and remove keactrl from the recipe (08c3877)

    • initramfs-framework:

      • Add handover of PID 1’s arguments to modules (a0ab3d1)

      • Fix Linux kernel command line parsing when passing in double quotes (f9acaf1)

    • perl: Provide pod2man (in the recipe’s PROVIDES definition). This is used by many other recipes to produce man pages. This allows existing recipes to explicitly depend on pod2man-native to 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: Disable legacy-openssl feature 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:

    • coreutils: kill and uptime are no longer provided by the recipe (cedeb95)

    • tcl8: Skip timing-sensitive ptests (1b93479)

    • license_image.bbclass: Report all packages with incompatible license (when using INCOMPATIBLE_LICENSE) (57fe3e4)

    • python3: Package all of the compression module into python3-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

recipe name

Previous value

New value

Security Fixes in 6.0

The following CVEs have been fixed:

Recipe

CVE IDs

recipe name

CVE-xxx-xxxx, …

Recipe Upgrades in 6.0

The following recipes have been upgraded:

Recipe

Previous version

New version

recipe name

Previous version

New version

Contributors to 6.0

Thanks to the following people who contributed to this release:

Repositories / Downloads for Yocto-6.0