1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3Release 2.0 (jethro) 4==================== 5 6This section provides migration information for moving to the Yocto 7Project 2.0 Release (codename "jethro") from the prior release. 8 9.. _migration-2.0-gcc-5: 10 11GCC 5 12----- 13 14The default compiler is now GCC 5.2. This change has required fixes for 15compilation errors in a number of other recipes. 16 17One important example is a fix for when the Linux kernel freezes at boot 18time on ARM when built with GCC 5. If you are using your own kernel 19recipe or source tree and building for ARM, you will likely need to 20apply this 21`patch <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2>`__. 22The standard ``linux-yocto`` kernel source tree already has a workaround 23for the same issue. 24 25For further details, see https://gcc.gnu.org/gcc-5/changes.html 26and the porting guide at 27https://gcc.gnu.org/gcc-5/porting_to.html. 28 29Alternatively, you can switch back to GCC 4.9 or 4.8 by setting 30:term:`GCCVERSION` in your configuration, as follows:: 31 32 GCCVERSION = "4.9%" 33 34.. _migration-2.0-Gstreamer-0.10-removed: 35 36Gstreamer 0.10 Removed 37---------------------- 38 39Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of 40the change, recipes for Gstreamer 0.10 and related software are now 41located in ``meta-multimedia``. This change results in Qt4 having Phonon 42and Gstreamer support in QtWebkit disabled by default. 43 44.. _migration-2.0-removed-recipes: 45 46Removed Recipes 47--------------- 48 49The following recipes have been moved or removed: 50 51- ``bluez4``: The recipe is obsolete and has been moved due to 52 ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now 53 resides in ``meta-oe``. 54 55- ``gamin``: The recipe is obsolete and has been removed. 56 57- ``gnome-icon-theme``: The recipe's functionally has been replaced by 58 ``adwaita-icon-theme``. 59 60- Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed 61 in favor of the recipes for Gstreamer 1.x. 62 63- ``insserv``: The recipe is obsolete and has been removed. 64 65- ``libunique``: The recipe is no longer used and has been moved to 66 ``meta-oe``. 67 68- ``midori``: The recipe's functionally has been replaced by 69 ``epiphany``. 70 71- ``python-gst``: The recipe is obsolete and has been removed since it 72 only contains bindings for Gstreamer 0.10. 73 74- ``qt-mobility``: The recipe is obsolete and has been removed since it 75 requires ``Gstreamer 0.10``, which has been replaced. 76 77- ``subversion``: All 1.6.x versions of this recipe have been removed. 78 79- ``webkit-gtk``: The older 1.8.3 version of this recipe has been 80 removed in favor of ``webkitgtk``. 81 82.. _migration-2.0-bitbake-datastore-improvements: 83 84BitBake datastore improvements 85------------------------------ 86 87The method by which BitBake's datastore handles overrides has changed. 88Overrides are now applied dynamically and ``bb.data.update_data()`` is 89now a no-op. Thus, ``bb.data.update_data()`` is no longer required in 90order to apply the correct overrides. In practice, this change is 91unlikely to require any changes to Metadata. However, these minor 92changes in behavior exist: 93 94- All potential overrides are now visible in the variable history as 95 seen when you run the following:: 96 97 $ bitbake -e 98 99- ``d.delVar('VARNAME')`` and 100 ``d.setVar('VARNAME', None)`` result in the variable and all 101 of its overrides being cleared out. Before the change, only the 102 non-overridden values were cleared. 103 104.. _migration-2.0-shell-message-function-changes: 105 106Shell Message Function Changes 107------------------------------ 108 109The shell versions of the BitBake message functions (i.e. ``bbdebug``, 110``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are 111now connected through to their BitBake equivalents ``bb.debug()``, 112``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and 113``bb.fatal()``, respectively. Thus, those message functions that you 114would expect to be printed by the BitBake UI are now actually printed. 115In practice, this change means two things: 116 117- If you now see messages on the console that you did not previously 118 see as a result of this change, you might need to clean up the calls 119 to ``bbwarn``, ``bberror``, and so forth. Or, you might want to 120 simply remove the calls. 121 122- The ``bbfatal`` message function now suppresses the full error log in 123 the UI, which means any calls to ``bbfatal`` where you still wish to 124 see the full error log should be replaced by ``die`` or 125 ``bbfatal_log``. 126 127.. _migration-2.0-extra-development-debug-package-cleanup: 128 129Extra Development/Debug Package Cleanup 130--------------------------------------- 131 132The following recipes have had extra ``dev/dbg`` packages removed: 133 134- ``acl`` 135 136- ``apmd`` 137 138- ``aspell`` 139 140- ``attr`` 141 142- ``augeas`` 143 144- ``bzip2`` 145 146- ``cogl`` 147 148- ``curl`` 149 150- ``elfutils`` 151 152- ``gcc-target`` 153 154- ``libgcc`` 155 156- ``libtool`` 157 158- ``libxmu`` 159 160- ``opkg`` 161 162- ``pciutils`` 163 164- ``rpm`` 165 166- ``sysfsutils`` 167 168- ``tiff`` 169 170- ``xz`` 171 172All of the above recipes now conform to the standard packaging scheme 173where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per 174recipe. 175 176.. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core: 177 178Recipe Maintenance Tracking Data Moved to OE-Core 179------------------------------------------------- 180 181Maintenance tracking data for recipes that was previously part of 182``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change 183includes ``package_regex.inc`` and ``distro_alias.inc``, which are 184typically enabled when using the ``distrodata`` class. Additionally, the 185contents of ``upstream_tracking.inc`` has now been split out to the 186relevant recipes. 187 188.. _migration-2.0-automatic-stale-sysroot-file-cleanup: 189 190Automatic Stale Sysroot File Cleanup 191------------------------------------ 192 193Stale files from recipes that no longer exist in the current 194configuration are now automatically removed from sysroot as well as 195removed from any other place managed by shared state. This automatic 196cleanup means that the build system now properly handles situations such 197as renaming the build system side of recipes, removal of layers from 198``bblayers.conf``, and :term:`DISTRO_FEATURES` 199changes. 200 201Additionally, work directories for old versions of recipes are now 202pruned. If you wish to disable pruning old work directories, you can set 203the following variable in your configuration:: 204 205 SSTATE_PRUNE_OBSOLETEWORKDIR = "0" 206 207.. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source: 208 209``linux-yocto`` Kernel Metadata Repository Now Split from Source 210---------------------------------------------------------------- 211 212The ``linux-yocto`` tree has up to now been a combined set of kernel 213changes and configuration (meta) data carried in a single tree. While 214this format is effective at keeping kernel configuration and source 215modifications synchronized, it is not always obvious to developers how 216to manipulate the Metadata as compared to the source. 217 218Metadata processing has now been removed from the 219:ref:`ref-classes-kernel-yocto` class and the external 220Metadata repository ``yocto-kernel-cache``, which has always been used 221to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto`` 222cache repository is now the primary location for this data. Due to this 223change, ``linux-yocto`` is no longer able to process combined trees. 224Thus, if you need to have your own combined kernel repository, you must 225do the split there as well and update your recipes accordingly. See the 226``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example. 227 228.. _migration-2.0-additional-qa-checks: 229 230Additional QA checks 231-------------------- 232 233The following QA checks have been added: 234 235- Added a "host-user-contaminated" check for ownership issues for 236 packaged files outside of ``/home``. The check looks for files that 237 are incorrectly owned by the user that ran BitBake instead of owned 238 by a valid user in the target system. 239 240- Added an "invalid-chars" check for invalid (non-UTF8) characters in 241 recipe metadata variable values (i.e. 242 :term:`DESCRIPTION`, 243 :term:`SUMMARY`, :term:`LICENSE`, and 244 :term:`SECTION`). Some package managers do not support 245 these characters. 246 247- Added an "invalid-packageconfig" check for any options specified in 248 :term:`PACKAGECONFIG` that do not match any 249 :term:`PACKAGECONFIG` option defined for the recipe. 250 251.. _migration-2.0-miscellaneous: 252 253Miscellaneous Changes 254--------------------- 255 256These additional changes exist: 257 258- ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``. 259 260- The ``tools-profile`` :term:`IMAGE_FEATURES` 261 item as well as its corresponding packagegroup and 262 ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``. 263 Bringing in ``oprofile`` was originally added to aid compilation on 264 resource-constrained targets. However, this aid has not been widely 265 used and is not likely to be used going forward due to the more 266 powerful target platforms and the existence of better 267 cross-compilation tools. 268 269- The :term:`IMAGE_FSTYPES` variable's default 270 value now specifies ``ext4`` instead of ``ext3``. 271 272- All support for the ``PRINC`` variable has been removed. 273 274- The ``packagegroup-core-full-cmdline`` packagegroup no longer brings 275 in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not 276 really in line with the packagegroup's purpose, which is to add full 277 versions of command-line tools that by default are provided by 278 ``busybox``. 279 280 281