1*4882a593SmuzhiyunRelease 2.4 (rocko) 2*4882a593Smuzhiyun=================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto 5*4882a593SmuzhiyunProject 2.4 Release (codename "rocko") from the prior release. 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun.. _migration-2.4-memory-resident-mode: 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunMemory Resident Mode 10*4882a593Smuzhiyun-------------------- 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunA persistent mode is now available in BitBake's default operation, 13*4882a593Smuzhiyunreplacing its previous "memory resident mode" (i.e. 14*4882a593Smuzhiyun``oe-init-build-env-memres``). Now you only need to set 15*4882a593Smuzhiyun:term:`BB_SERVER_TIMEOUT` to a timeout (in 16*4882a593Smuzhiyunseconds) and BitBake's server stays resident for that amount of time 17*4882a593Smuzhiyunbetween invocations. The ``oe-init-build-env-memres`` script has been 18*4882a593Smuzhiyunremoved since a separate environment setup script is no longer needed. 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun.. _migration-2.4-packaging-changes: 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunPackaging Changes 23*4882a593Smuzhiyun----------------- 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunThis section provides information about packaging changes that have 26*4882a593Smuzhiyunoccurred: 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun- ``python3`` Changes: 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun - The main "python3" package now brings in all of the standard 31*4882a593Smuzhiyun Python 3 distribution rather than a subset. This behavior matches 32*4882a593Smuzhiyun what is expected based on traditional Linux distributions. If you 33*4882a593Smuzhiyun wish to install a subset of Python 3, specify ``python-core`` plus 34*4882a593Smuzhiyun one or more of the individual packages that are still produced. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun - ``python3``: The ``bz2.py``, ``lzma.py``, and 37*4882a593Smuzhiyun ``_compression.py`` scripts have been moved from the 38*4882a593Smuzhiyun ``python3-misc`` package to the ``python3-compression`` package. 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun- ``binutils``: The ``libbfd`` library is now packaged in a separate 41*4882a593Smuzhiyun "libbfd" package. This packaging saves space when certain tools (e.g. 42*4882a593Smuzhiyun ``perf``) are installed. In such cases, the tools only need 43*4882a593Smuzhiyun ``libbfd`` rather than all the packages in ``binutils``. 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun- ``util-linux`` Changes: 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun - The ``su`` program is now packaged in a separate "util-linux-su" 48*4882a593Smuzhiyun package, which is only built when "pam" is listed in the 49*4882a593Smuzhiyun :term:`DISTRO_FEATURES` variable. 50*4882a593Smuzhiyun ``util-linux`` should not be installed unless it is needed because 51*4882a593Smuzhiyun ``su`` is normally provided through the shadow file format. The 52*4882a593Smuzhiyun main ``util-linux`` package has runtime dependencies (i.e. 53*4882a593Smuzhiyun :term:`RDEPENDS`) on the ``util-linux-su`` package 54*4882a593Smuzhiyun when "pam" is in :term:`DISTRO_FEATURES`. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun - The ``switch_root`` program is now packaged in a separate 57*4882a593Smuzhiyun "util-linux-switch-root" package for small initramfs images that 58*4882a593Smuzhiyun do not need the whole ``util-linux`` package or the busybox 59*4882a593Smuzhiyun binary, which are both much larger than ``switch_root``. The main 60*4882a593Smuzhiyun ``util-linux`` package has a recommended runtime dependency (i.e. 61*4882a593Smuzhiyun :term:`RRECOMMENDS`) on the 62*4882a593Smuzhiyun ``util-linux-switch-root`` package. 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun - The ``ionice`` program is now packaged in a separate 65*4882a593Smuzhiyun "util-linux-ionice" package. The main ``util-linux`` package has a 66*4882a593Smuzhiyun recommended runtime dependency (i.e. :term:`RRECOMMENDS`) on the 67*4882a593Smuzhiyun ``util-linux-ionice`` package. 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun- ``initscripts``: The ``sushell`` program is now packaged in a 70*4882a593Smuzhiyun separate "initscripts-sushell" package. This packaging change allows 71*4882a593Smuzhiyun systems to pull ``sushell`` in when ``selinux`` is enabled. The 72*4882a593Smuzhiyun change also eliminates needing to pull in the entire ``initscripts`` 73*4882a593Smuzhiyun package. The main ``initscripts`` package has a runtime dependency 74*4882a593Smuzhiyun (i.e. :term:`RDEPENDS`) on the ``sushell`` package when "selinux" is in 75*4882a593Smuzhiyun :term:`DISTRO_FEATURES`. 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun- ``glib-2.0``: The ``glib-2.0`` package now has a recommended 78*4882a593Smuzhiyun runtime dependency (i.e. :term:`RRECOMMENDS`) on the ``shared-mime-info`` 79*4882a593Smuzhiyun package, since large portions of GIO are not useful without the MIME 80*4882a593Smuzhiyun database. You can remove the dependency by using the 81*4882a593Smuzhiyun :term:`BAD_RECOMMENDATIONS` variable if 82*4882a593Smuzhiyun ``shared-mime-info`` is too large and is not required. 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun- *Go Standard Runtime:* The Go standard runtime has been split out 85*4882a593Smuzhiyun from the main ``go`` recipe into a separate ``go-runtime`` recipe. 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun.. _migration-2.4-removed-recipes: 88*4882a593Smuzhiyun 89*4882a593SmuzhiyunRemoved Recipes 90*4882a593Smuzhiyun--------------- 91*4882a593Smuzhiyun 92*4882a593SmuzhiyunThe following recipes have been removed: 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun- ``acpitests``: This recipe is not maintained. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun- ``autogen-native``: No longer required by Grub, oe-core, or 97*4882a593Smuzhiyun meta-oe. 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun- ``bdwgc``: Nothing in OpenEmbedded-Core requires this recipe. It 100*4882a593Smuzhiyun has moved to meta-oe. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun- ``byacc``: This recipe was only needed by rpm 5.x and has moved to 103*4882a593Smuzhiyun meta-oe. 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun- ``gcc (5.4)``: The 5.4 series dropped the recipe in favor of 6.3 / 106*4882a593Smuzhiyun 7.2. 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun- ``gnome-common``: Deprecated upstream and no longer needed. 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun- ``go-bootstrap-native``: Go 1.9 does its own bootstrapping so this 111*4882a593Smuzhiyun recipe has been removed. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun- ``guile``: This recipe was only needed by ``autogen-native`` and 114*4882a593Smuzhiyun ``remake``. The recipe is no longer needed by either of these 115*4882a593Smuzhiyun programs. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun- ``libclass-isa-perl``: This recipe was previously needed for LSB 4, 118*4882a593Smuzhiyun no longer needed. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun- ``libdumpvalue-perl``: This recipe was previously needed for LSB 4, 121*4882a593Smuzhiyun no longer needed. 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun- ``libenv-perl``: This recipe was previously needed for LSB 4, no 124*4882a593Smuzhiyun longer needed. 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun- ``libfile-checktree-perl``: This recipe was previously needed for 127*4882a593Smuzhiyun LSB 4, no longer needed. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun- ``libi18n-collate-perl``: This recipe was previously needed for LSB 130*4882a593Smuzhiyun 4, no longer needed. 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun- ``libiconv``: This recipe was only needed for ``uclibc``, which was 133*4882a593Smuzhiyun removed in the previous release. ``glibc`` and ``musl`` have their 134*4882a593Smuzhiyun own implementations. ``meta-mingw`` still needs ``libiconv``, so it 135*4882a593Smuzhiyun has been moved to ``meta-mingw``. 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun- ``libpng12``: This recipe was previously needed for LSB. The 138*4882a593Smuzhiyun current ``libpng`` is 1.6.x. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun- ``libpod-plainer-perl``: This recipe was previously needed for LSB 141*4882a593Smuzhiyun 4, no longer needed. 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun- ``linux-yocto (4.1)``: This recipe was removed in favor of 4.4, 144*4882a593Smuzhiyun 4.9, 4.10 and 4.12. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun- ``mailx``: This recipe was previously only needed for LSB 147*4882a593Smuzhiyun compatibility, and upstream is defunct. 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun- ``mesa (git version only)``: The git version recipe was stale with 150*4882a593Smuzhiyun respect to the release version. 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun- ``ofono (git version only)``: The git version recipe was stale with 153*4882a593Smuzhiyun respect to the release version. 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun- ``portmap``: This recipe is obsolete and is superseded by 156*4882a593Smuzhiyun ``rpcbind``. 157*4882a593Smuzhiyun 158*4882a593Smuzhiyun- ``python3-pygpgme``: This recipe is old and unmaintained. It was 159*4882a593Smuzhiyun previously required by ``dnf``, which has switched to official 160*4882a593Smuzhiyun ``gpgme`` Python bindings. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun- ``python-async``: This recipe has been removed in favor of the 163*4882a593Smuzhiyun Python 3 version. 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun- ``python-gitdb``: This recipe has been removed in favor of the 166*4882a593Smuzhiyun Python 3 version. 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun- ``python-git``: This recipe was removed in favor of the Python 3 169*4882a593Smuzhiyun version. 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun- ``python-mako``: This recipe was removed in favor of the Python 3 172*4882a593Smuzhiyun version. 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun- ``python-pexpect``: This recipe was removed in favor of the Python 175*4882a593Smuzhiyun 3 version. 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun- ``python-ptyprocess``: This recipe was removed in favor of Python 178*4882a593Smuzhiyun the 3 version. 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun- ``python-pycurl``: Nothing is using this recipe in 181*4882a593Smuzhiyun OpenEmbedded-Core (i.e. ``meta-oe``). 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun- ``python-six``: This recipe was removed in favor of the Python 3 184*4882a593Smuzhiyun version. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun- ``python-smmap``: This recipe was removed in favor of the Python 3 187*4882a593Smuzhiyun version. 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun- ``remake``: Using ``remake`` as the provider of ``virtual/make`` is 190*4882a593Smuzhiyun broken. Consequently, this recipe is not needed in OpenEmbedded-Core. 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun.. _migration-2.4-kernel-device-tree-move: 193*4882a593Smuzhiyun 194*4882a593SmuzhiyunKernel Device Tree Move 195*4882a593Smuzhiyun----------------------- 196*4882a593Smuzhiyun 197*4882a593SmuzhiyunKernel Device Tree support is now easier to enable in a kernel recipe. 198*4882a593SmuzhiyunThe Device Tree code has moved to a 199*4882a593Smuzhiyun:ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class. 200*4882a593SmuzhiyunFunctionality is automatically enabled for any recipe that inherits the 201*4882a593Smuzhiyun:ref:`kernel <ref-classes-kernel>` class and sets the 202*4882a593Smuzhiyun:term:`KERNEL_DEVICETREE` variable. The 203*4882a593Smuzhiyunprevious mechanism for doing this, 204*4882a593Smuzhiyun``meta/recipes-kernel/linux/linux-dtb.inc``, is still available to avoid 205*4882a593Smuzhiyunbreakage, but triggers a deprecation warning. Future releases of the 206*4882a593SmuzhiyunYocto Project will remove ``meta/recipes-kernel/linux/linux-dtb.inc``. 207*4882a593SmuzhiyunIt is advisable to remove any ``require`` statements that request 208*4882a593Smuzhiyun``meta/recipes-kernel/linux/linux-dtb.inc`` from any custom kernel 209*4882a593Smuzhiyunrecipes you might have. This will avoid breakage in post 2.4 releases. 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun.. _migration-2.4-package-qa-changes: 212*4882a593Smuzhiyun 213*4882a593SmuzhiyunPackage QA Changes 214*4882a593Smuzhiyun------------------ 215*4882a593Smuzhiyun 216*4882a593SmuzhiyunThe following package QA changes took place: 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun- The "unsafe-references-in-scripts" QA check has been removed. 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun- If you refer to ``${COREBASE}/LICENSE`` within 221*4882a593Smuzhiyun :term:`LIC_FILES_CHKSUM` you receive a 222*4882a593Smuzhiyun warning because this file is a description of the license for 223*4882a593Smuzhiyun OE-Core. Use ``${COMMON_LICENSE_DIR}/MIT`` if your recipe is 224*4882a593Smuzhiyun MIT-licensed and you cannot use the preferred method of referring to 225*4882a593Smuzhiyun a file within the source tree. 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun.. _migration-2.4-readme-changes: 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun``README`` File Changes 230*4882a593Smuzhiyun----------------------- 231*4882a593Smuzhiyun 232*4882a593SmuzhiyunThe following are changes to ``README`` files: 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun- The main Poky ``README`` file has been moved to the ``meta-poky`` 235*4882a593Smuzhiyun layer and has been renamed ``README.poky``. A symlink has been 236*4882a593Smuzhiyun created so that references to the old location work. 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun- The ``README.hardware`` file has been moved to ``meta-yocto-bsp``. A 239*4882a593Smuzhiyun symlink has been created so that references to the old location work. 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun- A ``README.qemu`` file has been created with coverage of the 242*4882a593Smuzhiyun ``qemu*`` machines. 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun.. _migration-2.4-miscellaneous-changes: 245*4882a593Smuzhiyun 246*4882a593SmuzhiyunMiscellaneous Changes 247*4882a593Smuzhiyun--------------------- 248*4882a593Smuzhiyun 249*4882a593SmuzhiyunThe following are additional changes: 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun- The ``ROOTFS_PKGMANAGE_BOOTSTRAP`` variable and any references to it 252*4882a593Smuzhiyun have been removed. You should remove this variable from any custom 253*4882a593Smuzhiyun recipes. 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun- The ``meta-yocto`` directory has been removed. 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun .. note:: 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun In the Yocto Project 2.1 release 260*4882a593Smuzhiyun meta-yocto 261*4882a593Smuzhiyun was renamed to 262*4882a593Smuzhiyun meta-poky 263*4882a593Smuzhiyun and the 264*4882a593Smuzhiyun meta-yocto 265*4882a593Smuzhiyun subdirectory remained to avoid breaking existing configurations. 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun- The ``maintainers.inc`` file, which tracks maintainers by listing a 268*4882a593Smuzhiyun primary person responsible for each recipe in OE-Core, has been moved 269*4882a593Smuzhiyun from ``meta-poky`` to OE-Core (i.e. from 270*4882a593Smuzhiyun ``meta-poky/conf/distro/include`` to ``meta/conf/distro/include``). 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun- The :ref:`buildhistory <ref-classes-buildhistory>` class now makes 273*4882a593Smuzhiyun a single commit per build rather than one commit per subdirectory in 274*4882a593Smuzhiyun the repository. This behavior assumes the commits are enabled with 275*4882a593Smuzhiyun :term:`BUILDHISTORY_COMMIT` = "1", which 276*4882a593Smuzhiyun is typical. Previously, the :ref:`buildhistory <ref-classes-buildhistory>` class made one commit 277*4882a593Smuzhiyun per subdirectory in the repository in order to make it easier to see 278*4882a593Smuzhiyun the changes for a particular subdirectory. To view a particular 279*4882a593Smuzhiyun change, specify that subdirectory as the last parameter on the 280*4882a593Smuzhiyun ``git show`` or ``git diff`` commands. 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun- The ``x86-base.inc`` file, which is included by all x86-based machine 283*4882a593Smuzhiyun configurations, now sets :term:`IMAGE_FSTYPES` 284*4882a593Smuzhiyun using ``?=`` to "live" rather than appending with ``+=``. This change 285*4882a593Smuzhiyun makes the default easier to override. 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun- BitBake fires multiple "BuildStarted" events when multiconfig is 288*4882a593Smuzhiyun enabled (one per configuration). For more information, see the 289*4882a593Smuzhiyun ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:events`" 290*4882a593Smuzhiyun section in the BitBake User Manual. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun- By default, the ``security_flags.inc`` file sets a 293*4882a593Smuzhiyun :term:`GCCPIE` variable with an option to enable 294*4882a593Smuzhiyun Position Independent Executables (PIE) within ``gcc``. Enabling PIE 295*4882a593Smuzhiyun in the GNU C Compiler (GCC), makes Return Oriented Programming (ROP) 296*4882a593Smuzhiyun attacks much more difficult to execute. 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun- OE-Core now provides a ``bitbake-layers`` plugin that implements a 299*4882a593Smuzhiyun "create-layer" subcommand. The implementation of this subcommand has 300*4882a593Smuzhiyun resulted in the ``yocto-layer`` script being deprecated and will 301*4882a593Smuzhiyun likely be removed in the next Yocto Project release. 302*4882a593Smuzhiyun 303*4882a593Smuzhiyun- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in 304*4882a593Smuzhiyun conjunction with the "wic" image type through ``CONVERSION_CMD``. 305*4882a593Smuzhiyun Consequently, the equivalent image types are now ``wic.vmdk``, 306*4882a593Smuzhiyun ``wic.vdi``, and ``wic.qcow2``, respectively. 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun- ``do_image_<type>[depends]`` has replaced ``IMAGE_DEPENDS_<type>``. 309*4882a593Smuzhiyun If you have your own classes that implement custom image types, then 310*4882a593Smuzhiyun you need to update them. 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun- OpenSSL 1.1 has been introduced. However, the default is still 1.0.x 313*4882a593Smuzhiyun through the :term:`PREFERRED_VERSION` 314*4882a593Smuzhiyun variable. This preference is set is due to the remaining 315*4882a593Smuzhiyun compatibility issues with other software. The 316*4882a593Smuzhiyun :term:`PROVIDES` variable in the openssl 1.0 recipe 317*4882a593Smuzhiyun now includes "openssl10" as a marker that can be used in 318*4882a593Smuzhiyun :term:`DEPENDS` within recipes that build software 319*4882a593Smuzhiyun that still depend on OpenSSL 1.0. 320*4882a593Smuzhiyun 321*4882a593Smuzhiyun- To ensure consistent behavior, BitBake's "-r" and "-R" options (i.e. 322*4882a593Smuzhiyun prefile and postfile), which are used to read or post-read additional 323*4882a593Smuzhiyun configuration files from the command line, now only affect the 324*4882a593Smuzhiyun current BitBake command. Before these BitBake changes, these options 325*4882a593Smuzhiyun would "stick" for future executions. 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun 328