migration-2.0.rst 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. Release 2.0 (jethro)
  3. ====================
  4. This section provides migration information for moving to the Yocto
  5. Project 2.0 Release (codename "jethro") from the prior release.
  6. .. _migration-2.0-gcc-5:
  7. GCC 5
  8. -----
  9. The default compiler is now GCC 5.2. This change has required fixes for
  10. compilation errors in a number of other recipes.
  11. One important example is a fix for when the Linux kernel freezes at boot
  12. time on ARM when built with GCC 5. If you are using your own kernel
  13. recipe or source tree and building for ARM, you will likely need to
  14. apply this
  15. `patch <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2>`__.
  16. The standard ``linux-yocto`` kernel source tree already has a workaround
  17. for the same issue.
  18. For further details, see https://gcc.gnu.org/gcc-5/changes.html
  19. and the porting guide at
  20. https://gcc.gnu.org/gcc-5/porting_to.html.
  21. Alternatively, you can switch back to GCC 4.9 or 4.8 by setting
  22. :term:`GCCVERSION` in your configuration, as follows::
  23. GCCVERSION = "4.9%"
  24. .. _migration-2.0-Gstreamer-0.10-removed:
  25. Gstreamer 0.10 Removed
  26. ----------------------
  27. Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of
  28. the change, recipes for Gstreamer 0.10 and related software are now
  29. located in ``meta-multimedia``. This change results in Qt4 having Phonon
  30. and Gstreamer support in QtWebkit disabled by default.
  31. .. _migration-2.0-removed-recipes:
  32. Removed Recipes
  33. ---------------
  34. The following recipes have been moved or removed:
  35. - ``bluez4``: The recipe is obsolete and has been moved due to
  36. ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now
  37. resides in ``meta-oe``.
  38. - ``gamin``: The recipe is obsolete and has been removed.
  39. - ``gnome-icon-theme``: The recipe's functionally has been replaced by
  40. ``adwaita-icon-theme``.
  41. - Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed
  42. in favor of the recipes for Gstreamer 1.x.
  43. - ``insserv``: The recipe is obsolete and has been removed.
  44. - ``libunique``: The recipe is no longer used and has been moved to
  45. ``meta-oe``.
  46. - ``midori``: The recipe's functionally has been replaced by
  47. ``epiphany``.
  48. - ``python-gst``: The recipe is obsolete and has been removed since it
  49. only contains bindings for Gstreamer 0.10.
  50. - ``qt-mobility``: The recipe is obsolete and has been removed since it
  51. requires ``Gstreamer 0.10``, which has been replaced.
  52. - ``subversion``: All 1.6.x versions of this recipe have been removed.
  53. - ``webkit-gtk``: The older 1.8.3 version of this recipe has been
  54. removed in favor of ``webkitgtk``.
  55. .. _migration-2.0-bitbake-datastore-improvements:
  56. BitBake datastore improvements
  57. ------------------------------
  58. The method by which BitBake's datastore handles overrides has changed.
  59. Overrides are now applied dynamically and ``bb.data.update_data()`` is
  60. now a no-op. Thus, ``bb.data.update_data()`` is no longer required in
  61. order to apply the correct overrides. In practice, this change is
  62. unlikely to require any changes to Metadata. However, these minor
  63. changes in behavior exist:
  64. - All potential overrides are now visible in the variable history as
  65. seen when you run the following::
  66. $ bitbake -e
  67. - ``d.delVar('VARNAME')`` and
  68. ``d.setVar('VARNAME', None)`` result in the variable and all
  69. of its overrides being cleared out. Before the change, only the
  70. non-overridden values were cleared.
  71. .. _migration-2.0-shell-message-function-changes:
  72. Shell Message Function Changes
  73. ------------------------------
  74. The shell versions of the BitBake message functions (i.e. ``bbdebug``,
  75. ``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are
  76. now connected through to their BitBake equivalents ``bb.debug()``,
  77. ``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and
  78. ``bb.fatal()``, respectively. Thus, those message functions that you
  79. would expect to be printed by the BitBake UI are now actually printed.
  80. In practice, this change means two things:
  81. - If you now see messages on the console that you did not previously
  82. see as a result of this change, you might need to clean up the calls
  83. to ``bbwarn``, ``bberror``, and so forth. Or, you might want to
  84. simply remove the calls.
  85. - The ``bbfatal`` message function now suppresses the full error log in
  86. the UI, which means any calls to ``bbfatal`` where you still wish to
  87. see the full error log should be replaced by ``die`` or
  88. ``bbfatal_log``.
  89. .. _migration-2.0-extra-development-debug-package-cleanup:
  90. Extra Development/Debug Package Cleanup
  91. ---------------------------------------
  92. The following recipes have had extra ``dev/dbg`` packages removed:
  93. - ``acl``
  94. - ``apmd``
  95. - ``aspell``
  96. - ``attr``
  97. - ``augeas``
  98. - ``bzip2``
  99. - ``cogl``
  100. - ``curl``
  101. - ``elfutils``
  102. - ``gcc-target``
  103. - ``libgcc``
  104. - ``libtool``
  105. - ``libxmu``
  106. - ``opkg``
  107. - ``pciutils``
  108. - ``rpm``
  109. - ``sysfsutils``
  110. - ``tiff``
  111. - ``xz``
  112. All of the above recipes now conform to the standard packaging scheme
  113. where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per
  114. recipe.
  115. .. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core:
  116. Recipe Maintenance Tracking Data Moved to OE-Core
  117. -------------------------------------------------
  118. Maintenance tracking data for recipes that was previously part of
  119. ``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change
  120. includes ``package_regex.inc`` and ``distro_alias.inc``, which are
  121. typically enabled when using the ``distrodata`` class. Additionally, the
  122. contents of ``upstream_tracking.inc`` has now been split out to the
  123. relevant recipes.
  124. .. _migration-2.0-automatic-stale-sysroot-file-cleanup:
  125. Automatic Stale Sysroot File Cleanup
  126. ------------------------------------
  127. Stale files from recipes that no longer exist in the current
  128. configuration are now automatically removed from sysroot as well as
  129. removed from any other place managed by shared state. This automatic
  130. cleanup means that the build system now properly handles situations such
  131. as renaming the build system side of recipes, removal of layers from
  132. ``bblayers.conf``, and :term:`DISTRO_FEATURES`
  133. changes.
  134. Additionally, work directories for old versions of recipes are now
  135. pruned. If you wish to disable pruning old work directories, you can set
  136. the following variable in your configuration::
  137. SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
  138. .. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source:
  139. ``linux-yocto`` Kernel Metadata Repository Now Split from Source
  140. ----------------------------------------------------------------
  141. The ``linux-yocto`` tree has up to now been a combined set of kernel
  142. changes and configuration (meta) data carried in a single tree. While
  143. this format is effective at keeping kernel configuration and source
  144. modifications synchronized, it is not always obvious to developers how
  145. to manipulate the Metadata as compared to the source.
  146. Metadata processing has now been removed from the
  147. :ref:`ref-classes-kernel-yocto` class and the external
  148. Metadata repository ``yocto-kernel-cache``, which has always been used
  149. to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto``
  150. cache repository is now the primary location for this data. Due to this
  151. change, ``linux-yocto`` is no longer able to process combined trees.
  152. Thus, if you need to have your own combined kernel repository, you must
  153. do the split there as well and update your recipes accordingly. See the
  154. ``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example.
  155. .. _migration-2.0-additional-qa-checks:
  156. Additional QA checks
  157. --------------------
  158. The following QA checks have been added:
  159. - Added a "host-user-contaminated" check for ownership issues for
  160. packaged files outside of ``/home``. The check looks for files that
  161. are incorrectly owned by the user that ran BitBake instead of owned
  162. by a valid user in the target system.
  163. - Added an "invalid-chars" check for invalid (non-UTF8) characters in
  164. recipe metadata variable values (i.e.
  165. :term:`DESCRIPTION`,
  166. :term:`SUMMARY`, :term:`LICENSE`, and
  167. :term:`SECTION`). Some package managers do not support
  168. these characters.
  169. - Added an "invalid-packageconfig" check for any options specified in
  170. :term:`PACKAGECONFIG` that do not match any
  171. :term:`PACKAGECONFIG` option defined for the recipe.
  172. .. _migration-2.0-miscellaneous:
  173. Miscellaneous Changes
  174. ---------------------
  175. These additional changes exist:
  176. - ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``.
  177. - The ``tools-profile`` :term:`IMAGE_FEATURES`
  178. item as well as its corresponding packagegroup and
  179. ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``.
  180. Bringing in ``oprofile`` was originally added to aid compilation on
  181. resource-constrained targets. However, this aid has not been widely
  182. used and is not likely to be used going forward due to the more
  183. powerful target platforms and the existence of better
  184. cross-compilation tools.
  185. - The :term:`IMAGE_FSTYPES` variable's default
  186. value now specifies ``ext4`` instead of ``ext3``.
  187. - All support for the ``PRINC`` variable has been removed.
  188. - The ``packagegroup-core-full-cmdline`` packagegroup no longer brings
  189. in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not
  190. really in line with the packagegroup's purpose, which is to add full
  191. versions of command-line tools that by default are provided by
  192. ``busybox``.