blob: 916169e836b159ba51b31c7eaebbfae8edbe0d81 [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.6 (daisy)
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.6 Release (codename "daisy") from the prior release.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05008
9.. _migration-1.6-archiver-class:
10
11``archiver`` Class
12------------------
13
Andrew Geissler517393d2023-01-13 08:55:19 -060014The :ref:`ref-classes-archiver` class has been rewritten and its configuration
15has been simplified. For more details on the source archiver, see the
16":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050017section in the Yocto Project Development Tasks Manual.
18
19.. _migration-1.6-packaging-changes:
20
21Packaging Changes
22-----------------
23
24The following packaging changes have been made:
25
26- The ``binutils`` recipe no longer produces a ``binutils-symlinks``
27 package. ``update-alternatives`` is now used to handle the preferred
28 ``binutils`` variant on the target instead.
29
30- The tc (traffic control) utilities have been split out of the main
31 ``iproute2`` package and put into the ``iproute2-tc`` package.
32
33- The ``gtk-engines`` schemas have been moved to a dedicated
34 ``gtk-engines-schemas`` package.
35
36- The ``armv7a`` with thumb package architecture suffix has changed.
37 The suffix for these packages with the thumb optimization enabled is
38 "t2" as it should be. Use of this suffix was not the case in the 1.5
39 release. Architecture names will change within package feeds as a
40 result.
41
42.. _migration-1.6-bitbake:
43
44BitBake
45-------
46
47The following changes have been made to :term:`BitBake`.
48
49.. _migration-1.6-matching-branch-requirement-for-git-fetching:
50
51Matching Branch Requirement for Git Fetching
52~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53
54When fetching source from a Git repository using
55:term:`SRC_URI`, BitBake will now validate the
56:term:`SRCREV` value against the branch. You can specify
Andrew Geisslerc926e172021-05-07 16:11:35 -050057the branch using the following form::
Andrew Geissler4c19ea12020-10-27 13:52:24 -050058
59 SRC_URI = "git://server.name/repository;branch=branchname"
60
61If you do not specify a branch, BitBake looks in the default "master" branch.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050062
63Alternatively, if you need to bypass this check (e.g. if you are
64fetching a revision corresponding to a tag that is not on any branch),
Andrew Geissler09036742021-06-25 14:25:14 -050065you can add ";nobranch=1" to the end of the URL within :term:`SRC_URI`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050066
67.. _migration-1.6-bitbake-deps:
68
69Python Definition substitutions
70~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
72BitBake had some previously deprecated Python definitions within its
73``bb`` module removed. You should use their sub-module counterparts
74instead:
75
76- ``bb.MalformedUrl``: Use ``bb.fetch.MalformedUrl``.
77
78- ``bb.encodeurl``: Use ``bb.fetch.encodeurl``.
79
80- ``bb.decodeurl``: Use ``bb.fetch.decodeurl``
81
82- ``bb.mkdirhier``: Use ``bb.utils.mkdirhier``.
83
84- ``bb.movefile``: Use ``bb.utils.movefile``.
85
86- ``bb.copyfile``: Use ``bb.utils.copyfile``.
87
88- ``bb.which``: Use ``bb.utils.which``.
89
90- ``bb.vercmp_string``: Use ``bb.utils.vercmp_string``.
91
92- ``bb.vercmp``: Use ``bb.utils.vercmp``.
93
94.. _migration-1.6-bitbake-fetcher:
95
96SVK Fetcher
97~~~~~~~~~~~
98
99The SVK fetcher has been removed from BitBake.
100
101.. _migration-1.6-bitbake-console-output:
102
103Console Output Error Redirection
104~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105
106The BitBake console UI will now output errors to ``stderr`` instead of
107``stdout``. Consequently, if you are piping or redirecting the output of
108``bitbake`` to somewhere else, and you wish to retain the errors, you
109will need to add ``2>&1`` (or something similar) to the end of your
110``bitbake`` command line.
111
112.. _migration-1.6-task-taskname-overrides:
113
114``task-``\ taskname Overrides
115~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116
117``task-``\ taskname overrides have been adjusted so that tasks whose
118names contain underscores have the underscores replaced by hyphens for
119the override so that they now function properly. For example, the task
120override for :ref:`ref-tasks-populate_sdk` is
121``task-populate-sdk``.
122
123.. _migration-1.6-variable-changes:
124
125Changes to Variables
126--------------------
127
128The following variables have changed. For information on the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600129OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500130
131.. _migration-1.6-variable-changes-TMPDIR:
132
133``TMPDIR``
134~~~~~~~~~~
135
136:term:`TMPDIR` can no longer be on an NFS mount. NFS does
137not offer full POSIX locking and inode consistency and can cause
Andrew Geissler09036742021-06-25 14:25:14 -0500138unexpected issues if used to store :term:`TMPDIR`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500139
Andrew Geissler09036742021-06-25 14:25:14 -0500140The check for this occurs on startup. If :term:`TMPDIR` is detected on an
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500141NFS mount, an error occurs.
142
143.. _migration-1.6-variable-changes-PRINC:
144
145``PRINC``
146~~~~~~~~~
147
148The ``PRINC`` variable has been deprecated and triggers a warning if
149detected during a build. For :term:`PR` increments on changes,
150use the PR service instead. You can find out more about this service in
Andrew Geissler517393d2023-01-13 08:55:19 -0600151the ":ref:`dev-manual/packages:working with a pr service`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500152section in the Yocto Project Development Tasks Manual.
153
154.. _migration-1.6-variable-changes-IMAGE_TYPES:
155
156``IMAGE_TYPES``
157~~~~~~~~~~~~~~~
158
159The "sum.jffs2" option for :term:`IMAGE_TYPES` has
160been replaced by the "jffs2.sum" option, which fits the processing
161order.
162
163.. _migration-1.6-variable-changes-COPY_LIC_MANIFEST:
164
165``COPY_LIC_MANIFEST``
166~~~~~~~~~~~~~~~~~~~~~
167
168The :term:`COPY_LIC_MANIFEST` variable must now
169be set to "1" rather than any value in order to enable it.
170
171.. _migration-1.6-variable-changes-COPY_LIC_DIRS:
172
173``COPY_LIC_DIRS``
174~~~~~~~~~~~~~~~~~
175
176The :term:`COPY_LIC_DIRS` variable must now be set
177to "1" rather than any value in order to enable it.
178
179.. _migration-1.6-variable-changes-PACKAGE_GROUP:
180
181``PACKAGE_GROUP``
182~~~~~~~~~~~~~~~~~
183
184The ``PACKAGE_GROUP`` variable has been renamed to
185:term:`FEATURE_PACKAGES` to more accurately
186reflect its purpose. You can still use ``PACKAGE_GROUP`` but the
187OpenEmbedded build system produces a warning message when it encounters
188the variable.
189
190.. _migration-1.6-variable-changes-variable-entry-behavior:
191
192Preprocess and Post Process Command Variable Behavior
193~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
194
195The following variables now expect a semicolon separated list of
196functions to call and not arbitrary shell commands:
197
198 - :term:`ROOTFS_PREPROCESS_COMMAND`
199 - :term:`ROOTFS_POSTPROCESS_COMMAND`
200 - :term:`SDK_POSTPROCESS_COMMAND`
201 - :term:`POPULATE_SDK_POST_TARGET_COMMAND`
202 - :term:`POPULATE_SDK_POST_HOST_COMMAND`
203 - :term:`IMAGE_POSTPROCESS_COMMAND`
204 - :term:`IMAGE_PREPROCESS_COMMAND`
205 - :term:`ROOTFS_POSTUNINSTALL_COMMAND`
206 - :term:`ROOTFS_POSTINSTALL_COMMAND`
207
208For
209migration purposes, you can simply wrap shell commands in a shell
Andrew Geisslerc926e172021-05-07 16:11:35 -0500210function and then call the function. Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500211
212 my_postprocess_function() {
213 echo "hello" > ${IMAGE_ROOTFS}/hello.txt
214 }
215 ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
216
217.. _migration-1.6-package-test-ptest:
218
219Package Test (ptest)
220--------------------
221
222Package Tests (ptest) are built but not installed by default. For
223information on using Package Tests, see the
Andrew Geissler517393d2023-01-13 08:55:19 -0600224":ref:`dev-manual/packages:testing packages with ptest`" section in the
225Yocto Project Development Tasks Manual. See also the ":ref:`ref-classes-ptest`"
226section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500227
228.. _migration-1.6-build-changes:
229
230Build Changes
231-------------
232
233Separate build and source directories have been enabled by default for
Andrew Geissler595f6302022-01-24 19:11:47 +0000234selected recipes where it is known to work and for all
Andrew Geissler517393d2023-01-13 08:55:19 -0600235recipes that inherit the :ref:`ref-classes-cmake` class. In
236future releases the :ref:`ref-classes-autotools` class
Patrick Williams2390b1b2022-11-03 13:47:49 -0500237will enable a separate :term:`Build Directory` by default as well. Recipes
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500238building Autotools-based software that fails to build with a separate
Patrick Williams2390b1b2022-11-03 13:47:49 -0500239:term:`Build Directory` should be changed to inherit from the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500240:ref:`autotools-brokensep <ref-classes-autotools>` class instead of
Andrew Geissler517393d2023-01-13 08:55:19 -0600241the :ref:`ref-classes-autotools` or ``autotools_stage`` classes.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500242
243.. _migration-1.6-building-qemu-native:
244
245``qemu-native``
246---------------
247
248``qemu-native`` now builds without SDL-based graphical output support by
249default. The following additional lines are needed in your
Andrew Geisslerc926e172021-05-07 16:11:35 -0500250``local.conf`` to enable it::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500251
252 PACKAGECONFIG_pn-qemu-native = "sdl"
253 ASSUME_PROVIDED += "libsdl-native"
254
255.. note::
256
Andrew Geissler4c19ea12020-10-27 13:52:24 -0500257 The default ``local.conf`` contains these statements. Consequently, if you
258 are building a headless system and using a default ``local.conf``
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500259 file, you will need comment these two lines out.
260
261.. _migration-1.6-core-image-basic:
262
263``core-image-basic``
264--------------------
265
266``core-image-basic`` has been renamed to ``core-image-full-cmdline``.
267
268In addition to ``core-image-basic`` being renamed,
269``packagegroup-core-basic`` has been renamed to
270``packagegroup-core-full-cmdline`` to match.
271
272.. _migration-1.6-licensing:
273
274Licensing
275---------
276
Andrew Geissler09036742021-06-25 14:25:14 -0500277The top-level :term:`LICENSE` file has been changed to better describe the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500278license of the various components of :term:`OpenEmbedded-Core (OE-Core)`. However,
279the licensing itself remains unchanged.
280
281Normally, this change would not cause any side-effects. However, some
282recipes point to this file within
283:term:`LIC_FILES_CHKSUM` (as
284``${COREBASE}/LICENSE``) and thus the accompanying checksum must be
285changed from 3f40d7994397109285ec7b81fdeb3b58 to
2864d92cd373abda3937c2bc47fbc49d690. A better alternative is to have
Andrew Geissler09036742021-06-25 14:25:14 -0500287:term:`LIC_FILES_CHKSUM` point to a file describing the license that is
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500288distributed with the source that the recipe is building, if possible,
289rather than pointing to ``${COREBASE}/LICENSE``.
290
291.. _migration-1.6-cflags-options:
292
293``CFLAGS`` Options
294------------------
295
296The "-fpermissive" option has been removed from the default
297:term:`CFLAGS` value. You need to take action on
298individual recipes that fail when building with this option. You need to
299either patch the recipes to fix the issues reported by the compiler, or
Andrew Geissler09036742021-06-25 14:25:14 -0500300you need to add "-fpermissive" to :term:`CFLAGS` in the recipes.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500301
302.. _migration-1.6-custom-images:
303
304Custom Image Output Types
305-------------------------
306
307Custom image output types, as selected using
308:term:`IMAGE_FSTYPES`, must declare their
309dependencies on other image types (if any) using a new
310:term:`IMAGE_TYPEDEP` variable.
311
312.. _migration-1.6-do-package-write-task:
313
314Tasks
315-----
316
317The ``do_package_write`` task has been removed. The task is no longer
318needed.
319
320.. _migration-1.6-update-alternatives-provider:
321
322``update-alternative`` Provider
323-------------------------------
324
325The default ``update-alternatives`` provider has been changed from
326``opkg`` to ``opkg-utils``. This change resolves some troublesome
327circular dependencies. The runtime package has also been renamed from
328``update-alternatives-cworth`` to ``update-alternatives-opkg``.
329
330.. _migration-1.6-virtclass-overrides:
331
332``virtclass`` Overrides
333-----------------------
334
335The ``virtclass`` overrides are now deprecated. Use the equivalent class
336overrides instead (e.g. ``virtclass-native`` becomes ``class-native``.)
337
338.. _migration-1.6-removed-renamed-recipes:
339
340Removed and Renamed Recipes
341---------------------------
342
343The following recipes have been removed:
344
Andrew Geissler615f2f12022-07-15 14:00:58 -0500345- ``packagegroup-toolset-native`` --- this recipe is largely unused.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500346
Andrew Geissler615f2f12022-07-15 14:00:58 -0500347- ``linux-yocto-3.8`` --- support for the Linux yocto 3.8 kernel has been
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500348 dropped. Support for the 3.10 and 3.14 kernels have been added with
349 the ``linux-yocto-3.10`` and ``linux-yocto-3.14`` recipes.
350
Andrew Geissler615f2f12022-07-15 14:00:58 -0500351- ``ocf-linux`` --- this recipe has been functionally replaced using
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500352 ``cryptodev-linux``.
353
Andrew Geissler615f2f12022-07-15 14:00:58 -0500354- ``genext2fs`` --- ``genext2fs`` is no longer used by the build system
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500355 and is unmaintained upstream.
356
Andrew Geissler615f2f12022-07-15 14:00:58 -0500357- ``js`` --- this provided an ancient version of Mozilla's javascript
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500358 engine that is no longer needed.
359
Andrew Geissler615f2f12022-07-15 14:00:58 -0500360- ``zaurusd`` --- the recipe has been moved to the ``meta-handheld``
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500361 layer.
362
Andrew Geissler615f2f12022-07-15 14:00:58 -0500363- ``eglibc 2.17`` --- replaced by the ``eglibc 2.19`` recipe.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500364
Andrew Geissler615f2f12022-07-15 14:00:58 -0500365- ``gcc 4.7.2`` --- replaced by the now stable ``gcc 4.8.2``.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500366
Andrew Geissler615f2f12022-07-15 14:00:58 -0500367- ``external-sourcery-toolchain`` --- this recipe is now maintained in
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500368 the ``meta-sourcery`` layer.
369
Andrew Geissler615f2f12022-07-15 14:00:58 -0500370- ``linux-libc-headers-yocto 3.4+git`` --- now using version 3.10 of the
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500371 ``linux-libc-headers`` by default.
372
Andrew Geissler615f2f12022-07-15 14:00:58 -0500373- ``meta-toolchain-gmae`` --- this recipe is obsolete.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500374
Andrew Geissler615f2f12022-07-15 14:00:58 -0500375- ``packagegroup-core-sdk-gmae`` --- this recipe is obsolete.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500376
Andrew Geissler615f2f12022-07-15 14:00:58 -0500377- ``packagegroup-core-standalone-gmae-sdk-target`` --- this recipe is
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500378 obsolete.
379
380.. _migration-1.6-removed-classes:
381
382Removed Classes
383---------------
384
385The following classes have become obsolete and have been removed:
386
387- ``module_strip``
388
389- ``pkg_metainfo``
390
391- ``pkg_distribute``
392
393- ``image-empty``
394
395.. _migration-1.6-reference-bsps:
396
397Reference Board Support Packages (BSPs)
398---------------------------------------
399
400The following reference BSPs changes occurred:
401
402- The BeagleBoard (``beagleboard``) ARM reference hardware has been
403 replaced by the BeagleBone (``beaglebone``) hardware.
404
405- The RouterStation Pro (``routerstationpro``) MIPS reference hardware
406 has been replaced by the EdgeRouter Lite (``edgerouter``) hardware.
407
408The previous reference BSPs for the ``beagleboard`` and
409``routerstationpro`` machines are still available in a new
410``meta-yocto-bsp-old`` layer in the
411:yocto_git:`Source Repositories <>` at
Andrew Geissler09209ee2020-12-13 08:44:15 -0600412:yocto_git:`/meta-yocto-bsp-old/`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500413
414