1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3Release notes for 5.0 (scarthgap) 4--------------------------------- 5 6New Features / Enhancements in 5.0 7~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 9- Linux kernel 6.6, gcc 13.2, glibc 2.39, LLVM 18.1, and over 300 other recipe upgrades 10 11- New variables: 12 13 - :term:`CVE_DB_INCR_UPDATE_AGE_THRES`: Configure the maximum age of the 14 internal CVE database for incremental update (instead of a full 15 redownload). 16 17 - :term:`RPMBUILD_EXTRA_PARAMS`: support extra user-defined fields without 18 crashing the RPM package creation. 19 20 - :term:`OPKG_MAKE_INDEX_EXTRA_PARAMS`: support extra parameters for 21 ``opkg-make-index``. 22 23 - :term:`EFI_UKI_PATH`, :term:`EFI_UKI_DIR`: define the location of UKI 24 image in the EFI System partition. 25 26- Architecture-specific enhancements: 27 28 - ``genericarm64``: a new :term:`MACHINE` to represent a 64-bit General Arm 29 SystemReady platform. 30 31 - Add Power8 tune to PowerPC architecture. 32 33 - ``arch-armv9``: remove CRC and SVE tunes, since FEAT_CRC32 is now mandatory 34 and SVE/SVE2 are enabled by default in GCC's ``-march=armv9-a``. 35 36- Kernel-related enhancements: 37 38 - The default kernel is the current LTS (6.6). 39 40 - Add support for ``genericarm64``. 41 42- New core recipes: 43 44 - `bmaptool <https://github.com/yoctoproject/bmaptool>`__: a tool for 45 creating block maps for files and flashing images, being now under the 46 Yocto Project umbrella. 47 48 - ``core-image-initramfs-boot``: a minimal initramfs image, containing just 49 ``udev`` and ``init``, designed to find the main root filesystem and 50 pivot to it. 51 52 - `lzlib <https://www.nongnu.org/lzip/lzlib.html>`__: a data compression 53 library that provides LZMA compression and decompression functions. 54 55 - `lzop <https://www.lzop.org/>`__: a compression utility based on the LZO 56 library, that was brought back after a (now reverted) removal. 57 58 - `python3-jsonschema-specifications <https://pypi.org/project/jsonschema-specifications/>`__: 59 support files for JSON Schema Specifications (meta-schemas and 60 vocabularies), added as a new dependency of ``python3-jsonschema``. 61 62 - `python3-maturin <https://github.com/pyo3/maturin>`__: a project that 63 allows building and publishing Rust crates as Python packages. 64 65 - `python3-meson-python <https://github.com/mesonbuild/meson-python>`__: a 66 Python build backend that enables the Meson build-system for Python packages. 67 68 - `python3-pyproject-metadata <https://pypi.org/project/pyproject-metadata/>`__: 69 a class to handle PEP 621 metadata, and a dependency for 70 ``python3-meson-python``. 71 72 - `python3-referencing <https://github.com/python-jsonschema/referencing>`__: 73 another dependency of ``python3-jsonschema``, it provides an 74 implementation of JSON reference resolution. 75 76 - `python3-rpds-py <https://pypi.org/project/rpds-py/>`__: Python bindings 77 to the Rust rpds crate, and a runtime dependency for ``python3-referencing``. 78 79 - `python3-sphinxcontrib-jquery <https://pypi.org/project/sphinxcontrib-jquery/>`__: 80 a Sphinx extension to include jQuery on newer Sphinx releases. Recent 81 versions of ``python3-sphinx-rtd-theme`` depend on it. 82 83 - `python3-yamllint <https://github.com/adrienverge/yamllint>`__: a linter 84 for YAML files. In U-Boot, the ``binman`` tool uses this linter to verify the 85 configurations at compile time. 86 87 - ``systemd-boot-native``: a UEFI boot manager, this time built as native to 88 provide the ``ukify`` tool. 89 90 - `utfcpp <https://github.com/nemtrif/utfcpp>`__: a C++ library to handle 91 UTF-8 encoded strings. It was added as a dependency for ``taglib`` after 92 its upgrade to v2.0. 93 94 - `vulkan-utility-libraries <https://github.com/KhronosGroup/Vulkan-Utility-Libraries>`__: 95 a set of libraries to share code across various Vulkan repositories. 96 97 - `vulkan-volk <https://github.com/zeux/volk>`__: a meta-loader for Vulkan, 98 needed to support building the latest ``vulkan-tools``. 99 100- QEMU / ``runqemu`` enhancements: 101 102 - QEMU has been upgraded to version 8.2.1 103 104 - ``qemuboot``: support predictable network interface names. 105 106 - ``runqemu``: match ".rootfs." in addition to "-image-" for the root 107 filesystem. 108 109 - :ref:`ref-classes-cmake-qemu`: a new class allowing to execute cross-compiled 110 binaries using QEMU user-mode emulation. 111 112- Rust improvements: 113 114 - Rust has been upgraded to version 1.75 115 116 - The Rust profiler (i.e., PGO - Profile-Guided Optimization) options were 117 enabled back. 118 119 - The Rust ``oe-selftest`` were enabled, except for ``mips32`` whose tests 120 are skipped. 121 122 - ``rust-cross-canadian``: added ``riscv64`` to cross-canadian hosts. 123 124- wic Image Creator enhancements: 125 126 - Allow the imager's output file extension to match the imager's name, 127 instead of hardcoding it to ``direct`` (i.e., the default imager) 128 129 - For GPT-based disks, add reproducible Disk GUID generation 130 131 - Allow generating reproducible ext4 images 132 133 - Add feature to fill a specific range of a partition with zeros 134 135 - ``bootimg-efi``: add ``install-kernel-into-boot-dir`` parameter to 136 configure kernel installation point(s) (i.e., rootfs and/or boot partition) 137 138 - ``rawcopy``: add support for zstd decompression 139 140- SDK-related improvements: 141 142 - ``nativesdk``: let :term:`MACHINE_FEATURES` be set by ``machine-sdk`` 143 configuration files. 144 145 - ``nativesdk``: prevent :term:`MACHINE_FEATURES` and :term:`DISTRO_FEATURES` 146 from being backfilled. 147 148- Testing: 149 150 - Add an optional ``unimplemented-ptest`` QA warning to detect upstream 151 packages with tests, that do not use ptest. 152 153 - ``testimage``: retrieve the ptests directory, especially for the logs, 154 upon ptest failure. 155 156 - ``oeqa``, ``oe-selftest``: add test cases for Maturin (SDK and runtime). 157 158- Utility script changes: 159 160 - New ``recipetool/create_go.py`` script added to support Go recipe creation 161 162 - ``oe-init-build-env`` can generate a initial configuration (``.vscode``) 163 for VSCode and its "Yocto Project BitBake" extension. 164 165- BitBake improvements: 166 167 - Add support for :term:`BB_LOADFACTOR_MAX`, so Bitbake can stop running 168 extra tasks if the system load is too high, especially in distributions 169 where ``/proc/pressure`` is disabled. 170 171 - Add garbage collection to remove unused unihashes from the database. 172 173 - ``taskexp_ncurses``: add ncurses version of ``taskexp``, the dependency 174 explorer originally implemented with GTK. 175 176 - Improve ``runqueue`` performance by adding a cache mechanism in 177 ``build_taskdepdata``. 178 179 - ``bitbake.conf``: add ``runtimedir`` to represent the path to the runtime 180 state directory (i.e., ``/run``). 181 182- Packaging changes: 183 184 - ``package_rpm``: the RPM package compressor's mode can now be overriden. 185 186- Security improvements: 187 188 - Improve incremental CVE database download from NVD. Rejected CVEs are 189 removed, configuration is kept up-to-date. The age threshold for 190 incremental update can be configured with :term:`CVE_DB_INCR_UPDATE_AGE_THRES` 191 variable. 192 193- Prominent documentation updates: 194 195 - Documentation for using the new ``devtool ide-sdk`` command and features. 196 See :ref:`using_devtool` for details. 197 198 - New ":doc:`bitbake:bitbake-user-manual/bitbake-user-manual-ref-variables-context`" 199 section in the BitBake User Manual. 200 201 - New ``make stylecheck`` command to run `Vale <https://vale.sh>`__, 202 to perform text style checks and comply with text writing standards in 203 the industry. 204 205 - New ``make sphinx-lint`` command to run `sphinx-lint 206 <https://github.com/sphinx-contrib/sphinx-lint>`__. After customization, 207 this will allow us to enforce Sphinx syntax style choices. 208 209- Miscellaneous changes: 210 211 - Systemd's following :term:`PACKAGECONFIG` options were added: 212 ``cryptsetup-plugins``, ``no-ntp-fallback``, and ``p11kit``. 213 214 - ``systemd-boot`` can, from now on, be compiled as ``native``, thus 215 providing ``ukify`` tool to build UKI images. 216 217 - systemd: split bash completion for ``udevadm`` in a new 218 ``udev-bash-completion`` package. 219 220 - The :ref:`ref-classes-go-vendor` class was added to support offline builds 221 (i.e., vendoring). It can also handle modules from the same repository, 222 taking into account their versions. 223 224 - Disable strace support of bluetooth by default. 225 226 - ``openssh`` now has a Systemd service: ``sshd.service``. 227 228Known Issues in 5.0 229~~~~~~~~~~~~~~~~~~~ 230 231- N/A 232 233Recipe License changes in 5.0 234~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 236The following corrections have been made to the :term:`LICENSE` values set by recipes: 237 238- ``systemd``: make the scope of ``LGPL`` more accurate (``LGPL-2.1`` -> ``LGPL-2.1-or-later``) 239- ``libsystemd``: set its own :term:`LICENSE` value (``LGPL-2.1-or-later``) to add more granularity 240 241Security Fixes in 5.0 242~~~~~~~~~~~~~~~~~~~~~ 243 244Recipe Upgrades in 5.0 245~~~~~~~~~~~~~~~~~~~~~~ 246 247- go: update 1.20.10 -> 1.22.1 248 249Contributors to 5.0 250~~~~~~~~~~~~~~~~~~~ 251 252Thanks to the following people who contributed to this release: 253 254Repositories / Downloads for Yocto-5.0 255~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 257