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