summaryrefslogtreecommitdiffstats
path: root/documentation/migration-guides/release-notes-5.2.rst
blob: b0e538700fe03e46a86322f39fd8de348bd5a40a (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
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK

.. |yocto-codename| replace:: walnascar
.. |yocto-ver| replace:: 5.2

Release notes for |yocto-ver| (|yocto-codename|)
------------------------------------------------

New Features / Enhancements in |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-  Linux kernel 6.XXX, gcc 14.XXX, glibc 2.XXX, LLVM 18.1.XXX, and over XXX other
   recipe upgrades.

-  New variables:

   -  ``linux-firmware``: Add the :term:`FIRMWARE_COMPRESSION` variable which
      allows compression the firmwares provided by the ``linux-firmware`` recipe.
      Possible values are ``xz`` and ``zst``.

-  Kernel-related changes:

   -  :ref:`ref-classes-cml1`: in :ref:`ref-tasks-diffconfig`, do not override
      ``.config`` with ``.config.orig``. This applies to other recipes using the
      class :ref:`ref-classes-cml1`.

   -  ``linux-firmware``: add following new firmware packages:

       -  ``qcom-qcm6490-audio``
       -  ``qcom-qcm6490-compute``
       -  ``qcom-adreno-a663``
       -  ``qcom-qcm6490-adreno``
       -  ``qcom-sa8775p-adreno``
       -  ``qcom-qcm6490-ipa``
       -  ``qcom-x1e80100-audio``
       -  ``qcom-qcs615-adreno``

   -  The :ref:`ref-classes-kernel-yocto` classes now supports in-tree
      configuration fragments. These can be added with the
      :term:`KERNEL_FEATURES` variable.

   -  The ``kern-tools`` recipe is now able to recognize files ending with
      ``.config`` for :ref:`ref-classes-kernel-yocto`-based Kernel recipes.

   -  Support the LZMA compression algorithm in the
      :ref:`ref-classes-kernel-uboot` class. This can be done by setting the
      variable :term:`FIT_KERNEL_COMP_ALG` to ``lzma``.

-  New core recipes:

   -  ``python3-pefile``: required for the :ref:`ref-classes-uki` class.

   -  Add initial support for the `Barebox <https://www.barebox.org>`__
      bootloader, along with associated OEQA test cases.

   -  Import ``makedumpfile`` from meta-openembedded, as the ``kexec-tools``
      recipe :term:`RDEPENDS` on it.

   -  The ``tcl-8`` recipe was added back to support the build of ``expect``.

   -  Add the ``libdisplay-info`` recipe, an EDID and DisplayID library,
      required for Weston 14.0.1 and newer.

   -  The ``hwdata`` recipe was imported from :oe_git:`meta-openembedded
      </meta-openembedded>`, a recipe for hardware identification and
      configuration data, needed by ``libdisplay-info``.

-  New core classes:

   -  New :ref:`ref-classes-uki` class for building Unified Kernel Images (UKI).
      Associated OEQA tests were also added for this class.

   -  New :ref:`ref-classes-cython` class for python recipes that require Cython
      for their compilation. Existing recipes depending on Cython now inherit
      this class. This class also strips potential build paths in the compilation
      output for reproducibility.

-  Architecture-specific changes:

   -  ``tune-cortexa32``: set tune feature to ``armv8a``.

-  QEMU / ``runqemu`` changes:

-  Documentation changes:

   -  Use ``rsvg`` as a replacement of ``inkscape`` to convert svg files in the
      documentation.

   -  The ``cve`` role was replaced by ``cve_nist`` to avoid a conflict with
      more recent version of Sphinx.

-  Go changes:

   -  The :ref:`ref-classes-go-mod` class now sets an internal variable
      ``GO_MOD_CACHE_DIR`` to enable the use of the Go module fetchers for
      downloading and unpacking module dependencies to the module cache.

   -  Make the :ref:`ref-tasks-compile` task run before
      :ref:`ref-tasks-populate_lic` in the :ref:`ref-classes-go-mod` class so
      license files are found by :ref:`ref-tasks-populate_lic` after the ``go
      install`` command is run in :ref:`ref-tasks-compile`.

-  Rust changes:

   -  ``rust-target-config``: Update the data layout for the *x86-64* target, as
      it was different in Rust from LLVM, which produced a data layout error.

-  Wic Image Creator changes:

   -  Allow the ``--exclude-path`` option to exclude symlinks.

   -  Add the variable :term:`WIC_SECTOR_SIZE` to control the sector size of Wic
      images.

-  SDK-related changes:

   -  Add support for ZST-compression through :term:`SDK_ARCHIVE_TYPE`, by
      setting its value to ``tar.zst``.

   -  The ``debug-tweaks`` features were removed from ``-sdk`` images
      (``core-image-*-sdk.bb``).

   -  Enable ``ipv6``, ``acl``, and ``xattr`` in :term:`DISTRO_FEATURES_NATIVESDK`.

-  Testing-related changes:

   -  ``oeqa/postactions``: Fix archive retrieval from target.

   -  ``oeqa/selftest/gcc``: Fix kex exchange identification error.

   -  ``oeqa/utils/qemurunner``: support ignoring vt100 escape sequences.

   -  ``oeqa``: support passing custom boot patterns to runqemu.

   -  ``oeqa/selftest/cases``: add basic U-boot and Barebox tests.

   -  ``oeqa/selftest/rust``: skip on all MIPS platforms.

   -  Lots of changes and improvements to the :term:`Toaster` OEQA tests.

   -  ``oeqa/selftest``: add a test for bitbake "-e" and "-getvar" difference.

   -  ``oeqa/ssh``: improve performance and log sizes when handling large files.

-  Utility script changes:

   -  The ``patchreview.py`` script now uses the ``check_upstream_status`` from
      ``oe.qa`` to get patch statuses.

   -  ``resulttool``:

      -  Allow store to filter to specific revisions (``--revision`` flag).

      -  Use single space indentation in JSON output, to save disk
         space.

      -  Add ``--logfile-archive`` option to store and archive log files
         separately.

      -  Handle LTP raw logs as well as Ptest.

   -  ``scripts/yocto-check-layer``:

      -  Check for the presence of a ``SECURITY.md`` file in layers and make it
         mandatory.

      -  The :ref:`ref-classes-yocto-check-layer` class now uses
         :term:`CHECKLAYER_REQUIRED_TESTS` to get the list of QA checks to verify
         when running the ``yocto-check-layer`` script.

-  BitBake changes:

   -  ``fetch2``: do not preserve ownership when unpacking.

   -  ``fetch2``: switch from Sqlite ``persist_data`` to a standard cache file
      for checksums, and drop ``persist_data``.

   -  ``fetch2``: add support for GitHub codespaces by adding the
      ``GITHUB_TOKEN`` to the list of variables exported during ``git``
      invocations.

   -  ``fetch2``: set User-Agent to 'bitbake/version' instead of a "fake
      mozilla" user agent.

   -  ``compress``: use ``lz4`` instead of ``lz4c``, as ``lz4c`` as been
      considered deprecrated since 2018.

   -  ``server/process``: decrease idle/main loop frequency, as it is idle and
      main loops have socket select calls to know when to execute.

   -  ``bitbake-worker``: improve bytearray truncation performance when large
       amounts of data are being transferred from the cooker to the worker.

   -  ``bitbake-worker/cooker``: increase the default pipe size from 64KB to
      512KB for better efficiency when transferring large amounts of data.

   -  ``fetch/wget``: increase timeout to 100s from 30s to match CDN worst
      response time.

   -  ``bitbake-getvar``: catch ``NoProvider`` exception to improve error
      readability when a recipe is not found with ``--recipe``.

   -  ``bb/build``: add a function ``bb.build.listtasks()`` to list the tasks in
      a datastore.

   -  Remove custom exception backtrace formatting, and replace occurences of
      ``bb.exception.format_exception()`` by ``traceback.format_exception()``.

   -  ``runqueue``: various performance optimizations including:

      -  Fix performance of multiconfigs with large overlap.
      -  Optimise ``setscene`` loop processing by starting where it
         was left off in the previous execution.

   -  ``knotty`` now hints the user if :term:`MACHINE` was not set in
      the ``local.conf`` file.

-  Packaging changes:

   -  ``systemd``: extract dependencies from ``.note.dlopen`` ELF segments, to
      better detect dynamically linked libraries at runtime.

   -  ``package_rpm``: use ZSTD's default compression level from the variable
      :term:`ZSTD_COMPRESSION_LEVEL`.

   -  ``package_rpm``: restrict RPM packaging to 4 threads to improve
      the compression speed.

   -  ``sign_rpm``: ``rpm`` needs the ``sequoia`` :term:`PACKAGECONFIG`
      config set to be able to generate signed packages.

-  LLVM related changes:

-  SPDX-related changes:

   -  SPDX 3.0: Find local sources when searching for debug sources.

   -  SPDX 3.0: Map ``gitsm`` URIs to ``git``.

   -  SPDX 3.0: Link license and build by alias instead of SPDX ID.

   -  Fix SPDX tasks not running when code changes (use of ``file-checksums``).

-  ``devtool`` changes:

   -  Remove the "S = WORKDIR" workaround as now :term:`S` cannot be equal to
      :term:`WORKDIR`.

   -  The already broken ``--debug-build-config`` option of
      ``devtool ide-sdk`` has been replaced by a new ``--debug-build`` option
      of ``devtool modify``. The new ``devtool ide-sdk`` workflow is:
      ``devtool modify my-recipe --debug-build`` followed by
      ``devtool ide-sdk my-recipe my-image``.

-  Patchtest-related changes:

   -  Refactor pattern definitions in a ``patterns`` module.

   -  Refactor and improve the ``mbox`` module.

   -  Split out result messages.

   -  Add a check for user name tags in patches (for example "fix added by
      @username").

-  :ref:`ref-classes-insane` class related changes:

   -  Only parse ELF if they are files and not symlinks.

   -  Check for ``RUNPATH`` in addition to ``RPATH`` in binaries.

   -  Ensure :ref:`ref-classes-insane` tasks of dependencies run in builds when
      expected.

-  Security changes:

   -  The ``PIE`` gcc flag is now passed for the *powerpc* architecture after a
      bugfix in gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81170).

   -  ``openssh``: be more restrictive on private key file permissions by
      setting them from the :ref:`ref-tasks-install` task.

-  :ref:`ref-classes-cve-check` changes:

   -  Update the :term:`DL_DIR` database location name
      (``${DL_DIR}/CVE_CHECK2``).

   -  Add the field "modified" to the JSON report (from "NVD-modified").

   -  Add support for CVSS v4.0.

   -  Fix malformed cve status description with ``:`` characters.

   -  Restore the :term:`CVE_CHECK_SHOW_WARNINGS` variable and functionality. It
      currently prints warning message for every unpatched CVE the
      :ref:`ref-classes-cve-check` class finds.

-  New :term:`PACKAGECONFIG` options for individual recipes:

      -  ``perf``: ``zstd``
      -  ``ppp``: ``pam``, ``openssl``
      -  ``libpciaccess``: ``zlib``
      -  ``gdk-pixbuf``: ``gif``, ``others``
      -  ``libpam``: ``selinux``
      -  ``libsecret``: ``pam``
      -  ``rpm``: ``sequoia``

-  Miscellaneous changes:

   -  ``bluez``: fix mesh build when building with musl.

   -  ``systemd-bootchart``: now supports the 32-bit *riscv* architecture.

   -  ``systemd-boot``: now supports the *riscv* architecture.

   -  ``python3-pip``: the ``pip`` executable is now left and not deleted, and
      can be used instead of ``pip3`` and ``pip2``.

   -  ``tar`` image types are now more reproducible as the :term:`IMAGE_CMD` for
      ``tar`` now strips ``atime`` and ``ctime`` from the archive content.

   -  :term:`SOLIBSDEV` and :term:`SOLIBS` are now defined for the *mingw32*
      architecture (``.dll``).

   -  :ref:`rootfs-postcommands <ref-classes-rootfs*>`: make opkg status reproducible.

   -  The default :term:`KERNEL_CONSOLE` value is no longer ``ttyS0`` but the
      first entry from the :term:`SERIAL_CONSOLES` variable.

   -  ``virglrenderer``: add a patch to fix ``-int-conversion`` build issue.

   -  ``ffmpeg``: disable asm optimizations for the *x86* architecture as PIC is
      required and *x86* ASM code is not PIC.

   -  ``udev-extraconf``: fix the ``network.sh`` script that did not configure
      hotplugged interfaces.

   -  ``classes-global/license``: move several functions and logic to library
      code in :oe_git:`meta/lib/oe/license.py </openembedded-core/tree/meta/lib/oe/license.py>`.

   -  The recipe ``cairo`` now disables the features ``symbol-lookup``,
      ``spectre`, and ``tests`` by default.

   -  The recipe ``glib-2.0`` now disables the feature ``sysprof`` by default.

   -  The recipe ``gstreamer1.0-libav`` now disables the feature ``doc`` by default.

   -  ``rxvt-unicode``: change ``virtual/x-terminal-emulator`` from
      :term:`PROVIDES` to :term:`RPROVIDES` as ``virtual-x-terminal-emulator``.
      Also make this recipe depend on the ``x11`` distro features with
      :term:`REQUIRED_DISTRO_FEATURES`.

   -  ``rxvt-unicode.inc``: disable the ``terminfo`` installation by setting
      ``TIC`` to ``:`` in :term:`EXTRA_OECONF`, to avoid host contamination.

   -  ``matchbox-terminal``: add ``x-terminal-emulator`` as :term:`RPROVIDES`
      and set :term:`ALTERNATIVE` for the recipe.

   -  ``default-providers.conf``: set ``rxvt-unicode`` as the default
      ``virtual-x-terminal-emulator`` runtime provider with
      :term:`PREFERRED_RPROVIDER`.

   -  ``systemd``: set better sane time at startup by creating the
      ``clock-epoch`` file in ``${libdir}`` if the ``set-time-epoch``
      :term:`PACKAGECONFIG` config is set.

   -  ``cve-update-nvd2-native``: updating the database will now result in an
      error if :term:`BB_NO_NETWORK` is enabled and
      :term:`CVE_DB_UPDATE_INTERVAL` is not set to ``-1``.

   -  ``systemtap``: add ``--with-extra-version="oe"`` configure option to
      improve the reproducibility of the recipe.

   -  ``python3``: package ``tkinter``'s shared objects separately in the
      ``python3-tkinter`` package.

   -  ``init-manager``: set the variable ``VIRTUAL-RUNTIME_dev_manager`` to
      ``udev`` by default in
      :oe_git:`meta/conf/distro/include/init-manager-none.inc
      </openembedded-core/tree/meta/conf/distro/include/init-manager-none.inc>`
      and :oe_git:`meta/conf/distro/include/init-manager-sysvinit.inc
      </openembedded-core/tree/meta/conf/distro/include/init-manager-sysvinit.inc>`,
      instead of :oe_git:`meta/recipes-core/packagegroups/packagegroup-core-boot.bb
      </openembedded-core/tree/meta/recipes-core/packagegroups/packagegroup-core-boot.bb>`
      only.

      Likewise, the same is done for ``VIRTUAL-RUNTIME_keymaps`` with
      ``keymaps`` as its default value.

   -  ``seatd``: Create a ``seat`` group and package the systemd service
      ``seatd.service`` with correct permissions.

      That way, the ``weston`` user in ``weston-init.bb`` was added to the
      ``seat`` group to be able to properly establish connection between the
      Weston and the ``seatd`` socket.


Known Issues in |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recipe License changes in |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The following corrections have been made to the :term:`LICENSE` values set by recipes:

Security Fixes in |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Recipe Upgrades in |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Contributors to |yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Repositories / Downloads for Yocto-|yocto-ver|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~