migration-3.3.rst 6.7 KB

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