.. SPDX-License-Identifier: CC-BY-SA-2.0-UK Release notes for 5.0 (scarthgap) --------------------------------- New Features / Enhancements in 5.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Linux kernel 6.6, gcc 13.2, glibc 2.39, LLVM 18.1, and over 300 other recipe upgrades - New variables: - :term:`CVE_DB_INCR_UPDATE_AGE_THRES`: Configure the maximum age of the internal CVE database for incremental update (instead of a full redownload). - :term:`RPMBUILD_EXTRA_PARAMS`: support extra user-defined fields without crashing the RPM package creation. - :term:`OPKG_MAKE_INDEX_EXTRA_PARAMS`: support extra parameters for ``opkg-make-index``. - :term:`EFI_UKI_PATH`, :term:`EFI_UKI_DIR`: define the location of UKI image in the EFI System partition. - Architecture-specific enhancements: - ``genericarm64``: a new :term:`MACHINE` to represent a 64-bit General Arm SystemReady platform. - Add Power8 tune to PowerPC architecture. - ``arch-armv9``: remove CRC and SVE tunes, since FEAT_CRC32 is now mandatory and SVE/SVE2 are enabled by default in GCC's ``-march=armv9-a``. - Kernel-related enhancements: - The default kernel is the current LTS (6.6). - Add support for ``genericarm64``. - New core recipes: - `bmaptool `__: a tool for creating block maps for files and flashing images, being now under the Yocto Project umbrella. - ``core-image-initramfs-boot``: a minimal initramfs image, containing just ``udev`` and ``init``, designed to find the main root filesystem and pivot to it. - `lzlib `__: a data compression library that provides LZMA compression and decompression functions. - `lzop `__: a compression utility based on the LZO library, that was brought back after a (now reverted) removal. - `python3-jsonschema-specifications `__: support files for JSON Schema Specifications (meta-schemas and vocabularies), added as a new dependency of ``python3-jsonschema``. - `python3-maturin `__: a project that allows building and publishing Rust crates as Python packages. - `python3-meson-python `__: a Python build backend that enables the Meson build-system for Python packages. - `python3-pyproject-metadata `__: a class to handle PEP 621 metadata, and a dependency for ``python3-meson-python``. - `python3-referencing `__: another dependency of ``python3-jsonschema``, it provides an implementation of JSON reference resolution. - `python3-rpds-py `__: Python bindings to the Rust rpds crate, and a runtime dependency for ``python3-referencing``. - `python3-sphinxcontrib-jquery `__: a Sphinx extension to include jQuery on newer Sphinx releases. Recent versions of ``python3-sphinx-rtd-theme`` depend on it. - `python3-yamllint `__: a linter for YAML files. In U-Boot, the ``binman`` tool uses this linter to verify the configurations at compile time. - ``systemd-boot-native``: a UEFI boot manager, this time built as native to provide the ``ukify`` tool. - `utfcpp `__: a C++ library to handle UTF-8 encoded strings. It was added as a dependency for ``taglib`` after its upgrade to v2.0. - `vulkan-utility-libraries `__: a set of libraries to share code across various Vulkan repositories. - `vulkan-volk `__: a meta-loader for Vulkan, needed to support building the latest ``vulkan-tools``. - QEMU / ``runqemu`` enhancements: - QEMU has been upgraded to version 8.2.1 - ``qemuboot``: support predictable network interface names. - ``runqemu``: match ".rootfs." in addition to "-image-" for the root filesystem. - :ref:`ref-classes-cmake-qemu`: a new class allowing to execute cross-compiled binaries using QEMU user-mode emulation. - Rust improvements: - Rust has been upgraded to version 1.75 - The Rust profiler (i.e., PGO - Profile-Guided Optimization) options were enabled back. - The Rust ``oe-selftest`` were enabled, except for ``mips32`` whose tests are skipped. - ``rust-cross-canadian``: added ``riscv64`` to cross-canadian hosts. - wic Image Creator enhancements: - Allow the imager's output file extension to match the imager's name, instead of hardcoding it to ``direct`` (i.e., the default imager) - For GPT-based disks, add reproducible Disk GUID generation - Allow generating reproducible ext4 images - Add feature to fill a specific range of a partition with zeros - ``bootimg-efi``: add ``install-kernel-into-boot-dir`` parameter to configure kernel installation point(s) (i.e., rootfs and/or boot partition) - ``rawcopy``: add support for zstd decompression - SDK-related improvements: - ``nativesdk``: let :term:`MACHINE_FEATURES` be set by ``machine-sdk`` configuration files. - ``nativesdk``: prevent :term:`MACHINE_FEATURES` and :term:`DISTRO_FEATURES` from being backfilled. - Testing: - Add an optional ``unimplemented-ptest`` QA warning to detect upstream packages with tests, that do not use ptest. - ``testimage``: retrieve the ptests directory, especially for the logs, upon ptest failure. - ``oeqa``, ``oe-selftest``: add test cases for Maturin (SDK and runtime). - Utility script changes: - New ``recipetool/create_go.py`` script added to support Go recipe creation - ``oe-init-build-env`` can generate a initial configuration (``.vscode``) for VSCode and its "Yocto Project BitBake" extension. - BitBake improvements: - Add support for :term:`BB_LOADFACTOR_MAX`, so Bitbake can stop running extra tasks if the system load is too high, especially in distributions where ``/proc/pressure`` is disabled. - Add garbage collection to remove unused unihashes from the database. - ``taskexp_ncurses``: add ncurses version of ``taskexp``, the dependency explorer originally implemented with GTK. - Improve ``runqueue`` performance by adding a cache mechanism in ``build_taskdepdata``. - ``bitbake.conf``: add ``runtimedir`` to represent the path to the runtime state directory (i.e., ``/run``). - Packaging changes: - ``package_rpm``: the RPM package compressor's mode can now be overriden. - Security improvements: - Improve incremental CVE database download from NVD. Rejected CVEs are removed, configuration is kept up-to-date. The age threshold for incremental update can be configured with :term:`CVE_DB_INCR_UPDATE_AGE_THRES` variable. - Prominent documentation updates: - Documentation for using the new ``devtool ide-sdk`` command and features. See :ref:`using_devtool` for details. - New ":doc:`bitbake:bitbake-user-manual/bitbake-user-manual-ref-variables-context`" section in the BitBake User Manual. - New ``make stylecheck`` command to run `Vale `__, to perform text style checks and comply with text writing standards in the industry. - New ``make sphinx-lint`` command to run `sphinx-lint `__. After customization, this will allow us to enforce Sphinx syntax style choices. - Miscellaneous changes: - Systemd's following :term:`PACKAGECONFIG` options were added: ``cryptsetup-plugins``, ``no-ntp-fallback``, and ``p11kit``. - ``systemd-boot`` can, from now on, be compiled as ``native``, thus providing ``ukify`` tool to build UKI images. - systemd: split bash completion for ``udevadm`` in a new ``udev-bash-completion`` package. - The :ref:`ref-classes-go-vendor` class was added to support offline builds (i.e., vendoring). It can also handle modules from the same repository, taking into account their versions. - Disable strace support of bluetooth by default. - ``openssh`` now has a Systemd service: ``sshd.service``. Known Issues in 5.0 ~~~~~~~~~~~~~~~~~~~ - N/A Recipe License changes in 5.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following corrections have been made to the :term:`LICENSE` values set by recipes: - ``systemd``: make the scope of ``LGPL`` more accurate (``LGPL-2.1`` -> ``LGPL-2.1-or-later``) - ``libsystemd``: set its own :term:`LICENSE` value (``LGPL-2.1-or-later``) to add more granularity Security Fixes in 5.0 ~~~~~~~~~~~~~~~~~~~~~ Recipe Upgrades in 5.0 ~~~~~~~~~~~~~~~~~~~~~~ - go: update 1.20.10 -> 1.22.1 Contributors to 5.0 ~~~~~~~~~~~~~~~~~~~ Thanks to the following people who contributed to this release: Repositories / Downloads for Yocto-5.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~