migration-1.7.rst 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. Release 1.7 (dizzy)
  3. ===================
  4. This section provides migration information for moving to the Yocto
  5. Project 1.7 Release (codename "dizzy") from the prior release.
  6. .. _migration-1.7-changes-to-setting-qemu-packageconfig-options:
  7. Changes to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf``
  8. -------------------------------------------------------------------
  9. The QEMU recipe now uses a number of
  10. :term:`PACKAGECONFIG` options to enable various
  11. optional features. The method used to set defaults for these options
  12. means that existing ``local.conf`` files will need to be modified to
  13. append to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu``
  14. instead of setting it. In other words, to enable graphical output for
  15. QEMU, you should now have these lines in ``local.conf``::
  16. PACKAGECONFIG_append_pn-qemu-native = " sdl"
  17. PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
  18. .. _migration-1.7-minimum-git-version:
  19. Minimum Git version
  20. -------------------
  21. The minimum :ref:`overview-manual/development-environment:git`
  22. version required on the
  23. build host is now 1.7.8 because the ``--list`` option is now required by
  24. BitBake's Git fetcher. As always, if your host distribution does not
  25. provide a version of Git that meets this requirement, you can use the
  26. :term:`buildtools` tarball that does. See the
  27. ":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`"
  28. section for more information.
  29. .. _migration-1.7-autotools-class-changes:
  30. Autotools Class Changes
  31. -----------------------
  32. The following :ref:`ref-classes-autotools` class changes occurred:
  33. - *A separate :term:`Build Directory` is now used by default:* The
  34. :ref:`ref-classes-autotools` class has been changed to use a directory for
  35. building (:term:`B`), which is separate from the source directory
  36. (:term:`S`). This is commonly referred to as ``B != S``, or
  37. an out-of-tree build.
  38. If the software being built is already capable of building in a
  39. directory separate from the source, you do not need to do anything.
  40. However, if the software is not capable of being built in this
  41. manner, you will need to either patch the software so that it can
  42. build separately, or you will need to change the recipe to inherit
  43. the :ref:`autotools-brokensep <ref-classes-autotools>` class instead
  44. of the :ref:`ref-classes-autotools` or ``autotools_stage`` classes.
  45. - The ``--foreign`` option is no longer passed to ``automake`` when
  46. running ``autoconf``: This option tells ``automake`` that a
  47. particular software package does not follow the GNU standards and
  48. therefore should not be expected to distribute certain files such as
  49. ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of
  50. upstream software packages already tell ``automake`` to enable
  51. foreign mode themselves, the option is mostly superfluous. However,
  52. some recipes will need patches for this change. You can easily make
  53. the change by patching ``configure.ac`` so that it passes "foreign"
  54. to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this
  55. commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`
  56. for an example showing how to make the patch.
  57. .. _migration-1.7-binary-configuration-scripts-disabled:
  58. Binary Configuration Scripts Disabled
  59. -------------------------------------
  60. Some of the core recipes that package binary configuration scripts now
  61. disable the scripts due to the scripts previously requiring error-prone
  62. path substitution. Software that links against these libraries using
  63. these scripts should use the much more robust ``pkg-config`` instead.
  64. The list of recipes changed in this version (and their configuration
  65. scripts) is as follows::
  66. directfb (directfb-config)
  67. freetype (freetype-config)
  68. gpgme (gpgme-config)
  69. libassuan (libassuan-config)
  70. libcroco (croco-6.0-config)
  71. libgcrypt (libgcrypt-config)
  72. libgpg-error (gpg-error-config)
  73. libksba (ksba-config)
  74. libpcap (pcap-config)
  75. libpcre (pcre-config)
  76. libpng (libpng-config, libpng16-config)
  77. libsdl (sdl-config)
  78. libusb-compat (libusb-config)
  79. libxml2 (xml2-config)
  80. libxslt (xslt-config)
  81. ncurses (ncurses-config)
  82. neon (neon-config)
  83. npth (npth-config)
  84. pth (pth-config)
  85. taglib (taglib-config)
  86. Additionally, support for ``pkg-config`` has been added to some recipes in the
  87. previous list in the rare cases where the upstream software package does
  88. not already provide it.
  89. .. _migration-1.7-glibc-replaces-eglibc:
  90. ``eglibc 2.19`` Replaced with ``glibc 2.20``
  91. --------------------------------------------
  92. Because ``eglibc`` and ``glibc`` were already fairly close, this
  93. replacement should not require any significant changes to other software
  94. that links to ``eglibc``. However, there were a number of minor changes
  95. in ``glibc 2.20`` upstream that could require patching some software
  96. (e.g. the removal of the ``_BSD_SOURCE`` feature test macro).
  97. ``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel.
  98. Thus, older kernels will no longer be usable in conjunction with it.
  99. For full details on the changes in ``glibc 2.20``, see the upstream
  100. release notes
  101. `here <https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html>`__.
  102. .. _migration-1.7-kernel-module-autoloading:
  103. Kernel Module Autoloading
  104. -------------------------
  105. The :term:`module_autoload_* <module_autoload>` variable is now
  106. deprecated and a new
  107. :term:`KERNEL_MODULE_AUTOLOAD` variable
  108. should be used instead. Also, :term:`module_conf_* <module_conf>`
  109. must now be used in conjunction with a new
  110. :term:`KERNEL_MODULE_PROBECONF` variable.
  111. The new variables no longer require you to specify the module name as
  112. part of the variable name. This change not only simplifies usage but
  113. also allows the values of these variables to be appropriately
  114. incorporated into task signatures and thus trigger the appropriate tasks
  115. to re-execute when changed. You should replace any references to
  116. ``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any
  117. modules for which ``module_conf_*`` is specified to
  118. :term:`KERNEL_MODULE_PROBECONF`.
  119. .. _migration-1.7-qa-check-changes:
  120. QA Check Changes
  121. ----------------
  122. The following changes have occurred to the QA check process:
  123. - Additional QA checks ``file-rdeps`` and ``build-deps`` have been
  124. added in order to verify that file dependencies are satisfied (e.g.
  125. package contains a script requiring ``/bin/bash``) and build-time
  126. dependencies are declared, respectively. For more information, please
  127. see the ":doc:`/ref-manual/qa-checks`" chapter.
  128. - Package QA checks are now performed during a new
  129. :ref:`ref-tasks-package_qa` task rather than being
  130. part of the :ref:`ref-tasks-package` task. This allows
  131. more parallel execution. This change is unlikely to be an issue
  132. except for highly customized recipes that disable packaging tasks
  133. themselves by marking them as ``noexec``. For those packages, you
  134. will need to disable the :ref:`ref-tasks-package_qa` task as well.
  135. - Files being overwritten during the
  136. :ref:`ref-tasks-populate_sysroot` task now
  137. trigger an error instead of a warning. Recipes should not be
  138. overwriting files written to the sysroot by other recipes. If you
  139. have these types of recipes, you need to alter them so that they do
  140. not overwrite these files.
  141. You might now receive this error after changes in configuration or
  142. metadata resulting in orphaned files being left in the sysroot. If
  143. you do receive this error, the way to resolve the issue is to delete
  144. your :term:`TMPDIR` or to move it out of the way and
  145. then re-start the build. Anything that has been fully built up to
  146. that point and does not need rebuilding will be restored from the
  147. shared state cache and the rest of the build will be able to proceed
  148. as normal.
  149. .. _migration-1.7-removed-recipes:
  150. Removed Recipes
  151. ---------------
  152. The following recipes have been removed:
  153. - ``x-load``: This recipe has been superseded by U-Boot SPL for all
  154. Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
  155. contains a maintained recipe, should be used instead.
  156. - ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has
  157. been added to functionally replace it.
  158. - ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been
  159. dropped. Support for the 3.10 and 3.14 kernels remains, while support
  160. for version 3.17 has been added.
  161. - ``eglibc`` has been removed in favor of ``glibc``. See the
  162. ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information.
  163. .. _migration-1.7-miscellaneous-changes:
  164. Miscellaneous Changes
  165. ---------------------
  166. The following miscellaneous change occurred:
  167. - The build history feature now writes ``build-id.txt`` instead of
  168. ``build-id``. Additionally, ``build-id.txt`` now contains the full
  169. build header as printed by BitBake upon starting the build. You
  170. should manually remove old "build-id" files from your existing build
  171. history repositories to avoid confusion. For information on the build
  172. history feature, see the
  173. ":ref:`dev-manual/build-quality:maintaining build output quality`"
  174. section in the Yocto Project Development Tasks Manual.