Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
| 2 | |
| 3 | Release notes for 5.0 (scarthgap) |
| 4 | --------------------------------- |
| 5 | |
| 6 | New Features / Enhancements in 5.0 |
| 7 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 8 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 9 | - Linux kernel 6.6, gcc 13.2, glibc 2.39, LLVM 18.1, and over 300 other recipe upgrades |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 10 | |
| 11 | - New variables: |
| 12 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 26 | - Architecture-specific enhancements: |
| 27 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 36 | - Kernel-related enhancements: |
| 37 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 38 | - The default kernel is the current LTS (6.6). |
| 39 | |
| 40 | - Add support for ``genericarm64``. |
| 41 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 42 | - New core recipes: |
| 43 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 100 | - QEMU / ``runqemu`` enhancements: |
| 101 | |
| 102 | - QEMU has been upgraded to version 8.2.1 |
| 103 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 112 | - Rust improvements: |
| 113 | |
| 114 | - Rust has been upgraded to version 1.75 |
| 115 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 124 | - wic Image Creator enhancements: |
| 125 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 140 | - SDK-related improvements: |
| 141 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 148 | - Testing: |
| 149 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 158 | - Utility script changes: |
| 159 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 165 | - BitBake improvements: |
| 166 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 182 | - Packaging changes: |
| 183 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 184 | - ``package_rpm``: the RPM package compressor's mode can now be overriden. |
| 185 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 186 | - Security improvements: |
| 187 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 193 | - Prominent documentation updates: |
| 194 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 209 | - Miscellaneous changes: |
| 210 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 228 | Known Issues in 5.0 |
| 229 | ~~~~~~~~~~~~~~~~~~~ |
| 230 | |
| 231 | - N/A |
| 232 | |
| 233 | Recipe License changes in 5.0 |
| 234 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 235 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 236 | The 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 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 241 | Security Fixes in 5.0 |
| 242 | ~~~~~~~~~~~~~~~~~~~~~ |
| 243 | |
| 244 | Recipe Upgrades in 5.0 |
| 245 | ~~~~~~~~~~~~~~~~~~~~~~ |
| 246 | |
Patrick Williams | 44b3caf | 2024-04-12 16:51:14 -0500 | [diff] [blame] | 247 | - go: update 1.20.10 -> 1.22.1 |
| 248 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame] | 249 | Contributors to 5.0 |
| 250 | ~~~~~~~~~~~~~~~~~~~ |
| 251 | |
| 252 | Thanks to the following people who contributed to this release: |
| 253 | |
| 254 | Repositories / Downloads for Yocto-5.0 |
| 255 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 256 | |