diff options
-rw-r--r-- | documentation/migration-guides/migration-4.2.rst | 196 |
1 files changed, 162 insertions, 34 deletions
diff --git a/documentation/migration-guides/migration-4.2.rst b/documentation/migration-guides/migration-4.2.rst index c2ec8af8a4..1db6fbca42 100644 --- a/documentation/migration-guides/migration-4.2.rst +++ b/documentation/migration-guides/migration-4.2.rst | |||
@@ -9,22 +9,47 @@ Migration notes for 4.2 (mickledore) | |||
9 | This section provides migration information for moving to the Yocto | 9 | This section provides migration information for moving to the Yocto |
10 | Project 4.2 Release (codename "mickledore") from the prior release. | 10 | Project 4.2 Release (codename "mickledore") from the prior release. |
11 | 11 | ||
12 | .. _migration-4.2-supported-distributions: | ||
13 | |||
14 | Supported distributions | ||
15 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
16 | |||
17 | This release supports running BitBake on new GNU/Linux distributions: | ||
18 | |||
19 | - Fedora 36 and 37 | ||
20 | - AlmaLinux 8.7 and 9.1 | ||
21 | - OpenSuse 15.4 | ||
22 | |||
23 | On the other hand, some earlier distributions are no longer supported: | ||
24 | |||
25 | - Debian 10.x | ||
26 | - Fedora 34 and 35 | ||
27 | - AlmaLinux 8.5 | ||
28 | |||
29 | See :ref:`all supported distributions <system-requirements-supported-distros>`. | ||
30 | |||
12 | .. _migration-4.2-python-3.8: | 31 | .. _migration-4.2-python-3.8: |
13 | 32 | ||
14 | Python 3.8 is now the minimum required Python version version | 33 | Python 3.8 is now the minimum required Python version version |
15 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 34 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
16 | 35 | ||
17 | BitBake and OpenEmbedded-Core are now relying on Python 3.8, | 36 | BitBake and OpenEmbedded-Core now require Python 3.8 or newer, |
18 | making it a requirement to use a distribution providing at least this | 37 | making it a requirement to use a distribution providing at least this |
19 | version, or to use :term:`buildtools`. | 38 | version, or to install a :term:`buildtools` tarball. |
20 | 39 | ||
21 | .. _migration-4.2-gcc-8.0: | 40 | .. _migration-4.2-gcc-8.0: |
22 | 41 | ||
23 | gcc 8.0 is now the minumum required GNU C compiler version | 42 | gcc 8.0 is now the minimum required GNU C compiler version |
24 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 43 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
25 | 44 | ||
26 | This version, released in 2018, is a minimum requirement | 45 | This version, released in 2018, is a minimum requirement |
27 | to build the ``mesa-native`` recipe. | 46 | to build the ``mesa-native`` recipe and as the latter is in the |
47 | default dependency chain when building QEMU this has now been | ||
48 | made a requirement for all builds. | ||
49 | |||
50 | In the event that your host distribution does not provide this | ||
51 | or a newer version of gcc, you can install a | ||
52 | :term:`buildtools-extended` tarball. | ||
28 | 53 | ||
29 | .. _migration-4.2-new-nvd-api: | 54 | .. _migration-4.2-new-nvd-api: |
30 | 55 | ||
@@ -48,7 +73,7 @@ Here are minor changes that you may notice: | |||
48 | Rust: mandatory checksums for crates | 73 | Rust: mandatory checksums for crates |
49 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 74 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
50 | 75 | ||
51 | This release now supports checksums for Rust crates and make | 76 | This release now supports checksums for Rust crates and makes |
52 | them mandatory for each crate in a recipe. See :yocto_git:`python3_bcrypt recipe changes | 77 | them mandatory for each crate in a recipe. See :yocto_git:`python3_bcrypt recipe changes |
53 | </poky/commit/?h=mickledore&id=0dcb5ab3462fdaaf1646b05a00c7150eea711a9a>` | 78 | </poky/commit/?h=mickledore&id=0dcb5ab3462fdaaf1646b05a00c7150eea711a9a>` |
54 | for example. | 79 | for example. |
@@ -66,25 +91,6 @@ follow these steps: | |||
66 | #. Copy and paste the output of BitBake about the missing checksums into the | 91 | #. Copy and paste the output of BitBake about the missing checksums into the |
67 | ``${BPN}-crates.inc`` file. | 92 | ``${BPN}-crates.inc`` file. |
68 | 93 | ||
69 | .. _migration-4.2-supported-distributions: | ||
70 | |||
71 | Supported distributions | ||
72 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
73 | |||
74 | This release supports running BitBake on new GNU/Linux distributions: | ||
75 | |||
76 | - Fedora 36 and 37 | ||
77 | - AlmaLinux 8.7 and 9.1 | ||
78 | - OpenSuse 15.4 | ||
79 | |||
80 | On the other hand, some earlier distributions are no longer supported: | ||
81 | |||
82 | - Debian 10.x | ||
83 | - Fedora 34 and 35 | ||
84 | - AlmaLinux 8.5 | ||
85 | |||
86 | See :ref:`all supported distributions <system-requirements-supported-distros>`. | ||
87 | |||
88 | 94 | ||
89 | .. _migration-4.2-addpylib: | 95 | .. _migration-4.2-addpylib: |
90 | 96 | ||
@@ -107,15 +113,6 @@ make modules available for use sooner than the current BBPATH-based approach. | |||
107 | For more information, see :ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`. | 113 | For more information, see :ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`. |
108 | 114 | ||
109 | 115 | ||
110 | .. _migration-4.2-misc-changes: | ||
111 | |||
112 | Miscellaneous changes | ||
113 | ~~~~~~~~~~~~~~~~~~~~~ | ||
114 | |||
115 | - The ``OEBasic`` signature handler (see :term:`BB_SIGNATURE_HANDLER`) has been | ||
116 | removed. | ||
117 | |||
118 | |||
119 | .. _migration-4.2-removed-variables: | 116 | .. _migration-4.2-removed-variables: |
120 | 117 | ||
121 | Removed variables | 118 | Removed variables |
@@ -124,6 +121,10 @@ Removed variables | |||
124 | The following variables have been removed: | 121 | The following variables have been removed: |
125 | 122 | ||
126 | - ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:`SERIAL_CONSOLES`. | 123 | - ``SERIAL_CONSOLE``, deprecated since version 2.6, replaced by :term:`SERIAL_CONSOLES`. |
124 | - ``PACKAGEBUILDPKGD``, a mostly internal variable in the ref:`ref-classes-package` | ||
125 | class was rarely used to customise packaging. If you were using this in your custom | ||
126 | recipes or bbappends, you will need to switch to using :term:`PACKAGE_PREPROCESS_FUNCS` | ||
127 | or :term:`PACKAGESPLITFUNCS` instead. | ||
127 | 128 | ||
128 | .. _migration-4.2-removed-recipes: | 129 | .. _migration-4.2-removed-recipes: |
129 | 130 | ||
@@ -136,6 +137,8 @@ The following recipes have been removed in this release: | |||
136 | - ``python3-strict-rfc3339``: unmaintained and not needed by anything in | 137 | - ``python3-strict-rfc3339``: unmaintained and not needed by anything in |
137 | :oe_git:`openembedded-core </openembedded-core>` | 138 | :oe_git:`openembedded-core </openembedded-core>` |
138 | or :oe_git:`meta-openembedded </meta-openembedded>`. | 139 | or :oe_git:`meta-openembedded </meta-openembedded>`. |
140 | - ``linux-yocto``: removed version 5.19 recipes (6.1 and 5.15 still provided) | ||
141 | |||
139 | 142 | ||
140 | .. _migration-4.2-removed-classes: | 143 | .. _migration-4.2-removed-classes: |
141 | 144 | ||
@@ -144,5 +147,130 @@ Removed classes | |||
144 | 147 | ||
145 | The following classes have been removed in this release: | 148 | The following classes have been removed in this release: |
146 | 149 | ||
147 | - ``rust-bin``: no longer used in Poky | 150 | - ``rust-bin``: no longer used |
151 | - ``package_tar``: could not be used for actual packaging, and thus not particularly useful. | ||
152 | |||
153 | |||
154 | LAYERSERIES_COMPAT for custom layers and devtool workspace | ||
155 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
156 | |||
157 | Some layer maintainers have been setting :term:`LAYERSERIES_COMPAT` in their | ||
158 | layer's ``conf/layer.conf`` to the value of ``LAYERSERIES_CORENAMES`` to | ||
159 | effectively bypass the compatibility check - this is no longer permitted. | ||
160 | Layer maintainers should set :term:`LAYERSERIES_COMPAT` appropriately to | ||
161 | help users understand the compatibility status of the layer. | ||
162 | |||
163 | Additionally, the :term:`LAYERSERIES_COMPAT` value for the devtool workspace | ||
164 | layer is now set at the time of creation, thus if you upgrade with the | ||
165 | workspace layer enabled and you wish to retain it, you will need to manually | ||
166 | update the :term:`LAYERSERIES_COMPAT` value in ``workspace/conf/layer.conf`` | ||
167 | (or remove the path from :term:`BBLAYERS` in ``conf/bblayers.conf`` and | ||
168 | delete/move the ``workspace`` directory out of the way if you no longer | ||
169 | need it). | ||
148 | 170 | ||
171 | |||
172 | .. _migration-4.2-runqemu-slirp: | ||
173 | |||
174 | runqemu now limits slirp host port forwarding to localhost | ||
175 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
176 | |||
177 | With default slirp port forwarding configuration in runqemu, qemu | ||
178 | previously listened on TCP ports 2222 and 2323 on all IP addresses | ||
179 | available on the build host. Most use cases with runqemu only need | ||
180 | it for localhost and it is not safe to run qemu images with root | ||
181 | login without password enabled and listening on all available, | ||
182 | possibly Internet reachable network interfaces. Thus, in this | ||
183 | release we limit qemu port forwarding to localhost (127.0.0.1). | ||
184 | |||
185 | However, if you need the qemu machine to be reachable from the | ||
186 | network, then it can be enabled via ``conf/local.conf`` or machine | ||
187 | config variable ``QB_SLIRP_OPT``:: | ||
188 | |||
189 | QB_SLIRP_OPT = "-netdev user,id=net0,hostfwd=tcp::2222-:22" | ||
190 | |||
191 | |||
192 | .. _migration-4.2-patch-qa: | ||
193 | |||
194 | Patch QA checks | ||
195 | ~~~~~~~~~~~~~~~ | ||
196 | |||
197 | The QA checks for patch fuzz and Upstream-Status have been reworked | ||
198 | slightly in this release. The Upstream-Status checking is now configurable | ||
199 | from :term:`WARN_QA` / :term:`ERROR_QA` (``patch-status-core`` for the | ||
200 | core layer, and ``patch-status-noncore`` for other layers). | ||
201 | |||
202 | The ``patch-fuzz`` and ``patch-status-core`` checks are now in the default | ||
203 | value of :term:`ERROR_QA` so that they will cause the build to fail | ||
204 | if triggered. If you prefer to avoid this you will need to adjust the value | ||
205 | of :term:`ERROR_QA` in your configuration as desired. | ||
206 | |||
207 | |||
208 | .. _migration-4.2-mesa: | ||
209 | |||
210 | Native/nativesdk mesa usage and graphics drivers | ||
211 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
212 | |||
213 | This release includes mesa 23.0, and with that mesa release it is not longer | ||
214 | possible to use drivers from the host system, as mesa upstream has added strict | ||
215 | checks for matching builds between drivers and libraries that load them. | ||
216 | |||
217 | This is particularly relevant when running QEMU built within the build | ||
218 | system. A check has been added to runqemu so that there is a helpful error | ||
219 | when there is no native/nativesdk opengl/virgl support available. | ||
220 | |||
221 | To support this, a number of drivers have been enabled when building ``mesa-native``. | ||
222 | The one major dependency pulled in by this change is ``llvm-native`` which will | ||
223 | add a few minutes to the build on a modern machine. If this is undesirable, you | ||
224 | can set the value of :term:`DISTRO_FEATURES_NATIVE` in your configuration such | ||
225 | that ``opengl`` is excluded. | ||
226 | |||
227 | |||
228 | .. _migration-4.2-misc-changes: | ||
229 | |||
230 | Miscellaneous changes | ||
231 | ~~~~~~~~~~~~~~~~~~~~~ | ||
232 | |||
233 | - The :term:`IMAGE_NAME` variable is now set based on :term:`IMAGE_LINK_NAME`. This | ||
234 | means that if you are setting :term:`IMAGE_LINK_NAME` to "" to disable unversioned | ||
235 | image symlink creation, you also now need to set :term:`IMAGE_NAME` to still have | ||
236 | a reasonable value e.g.:: | ||
237 | |||
238 | IMAGE_LINK_NAME = "" | ||
239 | IMAGE_NAME = "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}" | ||
240 | |||
241 | - In ``/etc/os-release``, the ``VERSION_CODENAME`` field is now used instead of | ||
242 | ``DISTRO_CODENAME`` (though its value is still set from the :term:`DISTRO_CODENAME` | ||
243 | variable) for better conformance to standard os-release usage. If you have runtime | ||
244 | code reading this from ``/etc/os-release`` it may need to be updated. | ||
245 | |||
246 | - The kmod recipe now enables OpenSSL support by default in order to support module | ||
247 | signing. If you do not need this and wish to reclaim some space/avoid the dependency | ||
248 | you should set :term:`PACKAGECONFIG` in a kmod bbappend (or ``PACKAGECONFIG:pn-kmod`` | ||
249 | at the configuration level) to exclude ``openssl``. | ||
250 | |||
251 | - The ``OEBasic`` signature handler (see :term:`BB_SIGNATURE_HANDLER`) has been | ||
252 | removed. It is unlikely that you would have selected to use this, but if you have | ||
253 | you will need to remove this setting. | ||
254 | |||
255 | - The :ref:`ref-classes-package` class now checks if package names conflict via | ||
256 | ``PKG:${PN}`` override during ``do_package``. If you receive the associated error | ||
257 | you will need to address the :term:`PKG` usage so that the conflict is resolved. | ||
258 | |||
259 | - openssh no longer uses :term:`RRECOMMENDS` to pull in ``rng-tools``, since rngd | ||
260 | is no longer needed as of Linux kernel 5.6. If you still need ``rng-tools`` | ||
261 | installed for other reasons, you should add ``rng-tools`` explicitly to your | ||
262 | image. If you additionally need rngd to be started as a service you will also | ||
263 | need to add the ``rng-tools-service`` package as that has been split out. | ||
264 | |||
265 | - The cups recipe no longer builds with the web interface enabled, saving ~1.8M of | ||
266 | space in the final image. If you wish to enable it, you should set | ||
267 | :term:`PACKAGECONFIG` in a cups bbappend (or ``PACKAGECONFIG:pn-cups`` at the | ||
268 | configuration level) to include ``webif``. | ||
269 | |||
270 | - The :ref:`ref-classes-scons` class now passes a ``MAXLINELENGTH`` argument to | ||
271 | scons in order to fix an issue with scons and command line lengths when ccache is | ||
272 | enabled. However, some recipes may be using older scons versions which don't support | ||
273 | this argument. If that is the case you can set the following in the recipe in order | ||
274 | to disable this:: | ||
275 | |||
276 | SCONS_MAXLINELENGTH = "" | ||