blob: 5d5d601988d5d3ac6119328c3a31d5459d48cba8 [file] [log] [blame]
Andrew Geissler517393d2023-01-13 08:55:19 -06001.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
Andrew Geissler09036742021-06-25 14:25:14 -05003Release 2.4 (rocko)
4===================
Andrew Geisslerc9f78652020-09-18 14:11:35 -05005
6This section provides migration information for moving to the Yocto
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05007Project 2.4 Release (codename "rocko") from the prior release.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05008
9.. _migration-2.4-memory-resident-mode:
10
11Memory Resident Mode
12--------------------
13
14A persistent mode is now available in BitBake's default operation,
15replacing its previous "memory resident mode" (i.e.
16``oe-init-build-env-memres``). Now you only need to set
17:term:`BB_SERVER_TIMEOUT` to a timeout (in
18seconds) and BitBake's server stays resident for that amount of time
19between invocations. The ``oe-init-build-env-memres`` script has been
20removed since a separate environment setup script is no longer needed.
21
22.. _migration-2.4-packaging-changes:
23
24Packaging Changes
25-----------------
26
27This section provides information about packaging changes that have
28occurred:
29
30- ``python3`` Changes:
31
32 - The main "python3" package now brings in all of the standard
33 Python 3 distribution rather than a subset. This behavior matches
34 what is expected based on traditional Linux distributions. If you
35 wish to install a subset of Python 3, specify ``python-core`` plus
36 one or more of the individual packages that are still produced.
37
38 - ``python3``: The ``bz2.py``, ``lzma.py``, and
39 ``_compression.py`` scripts have been moved from the
40 ``python3-misc`` package to the ``python3-compression`` package.
41
42- ``binutils``: The ``libbfd`` library is now packaged in a separate
43 "libbfd" package. This packaging saves space when certain tools (e.g.
44 ``perf``) are installed. In such cases, the tools only need
45 ``libbfd`` rather than all the packages in ``binutils``.
46
47- ``util-linux`` Changes:
48
49 - The ``su`` program is now packaged in a separate "util-linux-su"
50 package, which is only built when "pam" is listed in the
51 :term:`DISTRO_FEATURES` variable.
52 ``util-linux`` should not be installed unless it is needed because
53 ``su`` is normally provided through the shadow file format. The
54 main ``util-linux`` package has runtime dependencies (i.e.
55 :term:`RDEPENDS`) on the ``util-linux-su`` package
Andrew Geissler5f350902021-07-23 13:09:54 -040056 when "pam" is in :term:`DISTRO_FEATURES`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050057
58 - The ``switch_root`` program is now packaged in a separate
Patrick Williams2194f502022-10-16 14:26:09 -050059 "util-linux-switch-root" package for small :term:`Initramfs` images that
Andrew Geisslerc9f78652020-09-18 14:11:35 -050060 do not need the whole ``util-linux`` package or the busybox
61 binary, which are both much larger than ``switch_root``. The main
62 ``util-linux`` package has a recommended runtime dependency (i.e.
63 :term:`RRECOMMENDS`) on the
64 ``util-linux-switch-root`` package.
65
66 - The ``ionice`` program is now packaged in a separate
67 "util-linux-ionice" package. The main ``util-linux`` package has a
Andrew Geissler09036742021-06-25 14:25:14 -050068 recommended runtime dependency (i.e. :term:`RRECOMMENDS`) on the
Andrew Geisslerc9f78652020-09-18 14:11:35 -050069 ``util-linux-ionice`` package.
70
71- ``initscripts``: The ``sushell`` program is now packaged in a
72 separate "initscripts-sushell" package. This packaging change allows
73 systems to pull ``sushell`` in when ``selinux`` is enabled. The
74 change also eliminates needing to pull in the entire ``initscripts``
75 package. The main ``initscripts`` package has a runtime dependency
Andrew Geissler09036742021-06-25 14:25:14 -050076 (i.e. :term:`RDEPENDS`) on the ``sushell`` package when "selinux" is in
Andrew Geissler5f350902021-07-23 13:09:54 -040077 :term:`DISTRO_FEATURES`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050078
79- ``glib-2.0``: The ``glib-2.0`` package now has a recommended
Andrew Geissler5f350902021-07-23 13:09:54 -040080 runtime dependency (i.e. :term:`RRECOMMENDS`) on the ``shared-mime-info``
Andrew Geisslerc9f78652020-09-18 14:11:35 -050081 package, since large portions of GIO are not useful without the MIME
82 database. You can remove the dependency by using the
83 :term:`BAD_RECOMMENDATIONS` variable if
84 ``shared-mime-info`` is too large and is not required.
85
86- *Go Standard Runtime:* The Go standard runtime has been split out
87 from the main ``go`` recipe into a separate ``go-runtime`` recipe.
88
89.. _migration-2.4-removed-recipes:
90
91Removed Recipes
92---------------
93
Andrew Geisslerc9f78652020-09-18 14:11:35 -050094- ``acpitests``: This recipe is not maintained.
95
96- ``autogen-native``: No longer required by Grub, oe-core, or
97 meta-oe.
98
99- ``bdwgc``: Nothing in OpenEmbedded-Core requires this recipe. It
100 has moved to meta-oe.
101
102- ``byacc``: This recipe was only needed by rpm 5.x and has moved to
103 meta-oe.
104
105- ``gcc (5.4)``: The 5.4 series dropped the recipe in favor of 6.3 /
106 7.2.
107
108- ``gnome-common``: Deprecated upstream and no longer needed.
109
110- ``go-bootstrap-native``: Go 1.9 does its own bootstrapping so this
111 recipe has been removed.
112
113- ``guile``: This recipe was only needed by ``autogen-native`` and
114 ``remake``. The recipe is no longer needed by either of these
115 programs.
116
117- ``libclass-isa-perl``: This recipe was previously needed for LSB 4,
118 no longer needed.
119
120- ``libdumpvalue-perl``: This recipe was previously needed for LSB 4,
121 no longer needed.
122
123- ``libenv-perl``: This recipe was previously needed for LSB 4, no
124 longer needed.
125
126- ``libfile-checktree-perl``: This recipe was previously needed for
127 LSB 4, no longer needed.
128
129- ``libi18n-collate-perl``: This recipe was previously needed for LSB
130 4, no longer needed.
131
132- ``libiconv``: This recipe was only needed for ``uclibc``, which was
133 removed in the previous release. ``glibc`` and ``musl`` have their
134 own implementations. ``meta-mingw`` still needs ``libiconv``, so it
135 has been moved to ``meta-mingw``.
136
137- ``libpng12``: This recipe was previously needed for LSB. The
138 current ``libpng`` is 1.6.x.
139
140- ``libpod-plainer-perl``: This recipe was previously needed for LSB
141 4, no longer needed.
142
143- ``linux-yocto (4.1)``: This recipe was removed in favor of 4.4,
144 4.9, 4.10 and 4.12.
145
146- ``mailx``: This recipe was previously only needed for LSB
147 compatibility, and upstream is defunct.
148
149- ``mesa (git version only)``: The git version recipe was stale with
150 respect to the release version.
151
152- ``ofono (git version only)``: The git version recipe was stale with
153 respect to the release version.
154
155- ``portmap``: This recipe is obsolete and is superseded by
156 ``rpcbind``.
157
158- ``python3-pygpgme``: This recipe is old and unmaintained. It was
159 previously required by ``dnf``, which has switched to official
160 ``gpgme`` Python bindings.
161
162- ``python-async``: This recipe has been removed in favor of the
163 Python 3 version.
164
165- ``python-gitdb``: This recipe has been removed in favor of the
166 Python 3 version.
167
168- ``python-git``: This recipe was removed in favor of the Python 3
169 version.
170
171- ``python-mako``: This recipe was removed in favor of the Python 3
172 version.
173
174- ``python-pexpect``: This recipe was removed in favor of the Python
175 3 version.
176
177- ``python-ptyprocess``: This recipe was removed in favor of Python
178 the 3 version.
179
180- ``python-pycurl``: Nothing is using this recipe in
181 OpenEmbedded-Core (i.e. ``meta-oe``).
182
183- ``python-six``: This recipe was removed in favor of the Python 3
184 version.
185
186- ``python-smmap``: This recipe was removed in favor of the Python 3
187 version.
188
189- ``remake``: Using ``remake`` as the provider of ``virtual/make`` is
190 broken. Consequently, this recipe is not needed in OpenEmbedded-Core.
191
192.. _migration-2.4-kernel-device-tree-move:
193
194Kernel Device Tree Move
195-----------------------
196
197Kernel Device Tree support is now easier to enable in a kernel recipe.
Andrew Geissler517393d2023-01-13 08:55:19 -0600198The Device Tree code has moved to a :ref:`ref-classes-kernel-devicetree` class.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500199Functionality is automatically enabled for any recipe that inherits the
Andrew Geissler517393d2023-01-13 08:55:19 -0600200:ref:`kernel <ref-classes-kernel>` class and sets the :term:`KERNEL_DEVICETREE`
201variable. The previous mechanism for doing this,
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500202``meta/recipes-kernel/linux/linux-dtb.inc``, is still available to avoid
203breakage, but triggers a deprecation warning. Future releases of the
204Yocto Project will remove ``meta/recipes-kernel/linux/linux-dtb.inc``.
205It is advisable to remove any ``require`` statements that request
206``meta/recipes-kernel/linux/linux-dtb.inc`` from any custom kernel
207recipes you might have. This will avoid breakage in post 2.4 releases.
208
209.. _migration-2.4-package-qa-changes:
210
211Package QA Changes
212------------------
213
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500214- The "unsafe-references-in-scripts" QA check has been removed.
215
216- If you refer to ``${COREBASE}/LICENSE`` within
217 :term:`LIC_FILES_CHKSUM` you receive a
218 warning because this file is a description of the license for
219 OE-Core. Use ``${COMMON_LICENSE_DIR}/MIT`` if your recipe is
220 MIT-licensed and you cannot use the preferred method of referring to
221 a file within the source tree.
222
223.. _migration-2.4-readme-changes:
224
225``README`` File Changes
226-----------------------
227
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500228- The main Poky ``README`` file has been moved to the ``meta-poky``
229 layer and has been renamed ``README.poky``. A symlink has been
230 created so that references to the old location work.
231
232- The ``README.hardware`` file has been moved to ``meta-yocto-bsp``. A
233 symlink has been created so that references to the old location work.
234
235- A ``README.qemu`` file has been created with coverage of the
236 ``qemu*`` machines.
237
238.. _migration-2.4-miscellaneous-changes:
239
240Miscellaneous Changes
241---------------------
242
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500243- The ``ROOTFS_PKGMANAGE_BOOTSTRAP`` variable and any references to it
244 have been removed. You should remove this variable from any custom
245 recipes.
246
247- The ``meta-yocto`` directory has been removed.
248
249 .. note::
250
251 In the Yocto Project 2.1 release
252 meta-yocto
253 was renamed to
254 meta-poky
255 and the
256 meta-yocto
257 subdirectory remained to avoid breaking existing configurations.
258
259- The ``maintainers.inc`` file, which tracks maintainers by listing a
260 primary person responsible for each recipe in OE-Core, has been moved
261 from ``meta-poky`` to OE-Core (i.e. from
262 ``meta-poky/conf/distro/include`` to ``meta/conf/distro/include``).
263
Andrew Geissler517393d2023-01-13 08:55:19 -0600264- The :ref:`ref-classes-buildhistory` class now makes
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500265 a single commit per build rather than one commit per subdirectory in
266 the repository. This behavior assumes the commits are enabled with
267 :term:`BUILDHISTORY_COMMIT` = "1", which
Andrew Geissler517393d2023-01-13 08:55:19 -0600268 is typical. Previously, the :ref:`ref-classes-buildhistory` class made one commit
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500269 per subdirectory in the repository in order to make it easier to see
270 the changes for a particular subdirectory. To view a particular
271 change, specify that subdirectory as the last parameter on the
272 ``git show`` or ``git diff`` commands.
273
274- The ``x86-base.inc`` file, which is included by all x86-based machine
275 configurations, now sets :term:`IMAGE_FSTYPES`
276 using ``?=`` to "live" rather than appending with ``+=``. This change
277 makes the default easier to override.
278
279- BitBake fires multiple "BuildStarted" events when multiconfig is
280 enabled (one per configuration). For more information, see the
Andrew Geisslerfc113ea2023-03-31 09:59:46 -0500281 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:events`"
Patrick Williams213cb262021-08-07 19:21:33 -0500282 section in the BitBake User Manual.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500283
284- By default, the ``security_flags.inc`` file sets a
285 :term:`GCCPIE` variable with an option to enable
286 Position Independent Executables (PIE) within ``gcc``. Enabling PIE
287 in the GNU C Compiler (GCC), makes Return Oriented Programming (ROP)
288 attacks much more difficult to execute.
289
290- OE-Core now provides a ``bitbake-layers`` plugin that implements a
291 "create-layer" subcommand. The implementation of this subcommand has
292 resulted in the ``yocto-layer`` script being deprecated and will
293 likely be removed in the next Yocto Project release.
294
295- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in
Andrew Geissler615f2f12022-07-15 14:00:58 -0500296 conjunction with the "wic" image type through :term:`CONVERSION_CMD`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500297 Consequently, the equivalent image types are now ``wic.vmdk``,
298 ``wic.vdi``, and ``wic.qcow2``, respectively.
299
300- ``do_image_<type>[depends]`` has replaced ``IMAGE_DEPENDS_<type>``.
301 If you have your own classes that implement custom image types, then
302 you need to update them.
303
304- OpenSSL 1.1 has been introduced. However, the default is still 1.0.x
305 through the :term:`PREFERRED_VERSION`
306 variable. This preference is set is due to the remaining
307 compatibility issues with other software. The
308 :term:`PROVIDES` variable in the openssl 1.0 recipe
309 now includes "openssl10" as a marker that can be used in
310 :term:`DEPENDS` within recipes that build software
311 that still depend on OpenSSL 1.0.
312
313- To ensure consistent behavior, BitBake's "-r" and "-R" options (i.e.
314 prefile and postfile), which are used to read or post-read additional
315 configuration files from the command line, now only affect the
316 current BitBake command. Before these BitBake changes, these options
317 would "stick" for future executions.
318
319