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