xref: /OK3568_Linux_fs/yocto/poky/documentation/migration-guides/migration-1.7.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunRelease 1.7 (dizzy)
2*4882a593Smuzhiyun===================
3*4882a593Smuzhiyun
4*4882a593SmuzhiyunThis section provides migration information for moving to the Yocto
5*4882a593SmuzhiyunProject 1.7 Release (codename "dizzy") from the prior release.
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun.. _migration-1.7-changes-to-setting-qemu-packageconfig-options:
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunChanges to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf``
10*4882a593Smuzhiyun-------------------------------------------------------------------
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunThe QEMU recipe now uses a number of
13*4882a593Smuzhiyun:term:`PACKAGECONFIG` options to enable various
14*4882a593Smuzhiyunoptional features. The method used to set defaults for these options
15*4882a593Smuzhiyunmeans that existing ``local.conf`` files will need to be modified to
16*4882a593Smuzhiyunappend to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu``
17*4882a593Smuzhiyuninstead of setting it. In other words, to enable graphical output for
18*4882a593SmuzhiyunQEMU, you should now have these lines in ``local.conf``::
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun   PACKAGECONFIG_append_pn-qemu-native = " sdl"
21*4882a593Smuzhiyun   PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun.. _migration-1.7-minimum-git-version:
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunMinimum Git version
26*4882a593Smuzhiyun-------------------
27*4882a593Smuzhiyun
28*4882a593SmuzhiyunThe minimum :ref:`overview-manual/development-environment:git`
29*4882a593Smuzhiyunversion required on the
30*4882a593Smuzhiyunbuild host is now 1.7.8 because the ``--list`` option is now required by
31*4882a593SmuzhiyunBitBake's Git fetcher. As always, if your host distribution does not
32*4882a593Smuzhiyunprovide a version of Git that meets this requirement, you can use the
33*4882a593Smuzhiyun``buildtools-tarball`` that does. See the
34*4882a593Smuzhiyun":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`"
35*4882a593Smuzhiyunsection for more information.
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun.. _migration-1.7-autotools-class-changes:
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunAutotools Class Changes
40*4882a593Smuzhiyun-----------------------
41*4882a593Smuzhiyun
42*4882a593SmuzhiyunThe following :ref:`autotools <ref-classes-autotools>` class changes
43*4882a593Smuzhiyunoccurred:
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun-  *A separate build directory is now used by default:* The
46*4882a593Smuzhiyun   :ref:`autotools <ref-classes-autotools>` class has been
47*4882a593Smuzhiyun   changed to use a directory for building
48*4882a593Smuzhiyun   (:term:`B`), which is separate from the source directory
49*4882a593Smuzhiyun   (:term:`S`). This is commonly referred to as ``B != S``, or
50*4882a593Smuzhiyun   an out-of-tree build.
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun   If the software being built is already capable of building in a
53*4882a593Smuzhiyun   directory separate from the source, you do not need to do anything.
54*4882a593Smuzhiyun   However, if the software is not capable of being built in this
55*4882a593Smuzhiyun   manner, you will need to either patch the software so that it can
56*4882a593Smuzhiyun   build separately, or you will need to change the recipe to inherit
57*4882a593Smuzhiyun   the :ref:`autotools-brokensep <ref-classes-autotools>` class
58*4882a593Smuzhiyun   instead of the :ref:`autotools <ref-classes-autotools>`
59*4882a593Smuzhiyun   or ``autotools_stage`` classes.
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun-  The ``--foreign`` option is no longer passed to ``automake`` when
62*4882a593Smuzhiyun   running ``autoconf``: This option tells ``automake`` that a
63*4882a593Smuzhiyun   particular software package does not follow the GNU standards and
64*4882a593Smuzhiyun   therefore should not be expected to distribute certain files such as
65*4882a593Smuzhiyun   ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of
66*4882a593Smuzhiyun   upstream software packages already tell ``automake`` to enable
67*4882a593Smuzhiyun   foreign mode themselves, the option is mostly superfluous. However,
68*4882a593Smuzhiyun   some recipes will need patches for this change. You can easily make
69*4882a593Smuzhiyun   the change by patching ``configure.ac`` so that it passes "foreign"
70*4882a593Smuzhiyun   to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this
71*4882a593Smuzhiyun   commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`
72*4882a593Smuzhiyun   for an example showing how to make the patch.
73*4882a593Smuzhiyun
74*4882a593Smuzhiyun.. _migration-1.7-binary-configuration-scripts-disabled:
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunBinary Configuration Scripts Disabled
77*4882a593Smuzhiyun-------------------------------------
78*4882a593Smuzhiyun
79*4882a593SmuzhiyunSome of the core recipes that package binary configuration scripts now
80*4882a593Smuzhiyundisable the scripts due to the scripts previously requiring error-prone
81*4882a593Smuzhiyunpath substitution. Software that links against these libraries using
82*4882a593Smuzhiyunthese scripts should use the much more robust ``pkg-config`` instead.
83*4882a593SmuzhiyunThe list of recipes changed in this version (and their configuration
84*4882a593Smuzhiyunscripts) is as follows::
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun   directfb (directfb-config)
87*4882a593Smuzhiyun   freetype (freetype-config)
88*4882a593Smuzhiyun   gpgme (gpgme-config)
89*4882a593Smuzhiyun   libassuan (libassuan-config)
90*4882a593Smuzhiyun   libcroco (croco-6.0-config)
91*4882a593Smuzhiyun   libgcrypt (libgcrypt-config)
92*4882a593Smuzhiyun   libgpg-error (gpg-error-config)
93*4882a593Smuzhiyun   libksba (ksba-config)
94*4882a593Smuzhiyun   libpcap (pcap-config)
95*4882a593Smuzhiyun   libpcre (pcre-config)
96*4882a593Smuzhiyun   libpng (libpng-config, libpng16-config)
97*4882a593Smuzhiyun   libsdl (sdl-config)
98*4882a593Smuzhiyun   libusb-compat (libusb-config)
99*4882a593Smuzhiyun   libxml2 (xml2-config)
100*4882a593Smuzhiyun   libxslt (xslt-config)
101*4882a593Smuzhiyun   ncurses (ncurses-config)
102*4882a593Smuzhiyun   neon (neon-config)
103*4882a593Smuzhiyun   npth (npth-config)
104*4882a593Smuzhiyun   pth (pth-config)
105*4882a593Smuzhiyun   taglib (taglib-config)
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunAdditionally, support for ``pkg-config`` has been added to some recipes in the
108*4882a593Smuzhiyunprevious list in the rare cases where the upstream software package does
109*4882a593Smuzhiyunnot already provide it.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun.. _migration-1.7-glibc-replaces-eglibc:
112*4882a593Smuzhiyun
113*4882a593Smuzhiyun``eglibc 2.19`` Replaced with ``glibc 2.20``
114*4882a593Smuzhiyun--------------------------------------------
115*4882a593Smuzhiyun
116*4882a593SmuzhiyunBecause ``eglibc`` and ``glibc`` were already fairly close, this
117*4882a593Smuzhiyunreplacement should not require any significant changes to other software
118*4882a593Smuzhiyunthat links to ``eglibc``. However, there were a number of minor changes
119*4882a593Smuzhiyunin ``glibc 2.20`` upstream that could require patching some software
120*4882a593Smuzhiyun(e.g. the removal of the ``_BSD_SOURCE`` feature test macro).
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel.
123*4882a593SmuzhiyunThus, older kernels will no longer be usable in conjunction with it.
124*4882a593Smuzhiyun
125*4882a593SmuzhiyunFor full details on the changes in ``glibc 2.20``, see the upstream
126*4882a593Smuzhiyunrelease notes
127*4882a593Smuzhiyun`here <https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html>`__.
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun.. _migration-1.7-kernel-module-autoloading:
130*4882a593Smuzhiyun
131*4882a593SmuzhiyunKernel Module Autoloading
132*4882a593Smuzhiyun-------------------------
133*4882a593Smuzhiyun
134*4882a593SmuzhiyunThe :term:`module_autoload_* <module_autoload>` variable is now
135*4882a593Smuzhiyundeprecated and a new
136*4882a593Smuzhiyun:term:`KERNEL_MODULE_AUTOLOAD` variable
137*4882a593Smuzhiyunshould be used instead. Also, :term:`module_conf_* <module_conf>`
138*4882a593Smuzhiyunmust now be used in conjunction with a new
139*4882a593Smuzhiyun:term:`KERNEL_MODULE_PROBECONF` variable.
140*4882a593SmuzhiyunThe new variables no longer require you to specify the module name as
141*4882a593Smuzhiyunpart of the variable name. This change not only simplifies usage but
142*4882a593Smuzhiyunalso allows the values of these variables to be appropriately
143*4882a593Smuzhiyunincorporated into task signatures and thus trigger the appropriate tasks
144*4882a593Smuzhiyunto re-execute when changed. You should replace any references to
145*4882a593Smuzhiyun``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any
146*4882a593Smuzhiyunmodules for which ``module_conf_*`` is specified to
147*4882a593Smuzhiyun:term:`KERNEL_MODULE_PROBECONF`.
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun.. _migration-1.7-qa-check-changes:
150*4882a593Smuzhiyun
151*4882a593SmuzhiyunQA Check Changes
152*4882a593Smuzhiyun----------------
153*4882a593Smuzhiyun
154*4882a593SmuzhiyunThe following changes have occurred to the QA check process:
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun-  Additional QA checks ``file-rdeps`` and ``build-deps`` have been
157*4882a593Smuzhiyun   added in order to verify that file dependencies are satisfied (e.g.
158*4882a593Smuzhiyun   package contains a script requiring ``/bin/bash``) and build-time
159*4882a593Smuzhiyun   dependencies are declared, respectively. For more information, please
160*4882a593Smuzhiyun   see the ":doc:`/ref-manual/qa-checks`" chapter.
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun-  Package QA checks are now performed during a new
163*4882a593Smuzhiyun   :ref:`ref-tasks-package_qa` task rather than being
164*4882a593Smuzhiyun   part of the :ref:`ref-tasks-package` task. This allows
165*4882a593Smuzhiyun   more parallel execution. This change is unlikely to be an issue
166*4882a593Smuzhiyun   except for highly customized recipes that disable packaging tasks
167*4882a593Smuzhiyun   themselves by marking them as ``noexec``. For those packages, you
168*4882a593Smuzhiyun   will need to disable the ``do_package_qa`` task as well.
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun-  Files being overwritten during the
171*4882a593Smuzhiyun   :ref:`ref-tasks-populate_sysroot` task now
172*4882a593Smuzhiyun   trigger an error instead of a warning. Recipes should not be
173*4882a593Smuzhiyun   overwriting files written to the sysroot by other recipes. If you
174*4882a593Smuzhiyun   have these types of recipes, you need to alter them so that they do
175*4882a593Smuzhiyun   not overwrite these files.
176*4882a593Smuzhiyun
177*4882a593Smuzhiyun   You might now receive this error after changes in configuration or
178*4882a593Smuzhiyun   metadata resulting in orphaned files being left in the sysroot. If
179*4882a593Smuzhiyun   you do receive this error, the way to resolve the issue is to delete
180*4882a593Smuzhiyun   your :term:`TMPDIR` or to move it out of the way and
181*4882a593Smuzhiyun   then re-start the build. Anything that has been fully built up to
182*4882a593Smuzhiyun   that point and does not need rebuilding will be restored from the
183*4882a593Smuzhiyun   shared state cache and the rest of the build will be able to proceed
184*4882a593Smuzhiyun   as normal.
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun.. _migration-1.7-removed-recipes:
187*4882a593Smuzhiyun
188*4882a593SmuzhiyunRemoved Recipes
189*4882a593Smuzhiyun---------------
190*4882a593Smuzhiyun
191*4882a593SmuzhiyunThe following recipes have been removed:
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun-  ``x-load``: This recipe has been superseded by U-Boot SPL for all
194*4882a593Smuzhiyun   Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
195*4882a593Smuzhiyun   contains a maintained recipe, should be used instead.
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun-  ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has
198*4882a593Smuzhiyun   been added to functionally replace it.
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun-  ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been
201*4882a593Smuzhiyun   dropped. Support for the 3.10 and 3.14 kernels remains, while support
202*4882a593Smuzhiyun   for version 3.17 has been added.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun-  ``eglibc`` has been removed in favor of ``glibc``. See the
205*4882a593Smuzhiyun   ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information.
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun.. _migration-1.7-miscellaneous-changes:
208*4882a593Smuzhiyun
209*4882a593SmuzhiyunMiscellaneous Changes
210*4882a593Smuzhiyun---------------------
211*4882a593Smuzhiyun
212*4882a593SmuzhiyunThe following miscellaneous change occurred:
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun-  The build history feature now writes ``build-id.txt`` instead of
215*4882a593Smuzhiyun   ``build-id``. Additionally, ``build-id.txt`` now contains the full
216*4882a593Smuzhiyun   build header as printed by BitBake upon starting the build. You
217*4882a593Smuzhiyun   should manually remove old "build-id" files from your existing build
218*4882a593Smuzhiyun   history repositories to avoid confusion. For information on the build
219*4882a593Smuzhiyun   history feature, see the
220*4882a593Smuzhiyun   ":ref:`dev-manual/common-tasks:maintaining build output quality`"
221*4882a593Smuzhiyun   section in the Yocto Project Development Tasks Manual.
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun
224