diff options
Diffstat (limited to 'poky/documentation/ref-manual/migration-2.1.rst')
-rw-r--r-- | poky/documentation/ref-manual/migration-2.1.rst | 432 |
1 files changed, 0 insertions, 432 deletions
diff --git a/poky/documentation/ref-manual/migration-2.1.rst b/poky/documentation/ref-manual/migration-2.1.rst deleted file mode 100644 index 32d193f0f..000000000 --- a/poky/documentation/ref-manual/migration-2.1.rst +++ /dev/null @@ -1,432 +0,0 @@ -Moving to the Yocto Project 2.1 Release (krogoth) -================================================= - -This section provides migration information for moving to the Yocto -Project 2.1 Release (codename "krogoth") from the prior release. - -.. _migration-2.1-variable-expansion-in-python-functions: - -Variable Expansion in Python Functions --------------------------------------- - -Variable expressions, such as ``${VARNAME}`` no longer expand -automatically within Python functions. Suppressing expansion was done to -allow Python functions to construct shell scripts or other code for -situations in which you do not want such expressions expanded. For any -existing code that relies on these expansions, you need to change the -expansions to expand the value of individual variables through -``d.getVar()``. To alternatively expand more complex expressions, use -``d.expand()``. - -.. _migration-2.1-overrides-must-now-be-lower-case: - -Overrides Must Now be Lower-Case --------------------------------- - -The convention for overrides has always been for them to be lower-case -characters. This practice is now a requirement as BitBake's datastore -now assumes lower-case characters in order to give a slight performance -boost during parsing. In practical terms, this requirement means that -anything that ends up in :term:`OVERRIDES` must now -appear in lower-case characters (e.g. values for ``MACHINE``, -``TARGET_ARCH``, ``DISTRO``, and also recipe names if -``_pn-``\ recipename overrides are to be effective). - -.. _migration-2.1-expand-parameter-to-getvar-and-getvarflag-now-mandatory: - -Expand Parameter to ``getVar()`` and ``getVarFlag()`` is Now Mandatory ----------------------------------------------------------------------- - -The expand parameter to ``getVar()`` and ``getVarFlag()`` previously -defaulted to False if not specified. Now, however, no default exists so -one must be specified. You must change any ``getVar()`` calls that do -not specify the final expand parameter to calls that do specify the -parameter. You can run the following ``sed`` command at the base of a -layer to make this change:: - - sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *` - sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *` - -.. note:: - - The reason for this change is that it prepares the way for changing - the default to True in a future Yocto Project release. This future - change is a much more sensible default than False. However, the - change needs to be made gradually as a sudden change of the default - would potentially cause side-effects that would be difficult to - detect. - -.. _migration-2.1-makefile-environment-changes: - -Makefile Environment Changes ----------------------------- - -:term:`EXTRA_OEMAKE` now defaults to "" instead of -"-e MAKEFLAGS=". Setting ``EXTRA_OEMAKE`` to "-e MAKEFLAGS=" by default -was a historical accident that has required many classes (e.g. -``autotools``, ``module``) and recipes to override this default in order -to work with sensible build systems. When upgrading to the release, you -must edit any recipe that relies upon this old default by either setting -``EXTRA_OEMAKE`` back to "-e MAKEFLAGS=" or by explicitly setting any -required variable value overrides using ``EXTRA_OEMAKE``, which is -typically only needed when a Makefile sets a default value for a -variable that is inappropriate for cross-compilation using the "=" -operator rather than the "?=" operator. - -.. _migration-2.1-libexecdir-reverted-to-prefix-libexec: - -``libexecdir`` Reverted to ``${prefix}/libexec`` ------------------------------------------------- - -The use of ``${libdir}/${BPN}`` as ``libexecdir`` is different as -compared to all other mainstream distributions, which either uses -``${prefix}/libexec`` or ``${libdir}``. The use is also contrary to the -GNU Coding Standards (i.e. -https://www.gnu.org/prep/standards/html_node/Directory-Variables.html) -that suggest ``${prefix}/libexec`` and also notes that any -package-specific nesting should be done by the package itself. Finally, -having ``libexecdir`` change between recipes makes it very difficult for -different recipes to invoke binaries that have been installed into -``libexecdir``. The Filesystem Hierarchy Standard (i.e. -https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now -recognizes the use of ``${prefix}/libexec/``, giving distributions the -choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without -breaking FHS. - -.. _migration-2.1-ac-cv-sizeof-off-t-no-longer-cached-in-site-files: - -``ac_cv_sizeof_off_t`` is No Longer Cached in Site Files --------------------------------------------------------- - -For recipes inheriting the :ref:`autotools <ref-classes-autotools>` -class, ``ac_cv_sizeof_off_t`` is no longer cached in the site files for -``autoconf``. The reason for this change is because the -``ac_cv_sizeof_off_t`` value is not necessarily static per architecture -as was previously assumed. Rather, the value changes based on whether -large file support is enabled. For most software that uses ``autoconf``, -this change should not be a problem. However, if you have a recipe that -bypasses the standard :ref:`ref-tasks-configure` task -from the ``autotools`` class and the software the recipe is building -uses a very old version of ``autoconf``, the recipe might be incapable -of determining the correct size of ``off_t`` during ``do_configure``. - -The best course of action is to patch the software as necessary to allow -the default implementation from the ``autotools`` class to work such -that ``autoreconf`` succeeds and produces a working configure script, -and to remove the overridden ``do_configure`` task such that the default -implementation does get used. - -.. _migration-2.1-image-generation-split-out-from-filesystem-generation: - -Image Generation is Now Split Out from Filesystem Generation ------------------------------------------------------------- - -Previously, for image recipes the :ref:`ref-tasks-rootfs` -task assembled the filesystem and then from that filesystem generated -images. With this Yocto Project release, image generation is split into -separate :ref:`ref-tasks-image` tasks for clarity both in -operation and in the code. - -For most cases, this change does not present any problems. However, if -you have made customizations that directly modify the ``do_rootfs`` task -or that mention ``do_rootfs``, you might need to update those changes. -In particular, if you had added any tasks after ``do_rootfs``, you -should make edits so that those tasks are after the -:ref:`ref-tasks-image-complete` task rather than -after ``do_rootfs`` so that your added tasks run at the correct -time. - -A minor part of this restructuring is that the post-processing -definitions and functions have been moved from the -:ref:`image <ref-classes-image>` class to the -:ref:`rootfs-postcommands <ref-classes-rootfs*>` class. Functionally, -however, they remain unchanged. - -.. _migration-2.1-removed-recipes: - -Removed Recipes ---------------- - -The following recipes have been removed in the 2.1 release: - -- ``gcc`` version 4.8: Versions 4.9 and 5.3 remain. - -- ``qt4``: All support for Qt 4.x has been moved out to a separate - ``meta-qt4`` layer because Qt 4 is no longer supported upstream. - -- ``x11vnc``: Moved to the ``meta-oe`` layer. - -- ``linux-yocto-3.14``: No longer supported. - -- ``linux-yocto-3.19``: No longer supported. - -- ``libjpeg``: Replaced by the ``libjpeg-turbo`` recipe. - -- ``pth``: Became obsolete. - -- ``liboil``: Recipe is no longer needed and has been moved to the - ``meta-multimedia`` layer. - -- ``gtk-theme-torturer``: Recipe is no longer needed and has been moved - to the ``meta-gnome`` layer. - -- ``gnome-mime-data``: Recipe is no longer needed and has been moved to - the ``meta-gnome`` layer. - -- ``udev``: Replaced by the ``eudev`` recipe for compatibility when - using ``sysvinit`` with newer kernels. - -- ``python-pygtk``: Recipe became obsolete. - -- ``adt-installer``: Recipe became obsolete. See the - ":ref:`ref-manual/migration-2.1:adt removed`" section for more information. - -.. _migration-2.1-class-changes: - -Class Changes -------------- - -The following classes have changed: - -- ``autotools_stage``: Removed because the - :ref:`autotools <ref-classes-autotools>` class now provides its - functionality. Recipes that inherited from ``autotools_stage`` should - now inherit from ``autotools`` instead. - -- ``boot-directdisk``: Merged into the ``image-vm`` class. The - ``boot-directdisk`` class was rarely directly used. Consequently, - this change should not cause any issues. - -- ``bootimg``: Merged into the - :ref:`image-live <ref-classes-image-live>` class. The ``bootimg`` - class was rarely directly used. Consequently, this change should not - cause any issues. - -- ``packageinfo``: Removed due to its limited use by the Hob UI, which - has itself been removed. - -.. _migration-2.1-build-system-ui-changes: - -Build System User Interface Changes ------------------------------------ - -The following changes have been made to the build system user interface: - -- *Hob GTK+-based UI*: Removed because it is unmaintained and based on - the outdated GTK+ 2 library. The Toaster web-based UI is much more - capable and is actively maintained. See the - ":ref:`toaster-manual/setup-and-use:using the toaster web interface`" - section in the Toaster User Manual for more information on this - interface. - -- *"puccho" BitBake UI*: Removed because is unmaintained and no longer - useful. - -.. _migration-2.1-adt-removed: - -ADT Removed ------------ - -The Application Development Toolkit (ADT) has been removed because its -functionality almost completely overlapped with the :ref:`standard -SDK <sdk-manual/using:using the standard sdk>` and the -:ref:`extensible SDK <sdk-manual/extensible:using the extensible sdk>`. For -information on these SDKs and how to build and use them, see the -:doc:`/sdk-manual/index` manual. - -.. note:: - - The Yocto Project Eclipse IDE Plug-in is still supported and is not - affected by this change. - -.. _migration-2.1-poky-reference-distribution-changes: - -Poky Reference Distribution Changes ------------------------------------ - -The following changes have been made for the Poky distribution: - -- The ``meta-yocto`` layer has been renamed to ``meta-poky`` to better - match its purpose, which is to provide the Poky reference - distribution. The ``meta-yocto-bsp`` layer retains its original name - since it provides reference machines for the Yocto Project and it is - otherwise unrelated to Poky. References to ``meta-yocto`` in your - ``conf/bblayers.conf`` should automatically be updated, so you should - not need to change anything unless you are relying on this naming - elsewhere. - -- The :ref:`uninative <ref-classes-uninative>` class is now enabled - by default in Poky. This class attempts to isolate the build system - from the host distribution's C library and makes re-use of native - shared state artifacts across different host distributions practical. - With this class enabled, a tarball containing a pre-built C library - is downloaded at the start of the build. - - The ``uninative`` class is enabled through the - ``meta/conf/distro/include/yocto-uninative.inc`` file, which for - those not using the Poky distribution, can include to easily enable - the same functionality. - - Alternatively, if you wish to build your own ``uninative`` tarball, - you can do so by building the ``uninative-tarball`` recipe, making it - available to your build machines (e.g. over HTTP/HTTPS) and setting a - similar configuration as the one set by ``yocto-uninative.inc``. - -- Static library generation, for most cases, is now disabled by default - in the Poky distribution. Disabling this generation saves some build - time as well as the size used for build output artifacts. - - Disabling this library generation is accomplished through a - ``meta/conf/distro/include/no-static-libs.inc``, which for those not - using the Poky distribution can easily include to enable the same - functionality. - - Any recipe that needs to opt-out of having the "--disable-static" - option specified on the configure command line either because it is - not a supported option for the configure script or because static - libraries are needed should set the following variable:: - - DISABLE_STATIC = "" - -- The separate ``poky-tiny`` distribution now uses the musl C library - instead of a heavily pared down ``glibc``. Using musl results in a - smaller distribution and facilitates much greater maintainability - because musl is designed to have a small footprint. - - If you have used ``poky-tiny`` and have customized the ``glibc`` - configuration you will need to redo those customizations with musl - when upgrading to the new release. - -.. _migration-2.1-packaging-changes: - -Packaging Changes ------------------ - -The following changes have been made to packaging: - -- The ``runuser`` and ``mountpoint`` binaries, which were previously in - the main ``util-linux`` package, have been split out into the - ``util-linux-runuser`` and ``util-linux-mountpoint`` packages, - respectively. - -- The ``python-elementtree`` package has been merged into the - ``python-xml`` package. - -.. _migration-2.1-tuning-file-changes: - -Tuning File Changes -------------------- - -The following changes have been made to the tuning files: - -- The "no-thumb-interwork" tuning feature has been dropped from the ARM - tune include files. Because interworking is required for ARM EABI, - attempting to disable it through a tuning feature no longer makes - sense. - - .. note:: - - Support for ARM OABI was deprecated in gcc 4.7. - -- The ``tune-cortexm*.inc`` and ``tune-cortexr4.inc`` files have been - removed because they are poorly tested. Until the OpenEmbedded build - system officially gains support for CPUs without an MMU, these tuning - files would probably be better maintained in a separate layer if - needed. - -.. _migration-2.1-supporting-gobject-introspection: - -Supporting GObject Introspection --------------------------------- - -This release supports generation of GLib Introspective Repository (GIR) -files through GObject introspection, which is the standard mechanism for -accessing GObject-based software from runtime environments. You can -enable, disable, and test the generation of this data. See the -":ref:`dev-manual/common-tasks:enabling gobject introspection support`" -section in the Yocto Project Development Tasks Manual for more -information. - -.. _migration-2.1-miscellaneous-changes: - -Miscellaneous Changes ---------------------- - -These additional changes exist: - -- The minimum Git version has been increased to 1.8.3.1. If your host - distribution does not provide a sufficiently recent version, you can - install the buildtools, which will provide it. See the - :ref:`ref-manual/system-requirements:required git, tar, python and gcc versions` - section for more information on the buildtools tarball. - -- The buggy and incomplete support for the RPM version 4 package - manager has been removed. The well-tested and maintained support for - RPM version 5 remains. - -- Previously, the following list of packages were removed if - package-management was not in - :term:`IMAGE_FEATURES`, regardless of any - dependencies:: - - update-rc.d - base-passwd - shadow - update-alternatives - run-postinsts - - With the Yocto Project 2.1 release, these packages are - only removed if "read-only-rootfs" is in ``IMAGE_FEATURES``, since - they might still be needed for a read-write image even in the absence - of a package manager (e.g. if users need to be added, modified, or - removed at runtime). - -- The - :ref:`devtool modify <sdk-manual/extensible:use \`\`devtool modify\`\` to modify the source of an existing component>` - command now defaults to extracting the source since that is most - commonly expected. The "-x" or "--extract" options are now no-ops. If - you wish to provide your own existing source tree, you will now need - to specify either the "-n" or "--no-extract" options when running - ``devtool modify``. - -- If the formfactor for a machine is either not supplied or does not - specify whether a keyboard is attached, then the default is to assume - a keyboard is attached rather than assume no keyboard. This change - primarily affects the Sato UI. - -- The ``.debug`` directory packaging is now automatic. If your recipe - builds software that installs binaries into directories other than - the standard ones, you no longer need to take care of setting - ``FILES_${PN}-dbg`` to pick up the resulting ``.debug`` directories - as these directories are automatically found and added. - -- Inaccurate disk and CPU percentage data has been dropped from - ``buildstats`` output. This data has been replaced with - ``getrusage()`` data and corrected IO statistics. You will probably - need to update any custom code that reads the ``buildstats`` data. - -- The ``meta/conf/distro/include/package_regex.inc`` is now deprecated. - The contents of this file have been moved to individual recipes. - - .. note:: - - Because this file will likely be removed in a future Yocto Project - release, it is suggested that you remove any references to the - file that might be in your configuration. - -- The ``v86d/uvesafb`` has been removed from the ``genericx86`` and - ``genericx86-64`` reference machines, which are provided by the - ``meta-yocto-bsp`` layer. Most modern x86 boards do not rely on this - file and it only adds kernel error messages during startup. If you do - still need to support ``uvesafb``, you can simply add ``v86d`` to - your image. - -- Build sysroot paths are now removed from debug symbol files. Removing - these paths means that remote GDB using an unstripped build system - sysroot will no longer work (although this was never documented to - work). The supported method to accomplish something similar is to set - ``IMAGE_GEN_DEBUGFS`` to "1", which will generate a companion debug - image containing unstripped binaries and associated debug sources - alongside the image. - - |