blob: b5fba13e6c165d4016b6461557ebbc25215419dd [file] [log] [blame]
Patrick Williams03514f12024-04-05 07:04:11 -05001.. 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
Patrick Williams44b3caf2024-04-12 16:51:14 -05009- Linux kernel 6.6, gcc 13.2, glibc 2.39, LLVM 18.1, and over 300 other recipe upgrades
Patrick Williams03514f12024-04-05 07:04:11 -050010
11- New variables:
12
Patrick Williams44b3caf2024-04-12 16:51:14 -050013 - :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 Williams03514f12024-04-05 07:04:11 -050026- Architecture-specific enhancements:
27
Patrick Williams44b3caf2024-04-12 16:51:14 -050028 - ``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 Williams03514f12024-04-05 07:04:11 -050036- Kernel-related enhancements:
37
Patrick Williams44b3caf2024-04-12 16:51:14 -050038 - The default kernel is the current LTS (6.6).
39
40 - Add support for ``genericarm64``.
41
Patrick Williams03514f12024-04-05 07:04:11 -050042- New core recipes:
43
Patrick Williams44b3caf2024-04-12 16:51:14 -050044 - `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 Williams03514f12024-04-05 07:04:11 -0500100- QEMU / ``runqemu`` enhancements:
101
102 - QEMU has been upgraded to version 8.2.1
103
Patrick Williams44b3caf2024-04-12 16:51:14 -0500104 - ``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 Williams03514f12024-04-05 07:04:11 -0500112- Rust improvements:
113
114 - Rust has been upgraded to version 1.75
115
Patrick Williams44b3caf2024-04-12 16:51:14 -0500116 - 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 Williams03514f12024-04-05 07:04:11 -0500124- wic Image Creator enhancements:
125
Patrick Williams44b3caf2024-04-12 16:51:14 -0500126 - 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 Williams03514f12024-04-05 07:04:11 -0500140- SDK-related improvements:
141
Patrick Williams44b3caf2024-04-12 16:51:14 -0500142 - ``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 Williams03514f12024-04-05 07:04:11 -0500148- Testing:
149
Patrick Williams44b3caf2024-04-12 16:51:14 -0500150 - 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 Williams03514f12024-04-05 07:04:11 -0500158- Utility script changes:
159
Patrick Williams44b3caf2024-04-12 16:51:14 -0500160 - 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 Williams03514f12024-04-05 07:04:11 -0500165- BitBake improvements:
166
Patrick Williams44b3caf2024-04-12 16:51:14 -0500167 - 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 Williams03514f12024-04-05 07:04:11 -0500182- Packaging changes:
183
Patrick Williams44b3caf2024-04-12 16:51:14 -0500184 - ``package_rpm``: the RPM package compressor's mode can now be overriden.
185
Patrick Williams03514f12024-04-05 07:04:11 -0500186- Security improvements:
187
Patrick Williams44b3caf2024-04-12 16:51:14 -0500188 - 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 Williams03514f12024-04-05 07:04:11 -0500193- Prominent documentation updates:
194
Patrick Williams44b3caf2024-04-12 16:51:14 -0500195 - 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 Williams03514f12024-04-05 07:04:11 -0500209- Miscellaneous changes:
210
Patrick Williams44b3caf2024-04-12 16:51:14 -0500211 - 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 Williams03514f12024-04-05 07:04:11 -0500228Known Issues in 5.0
229~~~~~~~~~~~~~~~~~~~
230
231- N/A
232
233Recipe License changes in 5.0
234~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235
Patrick Williams44b3caf2024-04-12 16:51:14 -0500236The 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 Williams03514f12024-04-05 07:04:11 -0500241Security Fixes in 5.0
242~~~~~~~~~~~~~~~~~~~~~
243
244Recipe Upgrades in 5.0
245~~~~~~~~~~~~~~~~~~~~~~
246
Patrick Williams44b3caf2024-04-12 16:51:14 -0500247- go: update 1.20.10 -> 1.22.1
248
Patrick Williams03514f12024-04-05 07:04:11 -0500249Contributors to 5.0
250~~~~~~~~~~~~~~~~~~~
251
252Thanks to the following people who contributed to this release:
253
254Repositories / Downloads for Yocto-5.0
255~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
256