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-3.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-3.0.rst')
-rw-r--r-- | documentation/migration-guides/migration-3.0.rst | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-3.0.rst b/documentation/migration-guides/migration-3.0.rst new file mode 100644 index 0000000000..163c6201c5 --- /dev/null +++ b/documentation/migration-guides/migration-3.0.rst | |||
@@ -0,0 +1,319 @@ | |||
1 | Release 3.0 (zeus) | ||
2 | ================== | ||
3 | |||
4 | This section provides migration information for moving to the Yocto | ||
5 | Project 3.0 Release (codename "zeus") from the prior release. | ||
6 | |||
7 | .. _migration-3.0-init-system-selection: | ||
8 | |||
9 | Init System Selection | ||
10 | --------------------- | ||
11 | |||
12 | Changing the init system manager previously required setting a number of | ||
13 | different variables. You can now change the manager by setting the | ||
14 | ``INIT_MANAGER`` variable and the corresponding include files (i.e. | ||
15 | ``conf/distro/include/init-manager-*.conf``). Include files are provided | ||
16 | for four values: "none", "sysvinit", "systemd", and "mdev-busybox". The | ||
17 | default value, "none", for ``INIT_MANAGER`` should allow your current | ||
18 | settings to continue working. However, it is advisable to explicitly set | ||
19 | ``INIT_MANAGER``. | ||
20 | |||
21 | .. _migration-3.0-lsb-support-removed: | ||
22 | |||
23 | LSB Support Removed | ||
24 | ------------------- | ||
25 | |||
26 | Linux Standard Base (LSB) as a standard is not current, and is not well | ||
27 | suited for embedded applications. Support can be continued in a separate | ||
28 | layer if needed. However, presently LSB support has been removed from | ||
29 | the core. | ||
30 | |||
31 | As a result of this change, the ``poky-lsb`` derivative distribution | ||
32 | configuration that was also used for testing alternative configurations | ||
33 | has been replaced with a ``poky-altcfg`` distribution that has LSB parts | ||
34 | removed. | ||
35 | |||
36 | .. _migration-3.0-removed-recipes: | ||
37 | |||
38 | Removed Recipes | ||
39 | --------------- | ||
40 | |||
41 | The following recipes have been removed. | ||
42 | |||
43 | - ``core-image-lsb-dev``: Part of removed LSB support. | ||
44 | |||
45 | - ``core-image-lsb``: Part of removed LSB support. | ||
46 | |||
47 | - ``core-image-lsb-sdk``: Part of removed LSB support. | ||
48 | |||
49 | - ``cve-check-tool``: Functionally replaced by the ``cve-update-db`` | ||
50 | recipe and ``cve-check`` class. | ||
51 | |||
52 | - ``eglinfo``: No longer maintained. ``eglinfo`` from ``mesa-demos`` is | ||
53 | an adequate and maintained alternative. | ||
54 | |||
55 | - ``gcc-8.3``: Version 8.3 removed. Replaced by 9.2. | ||
56 | |||
57 | - ``gnome-themes-standard``: Only needed by gtk+ 2.x, which has been | ||
58 | removed. | ||
59 | |||
60 | - ``gtk+``: GTK+ 2 is obsolete and has been replaced by gtk+3. | ||
61 | |||
62 | - ``irda-utils``: Has become obsolete. IrDA support has been removed | ||
63 | from the Linux kernel in version 4.17 and later. | ||
64 | |||
65 | - ``libnewt-python``: ``libnewt`` Python support merged into main | ||
66 | ``libnewt`` recipe. | ||
67 | |||
68 | - ``libsdl``: Replaced by newer ``libsdl2``. | ||
69 | |||
70 | - ``libx11-diet``: Became obsolete. | ||
71 | |||
72 | - ``libxx86dga``: Removed obsolete client library. | ||
73 | |||
74 | - ``libxx86misc``: Removed. Library is redundant. | ||
75 | |||
76 | - ``linux-yocto``: Version 5.0 removed, which is now redundant (5.2 / | ||
77 | 4.19 present). | ||
78 | |||
79 | - ``lsbinitscripts``: Part of removed LSB support. | ||
80 | |||
81 | - ``lsb``: Part of removed LSB support. | ||
82 | |||
83 | - ``lsbtest``: Part of removed LSB support. | ||
84 | |||
85 | - ``openssl10``: Replaced by newer ``openssl`` version 1.1. | ||
86 | |||
87 | - ``packagegroup-core-lsb``: Part of removed LSB support. | ||
88 | |||
89 | - ``python-nose``: Removed the Python 2.x version of the recipe. | ||
90 | |||
91 | - ``python-numpy``: Removed the Python 2.x version of the recipe. | ||
92 | |||
93 | - ``python-scons``: Removed the Python 2.x version of the recipe. | ||
94 | |||
95 | - ``source-highlight``: No longer needed. | ||
96 | |||
97 | - ``stress``: Replaced by ``stress-ng``. | ||
98 | |||
99 | - ``vulkan``: Split into ``vulkan-loader``, ``vulkan-headers``, and | ||
100 | ``vulkan-tools``. | ||
101 | |||
102 | - ``weston-conf``: Functionality moved to ``weston-init``. | ||
103 | |||
104 | .. _migration-3.0-packaging-changes: | ||
105 | |||
106 | Packaging Changes | ||
107 | ----------------- | ||
108 | |||
109 | The following packaging changes have occurred. | ||
110 | |||
111 | - The `Epiphany <https://en.wikipedia.org/wiki/GNOME_Web>`__ browser | ||
112 | has been dropped from ``packagegroup-self-hosted`` as it has not been | ||
113 | needed inside ``build-appliance-image`` for quite some time and was | ||
114 | causing resource problems. | ||
115 | |||
116 | - ``libcap-ng`` Python support has been moved to a separate | ||
117 | ``libcap-ng-python`` recipe to streamline the build process when the | ||
118 | Python bindings are not needed. | ||
119 | |||
120 | - ``libdrm`` now packages the file ``amdgpu.ids`` into a separate | ||
121 | ``libdrm-amdgpu`` package. | ||
122 | |||
123 | - ``python3``: The ``runpy`` module is now in the ``python3-core`` | ||
124 | package as it is required to support the common "python3 -m" command | ||
125 | usage. | ||
126 | |||
127 | - ``distcc`` now provides separate ``distcc-client`` and | ||
128 | ``distcc-server`` packages as typically one or the other are needed, | ||
129 | rather than both. | ||
130 | |||
131 | - ``python*-setuptools`` recipes now separately package the | ||
132 | ``pkg_resources`` module in a ``python-pkg-resources`` / | ||
133 | ``python3-pkg-resources`` package as the module is useful independent | ||
134 | of the rest of the setuptools package. The main ``python-setuptools`` | ||
135 | / ``python3-setuptools`` package depends on this new package so you | ||
136 | should only need to update dependencies unless you want to take | ||
137 | advantage of the increased granularity. | ||
138 | |||
139 | .. _migration-3.0-cve-checking: | ||
140 | |||
141 | CVE Checking | ||
142 | ------------ | ||
143 | |||
144 | ``cve-check-tool`` has been functionally replaced by a new | ||
145 | ``cve-update-db`` recipe and functionality built into the ``cve-check`` | ||
146 | class. The result uses NVD JSON data feeds rather than the deprecated | ||
147 | XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring, | ||
148 | and makes other improvements. | ||
149 | |||
150 | Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced | ||
151 | by ``CVE_CHECK_WHITELIST``. | ||
152 | |||
153 | .. _migration-3.0-bitbake-changes: | ||
154 | |||
155 | Bitbake Changes | ||
156 | --------------- | ||
157 | |||
158 | The following BitBake changes have occurred. | ||
159 | |||
160 | - ``addtask`` statements now properly validate dependent tasks. | ||
161 | Previously, an invalid task was silently ignored. With this change, | ||
162 | the invalid task generates a warning. | ||
163 | |||
164 | - Other invalid ``addtask`` and ``deltask`` usages now trigger these | ||
165 | warnings: "multiple target tasks arguments with addtask / deltask", | ||
166 | and "multiple before/after clauses". | ||
167 | |||
168 | - The "multiconfig" prefix is now shortened to "mc". "multiconfig" will | ||
169 | continue to work, however it may be removed in a future release. | ||
170 | |||
171 | - The ``bitbake -g`` command no longer generates a | ||
172 | ``recipe-depends.dot`` file as the contents (i.e. a reprocessed | ||
173 | version of ``task-depends.dot``) were confusing. | ||
174 | |||
175 | - The ``bb.build.FuncFailed`` exception, previously raised by | ||
176 | ``bb.build.exec_func()`` when certain other exceptions have occurred, | ||
177 | has been removed. The real underlying exceptions will be raised | ||
178 | instead. If you have calls to ``bb.build.exec_func()`` in custom | ||
179 | classes or ``tinfoil-using`` scripts, any references to | ||
180 | ``bb.build.FuncFailed`` should be cleaned up. | ||
181 | |||
182 | - Additionally, the ``bb.build.exec_func()`` no longer accepts the | ||
183 | "pythonexception" parameter. The function now always raises | ||
184 | exceptions. Remove this argument in any calls to | ||
185 | ``bb.build.exec_func()`` in custom classes or scripts. | ||
186 | |||
187 | - The ``BB_SETSCENE_VERIFY_FUNCTION2`` variable is no longer used. In | ||
188 | the unlikely event that you have any references to it, they should be | ||
189 | removed. | ||
190 | |||
191 | - The ``RunQueueExecuteScenequeue`` and ``RunQueueExecuteTasks`` events | ||
192 | have been removed since setscene tasks are now executed as part of | ||
193 | the normal runqueue. Any event handling code in custom classes or | ||
194 | scripts that handles these two events need to be updated. | ||
195 | |||
196 | - The arguments passed to functions used with | ||
197 | :term:`bitbake:BB_HASHCHECK_FUNCTION` | ||
198 | have changed. If you are using your own custom hash check function, | ||
199 | see :yocto_git:`/poky/commit/?id=40a5e193c4ba45c928fccd899415ea56b5417725` | ||
200 | for details. | ||
201 | |||
202 | - Task specifications in ``BB_TASKDEPDATA`` and class implementations | ||
203 | used in signature generator classes now use "<fn>:<task>" everywhere | ||
204 | rather than the "." delimiter that was being used in some places. | ||
205 | This change makes it consistent with all areas in the code. Custom | ||
206 | signature generator classes and code that reads ``BB_TASKDEPDATA`` | ||
207 | need to be updated to use ':' as a separator rather than '.'. | ||
208 | |||
209 | .. _migration-3.0-sanity-checks: | ||
210 | |||
211 | Sanity Checks | ||
212 | ------------- | ||
213 | |||
214 | The following sanity check changes occurred. | ||
215 | |||
216 | - :term:`SRC_URI` is now checked for usage of two | ||
217 | problematic items: | ||
218 | |||
219 | - "${PN}" prefix/suffix use - Warnings always appear if ${PN} is | ||
220 | used. You must fix the issue regardless of whether multiconfig or | ||
221 | anything else that would cause prefixing/suffixing to happen. | ||
222 | |||
223 | - Github archive tarballs - these are not guaranteed to be stable. | ||
224 | Consequently, it is likely that the tarballs will be refreshed and | ||
225 | thus the SRC_URI checksums will fail to apply. It is recommended | ||
226 | that you fetch either an official release tarball or a specific | ||
227 | revision from the actual Git repository instead. | ||
228 | |||
229 | Either one of these items now trigger a warning by default. If you | ||
230 | wish to disable this check, remove ``src-uri-bad`` from | ||
231 | :term:`WARN_QA`. | ||
232 | |||
233 | - The ``file-rdeps`` runtime dependency check no longer expands | ||
234 | :term:`RDEPENDS` recursively as there is no mechanism | ||
235 | to ensure they can be fully computed, and thus races sometimes result | ||
236 | in errors either showing up or not. Thus, you might now see errors | ||
237 | for missing runtime dependencies that were previously satisfied | ||
238 | recursively. Here is an example: package A contains a shell script | ||
239 | starting with ``#!/bin/bash`` but has no dependency on bash. However, | ||
240 | package A depends on package B, which does depend on bash. You need | ||
241 | to add the missing dependency or dependencies to resolve the warning. | ||
242 | |||
243 | - Setting ``DEPENDS_${PN}`` anywhere (i.e. typically in a recipe) now | ||
244 | triggers an error. The error is triggered because | ||
245 | :term:`DEPENDS` is not a package-specific variable | ||
246 | unlike RDEPENDS. You should set ``DEPENDS`` instead. | ||
247 | |||
248 | - systemd currently does not work well with the musl C library because | ||
249 | only upstream officially supports linking the library with glibc. | ||
250 | Thus, a warning is shown when building systemd in conjunction with | ||
251 | musl. | ||
252 | |||
253 | .. _migration-3.0-miscellaneous-changes: | ||
254 | |||
255 | Miscellaneous Changes | ||
256 | --------------------- | ||
257 | |||
258 | The following miscellaneous changes have occurred. | ||
259 | |||
260 | - The ``gnome`` class has been removed because it now does very little. | ||
261 | You should update recipes that previously inherited this class to do | ||
262 | the following: inherit gnomebase gtk-icon-cache gconf mime | ||
263 | |||
264 | - The ``meta/recipes-kernel/linux/linux-dtb.inc`` file has been | ||
265 | removed. This file was previously deprecated in favor of setting | ||
266 | :term:`KERNEL_DEVICETREE` in any kernel | ||
267 | recipe and only produced a warning. Remove any ``include`` or | ||
268 | ``require`` statements pointing to this file. | ||
269 | |||
270 | - :term:`TARGET_CFLAGS`, | ||
271 | :term:`TARGET_CPPFLAGS`, | ||
272 | :term:`TARGET_CXXFLAGS`, and | ||
273 | :term:`TARGET_LDFLAGS` are no longer exported | ||
274 | to the external environment. This change did not require any changes | ||
275 | to core recipes, which is a good indicator that no changes will be | ||
276 | required. However, if for some reason the software being built by one | ||
277 | of your recipes is expecting these variables to be set, then building | ||
278 | the recipe will fail. In such cases, you must either export the | ||
279 | variable or variables in the recipe or change the scripts so that | ||
280 | exporting is not necessary. | ||
281 | |||
282 | - You must change the host distro identifier used in | ||
283 | :term:`NATIVELSBSTRING` to use all lowercase | ||
284 | characters even if it does not contain a version number. This change | ||
285 | is necessary only if you are not using ``uninative`` and | ||
286 | :term:`SANITY_TESTED_DISTROS`. | ||
287 | |||
288 | - In the ``base-files`` recipe, writing the hostname into | ||
289 | ``/etc/hosts`` and ``/etc/hostname`` is now done within the main | ||
290 | :ref:`ref-tasks-install` function rather than in the | ||
291 | ``do_install_basefilesissue`` function. The reason for the change is | ||
292 | because ``do_install_basefilesissue`` is more easily overridden | ||
293 | without having to duplicate the hostname functionality. If you have | ||
294 | done the latter (e.g. in a ``base-files`` bbappend), then you should | ||
295 | remove it from your customized ``do_install_basefilesissue`` | ||
296 | function. | ||
297 | |||
298 | - The ``wic --expand`` command now uses commas to separate "key:value" | ||
299 | pairs rather than hyphens. | ||
300 | |||
301 | .. note:: | ||
302 | |||
303 | The wic command-line help is not updated. | ||
304 | |||
305 | You must update any scripts or commands where you use | ||
306 | ``wic --expand`` with multiple "key:value" pairs. | ||
307 | |||
308 | - UEFI image variable settings have been moved from various places to a | ||
309 | central ``conf/image-uefi.conf``. This change should not influence | ||
310 | any existing configuration as the ``meta/conf/image-uefi.conf`` in | ||
311 | the core metadata sets defaults that can be overridden in the same | ||
312 | manner as before. | ||
313 | |||
314 | - ``conf/distro/include/world-broken.inc`` has been removed. For cases | ||
315 | where certain recipes need to be disabled when using the musl C | ||
316 | library, these recipes now have ``COMPATIBLE_HOST_libc-musl`` set | ||
317 | with a comment that explains why. | ||
318 | |||
319 | |||