blob: fc25397d70991dd1732b40902090833a70070aa8 [file] [log] [blame]
Andrew Geissler3eeda902023-05-19 10:14:02 -05001.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Release 4.3 (nanbield)
4========================
5
6Migration notes for 4.3 (nanbield)
7------------------------------------
8
9This section provides migration information for moving to the Yocto
10Project 4.3 Release (codename "nanbield") from the prior release.
11
12.. _migration-4.3-supported-kernel-versions:
13
14Supported kernel versions
15~~~~~~~~~~~~~~~~~~~~~~~~~
16
17The :term:`OLDEST_KERNEL` setting has been changed to "5.15" in this release, meaning that
18out the box, older kernels are not supported. There were two reasons for this.
19Firstly it allows glibc optimisations that improve the performance of the system
20by removing compatibility code and using modern kernel APIs exclusively. The second
21issue was this allows 64 bit time support even on 32 bit platforms and resolves Y2038
22issues.
23
24It is still possible to override this value and build for older kernels, this is just
25no longer the default supported configuration. This setting does not affect which
26kernel versions SDKs will run against and does not affect which versions of the kernel
27can be used to run builds.
28
Patrick Williamsac13d5f2023-11-24 18:59:46 -060029.. _migration-4.3-layername-override:
30
Patrick Williams520786c2023-06-25 16:20:36 -050031Layername override implications
32~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34Code can now know which layer a recipe is coming from through the newly added
35:term:`FILE_LAYERNAME` variable and the ``layer-<layername> override``. This is being used
36for enabling QA checks on a per layer basis. For existing code this has the
Patrick Williamsac13d5f2023-11-24 18:59:46 -060037side effect that the QA checks will apply to recipes being bbappended
38from other layers - for example, patches added through such bbappends will now
39need to have the "Upstream-Status" specified in the patch header.
40
41.. _migration-4.3-compiling-changes:
42
43Compiling changes
44~~~~~~~~~~~~~~~~~
45
46- Code on 32 bit platforms is now compiled with largefile support and 64
47 bit ``time_t``, to avoid the Y2038 time overflow issue. This breaks the ABI
48 and could break existing programs in untested layers.
Patrick Williams520786c2023-06-25 16:20:36 -050049
Andrew Geissler3eeda902023-05-19 10:14:02 -050050.. _migration-4.3-supported-distributions:
51
52Supported distributions
53~~~~~~~~~~~~~~~~~~~~~~~
54
55This release supports running BitBake on new GNU/Linux distributions:
56
Patrick Williamsac13d5f2023-11-24 18:59:46 -060057- Ubuntu 22.10
58- Fedora 38
59- Debian 12
60- CentOS Stream 8
61- AlmaLinux 8.8
62- AlmaLinux 9.2
63
Andrew Geissler3eeda902023-05-19 10:14:02 -050064On the other hand, some earlier distributions are no longer supported:
65
Patrick Williamsac13d5f2023-11-24 18:59:46 -060066- Fedora 36
67- AlmaLinux 8.7
68- AlmaLinux 9.1
69
Andrew Geissler3eeda902023-05-19 10:14:02 -050070See :ref:`all supported distributions <system-requirements-supported-distros>`.
71
Patrick Williamsac13d5f2023-11-24 18:59:46 -060072.. _migration-4.3-removed-machines:
73
74edgerouter machine removed
75~~~~~~~~~~~~~~~~~~~~~~~~~~
76
77The ``edgerouter`` reference BSP for the MIPS architecture in ``meta-yocto-bsp``
78has been removed as the hardware has been unavailable for some time. There is no
79suitable reference MIPS hardware to replace it with, but the MIPS architecture
80will continue to get coverage via QEMU build/boot testing.
81
Andrew Geissler3eeda902023-05-19 10:14:02 -050082.. _migration-4.3-go-changes:
83
84Go language changes
85~~~~~~~~~~~~~~~~~~~
86
87- Support for the Glide package manager has been removed, as ``go mod``
88 has become the standard.
89
Patrick Williamsac13d5f2023-11-24 18:59:46 -060090.. _migration-4.3-systemd-changes:
91
92systemd changes
Patrick Williams520786c2023-06-25 16:20:36 -050093~~~~~~~~~~~~~~~
94
95Upstream systemd is now more strict on filesystem layout and the ``usrmerge``
96feature is therefore required alongside systemd. The Poky test configurations
97have been updated accordingly for systemd.
98
Andrew Geissler3eeda902023-05-19 10:14:02 -050099.. _migration-4.3-recipe-changes:
100
101Recipe changes
102~~~~~~~~~~~~~~
103
104- Runtime testing of ptest now fails if no test results are returned by
105 any given ptest.
106
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600107.. _migration-4.3-deprecated-variables:
Andrew Geissler3eeda902023-05-19 10:14:02 -0500108
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600109Deprecated variables
110~~~~~~~~~~~~~~~~~~~~
Andrew Geissler3eeda902023-05-19 10:14:02 -0500111
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600112The following variables have been deprecated:
113
114- :term:`CVE_CHECK_IGNORE`: use :term:`CVE_STATUS` instead.
Andrew Geissler3eeda902023-05-19 10:14:02 -0500115
116.. _migration-4.3-removed-variables:
117
118Removed variables
119~~~~~~~~~~~~~~~~~
120
121The following variables have been removed:
122
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600123- ``AUTHOR``
Andrew Geissler3eeda902023-05-19 10:14:02 -0500124- ``PERLARCH``
125- ``PERLVERSION``
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600126- ``QEMU_USE_SLIRP`` - add ``slirp`` to ``TEST_RUNQEMUPARAMS`` instead.
127- ``SERIAL_CONSOLES_CHECK`` - no longer necessary because all
128 consoles listed in :term:`SERIAL_CONSOLES` are checked for their existence
129 before a ``getty`` is started.
Andrew Geissler3eeda902023-05-19 10:14:02 -0500130
131.. _migration-4.3-removed-recipes:
132
133Removed recipes
134~~~~~~~~~~~~~~~
135
136The following recipes have been removed in this release:
137
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600138- ``apmd``: obsolete (``apm`` in :term:`MACHINE_FEATURES` also removed).
139- ``cve-update-db-native``: functionally replaced by ``cve-update-nvd2-native``
140- ``gcr3``: no longer needed by core recipes, moved to meta-gnome (gcr, i.e. version 4.x, is still provided).
141- ``glide``: as explained in :ref:`migration-4.3-go-changes`.
142- ``libdmx``: obsolete
143- ``linux-yocto`` version 5.15 (versions 6.1 and 6.5 provided instead).
144- ``python3-async``: obsolete - no longer needed by ``python3-gitdb`` or any other core recipe
145- ``rust-hello-world``: there are sufficient other Rust recipes and test cases such that this is no longer needed.
146
Andrew Geissler3eeda902023-05-19 10:14:02 -0500147
148.. _migration-4.3-removed-classes:
149
150Removed classes
151~~~~~~~~~~~~~~~
152
153The following classes have been removed in this release:
154
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600155- ``glide``: as explained in :ref:`migration-4.3-go-changes`.
156
157
158Output file naming changes
159~~~~~~~~~~~~~~~~~~~~~~~~~~
160
161In 4.3 there are some minor differences in image and SDK output file names.
162If you rely on the existing naming (e.g. in external scripts) you may need to
163either modify configuration or adapt to the new naming. Further details:
164
165- :term:`IMAGE_NAME` and :term:`IMAGE_LINK_NAME` now include the
166 :term:`IMAGE_NAME_SUFFIX` value directly. In practical terms, this means
167 that ``.rootfs`` will now appear in image output file names. If you do not
168 wish to have the ``.rootfs`` suffix used, you can just set
169 :term:`IMAGE_NAME_SUFFIX` to "" and this will now be consistently respected
170 in both the image file and image file symlink names. As part of this change,
171 support for the ``imgsuffix`` task varflag has been dropped (mostly
172 an internal implementation detail, but if you were implementing a custom
173 image construction with a task in a similar manner to ``do_bootimg``
174 you may have been using this).
175
176- :term:`SDK_NAME` now includes the values of :term:`IMAGE_BASENAME` and
177 :term:`MACHINE` so that they are unique when building SDKs for different
178 images and machines.
179
180
181
182.. _migration-4.3-pr-pe:
183
184Versioning changes
185~~~~~~~~~~~~~~~~~~
186
187- :term:`PR` values have been removed from all core recipes - distro maintainers
188 who make use of :term:`PR` values would need to curate these already so the
189 sparsely set base values would not be that useful anymore. If you have been
190 relying on these (i.e. you are maintaining a binary package feed where package
191 versions should only ever increase), double-check the output (perhaps with the
192 help of the :ref:`ref-classes-buildhistory` class) to ensure that package
193 versions are consistent.
194
195- The :term:`PR` value can no longer be set from the recipe file name - this
196 was rarely used, but in any case is no longer supported.
197
198- :term:`PE` and :term:`PR` are no longer included in the work directory path
199 (:term:`WORKDIR`). This may break some tool assumptions about directory paths,
200 but those should really be querying paths from the build system (or not poking
201 into :term:`WORKDIR` externally).
202
203- Source revision information has been moved from :term:`PV` to :term:`PKGV`.
204 The user visible effect of this change is that :term:`PV` will no longer have
205 revision information in it and this will now be appended to the :term:`PV`
206 value through :term:`PKGV` when the packages are written out (as long as "+"
207 is present in the :term:`PKGV` value). Since :term:`PV` is used in
208 :term:`STAMP` and :term:`WORKDIR`, you may notice small directory naming and
209 stamp naming changes.
210
211- The :term:`SRCPV` variable is no longer needed in :term:`PV`, but since
212 the default :term:`SRCPV` value is now "", using it is effectively now just a
213 null operation - you can remove it (leaving behind the "+") , but it is not
214 yet required to do so.
215
216
217.. _migration-4.3-qemu-changes:
218
219QEMU changes
220~~~~~~~~~~~~
221
222- The ``runqemu`` script no longer systematically adds two serial ports
223 (``--serial null`` and ``-serial mon:stdio``) to the QEMU emulated machine
224 if the user already adds such ports through the ``QB_OPT_APPEND`` setting.
225
226 If the user adds one port, only ``--serial null`` is added, and
227 ``-serial mon:stdio`` is no longer passed. If the user adds more than one
228 port, ``--serial null`` is no longer added either. This can break some
229 existing QEMU based configurations expecting such serial ports to be added
230 when ``runqemu`` is executed.
231
232 This change was made to avoid exceeding two serial ports, which interferes
233 with automated testing.
234
235- ``runqemu`` now uses the ``ip tuntap`` command instead of ``tunctl``, and
236 thus ``tunctl`` is no longer built by the ``qemu-helper-native`` recipe; if
237 for some reason you were calling ``tunctl`` directly from your own scripts
238 you should switch to calling ``ip tuntap`` instead.
Andrew Geissler3eeda902023-05-19 10:14:02 -0500239
240.. _migration-4.3-misc-changes:
241
242Miscellaneous changes
243~~~~~~~~~~~~~~~~~~~~~
244
245- The ``-crosssdk`` suffix and any :term:`MLPREFIX` were removed from
246 ``virtual/XXX`` provider/dependencies where a ``PREFIX`` was used as well,
247 as we don't need both and it made automated dependency rewriting
248 unnecessarily complex. In general this only affects internal toolchain
Patrick Williamsac13d5f2023-11-24 18:59:46 -0600249 dependencies so isn't end user visible, but if for some reason you have
250 custom classes or recipes that rely upon the old providers then you will
251 need to update those.
Andrew Geissler3eeda902023-05-19 10:14:02 -0500252