migration-1.7.rst 9.0 KB

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