blob: 13be9846dfb3bac4d375dd6b9f92068490921079 [file] [log] [blame]
Andrew Geissler517393d2023-01-13 08:55:19 -06001.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
Andrew Geissler09036742021-06-25 14:25:14 -05003Release 2.0 (jethro)
4====================
Andrew Geisslerc9f78652020-09-18 14:11:35 -05005
6This section provides migration information for moving to the Yocto
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05007Project 2.0 Release (codename "jethro") from the prior release.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05008
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
Andrew Geissler09036742021-06-25 14:25:14 -050030:term:`GCCVERSION` in your configuration, as follows::
Andrew Geisslerc9f78652020-09-18 14:11:35 -050031
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
Andrew Geisslerc926e172021-05-07 16:11:35 -050095 seen when you run the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -050096
97 $ bitbake -e
98
Andrew Geissler4c19ea12020-10-27 13:52:24 -050099- ``d.delVar('VARNAME')`` and
100 ``d.setVar('VARNAME', None)`` result in the variable and all
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500101 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
Andrew Geisslerc926e172021-05-07 16:11:35 -0500203the following variable in your configuration::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500204
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
Andrew Geissler517393d2023-01-13 08:55:19 -0600219:ref:`ref-classes-kernel-yocto` class and the external
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500220Metadata 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
Andrew Geissler09036742021-06-25 14:25:14 -0500249 :term:`PACKAGECONFIG` option defined for the recipe.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500250
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