diff options
author | Michael Opdenacker <michael.opdenacker@bootlin.com> | 2021-06-10 11:26:21 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-06-14 22:45:33 +0100 |
commit | 5f978a6ccacf9f7f9475207c5a2a1af1dc4c3d00 (patch) | |
tree | fa7ba7ced9e17426b72e07c50288163a5d8ba901 /documentation/migration-guides/migration-2.0.rst | |
parent | dae1e986a0608d899f67f1ae62389d350824235f (diff) | |
download | poky-5f978a6ccacf9f7f9475207c5a2a1af1dc4c3d00.tar.gz |
ref-manual: move migration guides to separate document
This makes the reference manual much lighter by moving
the migration guides to a separate document.
The migration guides are also reordered from last to first,
and they appear directly in the left bar, making them easier
to find in the documentation.
(From yocto-docs rev: 5121b86ee97eb62a0c69c9ad1fc0e3fabbe3e934)
Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/migration-guides/migration-2.0.rst')
-rw-r--r-- | documentation/migration-guides/migration-2.0.rst | 278 |
1 files changed, 278 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-2.0.rst b/documentation/migration-guides/migration-2.0.rst new file mode 100644 index 0000000000..22d0752226 --- /dev/null +++ b/documentation/migration-guides/migration-2.0.rst | |||
@@ -0,0 +1,278 @@ | |||
1 | Release 2.0 (jethro) | ||
2 | ==================== | ||
3 | |||
4 | This section provides migration information for moving to the Yocto | ||
5 | Project 2.0 Release (codename "jethro") from the prior release. | ||
6 | |||
7 | .. _migration-2.0-gcc-5: | ||
8 | |||
9 | GCC 5 | ||
10 | ----- | ||
11 | |||
12 | The default compiler is now GCC 5.2. This change has required fixes for | ||
13 | compilation errors in a number of other recipes. | ||
14 | |||
15 | One important example is a fix for when the Linux kernel freezes at boot | ||
16 | time on ARM when built with GCC 5. If you are using your own kernel | ||
17 | recipe or source tree and building for ARM, you will likely need to | ||
18 | apply this | ||
19 | `patch <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2>`__. | ||
20 | The standard ``linux-yocto`` kernel source tree already has a workaround | ||
21 | for the same issue. | ||
22 | |||
23 | For further details, see https://gcc.gnu.org/gcc-5/changes.html | ||
24 | and the porting guide at | ||
25 | https://gcc.gnu.org/gcc-5/porting_to.html. | ||
26 | |||
27 | Alternatively, you can switch back to GCC 4.9 or 4.8 by setting | ||
28 | ``GCCVERSION`` in your configuration, as follows:: | ||
29 | |||
30 | GCCVERSION = "4.9%" | ||
31 | |||
32 | .. _migration-2.0-Gstreamer-0.10-removed: | ||
33 | |||
34 | Gstreamer 0.10 Removed | ||
35 | ---------------------- | ||
36 | |||
37 | Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of | ||
38 | the change, recipes for Gstreamer 0.10 and related software are now | ||
39 | located in ``meta-multimedia``. This change results in Qt4 having Phonon | ||
40 | and Gstreamer support in QtWebkit disabled by default. | ||
41 | |||
42 | .. _migration-2.0-removed-recipes: | ||
43 | |||
44 | Removed Recipes | ||
45 | --------------- | ||
46 | |||
47 | The 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 | |||
82 | BitBake datastore improvements | ||
83 | ------------------------------ | ||
84 | |||
85 | The method by which BitBake's datastore handles overrides has changed. | ||
86 | Overrides are now applied dynamically and ``bb.data.update_data()`` is | ||
87 | now a no-op. Thus, ``bb.data.update_data()`` is no longer required in | ||
88 | order to apply the correct overrides. In practice, this change is | ||
89 | unlikely to require any changes to Metadata. However, these minor | ||
90 | changes in behavior exist: | ||
91 | |||
92 | - All potential overrides are now visible in the variable history as | ||
93 | seen when you run the following:: | ||
94 | |||
95 | $ bitbake -e | ||
96 | |||
97 | - ``d.delVar('VARNAME')`` and | ||
98 | ``d.setVar('VARNAME', None)`` result in the variable and all | ||
99 | 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 | |||
104 | Shell Message Function Changes | ||
105 | ------------------------------ | ||
106 | |||
107 | The shell versions of the BitBake message functions (i.e. ``bbdebug``, | ||
108 | ``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are | ||
109 | now 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 | ||
112 | would expect to be printed by the BitBake UI are now actually printed. | ||
113 | In 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 | |||
127 | Extra Development/Debug Package Cleanup | ||
128 | --------------------------------------- | ||
129 | |||
130 | The 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 | |||
170 | All of the above recipes now conform to the standard packaging scheme | ||
171 | where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per | ||
172 | recipe. | ||
173 | |||
174 | .. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core: | ||
175 | |||
176 | Recipe Maintenance Tracking Data Moved to OE-Core | ||
177 | ------------------------------------------------- | ||
178 | |||
179 | Maintenance tracking data for recipes that was previously part of | ||
180 | ``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change | ||
181 | includes ``package_regex.inc`` and ``distro_alias.inc``, which are | ||
182 | typically enabled when using the ``distrodata`` class. Additionally, the | ||
183 | contents of ``upstream_tracking.inc`` has now been split out to the | ||
184 | relevant recipes. | ||
185 | |||
186 | .. _migration-2.0-automatic-stale-sysroot-file-cleanup: | ||
187 | |||
188 | Automatic Stale Sysroot File Cleanup | ||
189 | ------------------------------------ | ||
190 | |||
191 | Stale files from recipes that no longer exist in the current | ||
192 | configuration are now automatically removed from sysroot as well as | ||
193 | removed from any other place managed by shared state. This automatic | ||
194 | cleanup means that the build system now properly handles situations such | ||
195 | as renaming the build system side of recipes, removal of layers from | ||
196 | ``bblayers.conf``, and :term:`DISTRO_FEATURES` | ||
197 | changes. | ||
198 | |||
199 | Additionally, work directories for old versions of recipes are now | ||
200 | pruned. If you wish to disable pruning old work directories, you can set | ||
201 | the following variable in your configuration:: | ||
202 | |||
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 | |||
210 | The ``linux-yocto`` tree has up to now been a combined set of kernel | ||
211 | changes and configuration (meta) data carried in a single tree. While | ||
212 | this format is effective at keeping kernel configuration and source | ||
213 | modifications synchronized, it is not always obvious to developers how | ||
214 | to manipulate the Metadata as compared to the source. | ||
215 | |||
216 | Metadata processing has now been removed from the | ||
217 | :ref:`kernel-yocto <ref-classes-kernel-yocto>` class and the external | ||
218 | Metadata repository ``yocto-kernel-cache``, which has always been used | ||
219 | to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto`` | ||
220 | cache repository is now the primary location for this data. Due to this | ||
221 | change, ``linux-yocto`` is no longer able to process combined trees. | ||
222 | Thus, if you need to have your own combined kernel repository, you must | ||
223 | do 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 | |||
228 | Additional QA checks | ||
229 | -------------------- | ||
230 | |||
231 | The 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 | ||
247 | ``PACKAGECONFIG`` option defined for the recipe. | ||
248 | |||
249 | .. _migration-2.0-miscellaneous: | ||
250 | |||
251 | Miscellaneous Changes | ||
252 | --------------------- | ||
253 | |||
254 | These 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 | |||