xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-2.0.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRelease 2.0 (jethro)
2*4882a593Smuzhiyun====================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto
5*4882a593SmuzhiyunProject 2.0 Release (codename "jethro") from the prior release.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun.. _migration-2.0-gcc-5:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunGCC 5
10*4882a593Smuzhiyun-----
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe default compiler is now GCC 5.2. This change has required fixes for
13*4882a593Smuzhiyuncompilation errors in a number of other recipes.
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunOne important example is a fix for when the Linux kernel freezes at boot
16*4882a593Smuzhiyuntime on ARM when built with GCC 5. If you are using your own kernel
17*4882a593Smuzhiyunrecipe or source tree and building for ARM, you will likely need to
18*4882a593Smuzhiyunapply this
19*4882a593Smuzhiyun`patch <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2>`__.
20*4882a593SmuzhiyunThe standard ``linux-yocto`` kernel source tree already has a workaround
21*4882a593Smuzhiyunfor the same issue.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunFor further details, see https://gcc.gnu.org/gcc-5/changes.html
24*4882a593Smuzhiyunand the porting guide at
25*4882a593Smuzhiyunhttps://gcc.gnu.org/gcc-5/porting_to.html.
26*4882a593Smuzhiyun
27*4882a593SmuzhiyunAlternatively, you can switch back to GCC 4.9 or 4.8 by setting
28*4882a593Smuzhiyun:term:`GCCVERSION` in your configuration, as follows::
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun   GCCVERSION = "4.9%"
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun.. _migration-2.0-Gstreamer-0.10-removed:
33*4882a593Smuzhiyun
34*4882a593SmuzhiyunGstreamer 0.10 Removed
35*4882a593Smuzhiyun----------------------
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunGstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of
38*4882a593Smuzhiyunthe change, recipes for Gstreamer 0.10 and related software are now
39*4882a593Smuzhiyunlocated in ``meta-multimedia``. This change results in Qt4 having Phonon
40*4882a593Smuzhiyunand Gstreamer support in QtWebkit disabled by default.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun.. _migration-2.0-removed-recipes:
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunRemoved Recipes
45*4882a593Smuzhiyun---------------
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunThe following recipes have been moved or removed:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun-  ``bluez4``: The recipe is obsolete and has been moved due to
50*4882a593Smuzhiyun   ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now
51*4882a593Smuzhiyun   resides in ``meta-oe``.
52*4882a593Smuzhiyun
53*4882a593Smuzhiyun-  ``gamin``: The recipe is obsolete and has been removed.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun-  ``gnome-icon-theme``: The recipe's functionally has been replaced by
56*4882a593Smuzhiyun   ``adwaita-icon-theme``.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun-  Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed
59*4882a593Smuzhiyun   in favor of the recipes for Gstreamer 1.x.
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun-  ``insserv``: The recipe is obsolete and has been removed.
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun-  ``libunique``: The recipe is no longer used and has been moved to
64*4882a593Smuzhiyun   ``meta-oe``.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun-  ``midori``: The recipe's functionally has been replaced by
67*4882a593Smuzhiyun   ``epiphany``.
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun-  ``python-gst``: The recipe is obsolete and has been removed since it
70*4882a593Smuzhiyun   only contains bindings for Gstreamer 0.10.
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun-  ``qt-mobility``: The recipe is obsolete and has been removed since it
73*4882a593Smuzhiyun   requires ``Gstreamer 0.10``, which has been replaced.
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun-  ``subversion``: All 1.6.x versions of this recipe have been removed.
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun-  ``webkit-gtk``: The older 1.8.3 version of this recipe has been
78*4882a593Smuzhiyun   removed in favor of ``webkitgtk``.
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun.. _migration-2.0-bitbake-datastore-improvements:
81*4882a593Smuzhiyun
82*4882a593SmuzhiyunBitBake datastore improvements
83*4882a593Smuzhiyun------------------------------
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunThe method by which BitBake's datastore handles overrides has changed.
86*4882a593SmuzhiyunOverrides are now applied dynamically and ``bb.data.update_data()`` is
87*4882a593Smuzhiyunnow a no-op. Thus, ``bb.data.update_data()`` is no longer required in
88*4882a593Smuzhiyunorder to apply the correct overrides. In practice, this change is
89*4882a593Smuzhiyununlikely to require any changes to Metadata. However, these minor
90*4882a593Smuzhiyunchanges in behavior exist:
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun-  All potential overrides are now visible in the variable history as
93*4882a593Smuzhiyun   seen when you run the following::
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun      $ bitbake -e
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun-  ``d.delVar('VARNAME')`` and
98*4882a593Smuzhiyun   ``d.setVar('VARNAME', None)`` result in the variable and all
99*4882a593Smuzhiyun   of its overrides being cleared out. Before the change, only the
100*4882a593Smuzhiyun   non-overridden values were cleared.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun.. _migration-2.0-shell-message-function-changes:
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunShell Message Function Changes
105*4882a593Smuzhiyun------------------------------
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunThe shell versions of the BitBake message functions (i.e. ``bbdebug``,
108*4882a593Smuzhiyun``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are
109*4882a593Smuzhiyunnow connected through to their BitBake equivalents ``bb.debug()``,
110*4882a593Smuzhiyun``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and
111*4882a593Smuzhiyun``bb.fatal()``, respectively. Thus, those message functions that you
112*4882a593Smuzhiyunwould expect to be printed by the BitBake UI are now actually printed.
113*4882a593SmuzhiyunIn practice, this change means two things:
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun-  If you now see messages on the console that you did not previously
116*4882a593Smuzhiyun   see as a result of this change, you might need to clean up the calls
117*4882a593Smuzhiyun   to ``bbwarn``, ``bberror``, and so forth. Or, you might want to
118*4882a593Smuzhiyun   simply remove the calls.
119*4882a593Smuzhiyun
120*4882a593Smuzhiyun-  The ``bbfatal`` message function now suppresses the full error log in
121*4882a593Smuzhiyun   the UI, which means any calls to ``bbfatal`` where you still wish to
122*4882a593Smuzhiyun   see the full error log should be replaced by ``die`` or
123*4882a593Smuzhiyun   ``bbfatal_log``.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun.. _migration-2.0-extra-development-debug-package-cleanup:
126*4882a593Smuzhiyun
127*4882a593SmuzhiyunExtra Development/Debug Package Cleanup
128*4882a593Smuzhiyun---------------------------------------
129*4882a593Smuzhiyun
130*4882a593SmuzhiyunThe following recipes have had extra ``dev/dbg`` packages removed:
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun-  ``acl``
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun-  ``apmd``
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun-  ``aspell``
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun-  ``attr``
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun-  ``augeas``
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun-  ``bzip2``
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun-  ``cogl``
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun-  ``curl``
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun-  ``elfutils``
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun-  ``gcc-target``
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun-  ``libgcc``
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun-  ``libtool``
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun-  ``libxmu``
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun-  ``opkg``
159*4882a593Smuzhiyun
160*4882a593Smuzhiyun-  ``pciutils``
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun-  ``rpm``
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun-  ``sysfsutils``
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun-  ``tiff``
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun-  ``xz``
169*4882a593Smuzhiyun
170*4882a593SmuzhiyunAll of the above recipes now conform to the standard packaging scheme
171*4882a593Smuzhiyunwhere a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per
172*4882a593Smuzhiyunrecipe.
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun.. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core:
175*4882a593Smuzhiyun
176*4882a593SmuzhiyunRecipe Maintenance Tracking Data Moved to OE-Core
177*4882a593Smuzhiyun-------------------------------------------------
178*4882a593Smuzhiyun
179*4882a593SmuzhiyunMaintenance tracking data for recipes that was previously part of
180*4882a593Smuzhiyun``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change
181*4882a593Smuzhiyunincludes ``package_regex.inc`` and ``distro_alias.inc``, which are
182*4882a593Smuzhiyuntypically enabled when using the ``distrodata`` class. Additionally, the
183*4882a593Smuzhiyuncontents of ``upstream_tracking.inc`` has now been split out to the
184*4882a593Smuzhiyunrelevant recipes.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun.. _migration-2.0-automatic-stale-sysroot-file-cleanup:
187*4882a593Smuzhiyun
188*4882a593SmuzhiyunAutomatic Stale Sysroot File Cleanup
189*4882a593Smuzhiyun------------------------------------
190*4882a593Smuzhiyun
191*4882a593SmuzhiyunStale files from recipes that no longer exist in the current
192*4882a593Smuzhiyunconfiguration are now automatically removed from sysroot as well as
193*4882a593Smuzhiyunremoved from any other place managed by shared state. This automatic
194*4882a593Smuzhiyuncleanup means that the build system now properly handles situations such
195*4882a593Smuzhiyunas renaming the build system side of recipes, removal of layers from
196*4882a593Smuzhiyun``bblayers.conf``, and :term:`DISTRO_FEATURES`
197*4882a593Smuzhiyunchanges.
198*4882a593Smuzhiyun
199*4882a593SmuzhiyunAdditionally, work directories for old versions of recipes are now
200*4882a593Smuzhiyunpruned. If you wish to disable pruning old work directories, you can set
201*4882a593Smuzhiyunthe following variable in your configuration::
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun   SSTATE_PRUNE_OBSOLETEWORKDIR = "0"
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun.. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source:
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun``linux-yocto`` Kernel Metadata Repository Now Split from Source
208*4882a593Smuzhiyun----------------------------------------------------------------
209*4882a593Smuzhiyun
210*4882a593SmuzhiyunThe ``linux-yocto`` tree has up to now been a combined set of kernel
211*4882a593Smuzhiyunchanges and configuration (meta) data carried in a single tree. While
212*4882a593Smuzhiyunthis format is effective at keeping kernel configuration and source
213*4882a593Smuzhiyunmodifications synchronized, it is not always obvious to developers how
214*4882a593Smuzhiyunto manipulate the Metadata as compared to the source.
215*4882a593Smuzhiyun
216*4882a593SmuzhiyunMetadata processing has now been removed from the
217*4882a593Smuzhiyun:ref:`kernel-yocto <ref-classes-kernel-yocto>` class and the external
218*4882a593SmuzhiyunMetadata repository ``yocto-kernel-cache``, which has always been used
219*4882a593Smuzhiyunto seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto``
220*4882a593Smuzhiyuncache repository is now the primary location for this data. Due to this
221*4882a593Smuzhiyunchange, ``linux-yocto`` is no longer able to process combined trees.
222*4882a593SmuzhiyunThus, if you need to have your own combined kernel repository, you must
223*4882a593Smuzhiyundo the split there as well and update your recipes accordingly. See the
224*4882a593Smuzhiyun``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example.
225*4882a593Smuzhiyun
226*4882a593Smuzhiyun.. _migration-2.0-additional-qa-checks:
227*4882a593Smuzhiyun
228*4882a593SmuzhiyunAdditional QA checks
229*4882a593Smuzhiyun--------------------
230*4882a593Smuzhiyun
231*4882a593SmuzhiyunThe following QA checks have been added:
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun-  Added a "host-user-contaminated" check for ownership issues for
234*4882a593Smuzhiyun   packaged files outside of ``/home``. The check looks for files that
235*4882a593Smuzhiyun   are incorrectly owned by the user that ran BitBake instead of owned
236*4882a593Smuzhiyun   by a valid user in the target system.
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun-  Added an "invalid-chars" check for invalid (non-UTF8) characters in
239*4882a593Smuzhiyun   recipe metadata variable values (i.e.
240*4882a593Smuzhiyun   :term:`DESCRIPTION`,
241*4882a593Smuzhiyun   :term:`SUMMARY`, :term:`LICENSE`, and
242*4882a593Smuzhiyun   :term:`SECTION`). Some package managers do not support
243*4882a593Smuzhiyun   these characters.
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun-  Added an "invalid-packageconfig" check for any options specified in
246*4882a593Smuzhiyun   :term:`PACKAGECONFIG` that do not match any
247*4882a593Smuzhiyun   :term:`PACKAGECONFIG` option defined for the recipe.
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun.. _migration-2.0-miscellaneous:
250*4882a593Smuzhiyun
251*4882a593SmuzhiyunMiscellaneous Changes
252*4882a593Smuzhiyun---------------------
253*4882a593Smuzhiyun
254*4882a593SmuzhiyunThese additional changes exist:
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun-  ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``.
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun-  The ``tools-profile`` :term:`IMAGE_FEATURES`
259*4882a593Smuzhiyun   item as well as its corresponding packagegroup and
260*4882a593Smuzhiyun   ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``.
261*4882a593Smuzhiyun   Bringing in ``oprofile`` was originally added to aid compilation on
262*4882a593Smuzhiyun   resource-constrained targets. However, this aid has not been widely
263*4882a593Smuzhiyun   used and is not likely to be used going forward due to the more
264*4882a593Smuzhiyun   powerful target platforms and the existence of better
265*4882a593Smuzhiyun   cross-compilation tools.
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun-  The :term:`IMAGE_FSTYPES` variable's default
268*4882a593Smuzhiyun   value now specifies ``ext4`` instead of ``ext3``.
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun-  All support for the ``PRINC`` variable has been removed.
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun-  The ``packagegroup-core-full-cmdline`` packagegroup no longer brings
273*4882a593Smuzhiyun   in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not
274*4882a593Smuzhiyun   really in line with the packagegroup's purpose, which is to add full
275*4882a593Smuzhiyun   versions of command-line tools that by default are provided by
276*4882a593Smuzhiyun   ``busybox``.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun
279