xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-2.1.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRelease 2.1 (krogoth)
2*4882a593Smuzhiyun=====================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto
5*4882a593SmuzhiyunProject 2.1 Release (codename "krogoth") from the prior release.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun.. _migration-2.1-variable-expansion-in-python-functions:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunVariable Expansion in Python Functions
10*4882a593Smuzhiyun--------------------------------------
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunVariable expressions, such as ``${VARNAME}`` no longer expand
13*4882a593Smuzhiyunautomatically within Python functions. Suppressing expansion was done to
14*4882a593Smuzhiyunallow Python functions to construct shell scripts or other code for
15*4882a593Smuzhiyunsituations in which you do not want such expressions expanded. For any
16*4882a593Smuzhiyunexisting code that relies on these expansions, you need to change the
17*4882a593Smuzhiyunexpansions to expand the value of individual variables through
18*4882a593Smuzhiyun``d.getVar()``. To alternatively expand more complex expressions, use
19*4882a593Smuzhiyun``d.expand()``.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun.. _migration-2.1-overrides-must-now-be-lower-case:
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunOverrides Must Now be Lower-Case
24*4882a593Smuzhiyun--------------------------------
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunThe convention for overrides has always been for them to be lower-case
27*4882a593Smuzhiyuncharacters. This practice is now a requirement as BitBake's datastore
28*4882a593Smuzhiyunnow assumes lower-case characters in order to give a slight performance
29*4882a593Smuzhiyunboost during parsing. In practical terms, this requirement means that
30*4882a593Smuzhiyunanything that ends up in :term:`OVERRIDES` must now
31*4882a593Smuzhiyunappear in lower-case characters (e.g. values for :term:`MACHINE`,
32*4882a593Smuzhiyun:term:`TARGET_ARCH`, :term:`DISTRO`, and also recipe names if
33*4882a593Smuzhiyun``_pn-``\ recipename overrides are to be effective).
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun.. _migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory:
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunExpand Parameter to ``getVar()`` and ``getVarFlag()`` is Now Mandatory
38*4882a593Smuzhiyun----------------------------------------------------------------------
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunThe expand parameter to ``getVar()`` and ``getVarFlag()`` previously
41*4882a593Smuzhiyundefaulted to False if not specified. Now, however, no default exists so
42*4882a593Smuzhiyunone must be specified. You must change any ``getVar()`` calls that do
43*4882a593Smuzhiyunnot specify the final expand parameter to calls that do specify the
44*4882a593Smuzhiyunparameter. You can run the following ``sed`` command at the base of a
45*4882a593Smuzhiyunlayer to make this change::
46*4882a593Smuzhiyun
47*4882a593Smuzhiyun   sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
48*4882a593Smuzhiyun   sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun.. note::
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun   The reason for this change is that it prepares the way for changing
53*4882a593Smuzhiyun   the default to True in a future Yocto Project release. This future
54*4882a593Smuzhiyun   change is a much more sensible default than False. However, the
55*4882a593Smuzhiyun   change needs to be made gradually as a sudden change of the default
56*4882a593Smuzhiyun   would potentially cause side-effects that would be difficult to
57*4882a593Smuzhiyun   detect.
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun.. _migration-2.1-makefile-environment-changes:
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunMakefile Environment Changes
62*4882a593Smuzhiyun----------------------------
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun:term:`EXTRA_OEMAKE` now defaults to "" instead of
65*4882a593Smuzhiyun"-e MAKEFLAGS=". Setting :term:`EXTRA_OEMAKE` to "-e MAKEFLAGS=" by default
66*4882a593Smuzhiyunwas a historical accident that has required many classes (e.g.
67*4882a593Smuzhiyun``autotools``, ``module``) and recipes to override this default in order
68*4882a593Smuzhiyunto work with sensible build systems. When upgrading to the release, you
69*4882a593Smuzhiyunmust edit any recipe that relies upon this old default by either setting
70*4882a593Smuzhiyun:term:`EXTRA_OEMAKE` back to "-e MAKEFLAGS=" or by explicitly setting any
71*4882a593Smuzhiyunrequired variable value overrides using :term:`EXTRA_OEMAKE`, which is
72*4882a593Smuzhiyuntypically only needed when a Makefile sets a default value for a
73*4882a593Smuzhiyunvariable that is inappropriate for cross-compilation using the "="
74*4882a593Smuzhiyunoperator rather than the "?=" operator.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun.. _migration-2.1-libexecdir-reverted-to-prefix-libexec:
77*4882a593Smuzhiyun
78*4882a593Smuzhiyun``libexecdir`` Reverted to ``${prefix}/libexec``
79*4882a593Smuzhiyun------------------------------------------------
80*4882a593Smuzhiyun
81*4882a593SmuzhiyunThe use of ``${libdir}/${BPN}`` as ``libexecdir`` is different as
82*4882a593Smuzhiyuncompared to all other mainstream distributions, which either uses
83*4882a593Smuzhiyun``${prefix}/libexec`` or ``${libdir}``. The use is also contrary to the
84*4882a593SmuzhiyunGNU Coding Standards (i.e.
85*4882a593Smuzhiyunhttps://www.gnu.org/prep/standards/html_node/Directory-Variables.html)
86*4882a593Smuzhiyunthat suggest ``${prefix}/libexec`` and also notes that any
87*4882a593Smuzhiyunpackage-specific nesting should be done by the package itself. Finally,
88*4882a593Smuzhiyunhaving ``libexecdir`` change between recipes makes it very difficult for
89*4882a593Smuzhiyundifferent recipes to invoke binaries that have been installed into
90*4882a593Smuzhiyun``libexecdir``. The Filesystem Hierarchy Standard (i.e.
91*4882a593Smuzhiyunhttps://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now
92*4882a593Smuzhiyunrecognizes the use of ``${prefix}/libexec/``, giving distributions the
93*4882a593Smuzhiyunchoice between ``${prefix}/lib`` or ``${prefix}/libexec`` without
94*4882a593Smuzhiyunbreaking FHS.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun.. _migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files:
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun``ac_cv_sizeof_off_t`` is No Longer Cached in Site Files
99*4882a593Smuzhiyun--------------------------------------------------------
100*4882a593Smuzhiyun
101*4882a593SmuzhiyunFor recipes inheriting the :ref:`autotools <ref-classes-autotools>`
102*4882a593Smuzhiyunclass, ``ac_cv_sizeof_off_t`` is no longer cached in the site files for
103*4882a593Smuzhiyun``autoconf``. The reason for this change is because the
104*4882a593Smuzhiyun``ac_cv_sizeof_off_t`` value is not necessarily static per architecture
105*4882a593Smuzhiyunas was previously assumed. Rather, the value changes based on whether
106*4882a593Smuzhiyunlarge file support is enabled. For most software that uses ``autoconf``,
107*4882a593Smuzhiyunthis change should not be a problem. However, if you have a recipe that
108*4882a593Smuzhiyunbypasses the standard :ref:`ref-tasks-configure` task
109*4882a593Smuzhiyunfrom the :ref:`autotools <ref-classes-autotools>` class and the software the recipe is building
110*4882a593Smuzhiyunuses a very old version of ``autoconf``, the recipe might be incapable
111*4882a593Smuzhiyunof determining the correct size of ``off_t`` during ``do_configure``.
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunThe best course of action is to patch the software as necessary to allow
114*4882a593Smuzhiyunthe default implementation from the :ref:`autotools <ref-classes-autotools>` class to work such
115*4882a593Smuzhiyunthat ``autoreconf`` succeeds and produces a working configure script,
116*4882a593Smuzhiyunand to remove the overridden ``do_configure`` task such that the default
117*4882a593Smuzhiyunimplementation does get used.
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun.. _migration-2.1-image-generation-split-out-from-filesystem-generation:
120*4882a593Smuzhiyun
121*4882a593SmuzhiyunImage Generation is Now Split Out from Filesystem Generation
122*4882a593Smuzhiyun------------------------------------------------------------
123*4882a593Smuzhiyun
124*4882a593SmuzhiyunPreviously, for image recipes the :ref:`ref-tasks-rootfs`
125*4882a593Smuzhiyuntask assembled the filesystem and then from that filesystem generated
126*4882a593Smuzhiyunimages. With this Yocto Project release, image generation is split into
127*4882a593Smuzhiyunseparate :ref:`ref-tasks-image` tasks for clarity both in
128*4882a593Smuzhiyunoperation and in the code.
129*4882a593Smuzhiyun
130*4882a593SmuzhiyunFor most cases, this change does not present any problems. However, if
131*4882a593Smuzhiyunyou have made customizations that directly modify the ``do_rootfs`` task
132*4882a593Smuzhiyunor that mention ``do_rootfs``, you might need to update those changes.
133*4882a593SmuzhiyunIn particular, if you had added any tasks after ``do_rootfs``, you
134*4882a593Smuzhiyunshould make edits so that those tasks are after the
135*4882a593Smuzhiyun:ref:`ref-tasks-image-complete` task rather than
136*4882a593Smuzhiyunafter ``do_rootfs`` so that your added tasks run at the correct
137*4882a593Smuzhiyuntime.
138*4882a593Smuzhiyun
139*4882a593SmuzhiyunA minor part of this restructuring is that the post-processing
140*4882a593Smuzhiyundefinitions and functions have been moved from the
141*4882a593Smuzhiyun:ref:`image <ref-classes-image>` class to the
142*4882a593Smuzhiyun:ref:`rootfs-postcommands <ref-classes-rootfs*>` class. Functionally,
143*4882a593Smuzhiyunhowever, they remain unchanged.
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun.. _migration-2.1-removed-recipes:
146*4882a593Smuzhiyun
147*4882a593SmuzhiyunRemoved Recipes
148*4882a593Smuzhiyun---------------
149*4882a593Smuzhiyun
150*4882a593SmuzhiyunThe following recipes have been removed in the 2.1 release:
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun-  ``gcc`` version 4.8: Versions 4.9 and 5.3 remain.
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun-  ``qt4``: All support for Qt 4.x has been moved out to a separate
155*4882a593Smuzhiyun   ``meta-qt4`` layer because Qt 4 is no longer supported upstream.
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun-  ``x11vnc``: Moved to the ``meta-oe`` layer.
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun-  ``linux-yocto-3.14``: No longer supported.
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun-  ``linux-yocto-3.19``: No longer supported.
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun-  ``libjpeg``: Replaced by the ``libjpeg-turbo`` recipe.
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun-  ``pth``: Became obsolete.
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun-  ``liboil``: Recipe is no longer needed and has been moved to the
168*4882a593Smuzhiyun   ``meta-multimedia`` layer.
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun-  ``gtk-theme-torturer``: Recipe is no longer needed and has been moved
171*4882a593Smuzhiyun   to the ``meta-gnome`` layer.
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun-  ``gnome-mime-data``: Recipe is no longer needed and has been moved to
174*4882a593Smuzhiyun   the ``meta-gnome`` layer.
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun-  ``udev``: Replaced by the ``eudev`` recipe for compatibility when
177*4882a593Smuzhiyun   using ``sysvinit`` with newer kernels.
178*4882a593Smuzhiyun
179*4882a593Smuzhiyun-  ``python-pygtk``: Recipe became obsolete.
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun-  ``adt-installer``: Recipe became obsolete. See the
182*4882a593Smuzhiyun   ":ref:`migration-guides/migration-2.1:adt removed`" section for more information.
183*4882a593Smuzhiyun
184*4882a593Smuzhiyun.. _migration-2.1-class-changes:
185*4882a593Smuzhiyun
186*4882a593SmuzhiyunClass Changes
187*4882a593Smuzhiyun-------------
188*4882a593Smuzhiyun
189*4882a593SmuzhiyunThe following classes have changed:
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun-  ``autotools_stage``: Removed because the
192*4882a593Smuzhiyun   :ref:`autotools <ref-classes-autotools>` class now provides its
193*4882a593Smuzhiyun   functionality. Recipes that inherited from ``autotools_stage`` should
194*4882a593Smuzhiyun   now inherit from ``autotools`` instead.
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun-  ``boot-directdisk``: Merged into the ``image-vm`` class. The
197*4882a593Smuzhiyun   ``boot-directdisk`` class was rarely directly used. Consequently,
198*4882a593Smuzhiyun   this change should not cause any issues.
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun-  ``bootimg``: Merged into the
201*4882a593Smuzhiyun   :ref:`image-live <ref-classes-image-live>` class. The ``bootimg``
202*4882a593Smuzhiyun   class was rarely directly used. Consequently, this change should not
203*4882a593Smuzhiyun   cause any issues.
204*4882a593Smuzhiyun
205*4882a593Smuzhiyun-  ``packageinfo``: Removed due to its limited use by the Hob UI, which
206*4882a593Smuzhiyun   has itself been removed.
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun.. _migration-2.1-build-system-ui-changes:
209*4882a593Smuzhiyun
210*4882a593SmuzhiyunBuild System User Interface Changes
211*4882a593Smuzhiyun-----------------------------------
212*4882a593Smuzhiyun
213*4882a593SmuzhiyunThe following changes have been made to the build system user interface:
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun-  *Hob GTK+-based UI*: Removed because it is unmaintained and based on
216*4882a593Smuzhiyun   the outdated GTK+ 2 library. The Toaster web-based UI is much more
217*4882a593Smuzhiyun   capable and is actively maintained. See the
218*4882a593Smuzhiyun   ":ref:`toaster-manual/setup-and-use:using the toaster web interface`"
219*4882a593Smuzhiyun   section in the Toaster User Manual for more information on this
220*4882a593Smuzhiyun   interface.
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun-  *"puccho" BitBake UI*: Removed because is unmaintained and no longer
223*4882a593Smuzhiyun   useful.
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun.. _migration-2.1-adt-removed:
226*4882a593Smuzhiyun
227*4882a593SmuzhiyunADT Removed
228*4882a593Smuzhiyun-----------
229*4882a593Smuzhiyun
230*4882a593SmuzhiyunThe Application Development Toolkit (ADT) has been removed because its
231*4882a593Smuzhiyunfunctionality almost completely overlapped with the :ref:`standard
232*4882a593SmuzhiyunSDK <sdk-manual/using:using the standard sdk>` and the
233*4882a593Smuzhiyun:ref:`extensible SDK <sdk-manual/extensible:using the extensible sdk>`. For
234*4882a593Smuzhiyuninformation on these SDKs and how to build and use them, see the
235*4882a593Smuzhiyun:doc:`/sdk-manual/index` manual.
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun.. note::
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun   The Yocto Project Eclipse IDE Plug-in is still supported and is not
240*4882a593Smuzhiyun   affected by this change.
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun.. _migration-2.1-poky-reference-distribution-changes:
243*4882a593Smuzhiyun
244*4882a593SmuzhiyunPoky Reference Distribution Changes
245*4882a593Smuzhiyun-----------------------------------
246*4882a593Smuzhiyun
247*4882a593SmuzhiyunThe following changes have been made for the Poky distribution:
248*4882a593Smuzhiyun
249*4882a593Smuzhiyun-  The ``meta-yocto`` layer has been renamed to ``meta-poky`` to better
250*4882a593Smuzhiyun   match its purpose, which is to provide the Poky reference
251*4882a593Smuzhiyun   distribution. The ``meta-yocto-bsp`` layer retains its original name
252*4882a593Smuzhiyun   since it provides reference machines for the Yocto Project and it is
253*4882a593Smuzhiyun   otherwise unrelated to Poky. References to ``meta-yocto`` in your
254*4882a593Smuzhiyun   ``conf/bblayers.conf`` should automatically be updated, so you should
255*4882a593Smuzhiyun   not need to change anything unless you are relying on this naming
256*4882a593Smuzhiyun   elsewhere.
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun-  The :ref:`uninative <ref-classes-uninative>` class is now enabled
259*4882a593Smuzhiyun   by default in Poky. This class attempts to isolate the build system
260*4882a593Smuzhiyun   from the host distribution's C library and makes re-use of native
261*4882a593Smuzhiyun   shared state artifacts across different host distributions practical.
262*4882a593Smuzhiyun   With this class enabled, a tarball containing a pre-built C library
263*4882a593Smuzhiyun   is downloaded at the start of the build.
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun   The :ref:`uninative <ref-classes-uninative>` class is enabled through the
266*4882a593Smuzhiyun   ``meta/conf/distro/include/yocto-uninative.inc`` file, which for
267*4882a593Smuzhiyun   those not using the Poky distribution, can include to easily enable
268*4882a593Smuzhiyun   the same functionality.
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun   Alternatively, if you wish to build your own ``uninative`` tarball,
271*4882a593Smuzhiyun   you can do so by building the ``uninative-tarball`` recipe, making it
272*4882a593Smuzhiyun   available to your build machines (e.g. over HTTP/HTTPS) and setting a
273*4882a593Smuzhiyun   similar configuration as the one set by ``yocto-uninative.inc``.
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun-  Static library generation, for most cases, is now disabled by default
276*4882a593Smuzhiyun   in the Poky distribution. Disabling this generation saves some build
277*4882a593Smuzhiyun   time as well as the size used for build output artifacts.
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun   Disabling this library generation is accomplished through a
280*4882a593Smuzhiyun   ``meta/conf/distro/include/no-static-libs.inc``, which for those not
281*4882a593Smuzhiyun   using the Poky distribution can easily include to enable the same
282*4882a593Smuzhiyun   functionality.
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun   Any recipe that needs to opt-out of having the ``--disable-static``
285*4882a593Smuzhiyun   option specified on the configure command line either because it is
286*4882a593Smuzhiyun   not a supported option for the configure script or because static
287*4882a593Smuzhiyun   libraries are needed should set the following variable::
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun      DISABLE_STATIC = ""
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun-  The separate ``poky-tiny`` distribution now uses the musl C library
292*4882a593Smuzhiyun   instead of a heavily pared down ``glibc``. Using musl results in a
293*4882a593Smuzhiyun   smaller distribution and facilitates much greater maintainability
294*4882a593Smuzhiyun   because musl is designed to have a small footprint.
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun   If you have used ``poky-tiny`` and have customized the ``glibc``
297*4882a593Smuzhiyun   configuration you will need to redo those customizations with musl
298*4882a593Smuzhiyun   when upgrading to the new release.
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun.. _migration-2.1-packaging-changes:
301*4882a593Smuzhiyun
302*4882a593SmuzhiyunPackaging Changes
303*4882a593Smuzhiyun-----------------
304*4882a593Smuzhiyun
305*4882a593SmuzhiyunThe following changes have been made to packaging:
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun-  The ``runuser`` and ``mountpoint`` binaries, which were previously in
308*4882a593Smuzhiyun   the main ``util-linux`` package, have been split out into the
309*4882a593Smuzhiyun   ``util-linux-runuser`` and ``util-linux-mountpoint`` packages,
310*4882a593Smuzhiyun   respectively.
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun-  The ``python-elementtree`` package has been merged into the
313*4882a593Smuzhiyun   ``python-xml`` package.
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun.. _migration-2.1-tuning-file-changes:
316*4882a593Smuzhiyun
317*4882a593SmuzhiyunTuning File Changes
318*4882a593Smuzhiyun-------------------
319*4882a593Smuzhiyun
320*4882a593SmuzhiyunThe following changes have been made to the tuning files:
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun-  The "no-thumb-interwork" tuning feature has been dropped from the ARM
323*4882a593Smuzhiyun   tune include files. Because interworking is required for ARM EABI,
324*4882a593Smuzhiyun   attempting to disable it through a tuning feature no longer makes
325*4882a593Smuzhiyun   sense.
326*4882a593Smuzhiyun
327*4882a593Smuzhiyun   .. note::
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun      Support for ARM OABI was deprecated in gcc 4.7.
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun-  The ``tune-cortexm*.inc`` and ``tune-cortexr4.inc`` files have been
332*4882a593Smuzhiyun   removed because they are poorly tested. Until the OpenEmbedded build
333*4882a593Smuzhiyun   system officially gains support for CPUs without an MMU, these tuning
334*4882a593Smuzhiyun   files would probably be better maintained in a separate layer if
335*4882a593Smuzhiyun   needed.
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun.. _migration-2.1-supporting-gobject-introspection:
338*4882a593Smuzhiyun
339*4882a593SmuzhiyunSupporting GObject Introspection
340*4882a593Smuzhiyun--------------------------------
341*4882a593Smuzhiyun
342*4882a593SmuzhiyunThis release supports generation of GLib Introspective Repository (GIR)
343*4882a593Smuzhiyunfiles through GObject introspection, which is the standard mechanism for
344*4882a593Smuzhiyunaccessing GObject-based software from runtime environments. You can
345*4882a593Smuzhiyunenable, disable, and test the generation of this data. See the
346*4882a593Smuzhiyun":ref:`dev-manual/common-tasks:enabling gobject introspection support`"
347*4882a593Smuzhiyunsection in the Yocto Project Development Tasks Manual for more
348*4882a593Smuzhiyuninformation.
349*4882a593Smuzhiyun
350*4882a593Smuzhiyun.. _migration-2.1-miscellaneous-changes:
351*4882a593Smuzhiyun
352*4882a593SmuzhiyunMiscellaneous Changes
353*4882a593Smuzhiyun---------------------
354*4882a593Smuzhiyun
355*4882a593SmuzhiyunThese additional changes exist:
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun-  The minimum Git version has been increased to 1.8.3.1. If your host
358*4882a593Smuzhiyun   distribution does not provide a sufficiently recent version, you can
359*4882a593Smuzhiyun   install the buildtools, which will provide it. See the
360*4882a593Smuzhiyun   :ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`
361*4882a593Smuzhiyun   section for more information on the buildtools tarball.
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun-  The buggy and incomplete support for the RPM version 4 package
364*4882a593Smuzhiyun   manager has been removed. The well-tested and maintained support for
365*4882a593Smuzhiyun   RPM version 5 remains.
366*4882a593Smuzhiyun
367*4882a593Smuzhiyun-  Previously, the following list of packages were removed if
368*4882a593Smuzhiyun   package-management was not in
369*4882a593Smuzhiyun   :term:`IMAGE_FEATURES`, regardless of any
370*4882a593Smuzhiyun   dependencies::
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun      update-rc.d
373*4882a593Smuzhiyun      base-passwd
374*4882a593Smuzhiyun      shadow
375*4882a593Smuzhiyun      update-alternatives
376*4882a593Smuzhiyun      run-postinsts
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun   With the Yocto Project 2.1 release, these packages are
379*4882a593Smuzhiyun   only removed if "read-only-rootfs" is in :term:`IMAGE_FEATURES`, since
380*4882a593Smuzhiyun   they might still be needed for a read-write image even in the absence
381*4882a593Smuzhiyun   of a package manager (e.g. if users need to be added, modified, or
382*4882a593Smuzhiyun   removed at runtime).
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun-  The
385*4882a593Smuzhiyun   :ref:`devtool modify <sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component>`
386*4882a593Smuzhiyun   command now defaults to extracting the source since that is most
387*4882a593Smuzhiyun   commonly expected. The ``-x`` or ``--extract`` options are now no-ops. If
388*4882a593Smuzhiyun   you wish to provide your own existing source tree, you will now need
389*4882a593Smuzhiyun   to specify either the ``-n`` or ``--no-extract`` options when running
390*4882a593Smuzhiyun   ``devtool modify``.
391*4882a593Smuzhiyun
392*4882a593Smuzhiyun-  If the formfactor for a machine is either not supplied or does not
393*4882a593Smuzhiyun   specify whether a keyboard is attached, then the default is to assume
394*4882a593Smuzhiyun   a keyboard is attached rather than assume no keyboard. This change
395*4882a593Smuzhiyun   primarily affects the Sato UI.
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun-  The ``.debug`` directory packaging is now automatic. If your recipe
398*4882a593Smuzhiyun   builds software that installs binaries into directories other than
399*4882a593Smuzhiyun   the standard ones, you no longer need to take care of setting
400*4882a593Smuzhiyun   ``FILES_${PN}-dbg`` to pick up the resulting ``.debug`` directories
401*4882a593Smuzhiyun   as these directories are automatically found and added.
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun-  Inaccurate disk and CPU percentage data has been dropped from
404*4882a593Smuzhiyun   ``buildstats`` output. This data has been replaced with
405*4882a593Smuzhiyun   ``getrusage()`` data and corrected IO statistics. You will probably
406*4882a593Smuzhiyun   need to update any custom code that reads the ``buildstats`` data.
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun-  The ``meta/conf/distro/include/package_regex.inc`` is now deprecated.
409*4882a593Smuzhiyun   The contents of this file have been moved to individual recipes.
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun   .. note::
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun      Because this file will likely be removed in a future Yocto Project
414*4882a593Smuzhiyun      release, it is suggested that you remove any references to the
415*4882a593Smuzhiyun      file that might be in your configuration.
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun-  The ``v86d/uvesafb`` has been removed from the ``genericx86`` and
418*4882a593Smuzhiyun   ``genericx86-64`` reference machines, which are provided by the
419*4882a593Smuzhiyun   ``meta-yocto-bsp`` layer. Most modern x86 boards do not rely on this
420*4882a593Smuzhiyun   file and it only adds kernel error messages during startup. If you do
421*4882a593Smuzhiyun   still need to support ``uvesafb``, you can simply add ``v86d`` to
422*4882a593Smuzhiyun   your image.
423*4882a593Smuzhiyun
424*4882a593Smuzhiyun-  Build sysroot paths are now removed from debug symbol files. Removing
425*4882a593Smuzhiyun   these paths means that remote GDB using an unstripped build system
426*4882a593Smuzhiyun   sysroot will no longer work (although this was never documented to
427*4882a593Smuzhiyun   work). The supported method to accomplish something similar is to set
428*4882a593Smuzhiyun   ``IMAGE_GEN_DEBUGFS`` to "1", which will generate a companion debug
429*4882a593Smuzhiyun   image containing unstripped binaries and associated debug sources
430*4882a593Smuzhiyun   alongside the image.
431*4882a593Smuzhiyun
432*4882a593Smuzhiyun
433