blob: b55be46e55ce190039ddf2ebfe72f9a3471396d3 [file] [log] [blame]
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001Moving to the Yocto Project 1.6 Release
2=======================================
3
4This section provides migration information for moving to the Yocto
5Project 1.6 Release 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/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: SRC_URI =
57"git://server.name/repository;branch=branchname" If you do not specify a
58branch, BitBake looks in the default "master" branch.
59
60Alternatively, if you need to bypass this check (e.g. if you are
61fetching a revision corresponding to a tag that is not on any branch),
62you can add ";nobranch=1" to the end of the URL within ``SRC_URI``.
63
64.. _migration-1.6-bitbake-deps:
65
66Python Definition substitutions
67~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68
69BitBake had some previously deprecated Python definitions within its
70``bb`` module removed. You should use their sub-module counterparts
71instead:
72
73- ``bb.MalformedUrl``: Use ``bb.fetch.MalformedUrl``.
74
75- ``bb.encodeurl``: Use ``bb.fetch.encodeurl``.
76
77- ``bb.decodeurl``: Use ``bb.fetch.decodeurl``
78
79- ``bb.mkdirhier``: Use ``bb.utils.mkdirhier``.
80
81- ``bb.movefile``: Use ``bb.utils.movefile``.
82
83- ``bb.copyfile``: Use ``bb.utils.copyfile``.
84
85- ``bb.which``: Use ``bb.utils.which``.
86
87- ``bb.vercmp_string``: Use ``bb.utils.vercmp_string``.
88
89- ``bb.vercmp``: Use ``bb.utils.vercmp``.
90
91.. _migration-1.6-bitbake-fetcher:
92
93SVK Fetcher
94~~~~~~~~~~~
95
96The SVK fetcher has been removed from BitBake.
97
98.. _migration-1.6-bitbake-console-output:
99
100Console Output Error Redirection
101~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102
103The BitBake console UI will now output errors to ``stderr`` instead of
104``stdout``. Consequently, if you are piping or redirecting the output of
105``bitbake`` to somewhere else, and you wish to retain the errors, you
106will need to add ``2>&1`` (or something similar) to the end of your
107``bitbake`` command line.
108
109.. _migration-1.6-task-taskname-overrides:
110
111``task-``\ taskname Overrides
112~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113
114``task-``\ taskname overrides have been adjusted so that tasks whose
115names contain underscores have the underscores replaced by hyphens for
116the override so that they now function properly. For example, the task
117override for :ref:`ref-tasks-populate_sdk` is
118``task-populate-sdk``.
119
120.. _migration-1.6-variable-changes:
121
122Changes to Variables
123--------------------
124
125The following variables have changed. For information on the
126OpenEmbedded build system variables, see the "`Variables
127Glossary <#ref-variables-glos>`__" Chapter.
128
129.. _migration-1.6-variable-changes-TMPDIR:
130
131``TMPDIR``
132~~~~~~~~~~
133
134:term:`TMPDIR` can no longer be on an NFS mount. NFS does
135not offer full POSIX locking and inode consistency and can cause
136unexpected issues if used to store ``TMPDIR``.
137
138The check for this occurs on startup. If ``TMPDIR`` is detected on an
139NFS mount, an error occurs.
140
141.. _migration-1.6-variable-changes-PRINC:
142
143``PRINC``
144~~~~~~~~~
145
146The ``PRINC`` variable has been deprecated and triggers a warning if
147detected during a build. For :term:`PR` increments on changes,
148use the PR service instead. You can find out more about this service in
149the ":ref:`dev-manual/dev-manual-common-tasks:working with a pr service`"
150section in the Yocto Project Development Tasks Manual.
151
152.. _migration-1.6-variable-changes-IMAGE_TYPES:
153
154``IMAGE_TYPES``
155~~~~~~~~~~~~~~~
156
157The "sum.jffs2" option for :term:`IMAGE_TYPES` has
158been replaced by the "jffs2.sum" option, which fits the processing
159order.
160
161.. _migration-1.6-variable-changes-COPY_LIC_MANIFEST:
162
163``COPY_LIC_MANIFEST``
164~~~~~~~~~~~~~~~~~~~~~
165
166The :term:`COPY_LIC_MANIFEST` variable must now
167be set to "1" rather than any value in order to enable it.
168
169.. _migration-1.6-variable-changes-COPY_LIC_DIRS:
170
171``COPY_LIC_DIRS``
172~~~~~~~~~~~~~~~~~
173
174The :term:`COPY_LIC_DIRS` variable must now be set
175to "1" rather than any value in order to enable it.
176
177.. _migration-1.6-variable-changes-PACKAGE_GROUP:
178
179``PACKAGE_GROUP``
180~~~~~~~~~~~~~~~~~
181
182The ``PACKAGE_GROUP`` variable has been renamed to
183:term:`FEATURE_PACKAGES` to more accurately
184reflect its purpose. You can still use ``PACKAGE_GROUP`` but the
185OpenEmbedded build system produces a warning message when it encounters
186the variable.
187
188.. _migration-1.6-variable-changes-variable-entry-behavior:
189
190Preprocess and Post Process Command Variable Behavior
191~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
192
193The following variables now expect a semicolon separated list of
194functions to call and not arbitrary shell commands:
195
196 - :term:`ROOTFS_PREPROCESS_COMMAND`
197 - :term:`ROOTFS_POSTPROCESS_COMMAND`
198 - :term:`SDK_POSTPROCESS_COMMAND`
199 - :term:`POPULATE_SDK_POST_TARGET_COMMAND`
200 - :term:`POPULATE_SDK_POST_HOST_COMMAND`
201 - :term:`IMAGE_POSTPROCESS_COMMAND`
202 - :term:`IMAGE_PREPROCESS_COMMAND`
203 - :term:`ROOTFS_POSTUNINSTALL_COMMAND`
204 - :term:`ROOTFS_POSTINSTALL_COMMAND`
205
206For
207migration purposes, you can simply wrap shell commands in a shell
208function and then call the function. Here is an example: ::
209
210 my_postprocess_function() {
211 echo "hello" > ${IMAGE_ROOTFS}/hello.txt
212 }
213 ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "
214
215.. _migration-1.6-package-test-ptest:
216
217Package Test (ptest)
218--------------------
219
220Package Tests (ptest) are built but not installed by default. For
221information on using Package Tests, see the
222":ref:`dev-manual/dev-manual-common-tasks:testing packages with ptest`"
223section in the Yocto Project Development Tasks Manual. For information on the
224``ptest`` class, see the ":ref:`ptest.bbclass <ref-classes-ptest>`"
225section.
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 (a whitelist) 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
252 PACKAGECONFIG_pn-qemu-native = "sdl"
253 ASSUME_PROVIDED += "libsdl-native"
254
255.. note::
256
257 The default
258 local.conf
259 contains these statements. Consequently, if you are building a
260 headless system and using a default
261 local.conf
262 file, you will need comment these two lines out.
263
264.. _migration-1.6-core-image-basic:
265
266``core-image-basic``
267--------------------
268
269``core-image-basic`` has been renamed to ``core-image-full-cmdline``.
270
271In addition to ``core-image-basic`` being renamed,
272``packagegroup-core-basic`` has been renamed to
273``packagegroup-core-full-cmdline`` to match.
274
275.. _migration-1.6-licensing:
276
277Licensing
278---------
279
280The top-level ``LICENSE`` file has been changed to better describe the
281license of the various components of :term:`OpenEmbedded-Core (OE-Core)`. However,
282the licensing itself remains unchanged.
283
284Normally, this change would not cause any side-effects. However, some
285recipes point to this file within
286:term:`LIC_FILES_CHKSUM` (as
287``${COREBASE}/LICENSE``) and thus the accompanying checksum must be
288changed from 3f40d7994397109285ec7b81fdeb3b58 to
2894d92cd373abda3937c2bc47fbc49d690. A better alternative is to have
290``LIC_FILES_CHKSUM`` point to a file describing the license that is
291distributed with the source that the recipe is building, if possible,
292rather than pointing to ``${COREBASE}/LICENSE``.
293
294.. _migration-1.6-cflags-options:
295
296``CFLAGS`` Options
297------------------
298
299The "-fpermissive" option has been removed from the default
300:term:`CFLAGS` value. You need to take action on
301individual recipes that fail when building with this option. You need to
302either patch the recipes to fix the issues reported by the compiler, or
303you need to add "-fpermissive" to ``CFLAGS`` in the recipes.
304
305.. _migration-1.6-custom-images:
306
307Custom Image Output Types
308-------------------------
309
310Custom image output types, as selected using
311:term:`IMAGE_FSTYPES`, must declare their
312dependencies on other image types (if any) using a new
313:term:`IMAGE_TYPEDEP` variable.
314
315.. _migration-1.6-do-package-write-task:
316
317Tasks
318-----
319
320The ``do_package_write`` task has been removed. The task is no longer
321needed.
322
323.. _migration-1.6-update-alternatives-provider:
324
325``update-alternative`` Provider
326-------------------------------
327
328The default ``update-alternatives`` provider has been changed from
329``opkg`` to ``opkg-utils``. This change resolves some troublesome
330circular dependencies. The runtime package has also been renamed from
331``update-alternatives-cworth`` to ``update-alternatives-opkg``.
332
333.. _migration-1.6-virtclass-overrides:
334
335``virtclass`` Overrides
336-----------------------
337
338The ``virtclass`` overrides are now deprecated. Use the equivalent class
339overrides instead (e.g. ``virtclass-native`` becomes ``class-native``.)
340
341.. _migration-1.6-removed-renamed-recipes:
342
343Removed and Renamed Recipes
344---------------------------
345
346The following recipes have been removed:
347
348- ``packagegroup-toolset-native`` - This recipe is largely unused.
349
350- ``linux-yocto-3.8`` - Support for the Linux yocto 3.8 kernel has been
351 dropped. Support for the 3.10 and 3.14 kernels have been added with
352 the ``linux-yocto-3.10`` and ``linux-yocto-3.14`` recipes.
353
354- ``ocf-linux`` - This recipe has been functionally replaced using
355 ``cryptodev-linux``.
356
357- ``genext2fs`` - ``genext2fs`` is no longer used by the build system
358 and is unmaintained upstream.
359
360- ``js`` - This provided an ancient version of Mozilla's javascript
361 engine that is no longer needed.
362
363- ``zaurusd`` - The recipe has been moved to the ``meta-handheld``
364 layer.
365
366- ``eglibc 2.17`` - Replaced by the ``eglibc 2.19`` recipe.
367
368- ``gcc 4.7.2`` - Replaced by the now stable ``gcc 4.8.2``.
369
370- ``external-sourcery-toolchain`` - this recipe is now maintained in
371 the ``meta-sourcery`` layer.
372
373- ``linux-libc-headers-yocto 3.4+git`` - Now using version 3.10 of the
374 ``linux-libc-headers`` by default.
375
376- ``meta-toolchain-gmae`` - This recipe is obsolete.
377
378- ``packagegroup-core-sdk-gmae`` - This recipe is obsolete.
379
380- ``packagegroup-core-standalone-gmae-sdk-target`` - This recipe is
381 obsolete.
382
383.. _migration-1.6-removed-classes:
384
385Removed Classes
386---------------
387
388The following classes have become obsolete and have been removed:
389
390- ``module_strip``
391
392- ``pkg_metainfo``
393
394- ``pkg_distribute``
395
396- ``image-empty``
397
398.. _migration-1.6-reference-bsps:
399
400Reference Board Support Packages (BSPs)
401---------------------------------------
402
403The following reference BSPs changes occurred:
404
405- The BeagleBoard (``beagleboard``) ARM reference hardware has been
406 replaced by the BeagleBone (``beaglebone``) hardware.
407
408- The RouterStation Pro (``routerstationpro``) MIPS reference hardware
409 has been replaced by the EdgeRouter Lite (``edgerouter``) hardware.
410
411The previous reference BSPs for the ``beagleboard`` and
412``routerstationpro`` machines are still available in a new
413``meta-yocto-bsp-old`` layer in the
414:yocto_git:`Source Repositories <>` at
415http://git.yoctoproject.org/cgit/cgit.cgi/meta-yocto-bsp-old/.
416
417