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