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