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