release-notes-5.2.rst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. .. |yocto-codename| replace:: walnascar
  3. .. |yocto-ver| replace:: 5.2
  4. Release notes for |yocto-ver| (|yocto-codename|)
  5. ------------------------------------------------
  6. New Features / Enhancements in |yocto-ver|
  7. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  8. - Linux kernel 6.XXX, gcc 14.XXX, glibc 2.XXX, LLVM 18.1.XXX, and over XXX other
  9. recipe upgrades.
  10. - New variables:
  11. - ``linux-firmware``: Add the :term:`FIRMWARE_COMPRESSION` variable which
  12. allows compression the firmwares provided by the ``linux-firmware`` recipe.
  13. Possible values are ``xz`` and ``zst``.
  14. - Kernel-related changes:
  15. - :ref:`ref-classes-cml1`: in :ref:`ref-tasks-diffconfig`, do not override
  16. ``.config`` with ``.config.orig``. This applies to other recipes using the
  17. class :ref:`ref-classes-cml1`.
  18. - ``linux-firmware``: add following new firmware packages:
  19. - ``qcom-qcm6490-audio``
  20. - ``qcom-qcm6490-compute``
  21. - ``qcom-adreno-a663``
  22. - ``qcom-qcm6490-adreno``
  23. - ``qcom-sa8775p-adreno``
  24. - ``qcom-qcm6490-ipa``
  25. - ``qcom-x1e80100-audio``
  26. - ``qcom-qcs615-adreno``
  27. - The :ref:`ref-classes-kernel-yocto` classes now supports in-tree
  28. configuration fragments. These can be added with the
  29. :term:`KERNEL_FEATURES` variable.
  30. - The ``kern-tools`` recipe is now able to recognize files ending with
  31. ``.config`` for :ref:`ref-classes-kernel-yocto`-based Kernel recipes.
  32. - Support the LZMA compression algorithm in the
  33. :ref:`ref-classes-kernel-uboot` class. This can be done by setting the
  34. variable :term:`FIT_KERNEL_COMP_ALG` to ``lzma``.
  35. - New core recipes:
  36. - ``python3-pefile``: required for the :ref:`ref-classes-uki` class.
  37. - Add initial support for the `Barebox <https://www.barebox.org>`__
  38. bootloader, along with associated OEQA test cases.
  39. - Import ``makedumpfile`` from meta-openembedded, as the ``kexec-tools``
  40. recipe :term:`RDEPENDS` on it.
  41. - The ``tcl-8`` recipe was added back to support the build of ``expect``.
  42. - Add the ``libdisplay-info`` recipe, an EDID and DisplayID library,
  43. required for Weston 14.0.1 and newer.
  44. - The ``hwdata`` recipe was imported from :oe_git:`meta-openembedded
  45. </meta-openembedded>`, a recipe for hardware identification and
  46. configuration data, needed by ``libdisplay-info``.
  47. - New core classes:
  48. - New :ref:`ref-classes-uki` class for building Unified Kernel Images (UKI).
  49. Associated OEQA tests were also added for this class.
  50. - New :ref:`ref-classes-cython` class for python recipes that require Cython
  51. for their compilation. Existing recipes depending on Cython now inherit
  52. this class. This class also strips potential build paths in the compilation
  53. output for reproducibility.
  54. - Architecture-specific changes:
  55. - ``tune-cortexa32``: set tune feature to ``armv8a``.
  56. - QEMU / ``runqemu`` changes:
  57. - Documentation changes:
  58. - Use ``rsvg`` as a replacement of ``inkscape`` to convert svg files in the
  59. documentation.
  60. - The ``cve`` role was replaced by ``cve_nist`` to avoid a conflict with
  61. more recent version of Sphinx.
  62. - Go changes:
  63. - The :ref:`ref-classes-go-mod` class now sets an internal variable
  64. ``GO_MOD_CACHE_DIR`` to enable the use of the Go module fetchers for
  65. downloading and unpacking module dependencies to the module cache.
  66. - Make the :ref:`ref-tasks-compile` task run before
  67. :ref:`ref-tasks-populate_lic` in the :ref:`ref-classes-go-mod` class so
  68. license files are found by :ref:`ref-tasks-populate_lic` after the ``go
  69. install`` command is run in :ref:`ref-tasks-compile`.
  70. - Rust changes:
  71. - ``rust-target-config``: Update the data layout for the *x86-64* target, as
  72. it was different in Rust from LLVM, which produced a data layout error.
  73. - Wic Image Creator changes:
  74. - Allow the ``--exclude-path`` option to exclude symlinks.
  75. - Add the variable :term:`WIC_SECTOR_SIZE` to control the sector size of Wic
  76. images.
  77. - SDK-related changes:
  78. - Add support for ZST-compression through :term:`SDK_ARCHIVE_TYPE`, by
  79. setting its value to ``tar.zst``.
  80. - The ``debug-tweaks`` features were removed from ``-sdk`` images
  81. (``core-image-*-sdk.bb``).
  82. - Enable ``ipv6``, ``acl``, and ``xattr`` in :term:`DISTRO_FEATURES_NATIVESDK`.
  83. - Testing-related changes:
  84. - ``oeqa/postactions``: Fix archive retrieval from target.
  85. - ``oeqa/selftest/gcc``: Fix kex exchange identification error.
  86. - ``oeqa/utils/qemurunner``: support ignoring vt100 escape sequences.
  87. - ``oeqa``: support passing custom boot patterns to runqemu.
  88. - ``oeqa/selftest/cases``: add basic U-boot and Barebox tests.
  89. - ``oeqa/selftest/rust``: skip on all MIPS platforms.
  90. - Lots of changes and improvements to the :term:`Toaster` OEQA tests.
  91. - ``oeqa/selftest``: add a test for bitbake "-e" and "-getvar" difference.
  92. - ``oeqa/ssh``: improve performance and log sizes when handling large files.
  93. - Utility script changes:
  94. - The ``patchreview.py`` script now uses the ``check_upstream_status`` from
  95. ``oe.qa`` to get patch statuses.
  96. - ``resulttool``:
  97. - Allow store to filter to specific revisions (``--revision`` flag).
  98. - Use single space indentation in JSON output, to save disk
  99. space.
  100. - Add ``--logfile-archive`` option to store and archive log files
  101. separately.
  102. - Handle LTP raw logs as well as Ptest.
  103. - ``scripts/yocto-check-layer``:
  104. - Check for the presence of a ``SECURITY.md`` file in layers and make it
  105. mandatory.
  106. - The :ref:`ref-classes-yocto-check-layer` class now uses
  107. :term:`CHECKLAYER_REQUIRED_TESTS` to get the list of QA checks to verify
  108. when running the ``yocto-check-layer`` script.
  109. - BitBake changes:
  110. - ``fetch2``: do not preserve ownership when unpacking.
  111. - ``fetch2``: switch from Sqlite ``persist_data`` to a standard cache file
  112. for checksums, and drop ``persist_data``.
  113. - ``fetch2``: add support for GitHub codespaces by adding the
  114. ``GITHUB_TOKEN`` to the list of variables exported during ``git``
  115. invocations.
  116. - ``fetch2``: set User-Agent to 'bitbake/version' instead of a "fake
  117. mozilla" user agent.
  118. - ``compress``: use ``lz4`` instead of ``lz4c``, as ``lz4c`` as been
  119. considered deprecrated since 2018.
  120. - ``server/process``: decrease idle/main loop frequency, as it is idle and
  121. main loops have socket select calls to know when to execute.
  122. - ``bitbake-worker``: improve bytearray truncation performance when large
  123. amounts of data are being transferred from the cooker to the worker.
  124. - ``bitbake-worker/cooker``: increase the default pipe size from 64KB to
  125. 512KB for better efficiency when transferring large amounts of data.
  126. - ``fetch/wget``: increase timeout to 100s from 30s to match CDN worst
  127. response time.
  128. - ``bitbake-getvar``: catch ``NoProvider`` exception to improve error
  129. readability when a recipe is not found with ``--recipe``.
  130. - ``bb/build``: add a function ``bb.build.listtasks()`` to list the tasks in
  131. a datastore.
  132. - Remove custom exception backtrace formatting, and replace occurences of
  133. ``bb.exception.format_exception()`` by ``traceback.format_exception()``.
  134. - ``runqueue``: various performance optimizations including:
  135. - Fix performance of multiconfigs with large overlap.
  136. - Optimise ``setscene`` loop processing by starting where it
  137. was left off in the previous execution.
  138. - ``knotty`` now hints the user if :term:`MACHINE` was not set in
  139. the ``local.conf`` file.
  140. - Packaging changes:
  141. - ``systemd``: extract dependencies from ``.note.dlopen`` ELF segments, to
  142. better detect dynamically linked libraries at runtime.
  143. - ``package_rpm``: use ZSTD's default compression level from the variable
  144. :term:`ZSTD_COMPRESSION_LEVEL`.
  145. - ``package_rpm``: restrict RPM packaging to 4 threads to improve
  146. the compression speed.
  147. - ``sign_rpm``: ``rpm`` needs the ``sequoia`` :term:`PACKAGECONFIG`
  148. config set to be able to generate signed packages.
  149. - LLVM related changes:
  150. - SPDX-related changes:
  151. - SPDX 3.0: Find local sources when searching for debug sources.
  152. - SPDX 3.0: Map ``gitsm`` URIs to ``git``.
  153. - SPDX 3.0: Link license and build by alias instead of SPDX ID.
  154. - Fix SPDX tasks not running when code changes (use of ``file-checksums``).
  155. - ``devtool`` changes:
  156. - Remove the "S = WORKDIR" workaround as now :term:`S` cannot be equal to
  157. :term:`WORKDIR`.
  158. - The already broken ``--debug-build-config`` option of
  159. ``devtool ide-sdk`` has been replaced by a new ``--debug-build`` option
  160. of ``devtool modify``. The new ``devtool ide-sdk`` workflow is:
  161. ``devtool modify my-recipe --debug-build`` followed by
  162. ``devtool ide-sdk my-recipe my-image``.
  163. - Patchtest-related changes:
  164. - Refactor pattern definitions in a ``patterns`` module.
  165. - Refactor and improve the ``mbox`` module.
  166. - Split out result messages.
  167. - Add a check for user name tags in patches (for example "fix added by
  168. @username").
  169. - :ref:`ref-classes-insane` class related changes:
  170. - Only parse ELF if they are files and not symlinks.
  171. - Check for ``RUNPATH`` in addition to ``RPATH`` in binaries.
  172. - Ensure :ref:`ref-classes-insane` tasks of dependencies run in builds when
  173. expected.
  174. - Security changes:
  175. - The ``PIE`` gcc flag is now passed for the *powerpc* architecture after a
  176. bugfix in gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81170).
  177. - ``openssh``: be more restrictive on private key file permissions by
  178. setting them from the :ref:`ref-tasks-install` task.
  179. - :ref:`ref-classes-cve-check` changes:
  180. - Update the :term:`DL_DIR` database location name
  181. (``${DL_DIR}/CVE_CHECK2``).
  182. - Add the field "modified" to the JSON report (from "NVD-modified").
  183. - Add support for CVSS v4.0.
  184. - Fix malformed cve status description with ``:`` characters.
  185. - Restore the :term:`CVE_CHECK_SHOW_WARNINGS` variable and functionality. It
  186. currently prints warning message for every unpatched CVE the
  187. :ref:`ref-classes-cve-check` class finds.
  188. - New :term:`PACKAGECONFIG` options for individual recipes:
  189. - ``perf``: ``zstd``
  190. - ``ppp``: ``pam``, ``openssl``
  191. - ``libpciaccess``: ``zlib``
  192. - ``gdk-pixbuf``: ``gif``, ``others``
  193. - ``libpam``: ``selinux``
  194. - ``libsecret``: ``pam``
  195. - ``rpm``: ``sequoia``
  196. - Miscellaneous changes:
  197. - ``bluez``: fix mesh build when building with musl.
  198. - ``systemd-bootchart``: now supports the 32-bit *riscv* architecture.
  199. - ``systemd-boot``: now supports the *riscv* architecture.
  200. - ``python3-pip``: the ``pip`` executable is now left and not deleted, and
  201. can be used instead of ``pip3`` and ``pip2``.
  202. - ``tar`` image types are now more reproducible as the :term:`IMAGE_CMD` for
  203. ``tar`` now strips ``atime`` and ``ctime`` from the archive content.
  204. - :term:`SOLIBSDEV` and :term:`SOLIBS` are now defined for the *mingw32*
  205. architecture (``.dll``).
  206. - :ref:`rootfs-postcommands <ref-classes-rootfs*>`: make opkg status reproducible.
  207. - The default :term:`KERNEL_CONSOLE` value is no longer ``ttyS0`` but the
  208. first entry from the :term:`SERIAL_CONSOLES` variable.
  209. - ``virglrenderer``: add a patch to fix ``-int-conversion`` build issue.
  210. - ``ffmpeg``: disable asm optimizations for the *x86* architecture as PIC is
  211. required and *x86* ASM code is not PIC.
  212. - ``udev-extraconf``: fix the ``network.sh`` script that did not configure
  213. hotplugged interfaces.
  214. - ``classes-global/license``: move several functions and logic to library
  215. code in :oe_git:`meta/lib/oe/license.py </openembedded-core/tree/meta/lib/oe/license.py>`.
  216. - The recipe ``cairo`` now disables the features ``symbol-lookup``,
  217. ``spectre`, and ``tests`` by default.
  218. - The recipe ``glib-2.0`` now disables the feature ``sysprof`` by default.
  219. - The recipe ``gstreamer1.0-libav`` now disables the feature ``doc`` by default.
  220. - ``rxvt-unicode``: change ``virtual/x-terminal-emulator`` from
  221. :term:`PROVIDES` to :term:`RPROVIDES` as ``virtual-x-terminal-emulator``.
  222. Also make this recipe depend on the ``x11`` distro features with
  223. :term:`REQUIRED_DISTRO_FEATURES`.
  224. - ``rxvt-unicode.inc``: disable the ``terminfo`` installation by setting
  225. ``TIC`` to ``:`` in :term:`EXTRA_OECONF`, to avoid host contamination.
  226. - ``matchbox-terminal``: add ``x-terminal-emulator`` as :term:`RPROVIDES`
  227. and set :term:`ALTERNATIVE` for the recipe.
  228. - ``default-providers.conf``: set ``rxvt-unicode`` as the default
  229. ``virtual-x-terminal-emulator`` runtime provider with
  230. :term:`PREFERRED_RPROVIDER`.
  231. - ``systemd``: set better sane time at startup by creating the
  232. ``clock-epoch`` file in ``${libdir}`` if the ``set-time-epoch``
  233. :term:`PACKAGECONFIG` config is set.
  234. - ``cve-update-nvd2-native``: updating the database will now result in an
  235. error if :term:`BB_NO_NETWORK` is enabled and
  236. :term:`CVE_DB_UPDATE_INTERVAL` is not set to ``-1``.
  237. - ``systemtap``: add ``--with-extra-version="oe"`` configure option to
  238. improve the reproducibility of the recipe.
  239. - ``python3``: package ``tkinter``'s shared objects separately in the
  240. ``python3-tkinter`` package.
  241. - ``init-manager``: set the variable ``VIRTUAL-RUNTIME_dev_manager`` to
  242. ``udev`` by default in
  243. :oe_git:`meta/conf/distro/include/init-manager-none.inc
  244. </openembedded-core/tree/meta/conf/distro/include/init-manager-none.inc>`
  245. and :oe_git:`meta/conf/distro/include/init-manager-sysvinit.inc
  246. </openembedded-core/tree/meta/conf/distro/include/init-manager-sysvinit.inc>`,
  247. instead of :oe_git:`meta/recipes-core/packagegroups/packagegroup-core-boot.bb
  248. </openembedded-core/tree/meta/recipes-core/packagegroups/packagegroup-core-boot.bb>`
  249. only.
  250. Likewise, the same is done for ``VIRTUAL-RUNTIME_keymaps`` with
  251. ``keymaps`` as its default value.
  252. - ``seatd``: Create a ``seat`` group and package the systemd service
  253. ``seatd.service`` with correct permissions.
  254. That way, the ``weston`` user in ``weston-init.bb`` was added to the
  255. ``seat`` group to be able to properly establish connection between the
  256. Weston and the ``seatd`` socket.
  257. Known Issues in |yocto-ver|
  258. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  259. Recipe License changes in |yocto-ver|
  260. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  261. The following corrections have been made to the :term:`LICENSE` values set by recipes:
  262. Security Fixes in |yocto-ver|
  263. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  264. Recipe Upgrades in |yocto-ver|
  265. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  266. Contributors to |yocto-ver|
  267. ~~~~~~~~~~~~~~~~~~~~~~~~~~~
  268. Repositories / Downloads for Yocto-|yocto-ver|
  269. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~