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