migration-1.7.rst 9.1 KB

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