blob: abad43acc37713b87b22caaafc75470cea795e91 [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
94The following recipes have been removed:
95
96- ``acpitests``: This recipe is not maintained.
97
98- ``autogen-native``: No longer required by Grub, oe-core, or
99 meta-oe.
100
101- ``bdwgc``: Nothing in OpenEmbedded-Core requires this recipe. It
102 has moved to meta-oe.
103
104- ``byacc``: This recipe was only needed by rpm 5.x and has moved to
105 meta-oe.
106
107- ``gcc (5.4)``: The 5.4 series dropped the recipe in favor of 6.3 /
108 7.2.
109
110- ``gnome-common``: Deprecated upstream and no longer needed.
111
112- ``go-bootstrap-native``: Go 1.9 does its own bootstrapping so this
113 recipe has been removed.
114
115- ``guile``: This recipe was only needed by ``autogen-native`` and
116 ``remake``. The recipe is no longer needed by either of these
117 programs.
118
119- ``libclass-isa-perl``: This recipe was previously needed for LSB 4,
120 no longer needed.
121
122- ``libdumpvalue-perl``: This recipe was previously needed for LSB 4,
123 no longer needed.
124
125- ``libenv-perl``: This recipe was previously needed for LSB 4, no
126 longer needed.
127
128- ``libfile-checktree-perl``: This recipe was previously needed for
129 LSB 4, no longer needed.
130
131- ``libi18n-collate-perl``: This recipe was previously needed for LSB
132 4, no longer needed.
133
134- ``libiconv``: This recipe was only needed for ``uclibc``, which was
135 removed in the previous release. ``glibc`` and ``musl`` have their
136 own implementations. ``meta-mingw`` still needs ``libiconv``, so it
137 has been moved to ``meta-mingw``.
138
139- ``libpng12``: This recipe was previously needed for LSB. The
140 current ``libpng`` is 1.6.x.
141
142- ``libpod-plainer-perl``: This recipe was previously needed for LSB
143 4, no longer needed.
144
145- ``linux-yocto (4.1)``: This recipe was removed in favor of 4.4,
146 4.9, 4.10 and 4.12.
147
148- ``mailx``: This recipe was previously only needed for LSB
149 compatibility, and upstream is defunct.
150
151- ``mesa (git version only)``: The git version recipe was stale with
152 respect to the release version.
153
154- ``ofono (git version only)``: The git version recipe was stale with
155 respect to the release version.
156
157- ``portmap``: This recipe is obsolete and is superseded by
158 ``rpcbind``.
159
160- ``python3-pygpgme``: This recipe is old and unmaintained. It was
161 previously required by ``dnf``, which has switched to official
162 ``gpgme`` Python bindings.
163
164- ``python-async``: This recipe has been removed in favor of the
165 Python 3 version.
166
167- ``python-gitdb``: This recipe has been removed in favor of the
168 Python 3 version.
169
170- ``python-git``: This recipe was removed in favor of the Python 3
171 version.
172
173- ``python-mako``: This recipe was removed in favor of the Python 3
174 version.
175
176- ``python-pexpect``: This recipe was removed in favor of the Python
177 3 version.
178
179- ``python-ptyprocess``: This recipe was removed in favor of Python
180 the 3 version.
181
182- ``python-pycurl``: Nothing is using this recipe in
183 OpenEmbedded-Core (i.e. ``meta-oe``).
184
185- ``python-six``: This recipe was removed in favor of the Python 3
186 version.
187
188- ``python-smmap``: This recipe was removed in favor of the Python 3
189 version.
190
191- ``remake``: Using ``remake`` as the provider of ``virtual/make`` is
192 broken. Consequently, this recipe is not needed in OpenEmbedded-Core.
193
194.. _migration-2.4-kernel-device-tree-move:
195
196Kernel Device Tree Move
197-----------------------
198
199Kernel Device Tree support is now easier to enable in a kernel recipe.
Andrew Geissler517393d2023-01-13 08:55:19 -0600200The Device Tree code has moved to a :ref:`ref-classes-kernel-devicetree` class.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500201Functionality is automatically enabled for any recipe that inherits the
Andrew Geissler517393d2023-01-13 08:55:19 -0600202:ref:`kernel <ref-classes-kernel>` class and sets the :term:`KERNEL_DEVICETREE`
203variable. The previous mechanism for doing this,
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500204``meta/recipes-kernel/linux/linux-dtb.inc``, is still available to avoid
205breakage, but triggers a deprecation warning. Future releases of the
206Yocto Project will remove ``meta/recipes-kernel/linux/linux-dtb.inc``.
207It is advisable to remove any ``require`` statements that request
208``meta/recipes-kernel/linux/linux-dtb.inc`` from any custom kernel
209recipes you might have. This will avoid breakage in post 2.4 releases.
210
211.. _migration-2.4-package-qa-changes:
212
213Package QA Changes
214------------------
215
216The following package QA changes took place:
217
218- The "unsafe-references-in-scripts" QA check has been removed.
219
220- If you refer to ``${COREBASE}/LICENSE`` within
221 :term:`LIC_FILES_CHKSUM` you receive a
222 warning because this file is a description of the license for
223 OE-Core. Use ``${COMMON_LICENSE_DIR}/MIT`` if your recipe is
224 MIT-licensed and you cannot use the preferred method of referring to
225 a file within the source tree.
226
227.. _migration-2.4-readme-changes:
228
229``README`` File Changes
230-----------------------
231
232The following are changes to ``README`` files:
233
234- The main Poky ``README`` file has been moved to the ``meta-poky``
235 layer and has been renamed ``README.poky``. A symlink has been
236 created so that references to the old location work.
237
238- The ``README.hardware`` file has been moved to ``meta-yocto-bsp``. A
239 symlink has been created so that references to the old location work.
240
241- A ``README.qemu`` file has been created with coverage of the
242 ``qemu*`` machines.
243
244.. _migration-2.4-miscellaneous-changes:
245
246Miscellaneous Changes
247---------------------
248
249The following are additional changes:
250
251- The ``ROOTFS_PKGMANAGE_BOOTSTRAP`` variable and any references to it
252 have been removed. You should remove this variable from any custom
253 recipes.
254
255- The ``meta-yocto`` directory has been removed.
256
257 .. note::
258
259 In the Yocto Project 2.1 release
260 meta-yocto
261 was renamed to
262 meta-poky
263 and the
264 meta-yocto
265 subdirectory remained to avoid breaking existing configurations.
266
267- The ``maintainers.inc`` file, which tracks maintainers by listing a
268 primary person responsible for each recipe in OE-Core, has been moved
269 from ``meta-poky`` to OE-Core (i.e. from
270 ``meta-poky/conf/distro/include`` to ``meta/conf/distro/include``).
271
Andrew Geissler517393d2023-01-13 08:55:19 -0600272- The :ref:`ref-classes-buildhistory` class now makes
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500273 a single commit per build rather than one commit per subdirectory in
274 the repository. This behavior assumes the commits are enabled with
275 :term:`BUILDHISTORY_COMMIT` = "1", which
Andrew Geissler517393d2023-01-13 08:55:19 -0600276 is typical. Previously, the :ref:`ref-classes-buildhistory` class made one commit
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500277 per subdirectory in the repository in order to make it easier to see
278 the changes for a particular subdirectory. To view a particular
279 change, specify that subdirectory as the last parameter on the
280 ``git show`` or ``git diff`` commands.
281
282- The ``x86-base.inc`` file, which is included by all x86-based machine
283 configurations, now sets :term:`IMAGE_FSTYPES`
284 using ``?=`` to "live" rather than appending with ``+=``. This change
285 makes the default easier to override.
286
287- BitBake fires multiple "BuildStarted" events when multiconfig is
288 enabled (one per configuration). For more information, see the
Andrew Geisslerfc113ea2023-03-31 09:59:46 -0500289 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:events`"
Patrick Williams213cb262021-08-07 19:21:33 -0500290 section in the BitBake User Manual.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500291
292- By default, the ``security_flags.inc`` file sets a
293 :term:`GCCPIE` variable with an option to enable
294 Position Independent Executables (PIE) within ``gcc``. Enabling PIE
295 in the GNU C Compiler (GCC), makes Return Oriented Programming (ROP)
296 attacks much more difficult to execute.
297
298- OE-Core now provides a ``bitbake-layers`` plugin that implements a
299 "create-layer" subcommand. The implementation of this subcommand has
300 resulted in the ``yocto-layer`` script being deprecated and will
301 likely be removed in the next Yocto Project release.
302
303- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in
Andrew Geissler615f2f12022-07-15 14:00:58 -0500304 conjunction with the "wic" image type through :term:`CONVERSION_CMD`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500305 Consequently, the equivalent image types are now ``wic.vmdk``,
306 ``wic.vdi``, and ``wic.qcow2``, respectively.
307
308- ``do_image_<type>[depends]`` has replaced ``IMAGE_DEPENDS_<type>``.
309 If you have your own classes that implement custom image types, then
310 you need to update them.
311
312- OpenSSL 1.1 has been introduced. However, the default is still 1.0.x
313 through the :term:`PREFERRED_VERSION`
314 variable. This preference is set is due to the remaining
315 compatibility issues with other software. The
316 :term:`PROVIDES` variable in the openssl 1.0 recipe
317 now includes "openssl10" as a marker that can be used in
318 :term:`DEPENDS` within recipes that build software
319 that still depend on OpenSSL 1.0.
320
321- To ensure consistent behavior, BitBake's "-r" and "-R" options (i.e.
322 prefile and postfile), which are used to read or post-read additional
323 configuration files from the command line, now only affect the
324 current BitBake command. Before these BitBake changes, these options
325 would "stick" for future executions.
326
327