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