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