xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-2.3.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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