summaryrefslogtreecommitdiffstats
path: root/documentation/migration-guides/migration-1.7.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/migration-guides/migration-1.7.rst')
-rw-r--r--documentation/migration-guides/migration-1.7.rst222
1 files changed, 222 insertions, 0 deletions
diff --git a/documentation/migration-guides/migration-1.7.rst b/documentation/migration-guides/migration-1.7.rst
new file mode 100644
index 0000000000..ca8222098a
--- /dev/null
+++ b/documentation/migration-guides/migration-1.7.rst
@@ -0,0 +1,222 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release 1.7 (dizzy)
+===================
+
+This section provides migration information for moving to the Yocto
+Project 1.7 Release (codename "dizzy") from the prior release.
+
+.. _migration-1.7-changes-to-setting-qemu-packageconfig-options:
+
+Changes to Setting QEMU ``PACKAGECONFIG`` Options in ``local.conf``
+-------------------------------------------------------------------
+
+The QEMU recipe now uses a number of
+:term:`PACKAGECONFIG` options to enable various
+optional features. The method used to set defaults for these options
+means that existing ``local.conf`` files will need to be modified to
+append to :term:`PACKAGECONFIG` for ``qemu-native`` and ``nativesdk-qemu``
+instead of setting it. In other words, to enable graphical output for
+QEMU, you should now have these lines in ``local.conf``::
+
+ PACKAGECONFIG_append_pn-qemu-native = " sdl"
+ PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
+
+.. _migration-1.7-minimum-git-version:
+
+Minimum Git version
+-------------------
+
+The minimum :ref:`overview-manual/development-environment:git`
+version required on the
+build host is now 1.7.8 because the ``--list`` option is now required by
+BitBake's Git fetcher. As always, if your host distribution does not
+provide a version of Git that meets this requirement, you can use the
+:term:`buildtools` tarball that does. See the
+":ref:`ref-manual/system-requirements:required git, tar, python, make and gcc versions`"
+section for more information.
+
+.. _migration-1.7-autotools-class-changes:
+
+Autotools Class Changes
+-----------------------
+
+The following :ref:`ref-classes-autotools` class changes occurred:
+
+- *A separate :term:`Build Directory` is now used by default:* The
+ :ref:`ref-classes-autotools` class has been changed to use a directory for
+ building (:term:`B`), which is separate from the source directory
+ (:term:`S`). This is commonly referred to as ``B != S``, or
+ an out-of-tree build.
+
+ If the software being built is already capable of building in a
+ directory separate from the source, you do not need to do anything.
+ However, if the software is not capable of being built in this
+ manner, you will need to either patch the software so that it can
+ build separately, or you will need to change the recipe to inherit
+ the :ref:`autotools-brokensep <ref-classes-autotools>` class instead
+ of the :ref:`ref-classes-autotools` or ``autotools_stage`` classes.
+
+- The ``--foreign`` option is no longer passed to ``automake`` when
+ running ``autoconf``: This option tells ``automake`` that a
+ particular software package does not follow the GNU standards and
+ therefore should not be expected to distribute certain files such as
+ ``ChangeLog``, ``AUTHORS``, and so forth. Because the majority of
+ upstream software packages already tell ``automake`` to enable
+ foreign mode themselves, the option is mostly superfluous. However,
+ some recipes will need patches for this change. You can easily make
+ the change by patching ``configure.ac`` so that it passes "foreign"
+ to ``AM_INIT_AUTOMAKE()``. See :oe_git:`this
+ commit </openembedded-core/commit/?id=01943188f85ce6411717fb5bf702d609f55813f2>`
+ for an example showing how to make the patch.
+
+.. _migration-1.7-binary-configuration-scripts-disabled:
+
+Binary Configuration Scripts Disabled
+-------------------------------------
+
+Some of the core recipes that package binary configuration scripts now
+disable the scripts due to the scripts previously requiring error-prone
+path substitution. Software that links against these libraries using
+these scripts should use the much more robust ``pkg-config`` instead.
+The list of recipes changed in this version (and their configuration
+scripts) is as follows::
+
+ directfb (directfb-config)
+ freetype (freetype-config)
+ gpgme (gpgme-config)
+ libassuan (libassuan-config)
+ libcroco (croco-6.0-config)
+ libgcrypt (libgcrypt-config)
+ libgpg-error (gpg-error-config)
+ libksba (ksba-config)
+ libpcap (pcap-config)
+ libpcre (pcre-config)
+ libpng (libpng-config, libpng16-config)
+ libsdl (sdl-config)
+ libusb-compat (libusb-config)
+ libxml2 (xml2-config)
+ libxslt (xslt-config)
+ ncurses (ncurses-config)
+ neon (neon-config)
+ npth (npth-config)
+ pth (pth-config)
+ taglib (taglib-config)
+
+Additionally, support for ``pkg-config`` has been added to some recipes in the
+previous list in the rare cases where the upstream software package does
+not already provide it.
+
+.. _migration-1.7-glibc-replaces-eglibc:
+
+``eglibc 2.19`` Replaced with ``glibc 2.20``
+--------------------------------------------
+
+Because ``eglibc`` and ``glibc`` were already fairly close, this
+replacement should not require any significant changes to other software
+that links to ``eglibc``. However, there were a number of minor changes
+in ``glibc 2.20`` upstream that could require patching some software
+(e.g. the removal of the ``_BSD_SOURCE`` feature test macro).
+
+``glibc 2.20`` requires version 2.6.32 or greater of the Linux kernel.
+Thus, older kernels will no longer be usable in conjunction with it.
+
+For full details on the changes in ``glibc 2.20``, see the upstream
+release notes
+`here <https://sourceware.org/ml/libc-alpha/2014-09/msg00088.html>`__.
+
+.. _migration-1.7-kernel-module-autoloading:
+
+Kernel Module Autoloading
+-------------------------
+
+The :term:`module_autoload_* <module_autoload>` variable is now
+deprecated and a new
+:term:`KERNEL_MODULE_AUTOLOAD` variable
+should be used instead. Also, :term:`module_conf_* <module_conf>`
+must now be used in conjunction with a new
+:term:`KERNEL_MODULE_PROBECONF` variable.
+The new variables no longer require you to specify the module name as
+part of the variable name. This change not only simplifies usage but
+also allows the values of these variables to be appropriately
+incorporated into task signatures and thus trigger the appropriate tasks
+to re-execute when changed. You should replace any references to
+``module_autoload_*`` with :term:`KERNEL_MODULE_AUTOLOAD`, and add any
+modules for which ``module_conf_*`` is specified to
+:term:`KERNEL_MODULE_PROBECONF`.
+
+.. _migration-1.7-qa-check-changes:
+
+QA Check Changes
+----------------
+
+The following changes have occurred to the QA check process:
+
+- Additional QA checks ``file-rdeps`` and ``build-deps`` have been
+ added in order to verify that file dependencies are satisfied (e.g.
+ package contains a script requiring ``/bin/bash``) and build-time
+ dependencies are declared, respectively. For more information, please
+ see the ":doc:`/ref-manual/qa-checks`" chapter.
+
+- Package QA checks are now performed during a new
+ :ref:`ref-tasks-package_qa` task rather than being
+ part of the :ref:`ref-tasks-package` task. This allows
+ more parallel execution. This change is unlikely to be an issue
+ except for highly customized recipes that disable packaging tasks
+ themselves by marking them as ``noexec``. For those packages, you
+ will need to disable the :ref:`ref-tasks-package_qa` task as well.
+
+- Files being overwritten during the
+ :ref:`ref-tasks-populate_sysroot` task now
+ trigger an error instead of a warning. Recipes should not be
+ overwriting files written to the sysroot by other recipes. If you
+ have these types of recipes, you need to alter them so that they do
+ not overwrite these files.
+
+ You might now receive this error after changes in configuration or
+ metadata resulting in orphaned files being left in the sysroot. If
+ you do receive this error, the way to resolve the issue is to delete
+ your :term:`TMPDIR` or to move it out of the way and
+ then re-start the build. Anything that has been fully built up to
+ that point and does not need rebuilding will be restored from the
+ shared state cache and the rest of the build will be able to proceed
+ as normal.
+
+.. _migration-1.7-removed-recipes:
+
+Removed Recipes
+---------------
+
+The following recipes have been removed:
+
+- ``x-load``: This recipe has been superseded by U-Boot SPL for all
+ Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
+ contains a maintained recipe, should be used instead.
+
+- ``ubootchart``: This recipe is obsolete. A ``bootchart2`` recipe has
+ been added to functionally replace it.
+
+- ``linux-yocto 3.4``: Support for the linux-yocto 3.4 kernel has been
+ dropped. Support for the 3.10 and 3.14 kernels remains, while support
+ for version 3.17 has been added.
+
+- ``eglibc`` has been removed in favor of ``glibc``. See the
+ ":ref:`migration-1.7-glibc-replaces-eglibc`" section for more information.
+
+.. _migration-1.7-miscellaneous-changes:
+
+Miscellaneous Changes
+---------------------
+
+The following miscellaneous change occurred:
+
+- The build history feature now writes ``build-id.txt`` instead of
+ ``build-id``. Additionally, ``build-id.txt`` now contains the full
+ build header as printed by BitBake upon starting the build. You
+ should manually remove old "build-id" files from your existing build
+ history repositories to avoid confusion. For information on the build
+ history feature, see the
+ ":ref:`dev-manual/build-quality:maintaining build output quality`"
+ section in the Yocto Project Development Tasks Manual.
+
+