summaryrefslogtreecommitdiffstats
path: root/documentation/migration-guides/release-notes-5.0.rst
blob: c9d7a09c3ca208c47588b621d726d74938e53e67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
.. 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:

-  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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~