migration-1.5.rst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. Release 1.5 (dora)
  3. ==================
  4. This section provides migration information for moving to the Yocto
  5. Project 1.5 Release (codename "dora") from the prior release.
  6. .. _migration-1.5-host-dependency-changes:
  7. Host Dependency Changes
  8. -----------------------
  9. The OpenEmbedded build system now has some additional requirements on
  10. the host system:
  11. - Python 2.7.3+
  12. - Tar 1.24+
  13. - Git 1.7.8+
  14. - Patched version of Make if you are using 3.82. Most distributions
  15. that provide Make 3.82 use the patched version.
  16. If the Linux distribution you are using on your build host does not
  17. provide packages for these, you can install and use the Buildtools
  18. tarball, which provides an SDK-like environment containing them.
  19. For more information on this requirement, see the
  20. ":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`"
  21. section.
  22. .. _migration-1.5-atom-pc-bsp:
  23. ``atom-pc`` Board Support Package (BSP)
  24. ---------------------------------------
  25. The ``atom-pc`` hardware reference BSP has been replaced by a
  26. ``genericx86`` BSP. This BSP is not necessarily guaranteed to work on
  27. all x86 hardware, but it will run on a wider range of systems than the
  28. ``atom-pc`` did.
  29. .. note::
  30. Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom
  31. systems.
  32. .. _migration-1.5-bitbake:
  33. BitBake
  34. -------
  35. The following changes have been made that relate to BitBake:
  36. - BitBake now supports a ``_remove`` operator. The addition of this
  37. operator means you will have to rename any items in recipe space
  38. (functions, variables) whose names currently contain ``_remove_`` or
  39. end with ``_remove`` to avoid unexpected behavior.
  40. - BitBake's global method pool has been removed. This method is not
  41. particularly useful and led to clashes between recipes containing
  42. functions that had the same name.
  43. - The "none" server backend has been removed. The "process" server
  44. backend has been serving well as the default for a long time now.
  45. - The ``bitbake-runtask`` script has been removed.
  46. - ``${``\ :term:`P`\ ``}`` and
  47. ``${``\ :term:`PF`\ ``}`` are no longer added to
  48. :term:`PROVIDES` by default in ``bitbake.conf``.
  49. These version-specific :term:`PROVIDES` items were seldom used.
  50. Attempting to use them could result in two versions being built
  51. simultaneously rather than just one version due to the way BitBake
  52. resolves dependencies.
  53. .. _migration-1.5-qa-warnings:
  54. QA Warnings
  55. -----------
  56. The following changes have been made to the package QA checks:
  57. - If you have customized :term:`ERROR_QA` or
  58. :term:`WARN_QA` values in your configuration, check
  59. that they contain all of the issues that you wish to be reported.
  60. Previous Yocto Project versions contained a bug that meant that any
  61. item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as
  62. a warning. Consequently, several important items were not already in
  63. the default value of :term:`WARN_QA`. All of the possible QA checks are
  64. now documented in the ":ref:`ref-classes-insane`" section.
  65. - An additional QA check has been added to check if
  66. ``/usr/share/info/dir`` is being installed. Your recipe should delete
  67. this file within :ref:`ref-tasks-install` if "make
  68. install" is installing it.
  69. - If you are using the :ref:`buildhistory <ref-classes-buildhistory>` class,
  70. the check for the package
  71. version going backwards is now controlled using a standard QA check.
  72. Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values
  73. and still wish to have this check performed, you should add
  74. "version-going-backwards" to your value for one or the other
  75. variables depending on how you wish it to be handled. See the
  76. documented QA checks in the ":ref:`ref-classes-insane`" section.
  77. .. _migration-1.5-directory-layout-changes:
  78. Directory Layout Changes
  79. ------------------------
  80. The following directory changes exist:
  81. - Output SDK installer files are now named to include the image name
  82. and tuning architecture through the :term:`SDK_NAME`
  83. variable.
  84. - Images and related files are now installed into a directory that is
  85. specific to the machine, instead of a parent directory containing
  86. output files for multiple machines. The
  87. :term:`DEPLOY_DIR_IMAGE` variable continues
  88. to point to the directory containing images for the current
  89. :term:`MACHINE` and should be used anywhere there is a
  90. need to refer to this directory. The ``runqemu`` script now uses this
  91. variable to find images and kernel binaries and will use BitBake to
  92. determine the directory. Alternatively, you can set the
  93. :term:`DEPLOY_DIR_IMAGE` variable in the external environment.
  94. - When buildhistory is enabled, its output is now written under the
  95. :term:`Build Directory` rather than :term:`TMPDIR`. Doing so makes
  96. it easier to delete :term:`TMPDIR` and preserve the build history.
  97. Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`.
  98. - When :ref:`buildhistory <ref-classes-buildhistory>` is enabled, its output
  99. is now written under the :term:`Build Directory` rather than :term:`TMPDIR`.
  100. Doing so makes it easier to delete :term:`TMPDIR` and preserve the build
  101. history. Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`.
  102. - The ``pkgdata`` directory produced as part of the packaging process
  103. has been collapsed into a single machine-specific directory. This
  104. directory is located under ``sysroots`` and uses a machine-specific
  105. name (i.e. ``tmp/sysroots/machine/pkgdata``).
  106. .. _migration-1.5-shortened-git-srcrev-values:
  107. Shortened Git ``SRCREV`` Values
  108. -------------------------------
  109. BitBake will now shorten revisions from Git repositories from the normal
  110. 40 characters down to 10 characters within :term:`SRCPV`
  111. for improved usability in path and filenames. This change should be
  112. safe within contexts where these revisions are used because the chances
  113. of spatially close collisions is very low. Distant collisions are not a
  114. major issue in the way the values are used.
  115. .. _migration-1.5-image-features:
  116. ``IMAGE_FEATURES``
  117. ------------------
  118. The following changes have been made that relate to
  119. :term:`IMAGE_FEATURES`:
  120. - The value of :term:`IMAGE_FEATURES` is now validated to ensure invalid
  121. feature items are not added. Some users mistakenly add package names
  122. to this variable instead of using
  123. :term:`IMAGE_INSTALL` in order to have the
  124. package added to the image, which does not work. This change is
  125. intended to catch those kinds of situations. Valid :term:`IMAGE_FEATURES`
  126. are drawn from ``PACKAGE_GROUP`` definitions,
  127. :term:`COMPLEMENTARY_GLOB` and a new
  128. "validitems" varflag on :term:`IMAGE_FEATURES`. The "validitems" varflag
  129. change allows additional features to be added if they are not
  130. provided using the previous two mechanisms.
  131. - The previously deprecated "apps-console-core" :term:`IMAGE_FEATURES` item
  132. is no longer supported. Add "splash" to :term:`IMAGE_FEATURES` if you
  133. wish to have the splash screen enabled, since this is all that
  134. apps-console-core was doing.
  135. .. _migration-1.5-run:
  136. ``/run``
  137. --------
  138. The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has
  139. been introduced. You can find some of the implications for this change
  140. :oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`.
  141. The change also means that recipes that install files to ``/var/run``
  142. must be changed. You can find a guide on how to make these changes
  143. `here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__.
  144. .. _migration-1.5-removal-of-package-manager-database-within-image-recipes:
  145. Removal of Package Manager Database Within Image Recipes
  146. --------------------------------------------------------
  147. The image ``core-image-minimal`` no longer adds
  148. ``remove_packaging_data_files`` to
  149. :term:`ROOTFS_POSTPROCESS_COMMAND`.
  150. This addition is now handled automatically when "package-management" is
  151. not in :term:`IMAGE_FEATURES`. If you have custom
  152. image recipes that make this addition, you should remove the lines, as
  153. they are not needed and might interfere with correct operation of
  154. postinstall scripts.
  155. .. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time:
  156. Images Now Rebuild Only on Changes Instead of Every Time
  157. --------------------------------------------------------
  158. The :ref:`ref-tasks-rootfs` and other related image
  159. construction tasks are no longer marked as "nostamp". Consequently, they
  160. will only be re-executed when their inputs have changed. Previous
  161. versions of the OpenEmbedded build system always rebuilt the image when
  162. requested rather when necessary.
  163. .. _migration-1.5-task-recipes:
  164. Task Recipes
  165. ------------
  166. The previously deprecated ``task.bbclass`` has now been dropped. For
  167. recipes that previously inherited from this class, you should rename
  168. them from ``task-*`` to ``packagegroup-*`` and inherit
  169. :ref:`packagegroup <ref-classes-packagegroup>` instead.
  170. For more information, see the ":ref:`ref-classes-packagegroup`" section.
  171. .. _migration-1.5-busybox:
  172. BusyBox
  173. -------
  174. By default, we now split BusyBox into two binaries: one that is suid
  175. root for those components that need it, and another for the rest of the
  176. components. Splitting BusyBox allows for optimization that eliminates
  177. the ``tinylogin`` recipe as recommended by upstream. You can disable
  178. this split by setting
  179. :term:`BUSYBOX_SPLIT_SUID` to "0".
  180. .. _migration-1.5-automated-image-testing:
  181. Automated Image Testing
  182. -----------------------
  183. A new automated image testing framework has been added through the
  184. :ref:`ref-classes-testimage` classes. This
  185. framework replaces the older ``imagetest-qemu`` framework.
  186. You can learn more about performing automated image tests in the
  187. ":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
  188. section in the Yocto Project Development Tasks Manual.
  189. .. _migration-1.5-build-history:
  190. Build History
  191. -------------
  192. Following are changes to Build History:
  193. - Installed package sizes: ``installed-package-sizes.txt`` for an image
  194. now records the size of the files installed by each package instead
  195. of the size of each compressed package archive file.
  196. - The dependency graphs (``depends*.dot``) now use the actual package
  197. names instead of replacing dashes, dots and plus signs with
  198. underscores.
  199. - The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs``
  200. utilities have improved command-line handling. Use the ``--help``
  201. option for each utility for more information on the new syntax.
  202. For more information on Build History, see the
  203. ":ref:`dev-manual/build-quality:maintaining build output quality`"
  204. section in the Yocto Project Development Tasks Manual.
  205. .. _migration-1.5-udev:
  206. ``udev``
  207. --------
  208. Following are changes to ``udev``:
  209. - ``udev`` no longer brings in ``udev-extraconf`` automatically through
  210. :term:`RRECOMMENDS`, since this was originally
  211. intended to be optional. If you need the extra rules, then add
  212. ``udev-extraconf`` to your image.
  213. - ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids``
  214. through :term:`RRECOMMENDS`. These are not needed by ``udev`` itself and
  215. removing them saves around 350KB.
  216. .. _migration-1.5-removed-renamed-recipes:
  217. Removed and Renamed Recipes
  218. ---------------------------
  219. - The ``linux-yocto`` 3.2 kernel has been removed.
  220. - ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``.
  221. - ``tinylogin`` has been removed. It has been replaced by a suid
  222. portion of Busybox. See the ":ref:`migration-1.5-busybox`"
  223. section for more information.
  224. - ``external-python-tarball`` has been renamed to
  225. ``buildtools-tarball``.
  226. - ``web-webkit`` has been removed. It has been functionally replaced by
  227. ``midori``.
  228. - ``imake`` has been removed. It is no longer needed by any other
  229. recipe.
  230. - ``transfig-native`` has been removed. It is no longer needed by any
  231. other recipe.
  232. - ``anjuta-remote-run`` has been removed. Anjuta IDE integration has
  233. not been officially supported for several releases.
  234. .. _migration-1.5-other-changes:
  235. Other Changes
  236. -------------
  237. Following is a list of short entries describing other changes:
  238. - ``run-postinsts``: Make this generic.
  239. - ``base-files``: Remove the unnecessary ``media/``\ xxx directories.
  240. - ``alsa-state``: Provide an empty ``asound.conf`` by default.
  241. - ``classes/image``: Ensure
  242. :term:`BAD_RECOMMENDATIONS` supports
  243. pre-renamed package names.
  244. - ``classes/rootfs_rpm``: Implement :term:`BAD_RECOMMENDATIONS` for RPM.
  245. - ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in
  246. :term:`DISTRO_FEATURES`.
  247. - ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is
  248. present and ``sysvinit`` is not a distro feature.
  249. - ``libpam``: Deny all services for the ``OTHER`` entries.
  250. - :ref:`ref-classes-image`: Move ``runtime_mapping_rename`` to avoid conflict
  251. with ``multilib``. See :yocto_bugs:`YOCTO #4993 </show_bug.cgi?id=4993>`
  252. in Bugzilla for more information.
  253. - ``linux-dtb``: Use kernel build system to generate the ``dtb`` files.
  254. - ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool.