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