1*4882a593SmuzhiyunRelease 2.3 (pyro) 2*4882a593Smuzhiyun================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto 5*4882a593SmuzhiyunProject 2.3 Release (codename "pyro") from the prior release. 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun.. _migration-2.3-recipe-specific-sysroots: 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunRecipe-specific Sysroots 10*4882a593Smuzhiyun------------------------ 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunThe OpenEmbedded build system now uses one sysroot per recipe to resolve 13*4882a593Smuzhiyunlong-standing issues with configuration script auto-detection of 14*4882a593Smuzhiyunundeclared dependencies. Consequently, you might find that some of your 15*4882a593Smuzhiyunpreviously written custom recipes are missing declared dependencies, 16*4882a593Smuzhiyunparticularly those dependencies that are incidentally built earlier in a 17*4882a593Smuzhiyuntypical build process and thus are already likely to be present in the 18*4882a593Smuzhiyunshared sysroot in previous releases. 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunConsider the following: 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun- *Declare Build-Time Dependencies:* Because of this new feature, you 23*4882a593Smuzhiyun must explicitly declare all build-time dependencies for your recipe. 24*4882a593Smuzhiyun If you do not declare these dependencies, they are not populated into 25*4882a593Smuzhiyun the sysroot for the recipe. 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun- *Specify Pre-Installation and Post-Installation Native Tool 28*4882a593Smuzhiyun Dependencies:* You must specifically specify any special native tool 29*4882a593Smuzhiyun dependencies of ``pkg_preinst`` and ``pkg_postinst`` scripts by using 30*4882a593Smuzhiyun the :term:`PACKAGE_WRITE_DEPS` variable. 31*4882a593Smuzhiyun Specifying these dependencies ensures that these tools are available 32*4882a593Smuzhiyun if these scripts need to be run on the build host during the 33*4882a593Smuzhiyun :ref:`ref-tasks-rootfs` task. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun As an example, see the ``dbus`` recipe. You will see that this recipe 36*4882a593Smuzhiyun has a ``pkg_postinst`` that calls ``systemctl`` if "systemd" is in 37*4882a593Smuzhiyun :term:`DISTRO_FEATURES`. In the example, 38*4882a593Smuzhiyun ``systemd-systemctl-native`` is added to :term:`PACKAGE_WRITE_DEPS`, 39*4882a593Smuzhiyun which is also conditional on "systemd" being in :term:`DISTRO_FEATURES`. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun- Examine Recipes that Use ``SSTATEPOSTINSTFUNCS``: You need to 42*4882a593Smuzhiyun examine any recipe that uses ``SSTATEPOSTINSTFUNCS`` and determine 43*4882a593Smuzhiyun steps to take. 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun Functions added to ``SSTATEPOSTINSTFUNCS`` are still called as they 46*4882a593Smuzhiyun were in previous Yocto Project releases. However, since a separate 47*4882a593Smuzhiyun sysroot is now being populated for every recipe and if existing 48*4882a593Smuzhiyun functions being called through ``SSTATEPOSTINSTFUNCS`` are doing 49*4882a593Smuzhiyun relocation, then you will need to change these to use a 50*4882a593Smuzhiyun post-installation script that is installed by a function added to 51*4882a593Smuzhiyun :term:`SYSROOT_PREPROCESS_FUNCS`. 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun For an example, see the :ref:`pixbufcache <ref-classes-pixbufcache>` class in ``meta/classes/`` in 54*4882a593Smuzhiyun the :ref:`overview-manual/development-environment:yocto project source repositories`. 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun .. note:: 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun The 59*4882a593Smuzhiyun SSTATEPOSTINSTFUNCS 60*4882a593Smuzhiyun variable itself is now deprecated in favor of the 61*4882a593Smuzhiyun do_populate_sysroot[postfuncs] 62*4882a593Smuzhiyun task. Consequently, if you do still have any function or functions 63*4882a593Smuzhiyun that need to be called after the sysroot component is created for 64*4882a593Smuzhiyun a recipe, then you would be well advised to take steps to use a 65*4882a593Smuzhiyun post installation script as described previously. Taking these 66*4882a593Smuzhiyun steps prepares your code for when 67*4882a593Smuzhiyun SSTATEPOSTINSTFUNCS 68*4882a593Smuzhiyun is removed in a future Yocto Project release. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun- *Specify the Sysroot when Using Certain External Scripts:* Because 71*4882a593Smuzhiyun the shared sysroot is now gone, the scripts 72*4882a593Smuzhiyun ``oe-find-native-sysroot`` and ``oe-run-native`` have been changed 73*4882a593Smuzhiyun such that you need to specify which recipe's 74*4882a593Smuzhiyun :term:`STAGING_DIR_NATIVE` is used. 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun.. note:: 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun You can find more information on how recipe-specific sysroots work in 79*4882a593Smuzhiyun the ":ref:`ref-classes-staging`" section. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun.. _migration-2.3-path-variable: 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun``PATH`` Variable 84*4882a593Smuzhiyun----------------- 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunWithin the environment used to run build tasks, the environment variable 87*4882a593Smuzhiyun``PATH`` is now sanitized such that the normal native binary paths 88*4882a593Smuzhiyun(``/bin``, ``/sbin``, ``/usr/bin`` and so forth) are removed and a 89*4882a593Smuzhiyundirectory containing symbolic links linking only to the binaries from 90*4882a593Smuzhiyunthe host mentioned in the :term:`HOSTTOOLS` and 91*4882a593Smuzhiyun:term:`HOSTTOOLS_NONFATAL` variables is added 92*4882a593Smuzhiyunto ``PATH``. 93*4882a593Smuzhiyun 94*4882a593SmuzhiyunConsequently, any native binaries provided by the host that you need to 95*4882a593Smuzhiyuncall needs to be in one of these two variables at the configuration 96*4882a593Smuzhiyunlevel. 97*4882a593Smuzhiyun 98*4882a593SmuzhiyunAlternatively, you can add a native recipe (i.e. ``-native``) that 99*4882a593Smuzhiyunprovides the binary to the recipe's :term:`DEPENDS` 100*4882a593Smuzhiyunvalue. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun.. note:: 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun PATH 105*4882a593Smuzhiyun is not sanitized in the same way within ``devshell``. 106*4882a593Smuzhiyun If it were, you would have difficulty running host tools for 107*4882a593Smuzhiyun development and debugging within the shell. 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun.. _migration-2.3-scripts: 110*4882a593Smuzhiyun 111*4882a593SmuzhiyunChanges to Scripts 112*4882a593Smuzhiyun------------------ 113*4882a593Smuzhiyun 114*4882a593SmuzhiyunThe following changes to scripts took place: 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun- ``oe-find-native-sysroot``: The usage for the 117*4882a593Smuzhiyun ``oe-find-native-sysroot`` script has changed to the following:: 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun $ . oe-find-native-sysroot recipe 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun You must now supply a recipe for recipe 122*4882a593Smuzhiyun as part of the command. Prior to the Yocto Project 2.3 release, it 123*4882a593Smuzhiyun was not necessary to provide the script with the command. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun- ``oe-run-native``: The usage for the ``oe-run-native`` script has 126*4882a593Smuzhiyun changed to the following:: 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun $ oe-run-native native_recipe tool 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun You must 131*4882a593Smuzhiyun supply the name of the native recipe and the tool you want to run as 132*4882a593Smuzhiyun part of the command. Prior to the Yocto Project 2.3 release, it 133*4882a593Smuzhiyun was not necessary to provide the native recipe with the command. 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun- ``cleanup-workdir``: The ``cleanup-workdir`` script has been 136*4882a593Smuzhiyun removed because the script was found to be deleting files it should 137*4882a593Smuzhiyun not have, which lead to broken build trees. Rather than trying to 138*4882a593Smuzhiyun delete portions of :term:`TMPDIR` and getting it wrong, 139*4882a593Smuzhiyun it is recommended that you delete :term:`TMPDIR` and have it restored 140*4882a593Smuzhiyun from shared state (sstate) on subsequent builds. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun- ``wipe-sysroot``: The ``wipe-sysroot`` script has been removed as 143*4882a593Smuzhiyun it is no longer needed with recipe-specific sysroots. 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun.. _migration-2.3-functions: 146*4882a593Smuzhiyun 147*4882a593SmuzhiyunChanges to Functions 148*4882a593Smuzhiyun-------------------- 149*4882a593Smuzhiyun 150*4882a593SmuzhiyunThe previously deprecated ``bb.data.getVar()``, ``bb.data.setVar()``, 151*4882a593Smuzhiyunand related functions have been removed in favor of ``d.getVar()``, 152*4882a593Smuzhiyun``d.setVar()``, and so forth. 153*4882a593Smuzhiyun 154*4882a593SmuzhiyunYou need to fix any references to these old functions. 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun.. _migration-2.3-bitbake-changes: 157*4882a593Smuzhiyun 158*4882a593SmuzhiyunBitBake Changes 159*4882a593Smuzhiyun--------------- 160*4882a593Smuzhiyun 161*4882a593SmuzhiyunThe following changes took place for BitBake: 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun- *BitBake's Graphical Dependency Explorer UI Replaced:* BitBake's 164*4882a593Smuzhiyun graphical dependency explorer UI ``depexp`` was replaced by 165*4882a593Smuzhiyun ``taskexp`` ("Task Explorer"), which provides a graphical way of 166*4882a593Smuzhiyun exploring the ``task-depends.dot`` file. The data presented by Task 167*4882a593Smuzhiyun Explorer is much more accurate than the data that was presented by 168*4882a593Smuzhiyun ``depexp``. Being able to visualize the data is an often requested 169*4882a593Smuzhiyun feature as standard ``*.dot`` file viewers cannot usual cope with the 170*4882a593Smuzhiyun size of the ``task-depends.dot`` file. 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun- *BitBake "-g" Output Changes:* The ``package-depends.dot`` and 173*4882a593Smuzhiyun ``pn-depends.dot`` files as previously generated using the 174*4882a593Smuzhiyun ``bitbake -g`` command have been removed. A ``recipe-depends.dot`` 175*4882a593Smuzhiyun file is now generated as a collapsed version of ``task-depends.dot`` 176*4882a593Smuzhiyun instead. 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun The reason for this change is because ``package-depends.dot`` and 179*4882a593Smuzhiyun ``pn-depends.dot`` largely date back to a time before task-based 180*4882a593Smuzhiyun execution and do not take into account task-level dependencies 181*4882a593Smuzhiyun between recipes, which could be misleading. 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun- *Mirror Variable Splitting Changes:* Mirror variables including 184*4882a593Smuzhiyun :term:`MIRRORS`, :term:`PREMIRRORS`, 185*4882a593Smuzhiyun and :term:`SSTATE_MIRRORS` can now separate 186*4882a593Smuzhiyun values entirely with spaces. Consequently, you no longer need "\\n". 187*4882a593Smuzhiyun BitBake looks for pairs of values, which simplifies usage. There 188*4882a593Smuzhiyun should be no change required to existing mirror variable values 189*4882a593Smuzhiyun themselves. 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun- *The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an 192*4882a593Smuzhiyun "rsh" Parameter:* The SVN fetcher now takes an "ssh" parameter 193*4882a593Smuzhiyun instead of an "rsh" parameter. This new optional parameter is used 194*4882a593Smuzhiyun when the "protocol" parameter is set to "svn+ssh". You can only use 195*4882a593Smuzhiyun the new parameter to specify the ``ssh`` program used by SVN. The SVN 196*4882a593Smuzhiyun fetcher passes the new parameter through the ``SVN_SSH`` environment 197*4882a593Smuzhiyun variable during the :ref:`ref-tasks-fetch` task. 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`" 200*4882a593Smuzhiyun section in the BitBake 201*4882a593Smuzhiyun User Manual for additional information. 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun- ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` 204*4882a593Smuzhiyun Removed: Because the mechanism they were part of is no longer 205*4882a593Smuzhiyun necessary with recipe-specific sysroots, the 206*4882a593Smuzhiyun ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2`` 207*4882a593Smuzhiyun variables have been removed. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun.. _migration-2.3-absolute-symlinks: 210*4882a593Smuzhiyun 211*4882a593SmuzhiyunAbsolute Symbolic Links 212*4882a593Smuzhiyun----------------------- 213*4882a593Smuzhiyun 214*4882a593SmuzhiyunAbsolute symbolic links (symlinks) within staged files are no longer 215*4882a593Smuzhiyunpermitted and now trigger an error. Any explicit creation of symlinks 216*4882a593Smuzhiyuncan use the ``lnr`` script, which is a replacement for ``ln -r``. 217*4882a593Smuzhiyun 218*4882a593SmuzhiyunIf the build scripts in the software that the recipe is building are 219*4882a593Smuzhiyuncreating a number of absolute symlinks that need to be corrected, you 220*4882a593Smuzhiyuncan inherit ``relative_symlinks`` within the recipe to turn those 221*4882a593Smuzhiyunabsolute symlinks into relative symlinks. 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun.. _migration-2.3-gplv2-and-gplv3-moves: 224*4882a593Smuzhiyun 225*4882a593SmuzhiyunGPLv2 Versions of GPLv3 Recipes Moved 226*4882a593Smuzhiyun------------------------------------- 227*4882a593Smuzhiyun 228*4882a593SmuzhiyunOlder GPLv2 versions of GPLv3 recipes have moved to a separate 229*4882a593Smuzhiyun``meta-gplv2`` layer. 230*4882a593Smuzhiyun 231*4882a593SmuzhiyunIf you use :term:`INCOMPATIBLE_LICENSE` to 232*4882a593Smuzhiyunexclude GPLv3 or set :term:`PREFERRED_VERSION` 233*4882a593Smuzhiyunto substitute a GPLv2 version of a GPLv3 recipe, then you must add the 234*4882a593Smuzhiyun``meta-gplv2`` layer to your configuration. 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun.. note:: 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at 239*4882a593Smuzhiyun :oe_layer:`/meta-gplv2`. 240*4882a593Smuzhiyun 241*4882a593SmuzhiyunThese relocated GPLv2 recipes do not receive the same level of 242*4882a593Smuzhiyunmaintenance as other core recipes. The recipes do not get security fixes 243*4882a593Smuzhiyunand upstream no longer maintains them. In fact, the upstream community 244*4882a593Smuzhiyunis actively hostile towards people that use the old versions of the 245*4882a593Smuzhiyunrecipes. Moving these recipes into a separate layer both makes the 246*4882a593Smuzhiyundifferent needs of the recipes clearer and clearly identifies the number 247*4882a593Smuzhiyunof these recipes. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun.. note:: 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun The long-term solution might be to move to BSD-licensed replacements 252*4882a593Smuzhiyun of the GPLv3 components for those that need to exclude GPLv3-licensed 253*4882a593Smuzhiyun components from the target system. This solution will be investigated 254*4882a593Smuzhiyun for future Yocto Project releases. 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun.. _migration-2.3-package-management-changes: 257*4882a593Smuzhiyun 258*4882a593SmuzhiyunPackage Management Changes 259*4882a593Smuzhiyun-------------------------- 260*4882a593Smuzhiyun 261*4882a593SmuzhiyunThe following package management changes took place: 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun- Smart package manager is replaced by DNF package manager. Smart has 264*4882a593Smuzhiyun become unmaintained upstream, is not ported to Python 3.x. 265*4882a593Smuzhiyun Consequently, Smart needed to be replaced. DNF is the only feasible 266*4882a593Smuzhiyun candidate. 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun The change in functionality is that the on-target runtime package 269*4882a593Smuzhiyun management from remote package feeds is now done with a different 270*4882a593Smuzhiyun tool that has a different set of command-line options. If you have 271*4882a593Smuzhiyun scripts that call the tool directly, or use its API, they need to be 272*4882a593Smuzhiyun fixed. 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun For more information, see the `DNF 275*4882a593Smuzhiyun Documentation <https://dnf.readthedocs.io/en/latest/>`__. 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons: 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun - DNF is API-incompatible with Rpm 5.x and porting it and 280*4882a593Smuzhiyun maintaining the port is non-trivial. 281*4882a593Smuzhiyun 282*4882a593Smuzhiyun - Rpm 5.x itself has limited maintenance upstream, and the Yocto 283*4882a593Smuzhiyun Project is one of the very few remaining users. 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun- Berkeley DB 6.x is removed and Berkeley DB 5.x becomes the default: 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun - Version 6.x of Berkeley DB has largely been rejected by the open 288*4882a593Smuzhiyun source community due to its AGPLv3 license. As a result, most 289*4882a593Smuzhiyun mainstream open source projects that require DB are still 290*4882a593Smuzhiyun developed and tested with DB 5.x. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun - In OE-core, the only thing that was requiring DB 6.x was Rpm 5.x. 293*4882a593Smuzhiyun Thus, no reason exists to continue carrying DB 6.x in OE-core. 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun- ``createrepo`` is replaced with ``createrepo_c``. 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun ``createrepo_c`` is the current incarnation of the tool that 298*4882a593Smuzhiyun generates remote repository metadata. It is written in C as compared 299*4882a593Smuzhiyun to ``createrepo``, which is written in Python. ``createrepo_c`` is 300*4882a593Smuzhiyun faster and is maintained. 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun- Architecture-independent RPM packages are "noarch" instead of "all". 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun This change was made because too many places in DNF/RPM4 stack 305*4882a593Smuzhiyun already make that assumption. Only the filenames and the architecture 306*4882a593Smuzhiyun tag has changed. Nothing else has changed in OE-core system, 307*4882a593Smuzhiyun particularly in the :ref:`ref-classes-allarch` class. 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun- Signing of remote package feeds using ``PACKAGE_FEED_SIGN`` is not 310*4882a593Smuzhiyun currently supported. This issue will be fully addressed in a future 311*4882a593Smuzhiyun Yocto Project release. See :yocto_bugs:`defect 11209 </show_bug.cgi?id=11209>` 312*4882a593Smuzhiyun for more information on a solution to package feed signing with RPM 313*4882a593Smuzhiyun in the Yocto Project 2.3 release. 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun- OPKG now uses the libsolv backend for resolving package dependencies 316*4882a593Smuzhiyun by default. This is vastly superior to OPKG's internal ad-hoc solver 317*4882a593Smuzhiyun that was previously used. This change does have a small impact on 318*4882a593Smuzhiyun disk (around 500 KB) and memory footprint. 319*4882a593Smuzhiyun 320*4882a593Smuzhiyun .. note:: 321*4882a593Smuzhiyun 322*4882a593Smuzhiyun For further details on this change, see the 323*4882a593Smuzhiyun :yocto_git:`commit message </poky/commit/?id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81>`. 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun.. _migration-2.3-removed-recipes: 326*4882a593Smuzhiyun 327*4882a593SmuzhiyunRemoved Recipes 328*4882a593Smuzhiyun--------------- 329*4882a593Smuzhiyun 330*4882a593SmuzhiyunThe following recipes have been removed: 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun- ``linux-yocto 4.8``: Version 4.8 has been removed. Versions 4.1 333*4882a593Smuzhiyun (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10 are now present. 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun- ``python-smartpm``: Functionally replaced by ``dnf``. 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun- ``createrepo``: Replaced by the ``createrepo-c`` recipe. 338*4882a593Smuzhiyun 339*4882a593Smuzhiyun- ``rpmresolve``: No longer needed with the move to RPM 4 as RPM 340*4882a593Smuzhiyun itself is used instead. 341*4882a593Smuzhiyun 342*4882a593Smuzhiyun- ``gstreamer``: Removed the GStreamer Git version recipes as they 343*4882a593Smuzhiyun have been stale. ``1.10.``\ x recipes are still present. 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun- ``alsa-conf-base``: Merged into ``alsa-conf`` since ``libasound`` 346*4882a593Smuzhiyun depended on both. Essentially, no way existed to install only one of 347*4882a593Smuzhiyun these. 348*4882a593Smuzhiyun 349*4882a593Smuzhiyun- ``tremor``: Moved to ``meta-multimedia``. Fixed-integer Vorbis 350*4882a593Smuzhiyun decoding is not needed by current hardware. Thus, GStreamer's ivorbis 351*4882a593Smuzhiyun plugin has been disabled by default eliminating the need for the 352*4882a593Smuzhiyun ``tremor`` recipe in :term:`OpenEmbedded-Core (OE-Core)`. 353*4882a593Smuzhiyun 354*4882a593Smuzhiyun- ``gummiboot``: Replaced by ``systemd-boot``. 355*4882a593Smuzhiyun 356*4882a593Smuzhiyun.. _migration-2.3-wic-changes: 357*4882a593Smuzhiyun 358*4882a593SmuzhiyunWic Changes 359*4882a593Smuzhiyun----------- 360*4882a593Smuzhiyun 361*4882a593SmuzhiyunThe following changes have been made to Wic: 362*4882a593Smuzhiyun 363*4882a593Smuzhiyun.. note:: 364*4882a593Smuzhiyun 365*4882a593Smuzhiyun For more information on Wic, see the 366*4882a593Smuzhiyun ":ref:`dev-manual/common-tasks:creating partitioned images using wic`" 367*4882a593Smuzhiyun section in the Yocto Project Development Tasks Manual. 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun- *Default Output Directory Changed:* Wic's default output directory is 370*4882a593Smuzhiyun now the current directory by default instead of the unusual 371*4882a593Smuzhiyun ``/var/tmp/wic``. 372*4882a593Smuzhiyun 373*4882a593Smuzhiyun The ``-o`` and ``--outdir`` options remain unchanged and are used to 374*4882a593Smuzhiyun specify your preferred output directory if you do not want to use the 375*4882a593Smuzhiyun default directory. 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun- *fsimage Plug-in Removed:* The Wic fsimage plugin has been removed as 378*4882a593Smuzhiyun it duplicates functionality of the rawcopy plugin. 379*4882a593Smuzhiyun 380*4882a593Smuzhiyun.. _migration-2.3-qa-changes: 381*4882a593Smuzhiyun 382*4882a593SmuzhiyunQA Changes 383*4882a593Smuzhiyun---------- 384*4882a593Smuzhiyun 385*4882a593SmuzhiyunThe following QA checks have changed: 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun- ``unsafe-references-in-binaries``: The 388*4882a593Smuzhiyun ``unsafe-references-in-binaries`` QA check, which was disabled by 389*4882a593Smuzhiyun default, has now been removed. This check was intended to detect 390*4882a593Smuzhiyun binaries in ``/bin`` that link to libraries in ``/usr/lib`` and have 391*4882a593Smuzhiyun the case where the user has ``/usr`` on a separate filesystem to 392*4882a593Smuzhiyun ``/``. 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun The removed QA check was buggy. Additionally, ``/usr`` residing on a 395*4882a593Smuzhiyun separate partition from ``/`` is now a rare configuration. 396*4882a593Smuzhiyun Consequently, ``unsafe-references-in-binaries`` was removed. 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun- ``file-rdeps``: The ``file-rdeps`` QA check is now an error by 399*4882a593Smuzhiyun default instead of a warning. Because it is an error instead of a 400*4882a593Smuzhiyun warning, you need to address missing runtime dependencies. 401*4882a593Smuzhiyun 402*4882a593Smuzhiyun For additional information, see the 403*4882a593Smuzhiyun :ref:`insane <ref-classes-insane>` class and the 404*4882a593Smuzhiyun ":ref:`ref-manual/qa-checks:errors and warnings`" section. 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun.. _migration-2.3-miscellaneous-changes: 407*4882a593Smuzhiyun 408*4882a593SmuzhiyunMiscellaneous Changes 409*4882a593Smuzhiyun--------------------- 410*4882a593Smuzhiyun 411*4882a593SmuzhiyunThe following miscellaneous changes have occurred: 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun- In this release, a number of recipes have been changed to ignore the 414*4882a593Smuzhiyun ``largefile`` :term:`DISTRO_FEATURES` item, 415*4882a593Smuzhiyun enabling large file support unconditionally. This feature has always 416*4882a593Smuzhiyun been enabled by default. Disabling the feature has not been widely 417*4882a593Smuzhiyun tested. 418*4882a593Smuzhiyun 419*4882a593Smuzhiyun .. note:: 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun Future releases of the Yocto Project will remove entirely the 422*4882a593Smuzhiyun ability to disable the 423*4882a593Smuzhiyun largefile 424*4882a593Smuzhiyun feature, which would make it unconditionally enabled everywhere. 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun- If the :term:`DISTRO_VERSION` value contains 427*4882a593Smuzhiyun the value of the :term:`DATE` variable, which is the 428*4882a593Smuzhiyun default between Poky releases, the :term:`DATE` value is explicitly 429*4882a593Smuzhiyun excluded from ``/etc/issue`` and ``/etc/issue.net``, which is 430*4882a593Smuzhiyun displayed at the login prompt, in order to avoid conflicts with 431*4882a593Smuzhiyun Multilib enabled. Regardless, the :term:`DATE` value is inaccurate if the 432*4882a593Smuzhiyun ``base-files`` recipe is restored from shared state (sstate) rather 433*4882a593Smuzhiyun than rebuilt. 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun If you need the build date recorded in ``/etc/issue*`` or anywhere 436*4882a593Smuzhiyun else in your image, a better method is to define a post-processing 437*4882a593Smuzhiyun function to do it and have the function called from 438*4882a593Smuzhiyun :term:`ROOTFS_POSTPROCESS_COMMAND`. 439*4882a593Smuzhiyun Doing so ensures the value is always up-to-date with the created 440*4882a593Smuzhiyun image. 441*4882a593Smuzhiyun 442*4882a593Smuzhiyun- Dropbear's ``init`` script now disables DSA host keys by default. 443*4882a593Smuzhiyun This change is in line with the systemd service file, which supports 444*4882a593Smuzhiyun RSA keys only, and with recent versions of OpenSSH, which deprecates 445*4882a593Smuzhiyun DSA host keys. 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun- The :ref:`buildhistory <ref-classes-buildhistory>` class now 448*4882a593Smuzhiyun correctly uses tabs as separators between all columns in 449*4882a593Smuzhiyun ``installed-package-sizes.txt`` in order to aid import into other 450*4882a593Smuzhiyun tools. 451*4882a593Smuzhiyun 452*4882a593Smuzhiyun- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig" 453*4882a593Smuzhiyun :term:`DISTRO_FEATURES` feature. Distributions that previously set:: 454*4882a593Smuzhiyun 455*4882a593Smuzhiyun USE_LDCONFIG = "0" 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun should now instead use the following:: 458*4882a593Smuzhiyun 459*4882a593Smuzhiyun DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig" 460*4882a593Smuzhiyun 461*4882a593Smuzhiyun- The default value of 462*4882a593Smuzhiyun :term:`COPYLEFT_LICENSE_INCLUDE` now 463*4882a593Smuzhiyun includes all versions of AGPL licenses in addition to GPL and LGPL. 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun .. note:: 466*4882a593Smuzhiyun 467*4882a593Smuzhiyun The default list is not intended to be guaranteed as a complete 468*4882a593Smuzhiyun safe list. You should seek legal advice based on what you are 469*4882a593Smuzhiyun distributing if you are unsure. 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun- Kernel module packages are now suffixed with the kernel version in 472*4882a593Smuzhiyun order to allow module packages from multiple kernel versions to 473*4882a593Smuzhiyun co-exist on a target system. If you wish to return to the previous 474*4882a593Smuzhiyun naming scheme that does not include the version suffix, use the 475*4882a593Smuzhiyun following:: 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun KERNEL_MODULE_PACKAGE_SUFFIX = "" 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun- Removal of ``libtool`` ``*.la`` files is now enabled by default. The 480*4882a593Smuzhiyun ``*.la`` files are not actually needed on Linux and relocating them 481*4882a593Smuzhiyun is an unnecessary burden. 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun If you need to preserve these ``.la`` files (e.g. in a custom 484*4882a593Smuzhiyun distribution), you must change 485*4882a593Smuzhiyun :term:`INHERIT_DISTRO` such that 486*4882a593Smuzhiyun "remove-libtool" is not included in the value. 487*4882a593Smuzhiyun 488*4882a593Smuzhiyun- Extensible SDKs built for GCC 5+ now refuse to install on a 489*4882a593Smuzhiyun distribution where the host GCC version is 4.8 or 4.9. This change 490*4882a593Smuzhiyun resulted from the fact that the installation is known to fail due to 491*4882a593Smuzhiyun the way the ``uninative`` shared state (sstate) package is built. See 492*4882a593Smuzhiyun the :ref:`uninative <ref-classes-uninative>` class for additional 493*4882a593Smuzhiyun information. 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun- All native and nativesdk recipes now use a separate 496*4882a593Smuzhiyun :term:`DISTRO_FEATURES` value instead of sharing the value used by 497*4882a593Smuzhiyun recipes for the target, in order to avoid unnecessary rebuilds. 498*4882a593Smuzhiyun 499*4882a593Smuzhiyun The :term:`DISTRO_FEATURES` for ``native`` recipes is 500*4882a593Smuzhiyun :term:`DISTRO_FEATURES_NATIVE` added to 501*4882a593Smuzhiyun an intersection of :term:`DISTRO_FEATURES` and 502*4882a593Smuzhiyun :term:`DISTRO_FEATURES_FILTER_NATIVE`. 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun For nativesdk recipes, the corresponding variables are 505*4882a593Smuzhiyun :term:`DISTRO_FEATURES_NATIVESDK` 506*4882a593Smuzhiyun and 507*4882a593Smuzhiyun :term:`DISTRO_FEATURES_FILTER_NATIVESDK`. 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun- The ``FILESDIR`` variable, which was previously deprecated and rarely 510*4882a593Smuzhiyun used, has now been removed. You should change any recipes that set 511*4882a593Smuzhiyun ``FILESDIR`` to set :term:`FILESPATH` instead. 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun- The ``MULTIMACH_HOST_SYS`` variable has been removed as it is no 514*4882a593Smuzhiyun longer needed with recipe-specific sysroots. 515*4882a593Smuzhiyun 516*4882a593Smuzhiyun 517