blob: e1a7594fb106585a8aecbddd4327817cdef3275e [file] [log] [blame]
Andrew Geissler09036742021-06-25 14:25:14 -05001Release 1.7 (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 Geissler5f350902021-07-23 13:09:54 -040016append to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu``
Andrew Geisslerc9f78652020-09-18 14:11:35 -050017instead 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 Geissler615f2f12022-07-15 14:00:58 -050034":ref:`ref-manual/system-requirements:required git, tar, python, make 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
Patrick Williams2390b1b2022-11-03 13:47:49 -050045- *A separate :term:`Build Directory` is now used by default:* The
Andrew Geissler595f6302022-01-24 19:11:47 +000046 :ref:`autotools <ref-classes-autotools>` class has been
47 changed to use a directory for building
Andrew Geisslerc9f78652020-09-18 14:11:35 -050048 (:term:`B`), which is separate from the source directory
49 (: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
57 the :ref:`autotools-brokensep <ref-classes-autotools>` class
Andrew Geissler595f6302022-01-24 19:11:47 +000058 instead of the :ref:`autotools <ref-classes-autotools>`
59 or ``autotools_stage`` classes.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050060
61- The ``--foreign`` option is no longer passed to ``automake`` when
62 running ``autoconf``: This option tells ``automake`` that a
63 particular software package does not follow the GNU standards and
64 therefore should not be expected to distribute certain files such as
65 ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of
66 upstream software packages already tell ``automake`` to enable
67 foreign mode themselves, the option is mostly superfluous. However,
68 some recipes will need patches for this change. You can easily make
69 the change by patching ``configure.ac`` so that it passes "foreign"
Andrew Geissler09209ee2020-12-13 08:44:15 -060070 to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this
71 commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050072 for an example showing how to make the patch.
73
74.. _migration-1.7-binary-configuration-scripts-disabled:
75
76Binary Configuration Scripts Disabled
77-------------------------------------
78
79Some of the core recipes that package binary configuration scripts now
80disable the scripts due to the scripts previously requiring error-prone
81path substitution. Software that links against these libraries using
82these scripts should use the much more robust ``pkg-config`` instead.
83The list of recipes changed in this version (and their configuration
Andrew Geisslerc926e172021-05-07 16:11:35 -050084scripts) is as follows::
Andrew Geisslerc9f78652020-09-18 14:11:35 -050085
86 directfb (directfb-config)
87 freetype (freetype-config)
88 gpgme (gpgme-config)
89 libassuan (libassuan-config)
90 libcroco (croco-6.0-config)
91 libgcrypt (libgcrypt-config)
92 libgpg-error (gpg-error-config)
93 libksba (ksba-config)
94 libpcap (pcap-config)
95 libpcre (pcre-config)
96 libpng (libpng-config, libpng16-config)
97 libsdl (sdl-config)
98 libusb-compat (libusb-config)
99 libxml2 (xml2-config)
100 libxslt (xslt-config)
101 ncurses (ncurses-config)
102 neon (neon-config)
103 npth (npth-config)
104 pth (pth-config)
105 taglib (taglib-config)
106
107Additionally, support for ``pkg-config`` has been added to some recipes in the
108previous list in the rare cases where the upstream software package does
109not already provide it.
110
111.. _migration-1.7-glibc-replaces-eglibc:
112
113``eglibc 2.19`` Replaced with ``glibc 2.20``
114--------------------------------------------
115
116Because ``eglibc`` and ``glibc`` were already fairly close, this
117replacement should not require any significant changes to other software
118that links to ``eglibc``. However, there were a number of minor changes
119in ``glibc 2.20`` upstream that could require patching some software
120(e.g. the removal of the ``_BSD_SOURCE`` feature test macro).
121
122``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel.
123Thus, older kernels will no longer be usable in conjunction with it.
124
125For full details on the changes in ``glibc 2.20``, see the upstream
126release notes
127`here <https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html>`__.
128
129.. _migration-1.7-kernel-module-autoloading:
130
131Kernel Module Autoloading
132-------------------------
133
134The :term:`module_autoload_* <module_autoload>` variable is now
135deprecated and a new
136:term:`KERNEL_MODULE_AUTOLOAD` variable
137should be used instead. Also, :term:`module_conf_* <module_conf>`
138must now be used in conjunction with a new
139:term:`KERNEL_MODULE_PROBECONF` variable.
140The new variables no longer require you to specify the module name as
141part of the variable name. This change not only simplifies usage but
142also allows the values of these variables to be appropriately
143incorporated into task signatures and thus trigger the appropriate tasks
144to re-execute when changed. You should replace any references to
Andrew Geissler09036742021-06-25 14:25:14 -0500145``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500146modules for which ``module_conf_*`` is specified to
Andrew Geissler09036742021-06-25 14:25:14 -0500147:term:`KERNEL_MODULE_PROBECONF`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500148
149.. _migration-1.7-qa-check-changes:
150
151QA Check Changes
152----------------
153
154The following changes have occurred to the QA check process:
155
156- Additional QA checks ``file-rdeps`` and ``build-deps`` have been
157 added in order to verify that file dependencies are satisfied (e.g.
158 package contains a script requiring ``/bin/bash``) and build-time
159 dependencies are declared, respectively. For more information, please
Andrew Geissler09209ee2020-12-13 08:44:15 -0600160 see the ":doc:`/ref-manual/qa-checks`" chapter.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500161
162- Package QA checks are now performed during a new
163 :ref:`ref-tasks-package_qa` task rather than being
164 part of the :ref:`ref-tasks-package` task. This allows
165 more parallel execution. This change is unlikely to be an issue
166 except for highly customized recipes that disable packaging tasks
167 themselves by marking them as ``noexec``. For those packages, you
Patrick Williams2194f502022-10-16 14:26:09 -0500168 will need to disable the :ref:`ref-tasks-package_qa` task as well.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500169
170- Files being overwritten during the
171 :ref:`ref-tasks-populate_sysroot` task now
172 trigger an error instead of a warning. Recipes should not be
173 overwriting files written to the sysroot by other recipes. If you
174 have these types of recipes, you need to alter them so that they do
175 not overwrite these files.
176
177 You might now receive this error after changes in configuration or
178 metadata resulting in orphaned files being left in the sysroot. If
179 you do receive this error, the way to resolve the issue is to delete
180 your :term:`TMPDIR` or to move it out of the way and
181 then re-start the build. Anything that has been fully built up to
182 that point and does not need rebuilding will be restored from the
183 shared state cache and the rest of the build will be able to proceed
184 as normal.
185
186.. _migration-1.7-removed-recipes:
187
188Removed Recipes
189---------------
190
191The following recipes have been removed:
192
Andrew Geisslerd1e89492021-02-12 15:35:20 -0600193- ``x-load``: This recipe has been superseded by U-Boot SPL for all
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500194 Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
195 contains a maintained recipe, should be used instead.
196
197- ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has
198 been added to functionally replace it.
199
200- ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been
201 dropped. Support for the 3.10 and 3.14 kernels remains, while support
202 for version 3.17 has been added.
203
204- ``eglibc`` has been removed in favor of ``glibc``. See the
Andrew Geissler4c19ea12020-10-27 13:52:24 -0500205 ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500206
207.. _migration-1.7-miscellaneous-changes:
208
209Miscellaneous Changes
210---------------------
211
212The following miscellaneous change occurred:
213
214- The build history feature now writes ``build-id.txt`` instead of
215 ``build-id``. Additionally, ``build-id.txt`` now contains the full
216 build header as printed by BitBake upon starting the build. You
217 should manually remove old "build-id" files from your existing build
218 history repositories to avoid confusion. For information on the build
219 history feature, see the
Andrew Geissler09209ee2020-12-13 08:44:15 -0600220 ":ref:`dev-manual/common-tasks:maintaining build output quality`"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500221 section in the Yocto Project Development Tasks Manual.
222
223