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