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