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