migration-5.0.rst 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. Release 5.0 LTS (scarthgap)
  3. ===========================
  4. Migration notes for 5.0 (scarthgap)
  5. ------------------------------------
  6. This section provides migration information for moving to the Yocto
  7. Project 5.0 Release (codename "scarthgap") from the prior release.
  8. To migrate from an earlier LTS release, you **also** need to check all
  9. the previous migration notes from your release to this new one:
  10. - :doc:`/migration-guides/migration-4.3`
  11. - :doc:`/migration-guides/migration-4.2`
  12. - :doc:`/migration-guides/migration-4.1`
  13. - :doc:`/migration-guides/migration-4.0`
  14. - :doc:`/migration-guides/migration-3.4`
  15. - :doc:`/migration-guides/migration-3.3`
  16. - :doc:`/migration-guides/migration-3.2`
  17. .. _migration-5.0-supported-kernel-versions:
  18. Supported kernel versions
  19. ~~~~~~~~~~~~~~~~~~~~~~~~~
  20. The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that
  21. out the box, older kernels are not supported. See :ref:`4.3 migration notes
  22. <migration-4.3-supported-kernel-versions>` for details.
  23. .. _migration-5.0-supported-distributions:
  24. Supported distributions
  25. ~~~~~~~~~~~~~~~~~~~~~~~
  26. Compared to the previous releases, running BitBake is supported on new
  27. GNU/Linux distributions:
  28. - Rocky 9
  29. On the other hand, some earlier distributions are no longer supported:
  30. - Fedora 37
  31. - Ubuntu 22.10
  32. - OpenSUSE Leap 15.3
  33. See :ref:`all supported distributions <system-requirements-supported-distros>`.
  34. .. _migration-5.0-go-changes:
  35. Go language changes
  36. ~~~~~~~~~~~~~~~~~~~
  37. The ``linkmode`` flag was dropped from ``GO_LDFLAGS`` for ``nativesdk`` and
  38. ``cross-canadian``. Also, dynamic linking was disabled for the whole set of
  39. (previously) supported architectures in the ``goarch`` class.
  40. .. _migration-5.0-systemd-changes:
  41. systemd changes
  42. ~~~~~~~~~~~~~~~
  43. Systemd's nss-resolve plugin is now supported and can be added via the
  44. ``nss-resolve`` :term:`PACKAGECONFIG` option , which is from now on required
  45. (along with ``resolved``) by the ``systemd-resolved`` feature. Related to that
  46. (i.e., Systemd's network name resolution), an option to use ``stub-resolv.conf``
  47. was added as well.
  48. .. _migration-5.0-recipe-changes:
  49. Recipe changes
  50. ~~~~~~~~~~~~~~
  51. - Runtime testing of ptest now fails if no test results are returned by
  52. any given ptest.
  53. .. _migration-5.0-deprecated-variables:
  54. Deprecated variables
  55. ~~~~~~~~~~~~~~~~~~~~
  56. - ``CVE_CHECK_IGNORE`` should be replaced with :term:`CVE_STATUS`
  57. .. _migration-5.0-removed-variables:
  58. Removed variables
  59. ~~~~~~~~~~~~~~~~~
  60. The following variables have been removed:
  61. - ``DEPLOY_DIR_TAR``: no longer needed since the package_tar class was removed in 4.2.
  62. - ``PYTHON_PN``: Python 2 has previously been removed, leaving Python 3 as the sole
  63. major version. Therefore, this abstraction to differentiate both versions is
  64. no longer needed.
  65. - ``oldincludedir``
  66. - ``USE_L10N``: previously deprecated, and now removed.
  67. - ``CVE_SOCKET_TIMEOUT``
  68. - ``SERIAL_CONSOLES_CHECK`` - use :term:`SERIAL_CONSOLES` instead as all consoles specified in the latter are checked for their existence before a ``getty`` is started.
  69. .. _migration-5.0-removed-recipes:
  70. Removed recipes
  71. ~~~~~~~~~~~~~~~
  72. The following recipes have been removed in this release:
  73. - ``libcroco``: deprecated and archived by the Gnome Project.
  74. - ``liberror-perl``: unmaintained and no longer needed - moved to meta-perl.
  75. - ``linux-yocto``: version 6.1 (version 6.6 provided instead).
  76. - ``systemtap-uprobes``: obsolete.
  77. - ``zvariant``: fails to build with newer Rust.
  78. .. _migration-5.0-removed-classes:
  79. Removed classes
  80. ~~~~~~~~~~~~~~~
  81. No classes have been removed in this release.
  82. .. _migration-5.0-qemu-changes:
  83. QEMU changes
  84. ~~~~~~~~~~~~
  85. In ``tune-core2``, the cpu models ``n270`` and ``core2duo`` are no longer
  86. passed to QEMU, since its documentation recommends not using them with ``-cpu``
  87. option. Therefore, from now on, ``Nehalem`` model is used instead.
  88. ipk packaging changes
  89. ~~~~~~~~~~~~~~~~~~~~~
  90. ipk packaging (using ``opkg``) now uses ``zstd`` compression instead of ``xz``
  91. for better compression and performance. This does mean that ``.ipk`` packages
  92. built using the 5.0 release requires Opkg built with zstd enabled --- naturally
  93. this is the case in 5.0, but at least by default these packages will not be
  94. usable on older systems where Opkg does not have zstd enabled at build time.
  95. Additionally, the internal dependency solver in Opkg is now deprecated --- it
  96. is still available in this release but will trigger a warning if selected.
  97. The default has been the external ``libsolv`` solver for some time, but if you
  98. have explicitly removed that from :term:`PACKAGECONFIG` for Opkg to
  99. select the internal solver, you should plan to switch to ``libsolv`` in the
  100. near future (by including ``libsolv`` your custom :term:`PACKAGECONFIG` value
  101. for Opkg, or reverting to the default value).
  102. motd message when using ``DISTRO = "poky"``
  103. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104. The default ``poky`` :term:`DISTRO` is explicitly a *reference* distribution
  105. for testing and development purposes. It enables most hardware and software
  106. features so that they can be tested, but this also means that
  107. from a security point of view the attack surface is very large.
  108. We encourage anyone using the Yocto Project for production use to create
  109. their own distribution and not use Poky. To encourage this behaviour
  110. further, in 5.0 a warning has been added to ``/etc/motd`` when Poky is used
  111. so that the developer will see it when they log in. If you are creating your
  112. own distribution this message will not show up.
  113. For information on how to create your own distribution, see
  114. ":ref:`dev-manual/custom-distribution:creating your own distribution`".
  115. .. _migration-5.0-misc-changes:
  116. Miscellaneous changes
  117. ~~~~~~~~~~~~~~~~~~~~~
  118. - ``bitbake-whatchanged`` script was removed as it was broken and unmaintained.
  119. - ``scripts/sstate-cache-management.sh`` has been replaced by
  120. ``scripts/sstate-cache-management.py``, a more performant Python-based version.
  121. - The ``bmap-tools`` recipe has been renamed to ``bmaptool``.
  122. - ``gpgme`` has had Python binding support disabled since upstream does not
  123. support Python 3.12 yet. This will be fixed in future once it is fixed upstream.)
  124. - A warning will now be shown if the ``virtual/`` prefix is used in runtime
  125. contexts (:term:`RDEPENDS` / :term:`RPROVIDES`) ---
  126. See :ref:`virtual-slash <qa-check-virtual-slash>` for details.
  127. - ``recipetool`` now prefixes the names of recipes created for Python modules
  128. with ``python3-``.
  129. - The :ref:`ref-classes-cve-check` class no longer produces a warning for
  130. remote patches --- it only logs a note and does not try to fetch the patch
  131. in order to scan it for issues or CVE numbers. However, CVE number
  132. references in remote patch file names will now be picked up.
  133. - The values of :term:`PE` and :term:`PR` have been dropped from
  134. ``-f{file,macro,debug}-prefix-map``, in order to avoid unnecessary churn
  135. in debugging symbol paths when the version is bumped. This is unlikely to
  136. cause issues, but if you are paying attention to the debugging source path
  137. (e.g. in recipes that need to manipulate these files during packaging) then
  138. you will notice the difference. A new :term:`TARGET_DBGSRC_DIR` variable is
  139. provided to make this easier.
  140. - ``ccache`` no longer supports FORTRAN.