migration-3.3.rst 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. Release 3.3 (hardknott)
  3. =======================
  4. This section provides migration information for moving to the Yocto
  5. Project 3.3 Release (codename "hardknott") from the prior release.
  6. .. _migration-3.3-minimum-system-requirements:
  7. Minimum system requirements
  8. ---------------------------
  9. You will now need at least Python 3.6 installed on your build host. Most recent
  10. distributions provide this, but should you be building on a distribution that
  11. does not have it, you can use the :term:`buildtools` tarball (easily installable
  12. using ``scripts/install-buildtools``) --- see
  13. :ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`
  14. for details.
  15. .. _migration-3.3-removed-recipes:
  16. Removed recipes
  17. ---------------
  18. The following recipes have been removed:
  19. - ``go-dep``: obsolete with the advent of go modules
  20. - ``gst-validate``: replaced by ``gst-devtools``
  21. - ``linux-yocto``: removed 5.8 version recipes (5.4 / 5.10 still provided)
  22. - ``vulkan-demos``: replaced by ``vulkan-samples``
  23. .. _migration-3.3-common-license-only-versions:
  24. Single version common license file naming
  25. -----------------------------------------
  26. Some license files in ``meta/files/common-licenses`` have been renamed to match
  27. current SPDX naming conventions:
  28. - AGPL-3.0 -> AGPL-3.0-only
  29. - GPL-1.0 -> GPL-1.0-only
  30. - GPL-2.0 -> GPL-2.0-only
  31. - GPL-3.0 -> GPL-3.0-only
  32. - LGPL-2.0 -> LGPL-2.0-only
  33. - LGPL-2.1 -> LGPL-2.1-only
  34. - LGPL-3.0 -> LGPL-3.0-only
  35. Additionally, corresponding "-or-later" suffixed files have been added e.g.
  36. ``GPL-2.0-or-later``.
  37. It is not required that you change :term:`LICENSE` values as there are mappings
  38. from the original names in place; however, in rare cases where you have a recipe
  39. which sets :term:`LIC_FILES_CHKSUM` to point to file(s) in
  40. ``meta/files/common-licenses`` (which in any case is not recommended) you will
  41. need to update those.
  42. .. _migration-3.3-python3targetconfig:
  43. New ``python3targetconfig`` class
  44. ---------------------------------
  45. A new :ref:`ref-classes-python3targetconfig` class has
  46. been created for situations where you would previously have inherited the
  47. :ref:`ref-classes-python3native` class but need access to
  48. target configuration data (such as correct installation directories). Recipes
  49. where this situation applies should be changed to inherit
  50. :ref:`ref-classes-python3targetconfig` instead of
  51. :ref:`ref-classes-python3native`. This also adds a dependency
  52. on target ``python3``, so it should only be used where appropriate in order to
  53. avoid unnecessarily lengthening builds.
  54. Some example recipes where this change has been made: ``gpgme``, ``libcap-ng``,
  55. ``python3-pycairo``.
  56. .. _migration-3.3-distutils-path:
  57. ``setup.py`` path for Python modules
  58. ------------------------------------
  59. In a Python module, sometimes ``setup.py`` can be buried deep in the
  60. source tree. Previously this was handled in recipes by setting :term:`S` to
  61. point to the subdirectory within the source where ``setup.py`` is located.
  62. However with the recent :ref:`pseudo <overview-manual/concepts:fakeroot and pseudo>`
  63. changes, some Python modules make changes to files beneath ``${S}``, for
  64. example::
  65. S = "${WORKDIR}/git/python/pythonmodule"
  66. then in ``setup.py`` it works with source code in a relative fashion, such
  67. as ``../../src``. This causes pseudo to fail as it isn't able to track
  68. the paths properly. This release introduces a new ``DISTUTILS_SETUP_PATH``
  69. variable so that recipes can specify it explicitly, for example::
  70. S = "${WORKDIR}/git"
  71. DISTUTILS_SETUP_PATH = "${S}/python/pythonmodule"
  72. Recipes that inherit from ``distutils3`` (or :ref:`ref-classes-setuptools3`
  73. which itself inherits ``distutils3``) that also set :term:`S` to point to a
  74. Python module within a subdirectory in the aforementioned manner should be
  75. changed to set ``DISTUTILS_SETUP_PATH`` instead.
  76. .. _migration-3.3-bitbake:
  77. BitBake changes
  78. ---------------
  79. - BitBake is now configured to use a default ``umask`` of ``022`` for all tasks
  80. (specified via a new :term:`BB_DEFAULT_UMASK` variable). If needed, ``umask`` can
  81. still be set on a per-task basis via the ``umask`` varflag on the task
  82. function, but that is unlikely to be necessary in most cases.
  83. - If a version specified in :term:`PREFERRED_VERSION` is not available this
  84. will now trigger a warning instead of just a note, making such issues more
  85. visible.
  86. .. _migration-3.3-packaging:
  87. Packaging changes
  88. -----------------
  89. The following packaging changes have been made; in all cases the main package
  90. still depends upon the split out packages so you should not need to do anything
  91. unless you want to take advantage of the improved granularity:
  92. - ``dbus``: ``-common`` and ``-tools`` split out
  93. - ``iproute2``: split ``ip`` binary to its own package
  94. - ``net-tools``: split ``mii-tool`` into its own package
  95. - ``procps``: split ``ps`` and ``sysctl`` into their own packages
  96. - ``rpm``: split build and extra functionality into separate packages
  97. - ``sudo``: split ``sudo`` binary into ``sudo-sudo`` and libs into ``sudo-lib``
  98. - ``systemtap``: examples, Python scripts and runtime material split out
  99. - ``util-linux``: ``libuuid`` has been split out to its own
  100. ``util-linux-libuuid`` recipe (and corresponding packages) to avoid circular
  101. dependencies if ``libgcrypt`` support is enabled in ``util-linux``.
  102. (``util-linux`` depends upon ``util-linux-libuuid``.)
  103. .. _migration-3.3-misc:
  104. Miscellaneous changes
  105. ---------------------
  106. - The default poky :term:`DISTRO_VERSION` value now uses the core metadata's
  107. git hash (i.e. :term:`METADATA_REVISION`) rather than the date (i.e.
  108. :term:`DATE`) to reduce one small source of non-reproducibility. You can
  109. of course specify your own :term:`DISTRO_VERSION` value as desired
  110. (particularly if you create your own custom distro configuration).
  111. - ``adwaita-icon-theme`` version 3.34.3 has been added back, and is selected
  112. as the default via :term:`PREFERRED_VERSION` in
  113. ``meta/conf/distro/include/default-versions.inc`` due to newer versions
  114. not working well with ``librsvg`` 2.40. ``librsvg`` is not practically
  115. upgradeable at the moment as it has been ported to Rust, and Rust is not
  116. (yet) in OE-Core, but this will change in a future release.
  117. - ``ffmpeg`` is now configured to disable GPL-licensed portions by default
  118. to make it harder to accidentally violate the GPL. To explicitly enable GPL
  119. licensed portions, add ``gpl`` to :term:`PACKAGECONFIG` for ``ffmpeg``
  120. using a bbappend (or use ``PACKAGECONFIG_append_pn-ffmpeg = " gpl"`` in
  121. your configuration.)
  122. - ``connman`` is now set to conflict with ``systemd-networkd`` as they
  123. overlap functionally and may interfere with each other at runtime.
  124. - Canonical SPDX license names are now used in image license manifests in
  125. order to avoid aliases of the same license from showing up together (e.g.
  126. ``GPLv2`` and ``GPL-2.0``)