xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-1.8.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRelease 1.8 (fido)
2*4882a593Smuzhiyun==================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto
5*4882a593SmuzhiyunProject 1.8 Release (codename "fido") from the prior release.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun.. _migration-1.8-removed-recipes:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunRemoved Recipes
10*4882a593Smuzhiyun---------------
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe following recipes have been removed:
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun-  ``owl-video``: Functionality replaced by ``gst-player``.
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun-  ``gaku``: Functionality replaced by ``gst-player``.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun-  ``gnome-desktop``: This recipe is now available in ``meta-gnome`` and
19*4882a593Smuzhiyun   is no longer needed.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun-  ``gsettings-desktop-schemas``: This recipe is now available in
22*4882a593Smuzhiyun   ``meta-gnome`` and is no longer needed.
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun-  ``python-argparse``: The ``argparse`` module is already provided in
25*4882a593Smuzhiyun   the default Python distribution in a package named
26*4882a593Smuzhiyun   ``python-argparse``. Consequently, the separate ``python-argparse``
27*4882a593Smuzhiyun   recipe is no longer needed.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun-  ``telepathy-python, libtelepathy, telepathy-glib, telepathy-idle, telepathy-mission-control``:
30*4882a593Smuzhiyun   All these recipes have moved to ``meta-oe`` and are consequently no
31*4882a593Smuzhiyun   longer needed by any recipes in OpenEmbedded-Core.
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun-  ``linux-yocto_3.10`` and ``linux-yocto_3.17``: Support for the
34*4882a593Smuzhiyun   linux-yocto 3.10 and 3.17 kernels has been dropped. Support for the
35*4882a593Smuzhiyun   3.14 kernel remains, while support for 3.19 kernel has been added.
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun-  ``poky-feed-config-opkg``: This recipe has become obsolete and is no
38*4882a593Smuzhiyun   longer needed. Use ``distro-feed-config`` from ``meta-oe`` instead.
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun-  ``libav 0.8.x``: ``libav 9.x`` is now used.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun-  ``sed-native``: No longer needed. A working version of ``sed`` is
43*4882a593Smuzhiyun   expected to be provided by the host distribution.
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun.. _migration-1.8-bluez:
46*4882a593Smuzhiyun
47*4882a593SmuzhiyunBlueZ 4.x / 5.x Selection
48*4882a593Smuzhiyun-------------------------
49*4882a593Smuzhiyun
50*4882a593SmuzhiyunProper built-in support for selecting BlueZ 5.x in preference to the
51*4882a593Smuzhiyundefault of 4.x now exists. To use BlueZ 5.x, simply add "bluez5" to your
52*4882a593Smuzhiyun:term:`DISTRO_FEATURES` value. If you had
53*4882a593Smuzhiyunpreviously added append files (``*.bbappend``) to make this selection,
54*4882a593Smuzhiyunyou can now remove them.
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunAdditionally, a ``bluetooth`` class has been added to make selection of
57*4882a593Smuzhiyunthe appropriate bluetooth support within a recipe a little easier. If
58*4882a593Smuzhiyunyou wish to make use of this class in a recipe, add something such as
59*4882a593Smuzhiyunthe following::
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun   inherit bluetooth
62*4882a593Smuzhiyun   PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
63*4882a593Smuzhiyun   PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4"
64*4882a593Smuzhiyun   PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5"
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun.. _migration-1.8-kernel-build-changes:
67*4882a593Smuzhiyun
68*4882a593SmuzhiyunKernel Build Changes
69*4882a593Smuzhiyun--------------------
70*4882a593Smuzhiyun
71*4882a593SmuzhiyunThe kernel build process was changed to place the source in a common
72*4882a593Smuzhiyunshared work area and to place build artifacts separately in the source
73*4882a593Smuzhiyuncode tree. In theory, migration paths have been provided for most common
74*4882a593Smuzhiyunusages in kernel recipes but this might not work in all cases. In
75*4882a593Smuzhiyunparticular, users need to ensure that ``${S}`` (source files) and
76*4882a593Smuzhiyun``${B}`` (build artifacts) are used correctly in functions such as
77*4882a593Smuzhiyun:ref:`ref-tasks-configure` and
78*4882a593Smuzhiyun:ref:`ref-tasks-install`. For kernel recipes that do not
79*4882a593Smuzhiyuninherit from ``kernel-yocto`` or include ``linux-yocto.inc``, you might
80*4882a593Smuzhiyunwish to refer to the ``linux.inc`` file in the ``meta-oe`` layer for the
81*4882a593Smuzhiyunkinds of changes you need to make. For reference, here is the
82*4882a593Smuzhiyun:oe_git:`commit </meta-openembedded/commit/meta-oe/recipes-kernel/linux/linux.inc?id=fc7132ede27ac67669448d3d2845ce7d46c6a1ee>`
83*4882a593Smuzhiyunwhere the ``linux.inc`` file in ``meta-oe`` was updated.
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunRecipes that rely on the kernel source code and do not inherit the
86*4882a593Smuzhiyunmodule classes might need to add explicit dependencies on the
87*4882a593Smuzhiyun``do_shared_workdir`` kernel task, for example::
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun   do_configure[depends] += "virtual/kernel:do_shared_workdir"
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun.. _migration-1.8-ssl:
92*4882a593Smuzhiyun
93*4882a593SmuzhiyunSSL 3.0 is Now Disabled in OpenSSL
94*4882a593Smuzhiyun----------------------------------
95*4882a593Smuzhiyun
96*4882a593SmuzhiyunSSL 3.0 is now disabled when building OpenSSL. Disabling SSL 3.0 avoids
97*4882a593Smuzhiyunany lingering instances of the POODLE vulnerability. If you feel you
98*4882a593Smuzhiyunmust re-enable SSL 3.0, then you can add an append file (``*.bbappend``)
99*4882a593Smuzhiyunfor the ``openssl`` recipe to remove "-no-ssl3" from
100*4882a593Smuzhiyun:term:`EXTRA_OECONF`.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun.. _migration-1.8-default-sysroot-poisoning:
103*4882a593Smuzhiyun
104*4882a593SmuzhiyunDefault Sysroot Poisoning
105*4882a593Smuzhiyun-------------------------
106*4882a593Smuzhiyun
107*4882a593Smuzhiyun``gcc's`` default sysroot and include directories are now "poisoned". In
108*4882a593Smuzhiyunother words, the sysroot and include directories are being redirected to
109*4882a593Smuzhiyuna non-existent location in order to catch when host directories are
110*4882a593Smuzhiyunbeing used due to the correct options not being passed. This poisoning
111*4882a593Smuzhiyunapplies both to the cross-compiler used within the build and to the
112*4882a593Smuzhiyuncross-compiler produced in the SDK.
113*4882a593Smuzhiyun
114*4882a593SmuzhiyunIf this change causes something in the build to fail, it almost
115*4882a593Smuzhiyuncertainly means the various compiler flags and commands are not being
116*4882a593Smuzhiyunpassed correctly to the underlying piece of software. In such cases, you
117*4882a593Smuzhiyunneed to take corrective steps.
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun.. _migration-1.8-rebuild-improvements:
120*4882a593Smuzhiyun
121*4882a593SmuzhiyunRebuild Improvements
122*4882a593Smuzhiyun--------------------
123*4882a593Smuzhiyun
124*4882a593SmuzhiyunChanges have been made to the :ref:`base <ref-classes-base>`,
125*4882a593Smuzhiyun:ref:`autotools <ref-classes-autotools>`, and
126*4882a593Smuzhiyun:ref:`cmake <ref-classes-cmake>` classes to clean out generated files
127*4882a593Smuzhiyunwhen the :ref:`ref-tasks-configure` task needs to be
128*4882a593Smuzhiyunre-executed.
129*4882a593Smuzhiyun
130*4882a593SmuzhiyunOne of the improvements is to attempt to run "make clean" during the
131*4882a593Smuzhiyun``do_configure`` task if a ``Makefile`` exists. Some software packages
132*4882a593Smuzhiyundo not provide a working clean target within their make files. If you
133*4882a593Smuzhiyunhave such recipes, you need to set
134*4882a593Smuzhiyun:term:`CLEANBROKEN` to "1" within the recipe, for example::
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun   CLEANBROKEN = "1"
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun.. _migration-1.8-qa-check-and-validation-changes:
139*4882a593Smuzhiyun
140*4882a593SmuzhiyunQA Check and Validation Changes
141*4882a593Smuzhiyun-------------------------------
142*4882a593Smuzhiyun
143*4882a593SmuzhiyunThe following QA Check and Validation Changes have occurred:
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun-  Usage of ``PRINC`` previously triggered a warning. It now triggers an
146*4882a593Smuzhiyun   error. You should remove any remaining usage of ``PRINC`` in any
147*4882a593Smuzhiyun   recipe or append file.
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun-  An additional QA check has been added to detect usage of ``${D}`` in
150*4882a593Smuzhiyun   :term:`FILES` values where :term:`D` values
151*4882a593Smuzhiyun   should not be used at all. The same check ensures that ``$D`` is used
152*4882a593Smuzhiyun   in ``pkg_preinst/pkg_postinst/pkg_prerm/pkg_postrm`` functions
153*4882a593Smuzhiyun   instead of ``${D}``.
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun-  :term:`S` now needs to be set to a valid value within a
156*4882a593Smuzhiyun   recipe. If :term:`S` is not set in the recipe, the directory is not
157*4882a593Smuzhiyun   automatically created. If :term:`S` does not point to a directory that
158*4882a593Smuzhiyun   exists at the time the :ref:`ref-tasks-unpack` task
159*4882a593Smuzhiyun   finishes, a warning will be shown.
160*4882a593Smuzhiyun
161*4882a593Smuzhiyun-  :term:`LICENSE` is now validated for correct
162*4882a593Smuzhiyun   formatting of multiple licenses. If the format is invalid (e.g.
163*4882a593Smuzhiyun   multiple licenses are specified with no operators to specify how the
164*4882a593Smuzhiyun   multiple licenses interact), then a warning will be shown.
165*4882a593Smuzhiyun
166*4882a593Smuzhiyun.. _migration-1.8-miscellaneous-changes:
167*4882a593Smuzhiyun
168*4882a593SmuzhiyunMiscellaneous Changes
169*4882a593Smuzhiyun---------------------
170*4882a593Smuzhiyun
171*4882a593SmuzhiyunThe following miscellaneous changes have occurred:
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun-  The ``send-error-report`` script now expects a "-s" option to be
174*4882a593Smuzhiyun   specified before the server address. This assumes a server address is
175*4882a593Smuzhiyun   being specified.
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun-  The ``oe-pkgdata-util`` script now expects a "-p" option to be
178*4882a593Smuzhiyun   specified before the ``pkgdata`` directory, which is now optional. If
179*4882a593Smuzhiyun   the ``pkgdata`` directory is not specified, the script will run
180*4882a593Smuzhiyun   BitBake to query :term:`PKGDATA_DIR` from the
181*4882a593Smuzhiyun   build environment.
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun
184