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