summaryrefslogtreecommitdiff
path: root/poky/documentation/ref-manual/migration-2.3.rst
diff options
context:
space:
mode:
Diffstat (limited to 'poky/documentation/ref-manual/migration-2.3.rst')
-rw-r--r--poky/documentation/ref-manual/migration-2.3.rst517
1 files changed, 0 insertions, 517 deletions
diff --git a/poky/documentation/ref-manual/migration-2.3.rst b/poky/documentation/ref-manual/migration-2.3.rst
deleted file mode 100644
index dfbda612a..000000000
--- a/poky/documentation/ref-manual/migration-2.3.rst
+++ /dev/null
@@ -1,517 +0,0 @@
-Moving to the Yocto Project 2.3 Release (pyro)
-==============================================
-
-This section provides migration information for moving to the Yocto
-Project 2.3 Release (codename "pyro") from the prior release.
-
-.. _migration-2.3-recipe-specific-sysroots:
-
-Recipe-specific Sysroots
-------------------------
-
-The OpenEmbedded build system now uses one sysroot per recipe to resolve
-long-standing issues with configuration script auto-detection of
-undeclared dependencies. Consequently, you might find that some of your
-previously written custom recipes are missing declared dependencies,
-particularly those dependencies that are incidentally built earlier in a
-typical build process and thus are already likely to be present in the
-shared sysroot in previous releases.
-
-Consider the following:
-
-- *Declare Build-Time Dependencies:* Because of this new feature, you
- must explicitly declare all build-time dependencies for your recipe.
- If you do not declare these dependencies, they are not populated into
- the sysroot for the recipe.
-
-- *Specify Pre-Installation and Post-Installation Native Tool
- Dependencies:* You must specifically specify any special native tool
- dependencies of ``pkg_preinst`` and ``pkg_postinst`` scripts by using
- the :term:`PACKAGE_WRITE_DEPS` variable.
- Specifying these dependencies ensures that these tools are available
- if these scripts need to be run on the build host during the
- :ref:`ref-tasks-rootfs` task.
-
- As an example, see the ``dbus`` recipe. You will see that this recipe
- has a ``pkg_postinst`` that calls ``systemctl`` if "systemd" is in
- :term:`DISTRO_FEATURES`. In the example,
- ``systemd-systemctl-native`` is added to ``PACKAGE_WRITE_DEPS``,
- which is also conditional on "systemd" being in ``DISTRO_FEATURES``.
-
-- Examine Recipes that Use ``SSTATEPOSTINSTFUNCS``: You need to
- examine any recipe that uses ``SSTATEPOSTINSTFUNCS`` and determine
- steps to take.
-
- Functions added to ``SSTATEPOSTINSTFUNCS`` are still called as they
- were in previous Yocto Project releases. However, since a separate
- sysroot is now being populated for every recipe and if existing
- functions being called through ``SSTATEPOSTINSTFUNCS`` are doing
- relocation, then you will need to change these to use a
- post-installation script that is installed by a function added to
- :term:`SYSROOT_PREPROCESS_FUNCS`.
-
- For an example, see the ``pixbufcache`` class in ``meta/classes/`` in
- the :ref:`overview-manual/development-environment:yocto project source repositories`.
-
- .. note::
-
- The
- SSTATEPOSTINSTFUNCS
- variable itself is now deprecated in favor of the
- do_populate_sysroot[postfuncs]
- task. Consequently, if you do still have any function or functions
- that need to be called after the sysroot component is created for
- a recipe, then you would be well advised to take steps to use a
- post installation script as described previously. Taking these
- steps prepares your code for when
- SSTATEPOSTINSTFUNCS
- is removed in a future Yocto Project release.
-
-- *Specify the Sysroot when Using Certain External Scripts:* Because
- the shared sysroot is now gone, the scripts
- ``oe-find-native-sysroot`` and ``oe-run-native`` have been changed
- such that you need to specify which recipe's
- :term:`STAGING_DIR_NATIVE` is used.
-
-.. note::
-
- You can find more information on how recipe-specific sysroots work in
- the ":ref:`ref-classes-staging`" section.
-
-.. _migration-2.3-path-variable:
-
-``PATH`` Variable
------------------
-
-Within the environment used to run build tasks, the environment variable
-``PATH`` is now sanitized such that the normal native binary paths
-(``/bin``, ``/sbin``, ``/usr/bin`` and so forth) are removed and a
-directory containing symbolic links linking only to the binaries from
-the host mentioned in the :term:`HOSTTOOLS` and
-:term:`HOSTTOOLS_NONFATAL` variables is added
-to ``PATH``.
-
-Consequently, any native binaries provided by the host that you need to
-call needs to be in one of these two variables at the configuration
-level.
-
-Alternatively, you can add a native recipe (i.e. ``-native``) that
-provides the binary to the recipe's :term:`DEPENDS`
-value.
-
-.. note::
-
- PATH
- is not sanitized in the same way within ``devshell``.
- If it were, you would have difficulty running host tools for
- development and debugging within the shell.
-
-.. _migration-2.3-scripts:
-
-Changes to Scripts
-------------------
-
-The following changes to scripts took place:
-
-- ``oe-find-native-sysroot``: The usage for the
- ``oe-find-native-sysroot`` script has changed to the following::
-
- $ . oe-find-native-sysroot recipe
-
- You must now supply a recipe for recipe
- as part of the command. Prior to the Yocto Project 2.3 release, it
- was not necessary to provide the script with the command.
-
-- ``oe-run-native``: The usage for the ``oe-run-native`` script has
- changed to the following::
-
- $ oe-run-native native_recipe tool
-
- You must
- supply the name of the native recipe and the tool you want to run as
- part of the command. Prior to the Yocto Project 2.3 release, it
- was not necessary to provide the native recipe with the command.
-
-- ``cleanup-workdir``: The ``cleanup-workdir`` script has been
- removed because the script was found to be deleting files it should
- not have, which lead to broken build trees. Rather than trying to
- delete portions of :term:`TMPDIR` and getting it wrong,
- it is recommended that you delete ``TMPDIR`` and have it restored
- from shared state (sstate) on subsequent builds.
-
-- ``wipe-sysroot``: The ``wipe-sysroot`` script has been removed as
- it is no longer needed with recipe-specific sysroots.
-
-.. _migration-2.3-functions:
-
-Changes to Functions
---------------------
-
-The previously deprecated ``bb.data.getVar()``, ``bb.data.setVar()``,
-and related functions have been removed in favor of ``d.getVar()``,
-``d.setVar()``, and so forth.
-
-You need to fix any references to these old functions.
-
-.. _migration-2.3-bitbake-changes:
-
-BitBake Changes
----------------
-
-The following changes took place for BitBake:
-
-- *BitBake's Graphical Dependency Explorer UI Replaced:* BitBake's
- graphical dependency explorer UI ``depexp`` was replaced by
- ``taskexp`` ("Task Explorer"), which provides a graphical way of
- exploring the ``task-depends.dot`` file. The data presented by Task
- Explorer is much more accurate than the data that was presented by
- ``depexp``. Being able to visualize the data is an often requested
- feature as standard ``*.dot`` file viewers cannot usual cope with the
- size of the ``task-depends.dot`` file.
-
-- *BitBake "-g" Output Changes:* The ``package-depends.dot`` and
- ``pn-depends.dot`` files as previously generated using the
- ``bitbake -g`` command have been removed. A ``recipe-depends.dot``
- file is now generated as a collapsed version of ``task-depends.dot``
- instead.
-
- The reason for this change is because ``package-depends.dot`` and
- ``pn-depends.dot`` largely date back to a time before task-based
- execution and do not take into account task-level dependencies
- between recipes, which could be misleading.
-
-- *Mirror Variable Splitting Changes:* Mirror variables including
- :term:`MIRRORS`, :term:`PREMIRRORS`,
- and :term:`SSTATE_MIRRORS` can now separate
- values entirely with spaces. Consequently, you no longer need "\\n".
- BitBake looks for pairs of values, which simplifies usage. There
- should be no change required to existing mirror variable values
- themselves.
-
-- *The Subversion (SVN) Fetcher Uses an "ssh" Parameter and Not an
- "rsh" Parameter:* The SVN fetcher now takes an "ssh" parameter
- instead of an "rsh" parameter. This new optional parameter is used
- when the "protocol" parameter is set to "svn+ssh". You can only use
- the new parameter to specify the ``ssh`` program used by SVN. The SVN
- fetcher passes the new parameter through the ``SVN_SSH`` environment
- variable during the :ref:`ref-tasks-fetch` task.
-
- See the ":ref:`bitbake:bitbake-user-manual/bitbake-user-manual-fetching:subversion (svn) fetcher (\`\`svn://\`\`)`"
- section in the BitBake
- User Manual for additional information.
-
-- ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2``
- Removed: Because the mechanism they were part of is no longer
- necessary with recipe-specific sysroots, the
- ``BB_SETSCENE_VERIFY_FUNCTION`` and ``BB_SETSCENE_VERIFY_FUNCTION2``
- variables have been removed.
-
-.. _migration-2.3-absolute-symlinks:
-
-Absolute Symbolic Links
------------------------
-
-Absolute symbolic links (symlinks) within staged files are no longer
-permitted and now trigger an error. Any explicit creation of symlinks
-can use the ``lnr`` script, which is a replacement for ``ln -r``.
-
-If the build scripts in the software that the recipe is building are
-creating a number of absolute symlinks that need to be corrected, you
-can inherit ``relative_symlinks`` within the recipe to turn those
-absolute symlinks into relative symlinks.
-
-.. _migration-2.3-gplv2-and-gplv3-moves:
-
-GPLv2 Versions of GPLv3 Recipes Moved
--------------------------------------
-
-Older GPLv2 versions of GPLv3 recipes have moved to a separate
-``meta-gplv2`` layer.
-
-If you use :term:`INCOMPATIBLE_LICENSE` to
-exclude GPLv3 or set :term:`PREFERRED_VERSION`
-to substitute a GPLv2 version of a GPLv3 recipe, then you must add the
-``meta-gplv2`` layer to your configuration.
-
-.. note::
-
- You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at
- :oe_layer:`/meta-gplv2`.
-
-These relocated GPLv2 recipes do not receive the same level of
-maintenance as other core recipes. The recipes do not get security fixes
-and upstream no longer maintains them. In fact, the upstream community
-is actively hostile towards people that use the old versions of the
-recipes. Moving these recipes into a separate layer both makes the
-different needs of the recipes clearer and clearly identifies the number
-of these recipes.
-
-.. note::
-
- The long-term solution might be to move to BSD-licensed replacements
- of the GPLv3 components for those that need to exclude GPLv3-licensed
- components from the target system. This solution will be investigated
- for future Yocto Project releases.
-
-.. _migration-2.3-package-management-changes:
-
-Package Management Changes
---------------------------
-
-The following package management changes took place:
-
-- Smart package manager is replaced by DNF package manager. Smart has
- become unmaintained upstream, is not ported to Python 3.x.
- Consequently, Smart needed to be replaced. DNF is the only feasible
- candidate.
-
- The change in functionality is that the on-target runtime package
- management from remote package feeds is now done with a different
- tool that has a different set of command-line options. If you have
- scripts that call the tool directly, or use its API, they need to be
- fixed.
-
- For more information, see the `DNF
- Documentation <https://dnf.readthedocs.io/en/latest/>`__.
-
-- Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons:
-
- - DNF is API-incompatible with Rpm 5.x and porting it and
- maintaining the port is non-trivial.
-
- - Rpm 5.x itself has limited maintenance upstream, and the Yocto
- Project is one of the very few remaining users.
-
-- Berkeley DB 6.x is removed and Berkeley DB 5.x becomes the default:
-
- - Version 6.x of Berkeley DB has largely been rejected by the open
- source community due to its AGPLv3 license. As a result, most
- mainstream open source projects that require DB are still
- developed and tested with DB 5.x.
-
- - In OE-core, the only thing that was requiring DB 6.x was Rpm 5.x.
- Thus, no reason exists to continue carrying DB 6.x in OE-core.
-
-- ``createrepo`` is replaced with ``createrepo_c``.
-
- ``createrepo_c`` is the current incarnation of the tool that
- generates remote repository metadata. It is written in C as compared
- to ``createrepo``, which is written in Python. ``createrepo_c`` is
- faster and is maintained.
-
-- Architecture-independent RPM packages are "noarch" instead of "all".
-
- This change was made because too many places in DNF/RPM4 stack
- already make that assumption. Only the filenames and the architecture
- tag has changed. Nothing else has changed in OE-core system,
- particularly in the :ref:`allarch.bbclass <ref-classes-allarch>`
- class.
-
-- Signing of remote package feeds using ``PACKAGE_FEED_SIGN`` is not
- currently supported. This issue will be fully addressed in a future
- Yocto Project release. See :yocto_bugs:`defect 11209 </show_bug.cgi?id=11209>`
- for more information on a solution to package feed signing with RPM
- in the Yocto Project 2.3 release.
-
-- OPKG now uses the libsolv backend for resolving package dependencies
- by default. This is vastly superior to OPKG's internal ad-hoc solver
- that was previously used. This change does have a small impact on
- disk (around 500 KB) and memory footprint.
-
- .. note::
-
- For further details on this change, see the
- :yocto_git:`commit message </poky/commit/?id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81>`.
-
-.. _migration-2.3-removed-recipes:
-
-Removed Recipes
----------------
-
-The following recipes have been removed:
-
-- ``linux-yocto 4.8``: Version 4.8 has been removed. Versions 4.1
- (LTSI), 4.4 (LTS), 4.9 (LTS/LTSI) and 4.10 are now present.
-
-- ``python-smartpm``: Functionally replaced by ``dnf``.
-
-- ``createrepo``: Replaced by the ``createrepo-c`` recipe.
-
-- ``rpmresolve``: No longer needed with the move to RPM 4 as RPM
- itself is used instead.
-
-- ``gstreamer``: Removed the GStreamer Git version recipes as they
- have been stale. ``1.10.``\ x recipes are still present.
-
-- ``alsa-conf-base``: Merged into ``alsa-conf`` since ``libasound``
- depended on both. Essentially, no way existed to install only one of
- these.
-
-- ``tremor``: Moved to ``meta-multimedia``. Fixed-integer Vorbis
- decoding is not needed by current hardware. Thus, GStreamer's ivorbis
- plugin has been disabled by default eliminating the need for the
- ``tremor`` recipe in :term:`OpenEmbedded-Core (OE-Core)`.
-
-- ``gummiboot``: Replaced by ``systemd-boot``.
-
-.. _migration-2.3-wic-changes:
-
-Wic Changes
------------
-
-The following changes have been made to Wic:
-
-.. note::
-
- For more information on Wic, see the
- ":ref:`dev-manual/common-tasks:creating partitioned images using wic`"
- section in the Yocto Project Development Tasks Manual.
-
-- *Default Output Directory Changed:* Wic's default output directory is
- now the current directory by default instead of the unusual
- ``/var/tmp/wic``.
-
- The "-o" and "--outdir" options remain unchanged and are used to
- specify your preferred output directory if you do not want to use the
- default directory.
-
-- *fsimage Plug-in Removed:* The Wic fsimage plugin has been removed as
- it duplicates functionality of the rawcopy plugin.
-
-.. _migration-2.3-qa-changes:
-
-QA Changes
-----------
-
-The following QA checks have changed:
-
-- ``unsafe-references-in-binaries``: The
- ``unsafe-references-in-binaries`` QA check, which was disabled by
- default, has now been removed. This check was intended to detect
- binaries in ``/bin`` that link to libraries in ``/usr/lib`` and have
- the case where the user has ``/usr`` on a separate filesystem to
- ``/``.
-
- The removed QA check was buggy. Additionally, ``/usr`` residing on a
- separate partition from ``/`` is now a rare configuration.
- Consequently, ``unsafe-references-in-binaries`` was removed.
-
-- ``file-rdeps``: The ``file-rdeps`` QA check is now an error by
- default instead of a warning. Because it is an error instead of a
- warning, you need to address missing runtime dependencies.
-
- For additional information, see the
- :ref:`insane <ref-classes-insane>` class and the
- ":ref:`ref-manual/qa-checks:errors and warnings`" section.
-
-.. _migration-2.3-miscellaneous-changes:
-
-Miscellaneous Changes
----------------------
-
-The following miscellaneous changes have occurred:
-
-- In this release, a number of recipes have been changed to ignore the
- ``largefile`` :term:`DISTRO_FEATURES` item,
- enabling large file support unconditionally. This feature has always
- been enabled by default. Disabling the feature has not been widely
- tested.
-
- .. note::
-
- Future releases of the Yocto Project will remove entirely the
- ability to disable the
- largefile
- feature, which would make it unconditionally enabled everywhere.
-
-- If the :term:`DISTRO_VERSION` value contains
- the value of the :term:`DATE` variable, which is the
- default between Poky releases, the ``DATE`` value is explicitly
- excluded from ``/etc/issue`` and ``/etc/issue.net``, which is
- displayed at the login prompt, in order to avoid conflicts with
- Multilib enabled. Regardless, the ``DATE`` value is inaccurate if the
- ``base-files`` recipe is restored from shared state (sstate) rather
- than rebuilt.
-
- If you need the build date recorded in ``/etc/issue*`` or anywhere
- else in your image, a better method is to define a post-processing
- function to do it and have the function called from
- :term:`ROOTFS_POSTPROCESS_COMMAND`.
- Doing so ensures the value is always up-to-date with the created
- image.
-
-- Dropbear's ``init`` script now disables DSA host keys by default.
- This change is in line with the systemd service file, which supports
- RSA keys only, and with recent versions of OpenSSH, which deprecates
- DSA host keys.
-
-- The :ref:`buildhistory <ref-classes-buildhistory>` class now
- correctly uses tabs as separators between all columns in
- ``installed-package-sizes.txt`` in order to aid import into other
- tools.
-
-- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig"
- ``DISTRO_FEATURES`` feature. Distributions that previously set::
-
- USE_LDCONFIG = "0"
-
- should now instead use the following::
-
- DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
-
-- The default value of
- :term:`COPYLEFT_LICENSE_INCLUDE` now
- includes all versions of AGPL licenses in addition to GPL and LGPL.
-
- .. note::
-
- The default list is not intended to be guaranteed as a complete
- safe list. You should seek legal advice based on what you are
- distributing if you are unsure.
-
-- Kernel module packages are now suffixed with the kernel version in
- order to allow module packages from multiple kernel versions to
- co-exist on a target system. If you wish to return to the previous
- naming scheme that does not include the version suffix, use the
- following::
-
- KERNEL_MODULE_PACKAGE_SUFFIX = ""
-
-- Removal of ``libtool`` ``*.la`` files is now enabled by default. The
- ``*.la`` files are not actually needed on Linux and relocating them
- is an unnecessary burden.
-
- If you need to preserve these ``.la`` files (e.g. in a custom
- distribution), you must change
- :term:`INHERIT_DISTRO` such that
- "remove-libtool" is not included in the value.
-
-- Extensible SDKs built for GCC 5+ now refuse to install on a
- distribution where the host GCC version is 4.8 or 4.9. This change
- resulted from the fact that the installation is known to fail due to
- the way the ``uninative`` shared state (sstate) package is built. See
- the :ref:`uninative <ref-classes-uninative>` class for additional
- information.
-
-- All native and nativesdk recipes now use a separate
- ``DISTRO_FEATURES`` value instead of sharing the value used by
- recipes for the target, in order to avoid unnecessary rebuilds.
-
- The ``DISTRO_FEATURES`` for ``native`` recipes is
- :term:`DISTRO_FEATURES_NATIVE` added to
- an intersection of ``DISTRO_FEATURES`` and
- :term:`DISTRO_FEATURES_FILTER_NATIVE`.
-
- For nativesdk recipes, the corresponding variables are
- :term:`DISTRO_FEATURES_NATIVESDK`
- and
- :term:`DISTRO_FEATURES_FILTER_NATIVESDK`.
-
-- The ``FILESDIR`` variable, which was previously deprecated and rarely
- used, has now been removed. You should change any recipes that set
- ``FILESDIR`` to set :term:`FILESPATH` instead.
-
-- The ``MULTIMACH_HOST_SYS`` variable has been removed as it is no
- longer needed with recipe-specific sysroots.
-
-