1Release 1.7 (dizzy) 2=================== 3 4This section provides migration information for moving to the Yocto 5Project 1.7 Release (codename "dizzy") from the prior release. 6 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 15means that existing ``local.conf`` files will need to be modified to 16append to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu`` 17instead of setting it. In other words, to enable graphical output for 18QEMU, you should now have these lines in ``local.conf``:: 19 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 28The minimum :ref:`overview-manual/development-environment:git` 29version 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 33``buildtools-tarball`` that does. See the 34":ref:`ref-manual/system-requirements:required git, tar, python and gcc versions`" 35section for more information. 36 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 :ref:`autotools <ref-classes-autotools>` class has been 47 changed to use a directory for building 48 (: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 58 instead of the :ref:`autotools <ref-classes-autotools>` 59 or ``autotools_stage`` classes. 60 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" 70 to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this 71 commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>` 72 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 84scripts) is as follows:: 85 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 145``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any 146modules for which ``module_conf_*`` is specified to 147:term:`KERNEL_MODULE_PROBECONF`. 148 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 160 see the ":doc:`/ref-manual/qa-checks`" chapter. 161 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 168 will need to disable the ``do_package_qa`` task as well. 169 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 193- ``x-load``: This recipe has been superseded by U-Boot SPL for all 194 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 205 ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information. 206 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 220 ":ref:`dev-manual/common-tasks:maintaining build output quality`" 221 section in the Yocto Project Development Tasks Manual. 222 223 224