diff options
Diffstat (limited to 'documentation/migration-guides/migration-5.1.rst')
-rw-r--r-- | documentation/migration-guides/migration-5.1.rst | 216 |
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 | |||
3 | Release 5.1 (styhead) | ||
4 | ===================== | ||
5 | |||
6 | Migration notes for 5.1 (styhead) | ||
7 | --------------------------------- | ||
8 | |||
9 | This section provides migration information for moving to the Yocto | ||
10 | Project 5.1 Release (codename "styhead") from the prior release. | ||
11 | |||
12 | .. _migration-5.1-workdir-changes: | ||
13 | |||
14 | :term:`WORKDIR` changes | ||
15 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
16 | |||
17 | S = ${WORKDIR} no longer supported | ||
18 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
19 | |||
20 | If a recipe has :term:`S` set to be :term:`WORKDIR`, this is no longer | ||
21 | supported, and an error will be issued. The recipe should be changed to:: | ||
22 | |||
23 | S = "${UNPACKDIR}" | ||
24 | |||
25 | Any :term:`WORKDIR` references where files from :term:`SRC_URI` are referenced | ||
26 | should 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 | ||
33 | files from :term:`SRC_URI`, they likely need changing to :term:`UNPACKDIR`. | ||
34 | These are commonly in :ref:`ref-tasks-compile` and :ref:`ref-tasks-install` | ||
35 | for things like service or configuration files. One unusual case is | ||
36 | ``${WORKDIR}/${BP}`` which should probably be set to ``${S}``. | ||
37 | |||
38 | References to ``../`` in :term:`LIC_FILES_CHKSUM` or elsewhere may need changing | ||
39 | to :term:`UNPACKDIR`. References to :term:`WORKDIR` in ``sed`` commands are | ||
40 | usually left as they are. | ||
41 | |||
42 | General notes | ||
43 | ^^^^^^^^^^^^^ | ||
44 | |||
45 | Files from :ref:`ref-tasks-unpack` now unpack to ``WORKDIR/sources-unpack/`` | ||
46 | rather than ``WORKDIR/``. | ||
47 | |||
48 | If :term:`S` is set to a subdirectory under :term:`WORKDIR` and that | ||
49 | subdirectory exists in ``sources-unpack`` after :ref:`ref-tasks-unpack` runs, | ||
50 | it is moved to :term:`WORKDIR`. This means that ``S = "${WORKDIR}/${BP}"``, | ||
51 | ``S = "${WORKDIR}/git"`` and also deeper paths continue to work as expected | ||
52 | without changes. We cannot use symlinks to do this as it breaks autotools | ||
53 | based recipes. Keeping all sources under ``sources-unpack`` wasn't considered | ||
54 | as it meant more invasive recipes changes. The key objective was separating the | ||
55 | :ref:`ref-tasks-unpack` task output from :term:`WORKDIR`. | ||
56 | |||
57 | Previously, :term:`S` was always created but after the recent changes it is no | ||
58 | longer 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 | ||
60 | require 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 | ||
62 | recommended:: | ||
63 | |||
64 | S = "${UNPACKDIR}" | ||
65 | |||
66 | Building C files from :term:`UNPACKDIR` without setting :term:`S` to point at | ||
67 | it 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 | ||
70 | support for ``S = WORKDIR`` and ``oe-local-files`` has been removed. | ||
71 | |||
72 | .. _migration-5.1-supported-kernel-versions: | ||
73 | |||
74 | Supported kernel versions | ||
75 | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
76 | |||
77 | The :term:`OLDEST_KERNEL` setting is still "5.15" in this release, meaning that | ||
78 | out 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 | |||
83 | Supported distributions | ||
84 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
85 | |||
86 | Compared to the previous releases, running BitBake is supported on new | ||
87 | GNU/Linux distributions: | ||
88 | |||
89 | - Ubuntu 24.10 | ||
90 | - Fedora 40 | ||
91 | - OpenSUSE Leap 15.5 | ||
92 | - OpenSUSE Leap 15.6 | ||
93 | |||
94 | On the other hand, some earlier distributions are no longer supported: | ||
95 | |||
96 | - Ubuntu 23.04 | ||
97 | |||
98 | See :ref:`all supported distributions <system-requirements-supported-distros>`. | ||
99 | |||
100 | .. _migration-5.1-go-changes: | ||
101 | |||
102 | Go 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 | |||
116 | systemd 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 | |||
125 | Recipe 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 | |||
137 | Removed variables | ||
138 | ~~~~~~~~~~~~~~~~~ | ||
139 | |||
140 | The 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 | |||
159 | Removed recipes | ||
160 | ~~~~~~~~~~~~~~~ | ||
161 | |||
162 | The 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 | |||
183 | Removed classes | ||
184 | ~~~~~~~~~~~~~~~ | ||
185 | |||
186 | The 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 | |||
194 | Miscellaneous 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``. | ||