1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Release 1.6 (daisy)
4===================
5
6This section provides migration information for moving to the Yocto
7Project 1.6 Release (codename "daisy") from the prior release.
8
9.. _migration-1.6-archiver-class:
10
11``archiver`` Class
12------------------
13
14The :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`"
17section 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
57the branch using the following form::
58
59      SRC_URI = "git://server.name/repository;branch=branchname"
60
61If you do not specify a branch, BitBake looks in the default "master" branch.
62
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),
65you can add ";nobranch=1" to the end of the URL within :term:`SRC_URI`.
66
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
129OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter.
130
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
138unexpected issues if used to store :term:`TMPDIR`.
139
140The check for this occurs on startup. If :term:`TMPDIR` is detected on an
141NFS 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
151the ":ref:`dev-manual/packages:working with a pr service`"
152section 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
210function and then call the function. Here is an example::
211
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
224":ref:`dev-manual/packages:testing packages with ptest`" section in the
225Yocto Project Development Tasks Manual. See also the ":ref:`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 and for all
235recipes that inherit the :ref:`ref-classes-cmake` class. In
236future releases the :ref:`ref-classes-autotools` class
237will enable a separate :term:`Build Directory` by default as well. Recipes
238building Autotools-based software that fails to build with a separate
239:term:`Build Directory` should be changed to inherit from the
240:ref:`autotools-brokensep <ref-classes-autotools>` class instead of
241the :ref:`ref-classes-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
250``local.conf`` to enable it::
251
252   PACKAGECONFIG_pn-qemu-native = "sdl"
253   ASSUME_PROVIDED += "libsdl-native"
254
255.. note::
256
257   The default ``local.conf`` contains these statements. Consequently, if you
258   are building a headless system and using a default ``local.conf``
259   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 :term:`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:term:`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 :term:`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
412:yocto_git:`/meta-yocto-bsp-old/`.
413
414
415