| Moving to the Yocto Project 2.0 Release |
| ======================================= |
| |
| This section provides migration information for moving to the Yocto |
| Project 2.0 Release from the prior release. |
| |
| .. _migration-2.0-gcc-5: |
| |
| GCC 5 |
| ----- |
| |
| The default compiler is now GCC 5.2. This change has required fixes for |
| compilation errors in a number of other recipes. |
| |
| One important example is a fix for when the Linux kernel freezes at boot |
| time on ARM when built with GCC 5. If you are using your own kernel |
| recipe or source tree and building for ARM, you will likely need to |
| apply this |
| `patch <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit?id=a077224fd35b2f7fbc93f14cf67074fc792fbac2>`__. |
| The standard ``linux-yocto`` kernel source tree already has a workaround |
| for the same issue. |
| |
| For further details, see https://gcc.gnu.org/gcc-5/changes.html |
| and the porting guide at |
| https://gcc.gnu.org/gcc-5/porting_to.html. |
| |
| Alternatively, you can switch back to GCC 4.9 or 4.8 by setting |
| ``GCCVERSION`` in your configuration, as follows: |
| :: |
| |
| GCCVERSION = "4.9%" |
| |
| .. _migration-2.0-Gstreamer-0.10-removed: |
| |
| Gstreamer 0.10 Removed |
| ---------------------- |
| |
| Gstreamer 0.10 has been removed in favor of Gstreamer 1.x. As part of |
| the change, recipes for Gstreamer 0.10 and related software are now |
| located in ``meta-multimedia``. This change results in Qt4 having Phonon |
| and Gstreamer support in QtWebkit disabled by default. |
| |
| .. _migration-2.0-removed-recipes: |
| |
| Removed Recipes |
| --------------- |
| |
| The following recipes have been moved or removed: |
| |
| - ``bluez4``: The recipe is obsolete and has been moved due to |
| ``bluez5`` becoming fully integrated. The ``bluez4`` recipe now |
| resides in ``meta-oe``. |
| |
| - ``gamin``: The recipe is obsolete and has been removed. |
| |
| - ``gnome-icon-theme``: The recipe's functionally has been replaced by |
| ``adwaita-icon-theme``. |
| |
| - Gstreamer 0.10 Recipes: Recipes for Gstreamer 0.10 have been removed |
| in favor of the recipes for Gstreamer 1.x. |
| |
| - ``insserv``: The recipe is obsolete and has been removed. |
| |
| - ``libunique``: The recipe is no longer used and has been moved to |
| ``meta-oe``. |
| |
| - ``midori``: The recipe's functionally has been replaced by |
| ``epiphany``. |
| |
| - ``python-gst``: The recipe is obsolete and has been removed since it |
| only contains bindings for Gstreamer 0.10. |
| |
| - ``qt-mobility``: The recipe is obsolete and has been removed since it |
| requires ``Gstreamer 0.10``, which has been replaced. |
| |
| - ``subversion``: All 1.6.x versions of this recipe have been removed. |
| |
| - ``webkit-gtk``: The older 1.8.3 version of this recipe has been |
| removed in favor of ``webkitgtk``. |
| |
| .. _migration-2.0-bitbake-datastore-improvements: |
| |
| BitBake datastore improvements |
| ------------------------------ |
| |
| The method by which BitBake's datastore handles overrides has changed. |
| Overrides are now applied dynamically and ``bb.data.update_data()`` is |
| now a no-op. Thus, ``bb.data.update_data()`` is no longer required in |
| order to apply the correct overrides. In practice, this change is |
| unlikely to require any changes to Metadata. However, these minor |
| changes in behavior exist: |
| |
| - All potential overrides are now visible in the variable history as |
| seen when you run the following: |
| :: |
| |
| $ bitbake -e |
| |
| - ``d.delVar('``\ VARNAME\ ``')`` and |
| ``d.setVar('``\ VARNAME\ ``', None)`` result in the variable and all |
| of its overrides being cleared out. Before the change, only the |
| non-overridden values were cleared. |
| |
| .. _migration-2.0-shell-message-function-changes: |
| |
| Shell Message Function Changes |
| ------------------------------ |
| |
| The shell versions of the BitBake message functions (i.e. ``bbdebug``, |
| ``bbnote``, ``bbwarn``, ``bbplain``, ``bberror``, and ``bbfatal``) are |
| now connected through to their BitBake equivalents ``bb.debug()``, |
| ``bb.note()``, ``bb.warn()``, ``bb.plain()``, ``bb.error()``, and |
| ``bb.fatal()``, respectively. Thus, those message functions that you |
| would expect to be printed by the BitBake UI are now actually printed. |
| In practice, this change means two things: |
| |
| - If you now see messages on the console that you did not previously |
| see as a result of this change, you might need to clean up the calls |
| to ``bbwarn``, ``bberror``, and so forth. Or, you might want to |
| simply remove the calls. |
| |
| - The ``bbfatal`` message function now suppresses the full error log in |
| the UI, which means any calls to ``bbfatal`` where you still wish to |
| see the full error log should be replaced by ``die`` or |
| ``bbfatal_log``. |
| |
| .. _migration-2.0-extra-development-debug-package-cleanup: |
| |
| Extra Development/Debug Package Cleanup |
| --------------------------------------- |
| |
| The following recipes have had extra ``dev/dbg`` packages removed: |
| |
| - ``acl`` |
| |
| - ``apmd`` |
| |
| - ``aspell`` |
| |
| - ``attr`` |
| |
| - ``augeas`` |
| |
| - ``bzip2`` |
| |
| - ``cogl`` |
| |
| - ``curl`` |
| |
| - ``elfutils`` |
| |
| - ``gcc-target`` |
| |
| - ``libgcc`` |
| |
| - ``libtool`` |
| |
| - ``libxmu`` |
| |
| - ``opkg`` |
| |
| - ``pciutils`` |
| |
| - ``rpm`` |
| |
| - ``sysfsutils`` |
| |
| - ``tiff`` |
| |
| - ``xz`` |
| |
| All of the above recipes now conform to the standard packaging scheme |
| where a single ``-dev``, ``-dbg``, and ``-staticdev`` package exists per |
| recipe. |
| |
| .. _migration-2.0-recipe-maintenance-tracking-data-moved-to-oe-core: |
| |
| Recipe Maintenance Tracking Data Moved to OE-Core |
| ------------------------------------------------- |
| |
| Maintenance tracking data for recipes that was previously part of |
| ``meta-yocto`` has been moved to :term:`OpenEmbedded-Core (OE-Core)`. The change |
| includes ``package_regex.inc`` and ``distro_alias.inc``, which are |
| typically enabled when using the ``distrodata`` class. Additionally, the |
| contents of ``upstream_tracking.inc`` has now been split out to the |
| relevant recipes. |
| |
| .. _migration-2.0-automatic-stale-sysroot-file-cleanup: |
| |
| Automatic Stale Sysroot File Cleanup |
| ------------------------------------ |
| |
| Stale files from recipes that no longer exist in the current |
| configuration are now automatically removed from sysroot as well as |
| removed from any other place managed by shared state. This automatic |
| cleanup means that the build system now properly handles situations such |
| as renaming the build system side of recipes, removal of layers from |
| ``bblayers.conf``, and :term:`DISTRO_FEATURES` |
| changes. |
| |
| Additionally, work directories for old versions of recipes are now |
| pruned. If you wish to disable pruning old work directories, you can set |
| the following variable in your configuration: |
| :: |
| |
| SSTATE_PRUNE_OBSOLETEWORKDIR = "0" |
| |
| .. _migration-2.0-linux-yocto-kernel-metadata-repository-now-split-from-source: |
| |
| ``linux-yocto`` Kernel Metadata Repository Now Split from Source |
| ---------------------------------------------------------------- |
| |
| The ``linux-yocto`` tree has up to now been a combined set of kernel |
| changes and configuration (meta) data carried in a single tree. While |
| this format is effective at keeping kernel configuration and source |
| modifications synchronized, it is not always obvious to developers how |
| to manipulate the Metadata as compared to the source. |
| |
| Metadata processing has now been removed from the |
| :ref:`kernel-yocto <ref-classes-kernel-yocto>` class and the external |
| Metadata repository ``yocto-kernel-cache``, which has always been used |
| to seed the ``linux-yocto`` "meta" branch. This separate ``linux-yocto`` |
| cache repository is now the primary location for this data. Due to this |
| change, ``linux-yocto`` is no longer able to process combined trees. |
| Thus, if you need to have your own combined kernel repository, you must |
| do the split there as well and update your recipes accordingly. See the |
| ``meta/recipes-kernel/linux/linux-yocto_4.1.bb`` recipe for an example. |
| |
| .. _migration-2.0-additional-qa-checks: |
| |
| Additional QA checks |
| -------------------- |
| |
| The following QA checks have been added: |
| |
| - Added a "host-user-contaminated" check for ownership issues for |
| packaged files outside of ``/home``. The check looks for files that |
| are incorrectly owned by the user that ran BitBake instead of owned |
| by a valid user in the target system. |
| |
| - Added an "invalid-chars" check for invalid (non-UTF8) characters in |
| recipe metadata variable values (i.e. |
| :term:`DESCRIPTION`, |
| :term:`SUMMARY`, :term:`LICENSE`, and |
| :term:`SECTION`). Some package managers do not support |
| these characters. |
| |
| - Added an "invalid-packageconfig" check for any options specified in |
| :term:`PACKAGECONFIG` that do not match any |
| ``PACKAGECONFIG`` option defined for the recipe. |
| |
| .. _migration-2.0-miscellaneous: |
| |
| Miscellaneous Changes |
| --------------------- |
| |
| These additional changes exist: |
| |
| - ``gtk-update-icon-cache`` has been renamed to ``gtk-icon-utils``. |
| |
| - The ``tools-profile`` :term:`IMAGE_FEATURES` |
| item as well as its corresponding packagegroup and |
| ``packagegroup-core-tools-profile`` no longer bring in ``oprofile``. |
| Bringing in ``oprofile`` was originally added to aid compilation on |
| resource-constrained targets. However, this aid has not been widely |
| used and is not likely to be used going forward due to the more |
| powerful target platforms and the existence of better |
| cross-compilation tools. |
| |
| - The :term:`IMAGE_FSTYPES` variable's default |
| value now specifies ``ext4`` instead of ``ext3``. |
| |
| - All support for the ``PRINC`` variable has been removed. |
| |
| - The ``packagegroup-core-full-cmdline`` packagegroup no longer brings |
| in ``lighttpd`` due to the fact that bringing in ``lighttpd`` is not |
| really in line with the packagegroup's purpose, which is to add full |
| versions of command-line tools that by default are provided by |
| ``busybox``. |
| |
| |