xref: /openbmc/openbmc/poky/documentation/migration-guides/migration-5.1.rst (revision 8460358c3d24c71d9d38fd126c745854a6301564)
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Release 5.1 (styhead)
4=====================
5
6Migration notes for 5.1 (styhead)
7---------------------------------
8
9This section provides migration information for moving to the Yocto
10Project 5.1 Release (codename "styhead") from the prior release.
11
12.. _migration-5.1-workdir-changes:
13
14:term:`WORKDIR` changes
15~~~~~~~~~~~~~~~~~~~~~~~
16
17S = ${WORKDIR} no longer supported
18^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19
20If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer
21supported, and an error will be issued. The recipe should be changed to::
22
23    S = "${WORKDIR}/sources"
24    UNPACKDIR = "${S}"
25
26Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced
27should be changed to :term:`S`. These are commonly in :ref:`ref-tasks-compile`,
28:ref:`ref-tasks-compile`, :ref:`ref-tasks-install` and :term:`LIC_FILES_CHKSUM`.
29
30:term:`WORKDIR` references in recipes
31^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
32
33:term:`WORKDIR` references in other recipes need auditing. If they reference
34files from :term:`SRC_URI`, they likely need changing to :term:`UNPACKDIR`.
35These are commonly in :ref:`ref-tasks-compile` and :ref:`ref-tasks-install`
36for things like service or configuration files. One unusual case is
37``${WORKDIR}/${BP}`` which should probably be set to ``${S}``.
38
39References to ``../`` in :term:`LIC_FILES_CHKSUM` or elsewhere may need changing
40to :term:`UNPACKDIR`. References to :term:`WORKDIR` in ``sed`` commands are
41usually left as they are.
42
43General notes
44^^^^^^^^^^^^^
45
46Files from :ref:`ref-tasks-unpack` now unpack to ``WORKDIR/sources-unpack/``
47rather than ``WORKDIR/``.
48
49If :term:`S` is set to a subdirectory under :term:`WORKDIR` and that
50subdirectory exists in ``sources-unpack`` after :ref:`ref-tasks-unpack` runs,
51it is moved to :term:`WORKDIR`. This means that ``S = "${WORKDIR}/${BP}"``,
52``S = "${WORKDIR}/git"`` and also deeper paths continue to work as expected
53without changes. We cannot use symlinks to do this as it breaks autotools
54based recipes. Keeping all sources under ``sources-unpack`` wasn't considered
55as it meant more invasive recipes changes. The key objective was separating the
56:ref:`ref-tasks-unpack` task output from :term:`WORKDIR`.
57
58Previously, :term:`S` was always created but after the recent changes it is no
59longer the case. This means the check in ``do_unpack_qa`` triggers where
60:term:`S` is not created by a recipe while it didn't happen before. This can
61require to add an :term:`S` definition to a recipe that only uses
62``file://`` :term:`SRC_URI` entries. To be consistent, the following pattern is
63recommended::
64
65    S = "${WORKDIR}/sources"
66    UNPACKDIR = "${S}"
67
68Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at
69it does not work as the debug prefix mapping doesn't handle that.
70
71``devtool``  and ``recipetool`` have been updated to handle this and their
72support for ``S = WORKDIR`` and ``oe-local-files`` has been removed.
73
74.. _migration-5.1-supported-kernel-versions:
75
76Supported kernel versions
77~~~~~~~~~~~~~~~~~~~~~~~~~
78
79The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that
80out the box, older kernels are not supported. See :ref:`4.3 migration notes
81<migration-4.3-supported-kernel-versions>` for details.
82
83.. _migration-5.1-supported-distributions:
84
85Supported distributions
86~~~~~~~~~~~~~~~~~~~~~~~
87
88Compared to the previous releases, running BitBake is supported on new
89GNU/Linux distributions:
90
91-  Ubuntu 24.10
92-  Fedora 40
93-  OpenSUSE Leap 15.5
94-  OpenSUSE Leap 15.6
95
96On the other hand, some earlier distributions are no longer supported:
97
98-  Ubuntu 23.04
99
100See :ref:`all supported distributions <system-requirements-supported-distros>`.
101
102.. _migration-5.1-go-changes:
103
104Go language changes
105~~~~~~~~~~~~~~~~~~~
106
107-  After dropping the custom :ref:`ref-tasks-unpack` from the
108   :ref:`ref-classes-go` class, go recipes should now add
109   ``destsuffix=${GO_SRCURI_DESTSUFFIX}`` to their :term:`SRC_URI` to extract
110   them in the appropriate path. An example would be::
111
112      SRC_URI = "git://go.googlesource.com/example;branch=master;protocol=https;destsuffix=${GO_SRCURI_DESTSUFFIX}"
113
114-  Go modules are no longer compiled with ``--linkmode=external``.
115
116.. _migration-5.1-systemd-changes:
117
118systemd changes
119~~~~~~~~~~~~~~~
120
121-  New :term:`PACKAGECONFIG` value ``bpf-framework`` used to pre-compile eBPFs
122   that are required for the systemd.resource-control features
123   ``RestrictFileSystems`` and ``RestrictNetworkInterfaces``.
124
125.. _migration-5.1-recipe-changes:
126
127Recipe changes
128~~~~~~~~~~~~~~
129
130-  ``gobject-introspection``: the ``giscanner`` utility is now shipped as a
131   separate package in ``gobject-introspection-tools``.
132
133-  ``perf`` no longer uses ``libnewt`` for compiling its TUI.
134
135-  ``openssl``: do not build the test suite unless ptests are enabled.
136
137.. _migration-5.1-removed-variables:
138
139Removed variables
140~~~~~~~~~~~~~~~~~
141
142The following variables have been removed:
143
144-  ``TCLIBCAPPEND`` is now removed as sharing :term:`TMPDIR` for multiple libc
145   providers has been supported for years.
146
147-  ``VOLATILE_LOG_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead.
148   By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value
149   ``files/fs-perms-volatile-log.txt``, which means that volatile log is
150   enabled. Users can disable the volatile log by removing the value
151   ``files/fs-perms-volatile-log.txt`` from :term:`FILESYSTEM_PERMS_TABLES`.
152
153-  ``VOLATILE_TMP_DIR``: :term:`FILESYSTEM_PERMS_TABLES` is now used instead.
154   By default, :term:`FILESYSTEM_PERMS_TABLES` now contains the value
155   ``files/fs-perms-volatile-tmp.txt``, which means that volatile tmp is
156   enabled. Users can disable the volatile tmp by removing the value
157   ``files/fs-perms-volatile-tmp.txt`` from :term:`FILESYSTEM_PERMS_TABLES`.
158
159.. _migration-5.1-removed-recipes:
160
161Removed recipes
162~~~~~~~~~~~~~~~
163
164The following recipes have been removed in this release:
165
166-  ``liba52``: superseded by ``ffmpeg``
167-  ``libomxil``: recipe removed as its only consumer, the gstreamer omx plugin,
168    was removed and has not been developed for several years
169-  ``libnewt``: moved to meta-oe
170-  ``mpeg2dec``: inactive for 10 years and superseded by ``ffmpeg``
171-  ``pytest-runner``: moved to meta-python
172-  ``python3-importlib-metadata``: moved to meta-python
173-  ``python3-pathlib2``: moved to meta-python
174-  ``python3-py``: moved to meta-python
175-  ``python3-rfc3986-validator``: moved to meta-python
176-  ``python3-toml``: moved to meta-python
177-  ``python3-tomli``: moved to meta-python
178-  ``usbinit``: recipe was poorly named as it is a gadget Ethernet driver.
179   Gadget Ethernet is of questionable use now and usbinit isn't referenced/used
180   anywhere within OE-Core.
181
182
183.. _migration-5.1-removed-classes:
184
185Removed classes
186~~~~~~~~~~~~~~~
187
188The following classes have been removed in this release:
189
190-  ``siteconfig``:  removed as it was only used by ``ncurses`` and ``zlib`` and
191   adding minimal added-value for a considerable amount of added runtime.
192
193
194.. _migration-5.1-misc-changes:
195
196Miscellaneous changes
197~~~~~~~~~~~~~~~~~~~~~
198
199-  `oe-selftest` now only rewrites environment variable paths that absolutely
200   point to builddir (i.e ``X=$BUILDDIR/conf/`` is still rewritten to point to
201   the `oe-selftest` ``conf/`` directory but not ``Y=$BUILDDIR/../bitbake/`` which
202   still point to the ``bitbake/`` directory)
203
204   For example (taken from :yocto_ab:`autobuilder <>` environment):
205   :term:`BB_LOGCONFIG` is set as:
206   ``BB_LOGCONFIG="${BUILDDIR}/../bitbake/contrib/autobuilderlog.json"``.
207   Note the relative path starting from the build directory to outside of it.
208   This path is not changed by `oe-selftest` anymore.
209
210   Environment variables containing relative paths from tested build directory
211   to outside of the original build directory may need to be updated as they
212   won't be changed by `oe-selftest`.
213
214-  Several sanity checks from the :ref:`ref-classes-insane` class, such as
215   ``buildpaths``, have been promoted to errors instead of warnings.
216
217-  The ``license-incompatible`` :term:`ERROR_QA` sanity check was renamed to
218   ``license-exception``.
219