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