blob: b5fba13e6c165d4016b6461557ebbc25215419dd [file] [log] [blame]
.. 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 <https://github.com/yoctoproject/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 <https://www.nongnu.org/lzip/lzlib.html>`__: a data compression
library that provides LZMA compression and decompression functions.
- `lzop <https://www.lzop.org/>`__: a compression utility based on the LZO
library, that was brought back after a (now reverted) removal.
- `python3-jsonschema-specifications <https://pypi.org/project/jsonschema-specifications/>`__:
support files for JSON Schema Specifications (meta-schemas and
vocabularies), added as a new dependency of ``python3-jsonschema``.
- `python3-maturin <https://github.com/pyo3/maturin>`__: a project that
allows building and publishing Rust crates as Python packages.
- `python3-meson-python <https://github.com/mesonbuild/meson-python>`__: a
Python build backend that enables the Meson build-system for Python packages.
- `python3-pyproject-metadata <https://pypi.org/project/pyproject-metadata/>`__:
a class to handle PEP 621 metadata, and a dependency for
``python3-meson-python``.
- `python3-referencing <https://github.com/python-jsonschema/referencing>`__:
another dependency of ``python3-jsonschema``, it provides an
implementation of JSON reference resolution.
- `python3-rpds-py <https://pypi.org/project/rpds-py/>`__: Python bindings
to the Rust rpds crate, and a runtime dependency for ``python3-referencing``.
- `python3-sphinxcontrib-jquery <https://pypi.org/project/sphinxcontrib-jquery/>`__:
a Sphinx extension to include jQuery on newer Sphinx releases. Recent
versions of ``python3-sphinx-rtd-theme`` depend on it.
- `python3-yamllint <https://github.com/adrienverge/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 <https://github.com/nemtrif/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 <https://github.com/KhronosGroup/Vulkan-Utility-Libraries>`__:
a set of libraries to share code across various Vulkan repositories.
- `vulkan-volk <https://github.com/zeux/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 <https://vale.sh>`__,
to perform text style checks and comply with text writing standards in
the industry.
- New ``make sphinx-lint`` command to run `sphinx-lint
<https://github.com/sphinx-contrib/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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~