blob: 5a18d6310393d5aff9686a3ba3c039921be3034f [file] [log] [blame]
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001Moving to the Yocto Project 1.6 Release (daisy)
2===============================================
Andrew Geisslerc9f78652020-09-18 14:11:35 -05003
4This section provides migration information for moving to the Yocto
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05005Project 1.6 Release (codename "daisy") from the prior release.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05006
7.. _migration-1.6-archiver-class:
8
9``archiver`` Class
10------------------
11
12The :ref:`archiver <ref-classes-archiver>` class has been rewritten
13and its configuration has been simplified. For more details on the
14source archiver, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -060015":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -050016section in the Yocto Project Development Tasks Manual.
17
18.. _migration-1.6-packaging-changes:
19
20Packaging Changes
21-----------------
22
23The following packaging changes have been made:
24
25- The ``binutils`` recipe no longer produces a ``binutils-symlinks``
26 package. ``update-alternatives`` is now used to handle the preferred
27 ``binutils`` variant on the target instead.
28
29- The tc (traffic control) utilities have been split out of the main
30 ``iproute2`` package and put into the ``iproute2-tc`` package.
31
32- The ``gtk-engines`` schemas have been moved to a dedicated
33 ``gtk-engines-schemas`` package.
34
35- The ``armv7a`` with thumb package architecture suffix has changed.
36 The suffix for these packages with the thumb optimization enabled is
37 "t2" as it should be. Use of this suffix was not the case in the 1.5
38 release. Architecture names will change within package feeds as a
39 result.
40
41.. _migration-1.6-bitbake:
42
43BitBake
44-------
45
46The following changes have been made to :term:`BitBake`.
47
48.. _migration-1.6-matching-branch-requirement-for-git-fetching:
49
50Matching Branch Requirement for Git Fetching
51~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
53When fetching source from a Git repository using
54:term:`SRC_URI`, BitBake will now validate the
55:term:`SRCREV` value against the branch. You can specify
Andrew Geisslerc926e172021-05-07 16:11:35 -050056the branch using the following form::
Andrew Geissler4c19ea12020-10-27 13:52:24 -050057
58 SRC_URI = "git://server.name/repository;branch=branchname"
59
60If you do not specify a branch, BitBake looks in the default "master" branch.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050061
62Alternatively, if you need to bypass this check (e.g. if you are
63fetching a revision corresponding to a tag that is not on any branch),
64you can add ";nobranch=1" to the end of the URL within ``SRC_URI``.
65
66.. _migration-1.6-bitbake-deps:
67
68Python Definition substitutions
69~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70
71BitBake had some previously deprecated Python definitions within its
72``bb`` module removed. You should use their sub-module counterparts
73instead:
74
75- ``bb.MalformedUrl``: Use ``bb.fetch.MalformedUrl``.
76
77- ``bb.encodeurl``: Use ``bb.fetch.encodeurl``.
78
79- ``bb.decodeurl``: Use ``bb.fetch.decodeurl``
80
81- ``bb.mkdirhier``: Use ``bb.utils.mkdirhier``.
82
83- ``bb.movefile``: Use ``bb.utils.movefile``.
84
85- ``bb.copyfile``: Use ``bb.utils.copyfile``.
86
87- ``bb.which``: Use ``bb.utils.which``.
88
89- ``bb.vercmp_string``: Use ``bb.utils.vercmp_string``.
90
91- ``bb.vercmp``: Use ``bb.utils.vercmp``.
92
93.. _migration-1.6-bitbake-fetcher:
94
95SVK Fetcher
96~~~~~~~~~~~
97
98The SVK fetcher has been removed from BitBake.
99
100.. _migration-1.6-bitbake-console-output:
101
102Console Output Error Redirection
103~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104
105The BitBake console UI will now output errors to ``stderr`` instead of
106``stdout``. Consequently, if you are piping or redirecting the output of
107``bitbake`` to somewhere else, and you wish to retain the errors, you
108will need to add ``2>&1`` (or something similar) to the end of your
109``bitbake`` command line.
110
111.. _migration-1.6-task-taskname-overrides:
112
113``task-``\ taskname Overrides
114~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
115
116``task-``\ taskname overrides have been adjusted so that tasks whose
117names contain underscores have the underscores replaced by hyphens for
118the override so that they now function properly. For example, the task
119override for :ref:`ref-tasks-populate_sdk` is
120``task-populate-sdk``.
121
122.. _migration-1.6-variable-changes:
123
124Changes to Variables
125--------------------
126
127The following variables have changed. For information on the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600128OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500129
130.. _migration-1.6-variable-changes-TMPDIR:
131
132``TMPDIR``
133~~~~~~~~~~
134
135:term:`TMPDIR` can no longer be on an NFS mount. NFS does
136not offer full POSIX locking and inode consistency and can cause
137unexpected issues if used to store ``TMPDIR``.
138
139The check for this occurs on startup. If ``TMPDIR`` is detected on an
140NFS mount, an error occurs.
141
142.. _migration-1.6-variable-changes-PRINC:
143
144``PRINC``
145~~~~~~~~~
146
147The ``PRINC`` variable has been deprecated and triggers a warning if
148detected during a build. For :term:`PR` increments on changes,
149use the PR service instead. You can find out more about this service in
Andrew Geissler09209ee2020-12-13 08:44:15 -0600150the ":ref:`dev-manual/common-tasks:working with a pr service`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500151section in the Yocto Project Development Tasks Manual.
152
153.. _migration-1.6-variable-changes-IMAGE_TYPES:
154
155``IMAGE_TYPES``
156~~~~~~~~~~~~~~~
157
158The "sum.jffs2" option for :term:`IMAGE_TYPES` has
159been replaced by the "jffs2.sum" option, which fits the processing
160order.
161
162.. _migration-1.6-variable-changes-COPY_LIC_MANIFEST:
163
164``COPY_LIC_MANIFEST``
165~~~~~~~~~~~~~~~~~~~~~
166
167The :term:`COPY_LIC_MANIFEST` variable must now
168be set to "1" rather than any value in order to enable it.
169
170.. _migration-1.6-variable-changes-COPY_LIC_DIRS:
171
172``COPY_LIC_DIRS``
173~~~~~~~~~~~~~~~~~
174
175The :term:`COPY_LIC_DIRS` variable must now be set
176to "1" rather than any value in order to enable it.
177
178.. _migration-1.6-variable-changes-PACKAGE_GROUP:
179
180``PACKAGE_GROUP``
181~~~~~~~~~~~~~~~~~
182
183The ``PACKAGE_GROUP`` variable has been renamed to
184:term:`FEATURE_PACKAGES` to more accurately
185reflect its purpose. You can still use ``PACKAGE_GROUP`` but the
186OpenEmbedded build system produces a warning message when it encounters
187the variable.
188
189.. _migration-1.6-variable-changes-variable-entry-behavior:
190
191Preprocess and Post Process Command Variable Behavior
192~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
193
194The following variables now expect a semicolon separated list of
195functions to call and not arbitrary shell commands:
196
197 - :term:`ROOTFS_PREPROCESS_COMMAND`
198 - :term:`ROOTFS_POSTPROCESS_COMMAND`
199 - :term:`SDK_POSTPROCESS_COMMAND`
200 - :term:`POPULATE_SDK_POST_TARGET_COMMAND`
201 - :term:`POPULATE_SDK_POST_HOST_COMMAND`
202 - :term:`IMAGE_POSTPROCESS_COMMAND`
203 - :term:`IMAGE_PREPROCESS_COMMAND`
204 - :term:`ROOTFS_POSTUNINSTALL_COMMAND`
205 - :term:`ROOTFS_POSTINSTALL_COMMAND`
206
207For
208migration purposes, you can simply wrap shell commands in a shell
Andrew Geisslerc926e172021-05-07 16:11:35 -0500209function and then call the function. Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500210
211 my_postprocess_function() {
212 echo "hello" > ${IMAGE_ROOTFS}/hello.txt
213 }
214 ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
215
216.. _migration-1.6-package-test-ptest:
217
218Package Test (ptest)
219--------------------
220
221Package Tests (ptest) are built but not installed by default. For
222information on using Package Tests, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600223":ref:`dev-manual/common-tasks:testing packages with ptest`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500224section in the Yocto Project Development Tasks Manual. For information on the
225``ptest`` class, see the ":ref:`ptest.bbclass <ref-classes-ptest>`"
226section.
227
228.. _migration-1.6-build-changes:
229
230Build Changes
231-------------
232
233Separate build and source directories have been enabled by default for
234selected recipes where it is known to work (a whitelist) and for all
235recipes that inherit the :ref:`cmake <ref-classes-cmake>` class. In
236future releases the :ref:`autotools <ref-classes-autotools>` class
237will enable a separate build directory by default as well. Recipes
238building Autotools-based software that fails to build with a separate
239build directory should be changed to inherit from the
240:ref:`autotools-brokensep <ref-classes-autotools>` class instead of
241the ``autotools`` or ``autotools_stage``\ classes.
242
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
277The top-level ``LICENSE`` file has been changed to better describe the
278license 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
287``LIC_FILES_CHKSUM`` point to a file describing the license that is
288distributed 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
300you need to add "-fpermissive" to ``CFLAGS`` in the recipes.
301
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
345- ``packagegroup-toolset-native`` - This recipe is largely unused.
346
347- ``linux-yocto-3.8`` - Support for the Linux yocto 3.8 kernel has been
348 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
351- ``ocf-linux`` - This recipe has been functionally replaced using
352 ``cryptodev-linux``.
353
354- ``genext2fs`` - ``genext2fs`` is no longer used by the build system
355 and is unmaintained upstream.
356
357- ``js`` - This provided an ancient version of Mozilla's javascript
358 engine that is no longer needed.
359
360- ``zaurusd`` - The recipe has been moved to the ``meta-handheld``
361 layer.
362
363- ``eglibc 2.17`` - Replaced by the ``eglibc 2.19`` recipe.
364
365- ``gcc 4.7.2`` - Replaced by the now stable ``gcc 4.8.2``.
366
367- ``external-sourcery-toolchain`` - this recipe is now maintained in
368 the ``meta-sourcery`` layer.
369
370- ``linux-libc-headers-yocto 3.4+git`` - Now using version 3.10 of the
371 ``linux-libc-headers`` by default.
372
373- ``meta-toolchain-gmae`` - This recipe is obsolete.
374
375- ``packagegroup-core-sdk-gmae`` - This recipe is obsolete.
376
377- ``packagegroup-core-standalone-gmae-sdk-target`` - This recipe is
378 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