Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 1 | .. SPDX-License-Identifier: CC-BY-SA-2.0-UK |
| 2 | |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 3 | Release 1.7 (dizzy) |
| 4 | =================== |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 5 | |
| 6 | This section provides migration information for moving to the Yocto |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 7 | Project 1.7 Release (codename "dizzy") from the prior release. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 8 | |
| 9 | .. _migration-1.7-changes-to-setting-qemu-packageconfig-options: |
| 10 | |
| 11 | Changes to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf`` |
| 12 | ------------------------------------------------------------------- |
| 13 | |
| 14 | The QEMU recipe now uses a number of |
| 15 | :term:`PACKAGECONFIG` options to enable various |
| 16 | optional features. The method used to set defaults for these options |
Andrew Geissler | 3b8a17c | 2021-04-15 15:55:55 -0500 | [diff] [blame] | 17 | means that existing ``local.conf`` files will need to be modified to |
Andrew Geissler | 5f35090 | 2021-07-23 13:09:54 -0400 | [diff] [blame] | 18 | append to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu`` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 19 | instead of setting it. In other words, to enable graphical output for |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 20 | QEMU, you should now have these lines in ``local.conf``:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 21 | |
| 22 | PACKAGECONFIG_append_pn-qemu-native = " sdl" |
| 23 | PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" |
| 24 | |
| 25 | .. _migration-1.7-minimum-git-version: |
| 26 | |
| 27 | Minimum Git version |
| 28 | ------------------- |
| 29 | |
Andrew Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 30 | The minimum :ref:`overview-manual/development-environment:git` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 31 | version required on the |
| 32 | build host is now 1.7.8 because the ``--list`` option is now required by |
| 33 | BitBake's Git fetcher. As always, if your host distribution does not |
| 34 | provide a version of Git that meets this requirement, you can use the |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 35 | :term:`buildtools` tarball that does. See the |
Andrew Geissler | 615f2f1 | 2022-07-15 14:00:58 -0500 | [diff] [blame] | 36 | ":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`" |
Andrew Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 37 | section for more information. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 38 | |
| 39 | .. _migration-1.7-autotools-class-changes: |
| 40 | |
| 41 | Autotools Class Changes |
| 42 | ----------------------- |
| 43 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 44 | The following :ref:`ref-classes-autotools` class changes occurred: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 45 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 46 | - *A separate :term:`Build Directory` is now used by default:* The |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 47 | :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 Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 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 |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 57 | the :ref:`autotools-brokensep <ref-classes-autotools>` class instead |
| 58 | of the :ref:`ref-classes-autotools` or ``autotools_stage`` classes. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 59 | |
| 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 Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 69 | to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this |
| 70 | commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>` |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 71 | for an example showing how to make the patch. |
| 72 | |
| 73 | .. _migration-1.7-binary-configuration-scripts-disabled: |
| 74 | |
| 75 | Binary Configuration Scripts Disabled |
| 76 | ------------------------------------- |
| 77 | |
| 78 | Some of the core recipes that package binary configuration scripts now |
| 79 | disable the scripts due to the scripts previously requiring error-prone |
| 80 | path substitution. Software that links against these libraries using |
| 81 | these scripts should use the much more robust ``pkg-config`` instead. |
| 82 | The list of recipes changed in this version (and their configuration |
Andrew Geissler | c926e17 | 2021-05-07 16:11:35 -0500 | [diff] [blame] | 83 | scripts) is as follows:: |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 84 | |
| 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 | |
| 106 | Additionally, support for ``pkg-config`` has been added to some recipes in the |
| 107 | previous list in the rare cases where the upstream software package does |
| 108 | not already provide it. |
| 109 | |
| 110 | .. _migration-1.7-glibc-replaces-eglibc: |
| 111 | |
| 112 | ``eglibc 2.19`` Replaced with ``glibc 2.20`` |
| 113 | -------------------------------------------- |
| 114 | |
| 115 | Because ``eglibc`` and ``glibc`` were already fairly close, this |
| 116 | replacement should not require any significant changes to other software |
| 117 | that links to ``eglibc``. However, there were a number of minor changes |
| 118 | in ``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. |
| 122 | Thus, older kernels will no longer be usable in conjunction with it. |
| 123 | |
| 124 | For full details on the changes in ``glibc 2.20``, see the upstream |
| 125 | release notes |
| 126 | `here <https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html>`__. |
| 127 | |
| 128 | .. _migration-1.7-kernel-module-autoloading: |
| 129 | |
| 130 | Kernel Module Autoloading |
| 131 | ------------------------- |
| 132 | |
| 133 | The :term:`module_autoload_* <module_autoload>` variable is now |
| 134 | deprecated and a new |
| 135 | :term:`KERNEL_MODULE_AUTOLOAD` variable |
| 136 | should be used instead. Also, :term:`module_conf_* <module_conf>` |
| 137 | must now be used in conjunction with a new |
| 138 | :term:`KERNEL_MODULE_PROBECONF` variable. |
| 139 | The new variables no longer require you to specify the module name as |
| 140 | part of the variable name. This change not only simplifies usage but |
| 141 | also allows the values of these variables to be appropriately |
| 142 | incorporated into task signatures and thus trigger the appropriate tasks |
| 143 | to re-execute when changed. You should replace any references to |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 144 | ``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 145 | modules for which ``module_conf_*`` is specified to |
Andrew Geissler | 0903674 | 2021-06-25 14:25:14 -0500 | [diff] [blame] | 146 | :term:`KERNEL_MODULE_PROBECONF`. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 147 | |
| 148 | .. _migration-1.7-qa-check-changes: |
| 149 | |
| 150 | QA Check Changes |
| 151 | ---------------- |
| 152 | |
| 153 | The 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 Geissler | 09209ee | 2020-12-13 08:44:15 -0600 | [diff] [blame] | 159 | see the ":doc:`/ref-manual/qa-checks`" chapter. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 160 | |
| 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 Williams | 2194f50 | 2022-10-16 14:26:09 -0500 | [diff] [blame] | 167 | will need to disable the :ref:`ref-tasks-package_qa` task as well. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 168 | |
| 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 | |
| 187 | Removed Recipes |
| 188 | --------------- |
| 189 | |
| 190 | The following recipes have been removed: |
| 191 | |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 192 | - ``x-load``: This recipe has been superseded by U-Boot SPL for all |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 193 | 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 Geissler | 4c19ea1 | 2020-10-27 13:52:24 -0500 | [diff] [blame] | 204 | ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information. |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 205 | |
| 206 | .. _migration-1.7-miscellaneous-changes: |
| 207 | |
| 208 | Miscellaneous Changes |
| 209 | --------------------- |
| 210 | |
| 211 | The 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 Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 219 | ":ref:`dev-manual/build-quality:maintaining build output quality`" |
Andrew Geissler | c9f7865 | 2020-09-18 14:11:35 -0500 | [diff] [blame] | 220 | section in the Yocto Project Development Tasks Manual. |
| 221 | |
| 222 | |