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