1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK 2 3Release 1.5 (dora) 4================== 5 6This section provides migration information for moving to the Yocto 7Project 1.5 Release (codename "dora") from the prior release. 8 9.. _migration-1.5-host-dependency-changes: 10 11Host Dependency Changes 12----------------------- 13 14The OpenEmbedded build system now has some additional requirements on 15the host system: 16 17- Python 2.7.3+ 18 19- Tar 1.24+ 20 21- Git 1.7.8+ 22 23- Patched version of Make if you are using 3.82. Most distributions 24 that provide Make 3.82 use the patched version. 25 26If the Linux distribution you are using on your build host does not 27provide packages for these, you can install and use the Buildtools 28tarball, which provides an SDK-like environment containing them. 29 30For more information on this requirement, see the 31":ref:`system-requirements-buildtools`" section. 32 33.. _migration-1.5-atom-pc-bsp: 34 35``atom-pc`` Board Support Package (BSP) 36--------------------------------------- 37 38The ``atom-pc`` hardware reference BSP has been replaced by a 39``genericx86`` BSP. This BSP is not necessarily guaranteed to work on 40all x86 hardware, but it will run on a wider range of systems than the 41``atom-pc`` did. 42 43.. note:: 44 45 Additionally, a ``genericx86-64`` BSP has been added for 64-bit Atom 46 systems. 47 48.. _migration-1.5-bitbake: 49 50BitBake 51------- 52 53The following changes have been made that relate to BitBake: 54 55- BitBake now supports a ``_remove`` operator. The addition of this 56 operator means you will have to rename any items in recipe space 57 (functions, variables) whose names currently contain ``_remove_`` or 58 end with ``_remove`` to avoid unexpected behavior. 59 60- BitBake's global method pool has been removed. This method is not 61 particularly useful and led to clashes between recipes containing 62 functions that had the same name. 63 64- The "none" server backend has been removed. The "process" server 65 backend has been serving well as the default for a long time now. 66 67- The ``bitbake-runtask`` script has been removed. 68 69- ``${``\ :term:`P`\ ``}`` and 70 ``${``\ :term:`PF`\ ``}`` are no longer added to 71 :term:`PROVIDES` by default in ``bitbake.conf``. 72 These version-specific :term:`PROVIDES` items were seldom used. 73 Attempting to use them could result in two versions being built 74 simultaneously rather than just one version due to the way BitBake 75 resolves dependencies. 76 77.. _migration-1.5-qa-warnings: 78 79QA Warnings 80----------- 81 82The following changes have been made to the package QA checks: 83 84- If you have customized :term:`ERROR_QA` or 85 :term:`WARN_QA` values in your configuration, check 86 that they contain all of the issues that you wish to be reported. 87 Previous Yocto Project versions contained a bug that meant that any 88 item not mentioned in :term:`ERROR_QA` or :term:`WARN_QA` would be treated as 89 a warning. Consequently, several important items were not already in 90 the default value of :term:`WARN_QA`. All of the possible QA checks are 91 now documented in the ":ref:`ref-classes-insane`" section. 92 93- An additional QA check has been added to check if 94 ``/usr/share/info/dir`` is being installed. Your recipe should delete 95 this file within :ref:`ref-tasks-install` if "make 96 install" is installing it. 97 98- If you are using the :ref:`ref-classes-buildhistory` class, the check for the 99 package version going backwards is now controlled using a standard QA check. 100 Thus, if you have customized your :term:`ERROR_QA` or :term:`WARN_QA` values 101 and still wish to have this check performed, you should add 102 "version-going-backwards" to your value for one or the other 103 variables depending on how you wish it to be handled. See the 104 documented QA checks in the ":ref:`ref-classes-insane`" section. 105 106.. _migration-1.5-directory-layout-changes: 107 108Directory Layout Changes 109------------------------ 110 111The following directory changes exist: 112 113- Output SDK installer files are now named to include the image name 114 and tuning architecture through the :term:`SDK_NAME` 115 variable. 116 117- Images and related files are now installed into a directory that is 118 specific to the machine, instead of a parent directory containing 119 output files for multiple machines. The 120 :term:`DEPLOY_DIR_IMAGE` variable continues 121 to point to the directory containing images for the current 122 :term:`MACHINE` and should be used anywhere there is a 123 need to refer to this directory. The ``runqemu`` script now uses this 124 variable to find images and kernel binaries and will use BitBake to 125 determine the directory. Alternatively, you can set the 126 :term:`DEPLOY_DIR_IMAGE` variable in the external environment. 127 128- When buildhistory is enabled, its output is now written under the 129 :term:`Build Directory` rather than :term:`TMPDIR`. Doing so makes 130 it easier to delete :term:`TMPDIR` and preserve the build history. 131 Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`. 132 133- When :ref:`ref-classes-buildhistory` is enabled, its output 134 is now written under the :term:`Build Directory` rather than :term:`TMPDIR`. 135 Doing so makes it easier to delete :term:`TMPDIR` and preserve the build 136 history. Additionally, data for produced SDKs is now split by :term:`IMAGE_NAME`. 137 138- The ``pkgdata`` directory produced as part of the packaging process 139 has been collapsed into a single machine-specific directory. This 140 directory is located under ``sysroots`` and uses a machine-specific 141 name (i.e. ``tmp/sysroots/machine/pkgdata``). 142 143.. _migration-1.5-shortened-git-srcrev-values: 144 145Shortened Git ``SRCREV`` Values 146------------------------------- 147 148BitBake will now shorten revisions from Git repositories from the normal 14940 characters down to 10 characters within :term:`SRCPV` 150for improved usability in path and filenames. This change should be 151safe within contexts where these revisions are used because the chances 152of spatially close collisions is very low. Distant collisions are not a 153major issue in the way the values are used. 154 155.. _migration-1.5-image-features: 156 157``IMAGE_FEATURES`` 158------------------ 159 160The following changes have been made that relate to 161:term:`IMAGE_FEATURES`: 162 163- The value of :term:`IMAGE_FEATURES` is now validated to ensure invalid 164 feature items are not added. Some users mistakenly add package names 165 to this variable instead of using 166 :term:`IMAGE_INSTALL` in order to have the 167 package added to the image, which does not work. This change is 168 intended to catch those kinds of situations. Valid :term:`IMAGE_FEATURES` 169 are drawn from ``PACKAGE_GROUP`` definitions, 170 :term:`COMPLEMENTARY_GLOB` and a new 171 "validitems" varflag on :term:`IMAGE_FEATURES`. The "validitems" varflag 172 change allows additional features to be added if they are not 173 provided using the previous two mechanisms. 174 175- The previously deprecated "apps-console-core" :term:`IMAGE_FEATURES` item 176 is no longer supported. Add "splash" to :term:`IMAGE_FEATURES` if you 177 wish to have the splash screen enabled, since this is all that 178 apps-console-core was doing. 179 180.. _migration-1.5-run: 181 182``/run`` 183-------- 184 185The ``/run`` directory from the Filesystem Hierarchy Standard 3.0 has 186been introduced. You can find some of the implications for this change 187:oe_git:`here </openembedded-core/commit/?id=0e326280a15b0f2c4ef2ef4ec441f63f55b75873>`. 188The change also means that recipes that install files to ``/var/run`` 189must be changed. You can find a guide on how to make these changes 190`here <https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg31649.html>`__. 191 192.. _migration-1.5-removal-of-package-manager-database-within-image-recipes: 193 194Removal of Package Manager Database Within Image Recipes 195-------------------------------------------------------- 196 197The image ``core-image-minimal`` no longer adds 198``remove_packaging_data_files`` to 199:term:`ROOTFS_POSTPROCESS_COMMAND`. 200This addition is now handled automatically when "package-management" is 201not in :term:`IMAGE_FEATURES`. If you have custom 202image recipes that make this addition, you should remove the lines, as 203they are not needed and might interfere with correct operation of 204postinstall scripts. 205 206.. _migration-1.5-images-now-rebuild-only-on-changes-instead-of-every-time: 207 208Images Now Rebuild Only on Changes Instead of Every Time 209-------------------------------------------------------- 210 211The :ref:`ref-tasks-rootfs` and other related image 212construction tasks are no longer marked as "nostamp". Consequently, they 213will only be re-executed when their inputs have changed. Previous 214versions of the OpenEmbedded build system always rebuilt the image when 215requested rather when necessary. 216 217.. _migration-1.5-task-recipes: 218 219Task Recipes 220------------ 221 222The previously deprecated ``task.bbclass`` has now been dropped. For 223recipes that previously inherited from this class, you should rename 224them from ``task-*`` to ``packagegroup-*`` and inherit 225:ref:`ref-classes-packagegroup` instead. 226 227For more information, see the ":ref:`ref-classes-packagegroup`" section. 228 229.. _migration-1.5-busybox: 230 231BusyBox 232------- 233 234By default, we now split BusyBox into two binaries: one that is suid 235root for those components that need it, and another for the rest of the 236components. Splitting BusyBox allows for optimization that eliminates 237the ``tinylogin`` recipe as recommended by upstream. You can disable 238this split by setting 239:term:`BUSYBOX_SPLIT_SUID` to "0". 240 241.. _migration-1.5-automated-image-testing: 242 243Automated Image Testing 244----------------------- 245 246A new automated image testing framework has been added through the 247:ref:`ref-classes-testimage` classes. This 248framework replaces the older ``imagetest-qemu`` framework. 249 250You can learn more about performing automated image tests in the 251":ref:`dev-manual/runtime-testing:performing automated runtime testing`" 252section in the Yocto Project Development Tasks Manual. 253 254.. _migration-1.5-build-history: 255 256Build History 257------------- 258 259The changes to Build History are: 260 261- Installed package sizes: ``installed-package-sizes.txt`` for an image 262 now records the size of the files installed by each package instead 263 of the size of each compressed package archive file. 264 265- The dependency graphs (``depends*.dot``) now use the actual package 266 names instead of replacing dashes, dots and plus signs with 267 underscores. 268 269- The ``buildhistory-diff`` and ``buildhistory-collect-srcrevs`` 270 utilities have improved command-line handling. Use the ``--help`` 271 option for each utility for more information on the new syntax. 272 273For more information on Build History, see the 274":ref:`dev-manual/build-quality:maintaining build output quality`" 275section in the Yocto Project Development Tasks Manual. 276 277.. _migration-1.5-udev: 278 279``udev`` 280-------- 281 282The changes to ``udev`` are: 283 284- ``udev`` no longer brings in ``udev-extraconf`` automatically through 285 :term:`RRECOMMENDS`, since this was originally 286 intended to be optional. If you need the extra rules, then add 287 ``udev-extraconf`` to your image. 288 289- ``udev`` no longer brings in ``pciutils-ids`` or ``usbutils-ids`` 290 through :term:`RRECOMMENDS`. These are not needed by ``udev`` itself and 291 removing them saves around 350KB. 292 293.. _migration-1.5-removed-renamed-recipes: 294 295Removed and Renamed Recipes 296--------------------------- 297 298- The ``linux-yocto`` 3.2 kernel has been removed. 299 300- ``libtool-nativesdk`` has been renamed to ``nativesdk-libtool``. 301 302- ``tinylogin`` has been removed. It has been replaced by a suid 303 portion of Busybox. See the ":ref:`migration-1.5-busybox`" 304 section for more information. 305 306- ``external-python-tarball`` has been renamed to 307 ``buildtools-tarball``. 308 309- ``web-webkit`` has been removed. It has been functionally replaced by 310 ``midori``. 311 312- ``imake`` has been removed. It is no longer needed by any other 313 recipe. 314 315- ``transfig-native`` has been removed. It is no longer needed by any 316 other recipe. 317 318- ``anjuta-remote-run`` has been removed. Anjuta IDE integration has 319 not been officially supported for several releases. 320 321.. _migration-1.5-other-changes: 322 323Other Changes 324------------- 325 326Here is a list of short entries describing other changes: 327 328- ``run-postinsts``: Make this generic. 329 330- ``base-files``: Remove the unnecessary ``media/``\ xxx directories. 331 332- ``alsa-state``: Provide an empty ``asound.conf`` by default. 333 334- ``classes/image``: Ensure 335 :term:`BAD_RECOMMENDATIONS` supports 336 pre-renamed package names. 337 338- ``classes/rootfs_rpm``: Implement :term:`BAD_RECOMMENDATIONS` for RPM. 339 340- ``systemd``: Remove ``systemd_unitdir`` if ``systemd`` is not in 341 :term:`DISTRO_FEATURES`. 342 343- ``systemd``: Remove ``init.d`` dir if ``systemd`` unit file is 344 present and ``sysvinit`` is not a distro feature. 345 346- ``libpam``: Deny all services for the ``OTHER`` entries. 347 348- :ref:`ref-classes-image`: Move ``runtime_mapping_rename`` to avoid conflict 349 with ``multilib``. See :yocto_bugs:`YOCTO #4993 </show_bug.cgi?id=4993>` 350 in Bugzilla for more information. 351 352- ``linux-dtb``: Use kernel build system to generate the ``dtb`` files. 353 354- ``kern-tools``: Switch from guilt to new ``kgit-s2q`` tool. 355 356