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:`ptest.bbclass <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 (a whitelist) and for all 235recipes that inherit the :ref:`cmake <ref-classes-cmake>` class. In 236future releases the :ref:`autotools <ref-classes-autotools>` class 237will enable a separate build directory by default as well. Recipes 238building Autotools-based software that fails to build with a separate 239build directory should be changed to inherit from the 240:ref:`autotools-brokensep <ref-classes-autotools>` class instead of 241the ``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