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