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