xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-2.6.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRelease 2.6 (thud)
2*4882a593Smuzhiyun==================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto
5*4882a593SmuzhiyunProject 2.6 Release (codename "thud") from the prior release.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun.. _migration-2.6-gcc-changes:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunGCC 8.2 is Now Used by Default
10*4882a593Smuzhiyun------------------------------
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe GNU Compiler Collection version 8.2 is now used by default for
13*4882a593Smuzhiyuncompilation. For more information on what has changed in the GCC 8.x
14*4882a593Smuzhiyunrelease, see https://gcc.gnu.org/gcc-8/changes.html.
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunIf you still need to compile with version 7.x, GCC 7.3 is also provided.
17*4882a593SmuzhiyunYou can select this version by setting the and can be selected by
18*4882a593Smuzhiyunsetting the :term:`GCCVERSION` variable to "7.%" in
19*4882a593Smuzhiyunyour configuration.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun.. _migration-2.6-removed-recipes:
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunRemoved Recipes
24*4882a593Smuzhiyun---------------
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunThe following recipes have been removed:
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun- *beecrypt*: No longer needed since moving to RPM 4.
29*4882a593Smuzhiyun- *bigreqsproto*: Replaced by ``xorgproto``.
30*4882a593Smuzhiyun- *calibrateproto*: Removed in favor of ``xinput``.
31*4882a593Smuzhiyun- *compositeproto*: Replaced by ``xorgproto``.
32*4882a593Smuzhiyun- *damageproto*: Replaced by ``xorgproto``.
33*4882a593Smuzhiyun- *dmxproto*: Replaced by ``xorgproto``.
34*4882a593Smuzhiyun- *dri2proto*: Replaced by ``xorgproto``.
35*4882a593Smuzhiyun- *dri3proto*: Replaced by ``xorgproto``.
36*4882a593Smuzhiyun- *eee-acpi-scripts*: Became obsolete.
37*4882a593Smuzhiyun- *fixesproto*: Replaced by ``xorgproto``.
38*4882a593Smuzhiyun- *fontsproto*: Replaced by ``xorgproto``.
39*4882a593Smuzhiyun- *fstests*: Became obsolete.
40*4882a593Smuzhiyun- *gccmakedep*: No longer used.
41*4882a593Smuzhiyun- *glproto*: Replaced by ``xorgproto``.
42*4882a593Smuzhiyun- *gnome-desktop3*: No longer needed. This recipe has moved to ``meta-oe``.
43*4882a593Smuzhiyun- *icon-naming-utils*: No longer used since the Sato theme was removed in 2016.
44*4882a593Smuzhiyun- *inputproto*: Replaced by ``xorgproto``.
45*4882a593Smuzhiyun- *kbproto*: Replaced by ``xorgproto``.
46*4882a593Smuzhiyun- *libusb-compat*: Became obsolete.
47*4882a593Smuzhiyun- *libuser*: Became obsolete.
48*4882a593Smuzhiyun- *libnfsidmap*: No longer an external requirement since ``nfs-utils`` 2.2.1. ``libnfsidmap`` is now integrated.
49*4882a593Smuzhiyun- *libxcalibrate*: No longer needed with ``xinput``
50*4882a593Smuzhiyun- *mktemp*: Became obsolete. The ``mktemp`` command is provided by both ``busybox`` and ``coreutils``.
51*4882a593Smuzhiyun- *ossp-uuid*: Is not being maintained and has mostly been replaced by ``uuid.h`` in ``util-linux``.
52*4882a593Smuzhiyun- *pax-utils*: No longer needed. Previous QA tests that did use this recipe are now done at build time.
53*4882a593Smuzhiyun- *pcmciautils*: Became obsolete.
54*4882a593Smuzhiyun- *pixz*: No longer needed. ``xz`` now supports multi-threaded compression.
55*4882a593Smuzhiyun- *presentproto*: Replaced by ``xorgproto``.
56*4882a593Smuzhiyun- *randrproto*: Replaced by ``xorgproto``.
57*4882a593Smuzhiyun- *recordproto*: Replaced by ``xorgproto``.
58*4882a593Smuzhiyun- *renderproto*: Replaced by ``xorgproto``.
59*4882a593Smuzhiyun- *resourceproto*: Replaced by ``xorgproto``.
60*4882a593Smuzhiyun- *scrnsaverproto*: Replaced by ``xorgproto``.
61*4882a593Smuzhiyun- *trace-cmd*: Became obsolete. ``perf`` replaced this recipe's functionally.
62*4882a593Smuzhiyun- *videoproto*: Replaced by ``xorgproto``.
63*4882a593Smuzhiyun- *wireless-tools*: Became obsolete. Superseded by ``iw``.
64*4882a593Smuzhiyun- *xcmiscproto*: Replaced by ``xorgproto``.
65*4882a593Smuzhiyun- *xextproto*: Replaced by ``xorgproto``.
66*4882a593Smuzhiyun- *xf86dgaproto*: Replaced by ``xorgproto``.
67*4882a593Smuzhiyun- *xf86driproto*: Replaced by ``xorgproto``.
68*4882a593Smuzhiyun- *xf86miscproto*: Replaced by ``xorgproto``.
69*4882a593Smuzhiyun- *xf86-video-omapfb*: Became obsolete. Use kernel modesetting driver instead.
70*4882a593Smuzhiyun- *xf86-video-omap*: Became obsolete. Use kernel modesetting driver instead.
71*4882a593Smuzhiyun- *xf86vidmodeproto*: Replaced by ``xorgproto``.
72*4882a593Smuzhiyun- *xineramaproto*: Replaced by ``xorgproto``.
73*4882a593Smuzhiyun- *xproto*: Replaced by ``xorgproto``.
74*4882a593Smuzhiyun- *yasm*: No longer needed since previous usages are now satisfied by ``nasm``.
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun.. _migration-2.6-packaging-changes:
77*4882a593Smuzhiyun
78*4882a593SmuzhiyunPackaging Changes
79*4882a593Smuzhiyun-----------------
80*4882a593Smuzhiyun
81*4882a593SmuzhiyunThe following packaging changes have been made:
82*4882a593Smuzhiyun
83*4882a593Smuzhiyun-  *cmake*: ``cmake.m4`` and ``toolchain`` files have been moved to
84*4882a593Smuzhiyun   the main package.
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun-  *iptables*: The ``iptables`` modules have been split into
87*4882a593Smuzhiyun   separate packages.
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun-  *alsa-lib*: ``libasound`` is now in the main ``alsa-lib`` package
90*4882a593Smuzhiyun   instead of ``libasound``.
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun-  *glibc*: ``libnss-db`` is now in its own package along with a
93*4882a593Smuzhiyun   ``/var/db/makedbs.sh`` script to update databases.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun-  *python and python3*: The main package has been removed from
96*4882a593Smuzhiyun   the recipe. You must install specific packages or ``python-modules``
97*4882a593Smuzhiyun   / ``python3-modules`` for everything.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun-  *systemtap*: Moved ``systemtap-exporter`` into its own package.
100*4882a593Smuzhiyun
101*4882a593Smuzhiyun.. _migration-2.6-xorg-protocol-dependencies:
102*4882a593Smuzhiyun
103*4882a593SmuzhiyunXOrg Protocol dependencies
104*4882a593Smuzhiyun--------------------------
105*4882a593Smuzhiyun
106*4882a593SmuzhiyunThe ``*proto`` upstream repositories have been combined into one
107*4882a593Smuzhiyun"xorgproto" repository. Thus, the corresponding recipes have also been
108*4882a593Smuzhiyuncombined into a single ``xorgproto`` recipe. Any recipes that depend
109*4882a593Smuzhiyunupon the older ``*proto`` recipes need to be changed to depend on the
110*4882a593Smuzhiyunnewer ``xorgproto`` recipe instead.
111*4882a593Smuzhiyun
112*4882a593SmuzhiyunFor names of recipes removed because of this repository change, see the
113*4882a593Smuzhiyun:ref:`migration-guides/migration-2.6:removed recipes` section.
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun.. _migration-2.6-distutils-distutils3-fetching-dependencies:
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun``distutils`` and ``distutils3`` Now Prevent Fetching Dependencies During the ``do_configure`` Task
118*4882a593Smuzhiyun---------------------------------------------------------------------------------------------------
119*4882a593Smuzhiyun
120*4882a593SmuzhiyunPreviously, it was possible for Python recipes that inherited the
121*4882a593Smuzhiyun``distutils`` and ``distutils3`` classes to fetch code
122*4882a593Smuzhiyunduring the :ref:`ref-tasks-configure` task to satisfy
123*4882a593Smuzhiyundependencies mentioned in ``setup.py`` if those dependencies were not
124*4882a593Smuzhiyunprovided in the sysroot (i.e. recipes providing the dependencies were
125*4882a593Smuzhiyunmissing from :term:`DEPENDS`).
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun.. note::
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun   This change affects classes beyond just the two mentioned (i.e.
130*4882a593Smuzhiyun   ``distutils`` and ``distutils3``). Any recipe that inherits ``distutils*``
131*4882a593Smuzhiyun   classes are affected. For example, the ``setuptools`` and ``setuptools3``
132*4882a593Smuzhiyun   recipes are affected since they inherit the ``distutils*`` classes.
133*4882a593Smuzhiyun
134*4882a593SmuzhiyunFetching these types of dependencies that are not provided in the
135*4882a593Smuzhiyunsysroot negatively affects the ability to reproduce builds. This type of
136*4882a593Smuzhiyunfetching is now explicitly disabled. Consequently, any missing
137*4882a593Smuzhiyundependencies in Python recipes that use these classes now result in an
138*4882a593Smuzhiyunerror during the ``do_configure`` task.
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun.. _migration-2.6-linux-yocto-configuration-audit-issues-now-correctly-reported:
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun``linux-yocto`` Configuration Audit Issues Now Correctly Reported
143*4882a593Smuzhiyun-----------------------------------------------------------------
144*4882a593Smuzhiyun
145*4882a593SmuzhiyunDue to a bug, the kernel configuration audit functionality was not
146*4882a593Smuzhiyunwriting out any resulting warnings during the build. This issue is now
147*4882a593Smuzhiyuncorrected. You might notice these warnings now if you have a custom
148*4882a593Smuzhiyunkernel configuration with a ``linux-yocto`` style kernel recipe.
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun.. _migration-2.6-image-kernel-artifact-naming-changes:
151*4882a593Smuzhiyun
152*4882a593SmuzhiyunImage/Kernel Artifact Naming Changes
153*4882a593Smuzhiyun------------------------------------
154*4882a593Smuzhiyun
155*4882a593SmuzhiyunThe following changes have been made:
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun-  Name variables (e.g. :term:`IMAGE_NAME`) use a new
158*4882a593Smuzhiyun   :term:`IMAGE_VERSION_SUFFIX` variable instead of
159*4882a593Smuzhiyun   :term:`DATETIME`. Using :term:`IMAGE_VERSION_SUFFIX`
160*4882a593Smuzhiyun   allows easier and more direct changes.
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun   The :term:`IMAGE_VERSION_SUFFIX` variable is set in the ``bitbake.conf``
163*4882a593Smuzhiyun   configuration file as follows::
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun      IMAGE_VERSION_SUFFIX = "-${DATETIME}"
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun-  Several variables have changed names for consistency::
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun      Old Variable Name             New Variable Name
170*4882a593Smuzhiyun      ========================================================
171*4882a593Smuzhiyun      KERNEL_IMAGE_BASE_NAME        KERNEL_IMAGE_NAME
172*4882a593Smuzhiyun      KERNEL_IMAGE_SYMLINK_NAME     KERNEL_IMAGE_LINK_NAME
173*4882a593Smuzhiyun      MODULE_TARBALL_BASE_NAME      MODULE_TARBALL_NAME
174*4882a593Smuzhiyun      MODULE_TARBALL_SYMLINK_NAME   MODULE_TARBALL_LINK_NAME
175*4882a593Smuzhiyun      INITRAMFS_BASE_NAME           INITRAMFS_NAME
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun-  The ``MODULE_IMAGE_BASE_NAME`` variable has been removed. The module
178*4882a593Smuzhiyun   tarball name is now controlled directly with the
179*4882a593Smuzhiyun   :term:`MODULE_TARBALL_NAME` variable.
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun-  The :term:`KERNEL_DTB_NAME` and
182*4882a593Smuzhiyun   :term:`KERNEL_DTB_LINK_NAME` variables
183*4882a593Smuzhiyun   have been introduced to control kernel Device Tree Binary (DTB)
184*4882a593Smuzhiyun   artifact names instead of mangling ``KERNEL_IMAGE_*`` variables.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun-  The :term:`KERNEL_FIT_NAME` and
187*4882a593Smuzhiyun   :term:`KERNEL_FIT_LINK_NAME` variables
188*4882a593Smuzhiyun   have been introduced to specify the name of flattened image tree
189*4882a593Smuzhiyun   (FIT) kernel images similar to other deployed artifacts.
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun-  The :term:`MODULE_TARBALL_NAME` and
192*4882a593Smuzhiyun   :term:`MODULE_TARBALL_LINK_NAME`
193*4882a593Smuzhiyun   variable values no longer include the "module-" prefix or ".tgz"
194*4882a593Smuzhiyun   suffix. These parts are now hardcoded so that the values are
195*4882a593Smuzhiyun   consistent with other artifact naming variables.
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun-  Added the :term:`INITRAMFS_LINK_NAME`
198*4882a593Smuzhiyun   variable so that the symlink can be controlled similarly to other
199*4882a593Smuzhiyun   artifact types.
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun-  :term:`INITRAMFS_NAME` now uses
202*4882a593Smuzhiyun   "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" instead
203*4882a593Smuzhiyun   of "${PV}-${PR}-${MACHINE}-${DATETIME}", which makes it consistent
204*4882a593Smuzhiyun   with other variables.
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun.. _migration-2.6-serial-console-deprecated:
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun``SERIAL_CONSOLE`` Deprecated
209*4882a593Smuzhiyun-----------------------------
210*4882a593Smuzhiyun
211*4882a593SmuzhiyunThe :term:`SERIAL_CONSOLE` variable has been
212*4882a593Smuzhiyunfunctionally replaced by the
213*4882a593Smuzhiyun:term:`SERIAL_CONSOLES` variable for some time.
214*4882a593SmuzhiyunWith the Yocto Project 2.6 release, :term:`SERIAL_CONSOLE` has been
215*4882a593Smuzhiyunofficially deprecated.
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun:term:`SERIAL_CONSOLE` will continue to work as before for the 2.6 release.
218*4882a593SmuzhiyunHowever, for the sake of future compatibility, it is recommended that
219*4882a593Smuzhiyunyou replace all instances of :term:`SERIAL_CONSOLE` with
220*4882a593Smuzhiyun:term:`SERIAL_CONSOLES`.
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun.. note::
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun   The only difference in usage is that :term:`SERIAL_CONSOLES`
225*4882a593Smuzhiyun   expects entries to be separated using semicolons as compared to
226*4882a593Smuzhiyun   :term:`SERIAL_CONSOLE`, which expects spaces.
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun.. _migration-2.6-poky-sets-unknown-configure-option-to-qa-error:
229*4882a593Smuzhiyun
230*4882a593SmuzhiyunConfigure Script Reports Unknown Options as Errors
231*4882a593Smuzhiyun--------------------------------------------------
232*4882a593Smuzhiyun
233*4882a593SmuzhiyunIf the configure script reports an unknown option, this now triggers a
234*4882a593SmuzhiyunQA error instead of a warning. Any recipes that previously got away with
235*4882a593Smuzhiyunspecifying such unknown options now need to be fixed.
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun.. _migration-2.6-override-changes:
238*4882a593Smuzhiyun
239*4882a593SmuzhiyunOverride Changes
240*4882a593Smuzhiyun----------------
241*4882a593Smuzhiyun
242*4882a593SmuzhiyunThe following changes have occurred:
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun-  The ``virtclass-native`` and ``virtclass-nativesdk`` Overrides Have
245*4882a593Smuzhiyun   Been Removed: The ``virtclass-native`` and ``virtclass-nativesdk``
246*4882a593Smuzhiyun   overrides have been deprecated since 2012 in favor of
247*4882a593Smuzhiyun   ``class-native`` and ``class-nativesdk``, respectively. Both
248*4882a593Smuzhiyun   ``virtclass-native`` and ``virtclass-nativesdk`` are now dropped.
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun   .. note::
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun      The ``virtclass-multilib-`` overrides for multilib are still valid.
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun-  The ``forcevariable`` Override Now Has a Higher Priority Than
255*4882a593Smuzhiyun   ``libc`` Overrides: The ``forcevariable`` override is documented to
256*4882a593Smuzhiyun   be the highest priority override. However, due to a long-standing
257*4882a593Smuzhiyun   quirk of how :term:`OVERRIDES` is set, the ``libc``
258*4882a593Smuzhiyun   overrides (e.g. ``libc-glibc``, ``libc-musl``, and so forth)
259*4882a593Smuzhiyun   erroneously had a higher priority. This issue is now corrected.
260*4882a593Smuzhiyun
261*4882a593Smuzhiyun   It is likely this change will not cause any problems. However, it is
262*4882a593Smuzhiyun   possible with some unusual configurations that you might see a change
263*4882a593Smuzhiyun   in behavior if you were relying on the previous behavior. Be sure to
264*4882a593Smuzhiyun   check how you use ``forcevariable`` and ``libc-*`` overrides in your
265*4882a593Smuzhiyun   custom layers and configuration files to ensure they make sense.
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun-  The ``build-${BUILD_OS}`` Override Has Been Removed: The
268*4882a593Smuzhiyun   ``build-${BUILD_OS}``, which is typically ``build-linux``, override
269*4882a593Smuzhiyun   has been removed because building on a host operating system other
270*4882a593Smuzhiyun   than a recent version of Linux is neither supported nor recommended.
271*4882a593Smuzhiyun   Dropping the override avoids giving the impression that other host
272*4882a593Smuzhiyun   operating systems might be supported.
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun-  The "_remove" operator now preserves whitespace. Consequently, when
275*4882a593Smuzhiyun   specifying list items to remove, be aware that leading and trailing
276*4882a593Smuzhiyun   whitespace resulting from the removal is retained.
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun   See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-metadata:removal (override style syntax)`"
279*4882a593Smuzhiyun   section in the BitBake User Manual for a detailed example.
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun.. _migration-2.6-systemd-configuration-now-split-out-to-system-conf:
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun``systemd`` Configuration is Now Split Into ``systemd-conf``
284*4882a593Smuzhiyun------------------------------------------------------------
285*4882a593Smuzhiyun
286*4882a593SmuzhiyunThe configuration for the ``systemd`` recipe has been moved into a
287*4882a593Smuzhiyun``system-conf`` recipe. Moving this configuration to a separate recipe
288*4882a593Smuzhiyunavoids the ``systemd`` recipe from becoming machine-specific for cases
289*4882a593Smuzhiyunwhere machine-specific configurations need to be applied (e.g. for
290*4882a593Smuzhiyun``qemu*`` machines).
291*4882a593Smuzhiyun
292*4882a593SmuzhiyunCurrently, the new recipe packages the following files::
293*4882a593Smuzhiyun
294*4882a593Smuzhiyun   ${sysconfdir}/machine-id
295*4882a593Smuzhiyun   ${sysconfdir}/systemd/coredump.conf
296*4882a593Smuzhiyun   ${sysconfdir}/systemd/journald.conf
297*4882a593Smuzhiyun   ${sysconfdir}/systemd/logind.conf
298*4882a593Smuzhiyun   ${sysconfdir}/systemd/system.conf
299*4882a593Smuzhiyun   ${sysconfdir}/systemd/user.conf
300*4882a593Smuzhiyun
301*4882a593SmuzhiyunIf you previously used bbappend files to append the ``systemd`` recipe to
302*4882a593Smuzhiyunchange any of the listed files, you must do so for the ``systemd-conf``
303*4882a593Smuzhiyunrecipe instead.
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun.. _migration-2.6-automatic-testing-changes:
306*4882a593Smuzhiyun
307*4882a593SmuzhiyunAutomatic Testing Changes
308*4882a593Smuzhiyun-------------------------
309*4882a593Smuzhiyun
310*4882a593SmuzhiyunThis section provides information about automatic testing changes:
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun-  ``TEST_IMAGE`` Variable Removed: Prior to this release, you set the
313*4882a593Smuzhiyun   ``TEST_IMAGE`` variable to "1" to enable automatic testing for
314*4882a593Smuzhiyun   successfully built images. The ``TEST_IMAGE`` variable no longer
315*4882a593Smuzhiyun   exists and has been replaced by the
316*4882a593Smuzhiyun   :term:`TESTIMAGE_AUTO` variable.
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun-  Inheriting the ``testimage`` and ``testsdk`` Classes: Best
319*4882a593Smuzhiyun   practices now dictate that you use the
320*4882a593Smuzhiyun   :term:`IMAGE_CLASSES` variable rather than the
321*4882a593Smuzhiyun   :term:`INHERIT` variable when you inherit the
322*4882a593Smuzhiyun   :ref:`testimage <ref-classes-testimage*>` and
323*4882a593Smuzhiyun   :ref:`testsdk <ref-classes-testsdk>` classes used for automatic
324*4882a593Smuzhiyun   testing.
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun.. _migration-2.6-openssl-changes:
327*4882a593Smuzhiyun
328*4882a593SmuzhiyunOpenSSL Changes
329*4882a593Smuzhiyun---------------
330*4882a593Smuzhiyun
331*4882a593Smuzhiyun`OpenSSL <https://www.openssl.org/>`__ has been upgraded from 1.0 to
332*4882a593Smuzhiyun1.1. By default, this upgrade could cause problems for recipes that have
333*4882a593Smuzhiyunboth versions in their dependency chains. The problem is that both
334*4882a593Smuzhiyunversions cannot be installed together at build time.
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun.. note::
337*4882a593Smuzhiyun
338*4882a593Smuzhiyun   It is possible to have both versions of the library at runtime.
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun.. _migration-2.6-bitbake-changes:
341*4882a593Smuzhiyun
342*4882a593SmuzhiyunBitBake Changes
343*4882a593Smuzhiyun---------------
344*4882a593Smuzhiyun
345*4882a593SmuzhiyunThe server logfile ``bitbake-cookerdaemon.log`` is now always placed in
346*4882a593Smuzhiyunthe :term:`Build Directory` instead of the current
347*4882a593Smuzhiyundirectory.
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun.. _migration-2.6-security-changes:
350*4882a593Smuzhiyun
351*4882a593SmuzhiyunSecurity Changes
352*4882a593Smuzhiyun----------------
353*4882a593Smuzhiyun
354*4882a593SmuzhiyunThe Poky distribution now uses security compiler flags by default.
355*4882a593SmuzhiyunInclusion of these flags could cause new failures due to stricter
356*4882a593Smuzhiyunchecking for various potential security issues in code.
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun.. _migration-2.6-post-installation-changes:
359*4882a593Smuzhiyun
360*4882a593SmuzhiyunPost Installation Changes
361*4882a593Smuzhiyun-------------------------
362*4882a593Smuzhiyun
363*4882a593SmuzhiyunYou must explicitly mark post installs to defer to the target. If you
364*4882a593Smuzhiyunwant to explicitly defer a postinstall to first boot on the target
365*4882a593Smuzhiyunrather than at root filesystem creation time, use ``pkg_postinst_ontarget()`` or
366*4882a593Smuzhiyuncall ``postinst_intercept delay_to_first_boot`` from ``pkg_postinst()``.
367*4882a593SmuzhiyunAny failure of a ``pkg_postinst()`` script (including exit 1) triggers
368*4882a593Smuzhiyunan error during the :ref:`ref-tasks-rootfs` task.
369*4882a593Smuzhiyun
370*4882a593SmuzhiyunFor more information on post-installation behavior, see the
371*4882a593Smuzhiyun":ref:`dev-manual/common-tasks:post-installation scripts`"
372*4882a593Smuzhiyunsection in the Yocto Project Development Tasks Manual.
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun.. _migration-2.6-python-3-profile-guided-optimizations:
375*4882a593Smuzhiyun
376*4882a593SmuzhiyunPython 3 Profile-Guided Optimization
377*4882a593Smuzhiyun------------------------------------
378*4882a593Smuzhiyun
379*4882a593SmuzhiyunThe ``python3`` recipe now enables profile-guided optimization. Using
380*4882a593Smuzhiyunthis optimization requires a little extra build time in exchange for
381*4882a593Smuzhiyunimproved performance on the target at runtime. Additionally, the
382*4882a593Smuzhiyunoptimization is only enabled if the current
383*4882a593Smuzhiyun:term:`MACHINE` has support for user-mode emulation in
384*4882a593SmuzhiyunQEMU (i.e. "qemu-usermode" is in
385*4882a593Smuzhiyun:term:`MACHINE_FEATURES`, which it is by
386*4882a593Smuzhiyundefault).
387*4882a593Smuzhiyun
388*4882a593SmuzhiyunIf you wish to disable Python profile-guided optimization regardless of
389*4882a593Smuzhiyunthe value of :term:`MACHINE_FEATURES`, then ensure that
390*4882a593Smuzhiyun:term:`PACKAGECONFIG` for the ``python3`` recipe
391*4882a593Smuzhiyundoes not contain "pgo". You could accomplish the latter using the
392*4882a593Smuzhiyunfollowing at the configuration level::
393*4882a593Smuzhiyun
394*4882a593Smuzhiyun   PACKAGECONFIG_remove_pn-python3 = "pgo"
395*4882a593Smuzhiyun
396*4882a593SmuzhiyunAlternatively, you can set :term:`PACKAGECONFIG` using an append file
397*4882a593Smuzhiyunfor the ``python3`` recipe.
398*4882a593Smuzhiyun
399*4882a593Smuzhiyun.. _migration-2.6-miscellaneous-changes:
400*4882a593Smuzhiyun
401*4882a593SmuzhiyunMiscellaneous Changes
402*4882a593Smuzhiyun---------------------
403*4882a593Smuzhiyun
404*4882a593SmuzhiyunThe following miscellaneous changes occurred:
405*4882a593Smuzhiyun
406*4882a593Smuzhiyun-  Default to using the Thumb-2 instruction set for armv7a and above. If
407*4882a593Smuzhiyun   you have any custom recipes that build software that needs to be
408*4882a593Smuzhiyun   built with the ARM instruction set, change the recipe to set the
409*4882a593Smuzhiyun   instruction set as follows::
410*4882a593Smuzhiyun
411*4882a593Smuzhiyun      ARM_INSTRUCTION_SET = "arm"
412*4882a593Smuzhiyun
413*4882a593Smuzhiyun-  ``run-postinsts`` no longer uses ``/etc/*-postinsts`` for
414*4882a593Smuzhiyun   ``dpkg/opkg`` in favor of built-in postinst support. RPM behavior
415*4882a593Smuzhiyun   remains unchanged.
416*4882a593Smuzhiyun
417*4882a593Smuzhiyun-  The ``NOISO`` and ``NOHDD`` variables are no longer used. You now
418*4882a593Smuzhiyun   control building ``*.iso`` and ``*.hddimg`` image types directly by
419*4882a593Smuzhiyun   using the :term:`IMAGE_FSTYPES` variable.
420*4882a593Smuzhiyun
421*4882a593Smuzhiyun-  The ``scripts/contrib/mkefidisk.sh`` has been removed in favor of
422*4882a593Smuzhiyun   Wic.
423*4882a593Smuzhiyun
424*4882a593Smuzhiyun-  ``kernel-modules`` has been removed from
425*4882a593Smuzhiyun   :term:`RRECOMMENDS` for ``qemumips`` and
426*4882a593Smuzhiyun   ``qemumips64`` machines. Removal also impacts the ``x86-base.inc``
427*4882a593Smuzhiyun   file.
428*4882a593Smuzhiyun
429*4882a593Smuzhiyun   .. note::
430*4882a593Smuzhiyun
431*4882a593Smuzhiyun      ``genericx86`` and ``genericx86-64`` retain ``kernel-modules`` as part of
432*4882a593Smuzhiyun      the :term:`RRECOMMENDS` variable setting.
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun-  The ``LGPLv2_WHITELIST_GPL-3.0`` variable has been removed. If you
435*4882a593Smuzhiyun   are setting this variable in your configuration, set or append it to
436*4882a593Smuzhiyun   the ``WHITELIST_GPL-3.0`` variable instead.
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun-  ``${ASNEEDED}`` is now included in the
439*4882a593Smuzhiyun   :term:`TARGET_LDFLAGS` variable directly. The
440*4882a593Smuzhiyun   remaining definitions from ``meta/conf/distro/include/as-needed.inc``
441*4882a593Smuzhiyun   have been moved to corresponding recipes.
442*4882a593Smuzhiyun
443*4882a593Smuzhiyun-  Support for DSA host keys has been dropped from the OpenSSH recipes.
444*4882a593Smuzhiyun   If you are still using DSA keys, you must switch over to a more
445*4882a593Smuzhiyun   secure algorithm as recommended by OpenSSH upstream.
446*4882a593Smuzhiyun
447*4882a593Smuzhiyun-  The ``dhcp`` recipe now uses the ``dhcpd6.conf`` configuration file
448*4882a593Smuzhiyun   in ``dhcpd6.service`` for IPv6 DHCP rather than re-using
449*4882a593Smuzhiyun   ``dhcpd.conf``, which is now reserved for IPv4.
450*4882a593Smuzhiyun
451*4882a593Smuzhiyun
452