xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-1.6.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1Release 1.6 (daisy)
2===================
3
4This section provides migration information for moving to the Yocto
5Project 1.6 Release (codename "daisy") from the prior release.
6
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
15":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`"
16section 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
56the branch using the following form::
57
58      SRC_URI = "git://server.name/repository;branch=branchname"
59
60If you do not specify a branch, BitBake looks in the default "master" branch.
61
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 :term:`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
128OpenEmbedded build system variables, see the ":doc:`/ref-manual/variables`" Chapter.
129
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 :term:`TMPDIR`.
138
139The check for this occurs on startup. If :term:`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
150the ":ref:`dev-manual/common-tasks:working with a pr service`"
151section 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
209function and then call the function. Here is an example::
210
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
223":ref:`dev-manual/common-tasks:testing packages with ptest`"
224section in the Yocto Project Development Tasks Manual. For information on the
225``ptest`` class, see the ":ref:`ref-classes-ptest`" section.
226
227.. _migration-1.6-build-changes:
228
229Build Changes
230-------------
231
232Separate build and source directories have been enabled by default for
233selected recipes where it is known to work and for all
234recipes that inherit the :ref:`cmake <ref-classes-cmake>` class. In
235future releases the :ref:`autotools <ref-classes-autotools>` class
236will enable a separate build directory by default as well. Recipes
237building Autotools-based software that fails to build with a separate
238build directory should be changed to inherit from the
239:ref:`autotools-brokensep <ref-classes-autotools>` class instead of
240the ``autotools`` or ``autotools_stage``\ classes.
241
242.. _migration-1.6-building-qemu-native:
243
244``qemu-native``
245---------------
246
247``qemu-native`` now builds without SDL-based graphical output support by
248default. The following additional lines are needed in your
249``local.conf`` to enable it::
250
251   PACKAGECONFIG_pn-qemu-native = "sdl"
252   ASSUME_PROVIDED += "libsdl-native"
253
254.. note::
255
256   The default ``local.conf`` contains these statements. Consequently, if you
257   are building a headless system and using a default ``local.conf``
258   file, you will need comment these two lines out.
259
260.. _migration-1.6-core-image-basic:
261
262``core-image-basic``
263--------------------
264
265``core-image-basic`` has been renamed to ``core-image-full-cmdline``.
266
267In addition to ``core-image-basic`` being renamed,
268``packagegroup-core-basic`` has been renamed to
269``packagegroup-core-full-cmdline`` to match.
270
271.. _migration-1.6-licensing:
272
273Licensing
274---------
275
276The top-level :term:`LICENSE` file has been changed to better describe the
277license of the various components of :term:`OpenEmbedded-Core (OE-Core)`. However,
278the licensing itself remains unchanged.
279
280Normally, this change would not cause any side-effects. However, some
281recipes point to this file within
282:term:`LIC_FILES_CHKSUM` (as
283``${COREBASE}/LICENSE``) and thus the accompanying checksum must be
284changed from 3f40d7994397109285ec7b81fdeb3b58 to
2854d92cd373abda3937c2bc47fbc49d690. A better alternative is to have
286:term:`LIC_FILES_CHKSUM` point to a file describing the license that is
287distributed with the source that the recipe is building, if possible,
288rather than pointing to ``${COREBASE}/LICENSE``.
289
290.. _migration-1.6-cflags-options:
291
292``CFLAGS`` Options
293------------------
294
295The "-fpermissive" option has been removed from the default
296:term:`CFLAGS` value. You need to take action on
297individual recipes that fail when building with this option. You need to
298either patch the recipes to fix the issues reported by the compiler, or
299you need to add "-fpermissive" to :term:`CFLAGS` in the recipes.
300
301.. _migration-1.6-custom-images:
302
303Custom Image Output Types
304-------------------------
305
306Custom image output types, as selected using
307:term:`IMAGE_FSTYPES`, must declare their
308dependencies on other image types (if any) using a new
309:term:`IMAGE_TYPEDEP` variable.
310
311.. _migration-1.6-do-package-write-task:
312
313Tasks
314-----
315
316The ``do_package_write`` task has been removed. The task is no longer
317needed.
318
319.. _migration-1.6-update-alternatives-provider:
320
321``update-alternative`` Provider
322-------------------------------
323
324The default ``update-alternatives`` provider has been changed from
325``opkg`` to ``opkg-utils``. This change resolves some troublesome
326circular dependencies. The runtime package has also been renamed from
327``update-alternatives-cworth`` to ``update-alternatives-opkg``.
328
329.. _migration-1.6-virtclass-overrides:
330
331``virtclass`` Overrides
332-----------------------
333
334The ``virtclass`` overrides are now deprecated. Use the equivalent class
335overrides instead (e.g. ``virtclass-native`` becomes ``class-native``.)
336
337.. _migration-1.6-removed-renamed-recipes:
338
339Removed and Renamed Recipes
340---------------------------
341
342The following recipes have been removed:
343
344-  ``packagegroup-toolset-native`` - This recipe is largely unused.
345
346-  ``linux-yocto-3.8`` - Support for the Linux yocto 3.8 kernel has been
347   dropped. Support for the 3.10 and 3.14 kernels have been added with
348   the ``linux-yocto-3.10`` and ``linux-yocto-3.14`` recipes.
349
350-  ``ocf-linux`` - This recipe has been functionally replaced using
351   ``cryptodev-linux``.
352
353-  ``genext2fs`` - ``genext2fs`` is no longer used by the build system
354   and is unmaintained upstream.
355
356-  ``js`` - This provided an ancient version of Mozilla's javascript
357   engine that is no longer needed.
358
359-  ``zaurusd`` - The recipe has been moved to the ``meta-handheld``
360   layer.
361
362-  ``eglibc 2.17`` - Replaced by the ``eglibc 2.19`` recipe.
363
364-  ``gcc 4.7.2`` - Replaced by the now stable ``gcc 4.8.2``.
365
366-  ``external-sourcery-toolchain`` - this recipe is now maintained in
367   the ``meta-sourcery`` layer.
368
369-  ``linux-libc-headers-yocto 3.4+git`` - Now using version 3.10 of the
370   ``linux-libc-headers`` by default.
371
372-  ``meta-toolchain-gmae`` - This recipe is obsolete.
373
374-  ``packagegroup-core-sdk-gmae`` - This recipe is obsolete.
375
376-  ``packagegroup-core-standalone-gmae-sdk-target`` - This recipe is
377   obsolete.
378
379.. _migration-1.6-removed-classes:
380
381Removed Classes
382---------------
383
384The following classes have become obsolete and have been removed:
385
386-  ``module_strip``
387
388-  ``pkg_metainfo``
389
390-  ``pkg_distribute``
391
392-  ``image-empty``
393
394.. _migration-1.6-reference-bsps:
395
396Reference Board Support Packages (BSPs)
397---------------------------------------
398
399The following reference BSPs changes occurred:
400
401-  The BeagleBoard (``beagleboard``) ARM reference hardware has been
402   replaced by the BeagleBone (``beaglebone``) hardware.
403
404-  The RouterStation Pro (``routerstationpro``) MIPS reference hardware
405   has been replaced by the EdgeRouter Lite (``edgerouter``) hardware.
406
407The previous reference BSPs for the ``beagleboard`` and
408``routerstationpro`` machines are still available in a new
409``meta-yocto-bsp-old`` layer in the
410:yocto_git:`Source Repositories <>` at
411:yocto_git:`/meta-yocto-bsp-old/`.
412
413
414