blob: c8f3cbc1655421e43968af23faad08d4ce1bd525 [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 1.5 (dora)
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 1.5 Release (codename "dora") from the prior release.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05008
9.. _migration-1.5-host-dependency-changes:
10
11Host Dependency Changes
12-----------------------
13
14The OpenEmbedded build system now has some additional requirements on
15the host system:
16
17- Python 2.7.3+
18
19- Tar 1.24+
20
21- Git 1.7.8+
22
23- Patched version of Make if you are using 3.82. Most distributions
24 that provide Make 3.82 use the patched version.
25
26If the Linux distribution you are using on your build host does not
27provide packages for these, you can install and use the Buildtools
28tarball, which provides an SDK-like environment containing them.
29
Andrew Geissler4c19ea12020-10-27 13:52:24 -050030For more information on this requirement, see the
Andrew Geissler517393d2023-01-13 08:55:19 -060031":ref:`system-requirements-buildtools`" section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050032
33.. _migration-1.5-atom-pc-bsp:
34
35``atom-pc`` Board Support Package (BSP)
36---------------------------------------
37
38The ``atom-pc`` hardware reference BSP has been replaced by a
39``genericx86`` BSP. This BSP is not necessarily guaranteed to work on
40all x86 hardware, but it will run on a wider range of systems than the
41``atom-pc`` did.
42
43.. note::
44
Andrew Geissler4c19ea12020-10-27 13:52:24 -050045 Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom
46 systems.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050047
48.. _migration-1.5-bitbake:
49
50BitBake
51-------
52
53The following changes have been made that relate to BitBake:
54
55- BitBake now supports a ``_remove`` operator. The addition of this
56 operator means you will have to rename any items in recipe space
57 (functions, variables) whose names currently contain ``_remove_`` or
58 end with ``_remove`` to avoid unexpected behavior.
59
60- BitBake's global method pool has been removed. This method is not
61 particularly useful and led to clashes between recipes containing
62 functions that had the same name.
63
64- The "none" server backend has been removed. The "process" server
65 backend has been serving well as the default for a long time now.
66
67- The ``bitbake-runtask`` script has been removed.
68
69- ``${``\ :term:`P`\ ``}`` and
70 ``${``\ :term:`PF`\ ``}`` are no longer added to
71 :term:`PROVIDES` by default in ``bitbake.conf``.
Andrew Geissler09036742021-06-25 14:25:14 -050072 These version-specific :term:`PROVIDES` items were seldom used.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050073 Attempting to use them could result in two versions being built
74 simultaneously rather than just one version due to the way BitBake
75 resolves dependencies.
76
77.. _migration-1.5-qa-warnings:
78
79QA Warnings
80-----------
81
82The following changes have been made to the package QA checks:
83
84- If you have customized :term:`ERROR_QA` or
85 :term:`WARN_QA` values in your configuration, check
86 that they contain all of the issues that you wish to be reported.
87 Previous Yocto Project versions contained a bug that meant that any
Andrew Geissler09036742021-06-25 14:25:14 -050088 item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as
Andrew Geisslerc9f78652020-09-18 14:11:35 -050089 a warning. Consequently, several important items were not already in
Andrew Geissler09036742021-06-25 14:25:14 -050090 the default value of :term:`WARN_QA`. All of the possible QA checks are
Andrew Geissler595f6302022-01-24 19:11:47 +000091 now documented in the ":ref:`ref-classes-insane`" section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050092
93- An additional QA check has been added to check if
94 ``/usr/share/info/dir`` is being installed. Your recipe should delete
95 this file within :ref:`ref-tasks-install` if "make
96 install" is installing it.
97
Andrew Geissler517393d2023-01-13 08:55:19 -060098- If you are using the :ref:`ref-classes-buildhistory` class, the check for the
99 package version going backwards is now controlled using a standard QA check.
Andrew Geissler09036742021-06-25 14:25:14 -0500100 Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500101 and still wish to have this check performed, you should add
102 "version-going-backwards" to your value for one or the other
103 variables depending on how you wish it to be handled. See the
Andrew Geissler595f6302022-01-24 19:11:47 +0000104 documented QA checks in the ":ref:`ref-classes-insane`" section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500105
106.. _migration-1.5-directory-layout-changes:
107
108Directory Layout Changes
109------------------------
110
111The following directory changes exist:
112
113- Output SDK installer files are now named to include the image name
114 and tuning architecture through the :term:`SDK_NAME`
115 variable.
116
117- Images and related files are now installed into a directory that is
118 specific to the machine, instead of a parent directory containing
119 output files for multiple machines. The
120 :term:`DEPLOY_DIR_IMAGE` variable continues
121 to point to the directory containing images for the current
122 :term:`MACHINE` and should be used anywhere there is a
123 need to refer to this directory. The ``runqemu`` script now uses this
124 variable to find images and kernel binaries and will use BitBake to
125 determine the directory. Alternatively, you can set the
Andrew Geissler5f350902021-07-23 13:09:54 -0400126 :term:`DEPLOY_DIR_IMAGE` variable in the external environment.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500127
128- When buildhistory is enabled, its output is now written under the
Patrick Williams2390b1b2022-11-03 13:47:49 -0500129 :term:`Build Directory` rather than :term:`TMPDIR`. Doing so makes
130 it easier to delete :term:`TMPDIR` and preserve the build history.
131 Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500132
Andrew Geissler517393d2023-01-13 08:55:19 -0600133- When :ref:`ref-classes-buildhistory` is enabled, its output
134 is now written under the :term:`Build Directory` rather than :term:`TMPDIR`.
135 Doing so makes it easier to delete :term:`TMPDIR` and preserve the build
136 history. Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`.
137
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500138- The ``pkgdata`` directory produced as part of the packaging process
139 has been collapsed into a single machine-specific directory. This
140 directory is located under ``sysroots`` and uses a machine-specific
141 name (i.e. ``tmp/sysroots/machine/pkgdata``).
142
143.. _migration-1.5-shortened-git-srcrev-values:
144
145Shortened Git ``SRCREV`` Values
146-------------------------------
147
148BitBake will now shorten revisions from Git repositories from the normal
14940 characters down to 10 characters within :term:`SRCPV`
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500150for improved usability in path and filenames. This change should be
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500151safe within contexts where these revisions are used because the chances
152of spatially close collisions is very low. Distant collisions are not a
153major issue in the way the values are used.
154
155.. _migration-1.5-image-features:
156
157``IMAGE_FEATURES``
158------------------
159
160The following changes have been made that relate to
161:term:`IMAGE_FEATURES`:
162
Andrew Geissler09036742021-06-25 14:25:14 -0500163- The value of :term:`IMAGE_FEATURES` is now validated to ensure invalid
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500164 feature items are not added. Some users mistakenly add package names
165 to this variable instead of using
166 :term:`IMAGE_INSTALL` in order to have the
167 package added to the image, which does not work. This change is
Andrew Geissler09036742021-06-25 14:25:14 -0500168 intended to catch those kinds of situations. Valid :term:`IMAGE_FEATURES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500169 are drawn from ``PACKAGE_GROUP`` definitions,
170 :term:`COMPLEMENTARY_GLOB` and a new
Andrew Geissler09036742021-06-25 14:25:14 -0500171 "validitems" varflag on :term:`IMAGE_FEATURES`. The "validitems" varflag
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500172 change allows additional features to be added if they are not
173 provided using the previous two mechanisms.
174
Andrew Geissler09036742021-06-25 14:25:14 -0500175- The previously deprecated "apps-console-core" :term:`IMAGE_FEATURES` item
176 is no longer supported. Add "splash" to :term:`IMAGE_FEATURES` if you
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500177 wish to have the splash screen enabled, since this is all that
178 apps-console-core was doing.
179
180.. _migration-1.5-run:
181
182``/run``
183--------
184
185The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has
186been introduced. You can find some of the implications for this change
Andrew Geissler09209ee2020-12-13 08:44:15 -0600187:oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500188The change also means that recipes that install files to ``/var/run``
189must be changed. You can find a guide on how to make these changes
Andrew Geisslerc3d88e42020-10-02 09:45:00 -0500190`here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500191
192.. _migration-1.5-removal-of-package-manager-database-within-image-recipes:
193
194Removal of Package Manager Database Within Image Recipes
195--------------------------------------------------------
196
197The image ``core-image-minimal`` no longer adds
198``remove_packaging_data_files`` to
199:term:`ROOTFS_POSTPROCESS_COMMAND`.
200This addition is now handled automatically when "package-management" is
201not in :term:`IMAGE_FEATURES`. If you have custom
202image recipes that make this addition, you should remove the lines, as
203they are not needed and might interfere with correct operation of
204postinstall scripts.
205
206.. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time:
207
208Images Now Rebuild Only on Changes Instead of Every Time
209--------------------------------------------------------
210
211The :ref:`ref-tasks-rootfs` and other related image
212construction tasks are no longer marked as "nostamp". Consequently, they
213will only be re-executed when their inputs have changed. Previous
214versions of the OpenEmbedded build system always rebuilt the image when
215requested rather when necessary.
216
217.. _migration-1.5-task-recipes:
218
219Task Recipes
220------------
221
222The previously deprecated ``task.bbclass`` has now been dropped. For
223recipes that previously inherited from this class, you should rename
Andrew Geissler517393d2023-01-13 08:55:19 -0600224them from ``task-*`` to ``packagegroup-*`` and inherit
225:ref:`ref-classes-packagegroup` instead.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500226
Andrew Geissler595f6302022-01-24 19:11:47 +0000227For more information, see the ":ref:`ref-classes-packagegroup`" section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500228
229.. _migration-1.5-busybox:
230
231BusyBox
232-------
233
234By default, we now split BusyBox into two binaries: one that is suid
235root for those components that need it, and another for the rest of the
236components. Splitting BusyBox allows for optimization that eliminates
237the ``tinylogin`` recipe as recommended by upstream. You can disable
238this split by setting
239:term:`BUSYBOX_SPLIT_SUID` to "0".
240
241.. _migration-1.5-automated-image-testing:
242
243Automated Image Testing
244-----------------------
245
246A new automated image testing framework has been added through the
Patrick Williams975a06f2022-10-21 14:42:47 -0500247:ref:`ref-classes-testimage` classes. This
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500248framework replaces the older ``imagetest-qemu`` framework.
249
250You can learn more about performing automated image tests in the
Andrew Geissler517393d2023-01-13 08:55:19 -0600251":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500252section in the Yocto Project Development Tasks Manual.
253
254.. _migration-1.5-build-history:
255
256Build History
257-------------
258
Patrick Williams39653562024-03-01 08:54:02 -0600259The changes to Build History are:
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500260
261- Installed package sizes: ``installed-package-sizes.txt`` for an image
262 now records the size of the files installed by each package instead
263 of the size of each compressed package archive file.
264
265- The dependency graphs (``depends*.dot``) now use the actual package
266 names instead of replacing dashes, dots and plus signs with
267 underscores.
268
269- The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs``
270 utilities have improved command-line handling. Use the ``--help``
271 option for each utility for more information on the new syntax.
272
273For more information on Build History, see the
Andrew Geissler517393d2023-01-13 08:55:19 -0600274":ref:`dev-manual/build-quality:maintaining build output quality`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500275section in the Yocto Project Development Tasks Manual.
276
277.. _migration-1.5-udev:
278
279``udev``
280--------
281
Patrick Williams39653562024-03-01 08:54:02 -0600282The changes to ``udev`` are:
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500283
284- ``udev`` no longer brings in ``udev-extraconf`` automatically through
285 :term:`RRECOMMENDS`, since this was originally
286 intended to be optional. If you need the extra rules, then add
287 ``udev-extraconf`` to your image.
288
289- ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids``
Andrew Geissler09036742021-06-25 14:25:14 -0500290 through :term:`RRECOMMENDS`. These are not needed by ``udev`` itself and
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500291 removing them saves around 350KB.
292
293.. _migration-1.5-removed-renamed-recipes:
294
295Removed and Renamed Recipes
296---------------------------
297
298- The ``linux-yocto`` 3.2 kernel has been removed.
299
300- ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``.
301
302- ``tinylogin`` has been removed. It has been replaced by a suid
Andrew Geissler3b8a17c2021-04-15 15:55:55 -0500303 portion of Busybox. See the ":ref:`migration-1.5-busybox`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500304 section for more information.
305
306- ``external-python-tarball`` has been renamed to
307 ``buildtools-tarball``.
308
309- ``web-webkit`` has been removed. It has been functionally replaced by
310 ``midori``.
311
312- ``imake`` has been removed. It is no longer needed by any other
313 recipe.
314
315- ``transfig-native`` has been removed. It is no longer needed by any
316 other recipe.
317
318- ``anjuta-remote-run`` has been removed. Anjuta IDE integration has
319 not been officially supported for several releases.
320
321.. _migration-1.5-other-changes:
322
323Other Changes
324-------------
325
Patrick Williams39653562024-03-01 08:54:02 -0600326Here is a list of short entries describing other changes:
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500327
328- ``run-postinsts``: Make this generic.
329
330- ``base-files``: Remove the unnecessary ``media/``\ xxx directories.
331
332- ``alsa-state``: Provide an empty ``asound.conf`` by default.
333
334- ``classes/image``: Ensure
335 :term:`BAD_RECOMMENDATIONS` supports
336 pre-renamed package names.
337
Andrew Geissler5f350902021-07-23 13:09:54 -0400338- ``classes/rootfs_rpm``: Implement :term:`BAD_RECOMMENDATIONS` for RPM.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500339
340- ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in
341 :term:`DISTRO_FEATURES`.
342
343- ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is
344 present and ``sysvinit`` is not a distro feature.
345
346- ``libpam``: Deny all services for the ``OTHER`` entries.
347
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000348- :ref:`ref-classes-image`: Move ``runtime_mapping_rename`` to avoid conflict
Andrew Geissler4c19ea12020-10-27 13:52:24 -0500349 with ``multilib``. See :yocto_bugs:`YOCTO #4993 </show_bug.cgi?id=4993>`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500350 in Bugzilla for more information.
351
352- ``linux-dtb``: Use kernel build system to generate the ``dtb`` files.
353
354- ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool.
355