summaryrefslogtreecommitdiff
path: root/poky/documentation/migration-guides/migration-2.3.rst
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-06-25 22:25:14 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-06-28 15:35:59 +0300
commit0903674e2d7bafcf89cf75adbcf34cac5ce4b938 (patch)
treec46ac7b80c4e559224df62f95931ed8a2ab51435 /poky/documentation/migration-guides/migration-2.3.rst
parenta1a6aefba3ae965f2447b102663b2a6a40aa968a (diff)
downloadopenbmc-0903674e2d7bafcf89cf75adbcf34cac5ce4b938.tar.xz
poky: subtree update:9d1b332292..2834c2f853
Alex Stewart (3): opkg-utils: upgrade to version 0.4.5 opkg: upgrade to version 0.4.5 opkg: add QA check for openssl feed verification Alexander Kanavin (37): virglrenderer: explicitly depend on libgbm elfutils: update 0.183 -> 0.185 libcap: update 2.49 -> 2.50 perl: split perl-cross into its own recipe perl-cross: 1.3.5 -> 1.3.6 perl: update 5.32.1 -> 5.34.0 libgcrypt: upgrade 1.9.2 -> 1.9.3 erofs-utils: correct upstream version check m4: correct ptest failures ovmf: update 2021.02 -> 2021.05 apt: update 2.2.3 -> 2.2.4 util-linux: update 2.36.2 -> 2.37 cross-canadian: correct the location of pkg-config files nettle: update 3.7.2 -> 3.7.3 glib-2.0: update 2.68.2 -> 2.68.3 meson: upgrade 0.58.0 -> 0.58.1 ell: upgrade 0.40 -> 0.41 erofs-utils: upgrade 1.2.1 -> 1.3 grub: upgrade 2.04+2.06~rc1 -> 2.06 gptfdisk: upgrade 1.0.7 -> 1.0.8 connman: update 1.39 -> 1.40 libksba: upgrade 1.5.1 -> 1.6.0 libnss-mdns: upgrade 0.15 -> 0.15.1 libwpe: upgrade 1.10.0 -> 1.10.1 puzzles: upgrade to latest revision rng-tools: upgrade 6.12 -> 6.13 stress-ng: upgrade 0.12.09 -> 0.12.10 python3-magic: upgrade 0.4.23 -> 0.4.24 sudo: upgrade 1.9.7 -> 1.9.7p1 wpebackend-fdo: upgrade 1.8.4 -> 1.10.0 xkeyboard-config: upgrade 2.32 -> 2.33 bitbake.conf: enable debuginfod in native/nativesdk gdb-cross: enable debuginfod util-linux: backport a patch to address mkswap hangs selftest: do not hardcode /tmp/sdk glibc: do not enable memory tagging on aarch64 just yet mesa: enable gallium intel drivers when building for x86 Alexandre Belloni (1): runqemu: time the copy to tmpfs Alexey Brodkin (3): gcc: Fixes for ARC gdb: Add native GDB support for ARC gcc: Apply multilib fix to ARC as well Alistair Francis (3): recipes-bsp/opensbi: Disable FW_PIC recipes-bsp/u-boot: Allow deploying the u-boot DTB recipes-bsp/opensbi: Add support for specifying a device tree Anders Wallin (1): coreutils: remove NOSTAT_LEAF_OPTIMIZATION Andrea Adami (1): kernel.bbclass: fix do_sizecheck() comparison Andreas Müller (19): mesa: upgrade 21.1.1 -> 21.1.2 systemd: Add more ugly casts to fix build with musl alsa-lib: upgrade 1.2.4 -> 1.2.5 alsa-plugins: upgrade 1.2.2 -> 1.2.5 alsa-tools: upgrade 1.2.2 -> 1.2.5 alsa-topology-conf: upgrade 1.2.4 -> 1.2.5 alsa-ucm-conf: upgrade 1.2.4 -> 1.2.5 alsa-utils(-scripts): upgrade 1.2.4 -> 1.2.5 libinput: upgrade 1.17.3 -> 1.18.0 xf86-input-libinput: upgrade 0.30.0 -> 1.0.1 epiphany: upgrade 40.1 -> 40.2 vala: upgrade 0.52.3 -> 0.52.4 p11-kit: upgrade 0.23.22 -> 0.23.24 xorgproto: upgrade 2021.4.99.1 -> 2021.4.99.2 mpg123: 1.27.2 -> 1.28.0 libx11: upgrade 1.7.1 -> 1.7.2 libx11: remove CPPFLAGS_FOR_BUILD += "-D_GNU_SOURCE" libpcap: upgrade 1.10.0 -> 1.10.1 mesa: upgrade 21.1.2 -> 21.1.3 Bruce Ashfield (10): linux-yocto/5.10: update to v5.10.42 linux-yocto/5.10: temporarily revert aufs linux-yocto-dev: base AUTOREV on specified version linux-yocto/5.4: update to v5.4.124 linux-yocto/5.10: restore aufs linux-yocto/5.10: update to v5.10.43 linux-yocto/5.4: update to v5.4.125 linux-yocto/5.10: cgroup1: fix leaked context root causing sporadic NULL deref in LTP btrfs-tools: include linux/const.h to fix build with 5.12+ headers bsps/5.10: update to v5.10.43 Changqing Li (1): libjpeg-turbo: fix do_compile error on arm Chris Laplante (1): bitbake: build: warn on setting noexec/nostamp/fakeroot flag to any value besides '1' Daniel Wagenknecht (5): ref-manual: variables: update examples refering to DEPLOY_DIR_IMAGE ref-manual: variables: document IMGDEPLOYDIR ref-manual: migration-2.2: add note about IMGDEPLOYDIR ref-manual: variables: fixup example in IMAGE_CMD ref-manual: variables: fixup class reference in IMAGE_MANIFEST Joe Slater (1): tcf-agent: change license to EPL/EDL Joshua Watt (2): classes/buildhistory: Add option to strip path prefix classes/reproducible_build: Use atomic rename for SDE file Justin Bronder (1): populate_sdk_ext: copy BBMULTICONFIG files Kai Kang (1): valgrind: fix a typo Khem Raj (14): harfbuzz: Fix unused-variable warning arch-armv4: Allow -march=armv4 ffmpeg: Link in libatomic on riscv32 libssp-nonshared: Use a different implementation for __stack_chk_fail qemuriscv: Enable 4 core emulation gcompat: Add recipe musl: Do not package glibc loader musl: Set UPSTREAM_CHECK_COMMITS Revert "libgcc-initial: Do not build fp128 to decimal ppc functions" qemu: Provide float128 via hwcaps2 on ppc64le linuxloader: Be aware of riscv32 ldso linuxloader.bbclass: Add entry for ppc64 LE glibc loader gcompat: Create symlinks to glibc ldso locations sdk: Enable do_populate_sdk with multilibs Luca Boccassi (1): systemd: install new sysext tool via systemd-extra-utils Marcus Comstedt (1): conf/machine-sdk: Add ppc64 SDK machine Matt Spencer (1): systemd-conf: Prevent systemd-network from managing veth interfaces Michael Halstead (1): releases: update to include 3.1.8 Michael Opdenacker (12): bitbake: docs: Add BB_HASHSERVE definition to glossary bitbake: doc: bitbake-user-manual: fix erroneous statement in glossary intro manuals: fix epub export warnings ref-manual: move migration guides to separate document releases: clarify supported and outdated releases releases: put release number after "Release Series" sdk-manual: fix broken references migration guides: remove index reference to BB_SETSCENE_VERIFY_FUNCTION2 manuals: fix issues related to trailing dots sdk-manual: add missing quoting around "devtool upgrade" sdk-manual: fix wrong word sdk-manual: add missing index references Ming Liu (2): u-boot-tools: fix a mkimage signature issue uboot-sign.bbclass: fix some install commands Mingli Yu (2): sysstat: make the service start automatically boost: fix wrong type for mutex in regex v5 Nicolas Dechesne (3): index: remove the link/section to 'mega manual' from main page index: remove links to releases manual and index index: split releases manuals and indexes into two sections in the tree Paul Barker (2): bitbake: asyncrpc: Add ping method bitbake: asyncrpc: Reduce verbosity Quentin Schulz (6): docs: ref-manual: migration-3.0: remove reference to non-existing BB_SETSCENE_VERIFY_FUNCTION2 docs: ref-manual: variables: add missing links to terms glossary bitbake: doc: user-manual: remove mentions to BBVERSIONS bitbake: doc: user-manual: ref-manual: remove mentions to BB_SETSCENE_VERIFY_FUNCTION2 documentation: Makefile: turn warnings into errors by default docs: replace ``FOO`` by :term:`FOO` where possible Richard Purdie (11): lttng-tools: upgrade 2.12.3 -> 2.12.4 qemurunner: Try to ensure mmap'd libs are paged in qemurunner: Increase startup timeout 120 -> 300 build-appliance-image: Update to master head revision test-manual: add initial reproducible builds documentation test-manual: Add initial YP Compatible documentation README: Tweak as the website isn't really new now README: Move to using markdown as the format perf: Use python3targetconfig to ensure we use target libraries ltp: Reinstate 'hanging' tests for evaluation README.poky: Formatting and content cleanup Richard Weinberger (1): Document erofs filesystem targets Robert P. J. Day (2): ref-manual: add SRCTREECOVEREDTASKS to variable glossary ref-manual: add glossary entry for NON_MULTILIB_RECIPES Ross Burton (11): mx: remove from Openembedded Core core-image-weston: remove Clutter examples Remove Clutter and Cogl oeqa: remove Clutter usage meta-poky: remove clutter references Remove Clutter references gcc: enable branch protection by standard image_types: add zsync conversions avahi: apply fix for CVE-2021-3468 qemu: fix virtio vhost-user-gpu CVEs gcc: replace gdb helper install revert with the upstream fix Sakib Sajal (3): oeqa/core/target/qemu.py: display contents of dumped files oe-time-dd-test.sh: improve output formatting oe-time-dd-test.sh: add iostat command Saul Wold (1): qemurunner: add second qmp port Scott Weaver (1): bitbake: fetch2: add check for empty SRC_URI hash string Tim Orling (8): maintainers.inc: update email address python3-scons: upgrade 3.1.2 -> 4.1.0; simplify python3-hypothesis: upgrade 6.13.7 -> 6.13.14 at-spi2-core: upgrade 2.40.1 -> 2.40.2 python3-importlib-metadata: upgrade 4.4.0 -> 4.5.0 python3-manifest: add statistics subpackage python3-hypothesis: upgrade 6.13.14 -> 6.14.0 python3: skip tests requiring tools-sdk Tony Battersby (1): glibc: fix path to place zdump in the tzcode package Tony Tascioglu (3): valgrind: Improve non-deterministic ptest reliability valgrind: remove buggy ptest from arm64 valgrind: Actually install list of non-deterministic ptests hongxu (1): nativesdk-libdnf: fix installed and not shipped files wangmy (21): cmake: upgrade 3.20.2 -> 3.20.3 mtools: upgrade 4.0.27 -> 4.0.29 python3-magic: upgrade 0.4.22 -> 0.4.23 less: upgrade 586 -> 589 python3-libarchive-c: upgrade 3.0 -> 3.1 diffoscope: upgrade 175 -> 177 dtc: upgrade 1.6.0 -> 1.6.1 git: upgrade 2.31.1 -> 2.32.0 gnutls: upgrade 3.7.1 -> 3.7.2 go: upgrade 1.16.4 -> 1.16.5 less: upgrade 589 -> 590 ethtool: upgrade 5.10 -> 5.12 m4: upgrade 1.4.18 -> 1.4.19 alsa-lib: upgrade 1.2.5 -> 1.2.5.1 alsa-utils: upgrade 1.2.5 -> 1.2.5.1 alsa-topology-conf: upgrade 1.2.5 -> 1.2.5.1 alsa-ucm-conf: upgrade 1.2.5 -> 1.2.5.1 blktrace: upgrade 1.2.0 -> 1.3.0 enchant2: upgrade 2.2.15 -> 2.3.0 librepo: upgrade 1.14.0 -> 1.14.1 createrepo-c: upgrade 0.17.2 -> 0.17.3 zangrc (1): python3-pycairo: upgrade 1.20.0 -> 1.20.1 zhengruoqin (6): python3-importlib-metadata: upgrade 4.3.0 -> 4.4.0 libogg: upgrade 1.3.4 -> 1.3.5 liburcu: upgrade 0.12.2 -> 0.13.0 libcomps: upgrade 0.1.16 -> 0.1.17 python3-dbusmock: upgrade 0.23.0 -> 0.23.1 nfs-utils: upgrade 2.5.3 -> 2.5.4 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: Iac124e214336beb9cab7fb3b67a6968d4e34d06f
Diffstat (limited to 'poky/documentation/migration-guides/migration-2.3.rst')
-rw-r--r--poky/documentation/migration-guides/migration-2.3.rst517
1 files changed, 517 insertions, 0 deletions
diff --git a/poky/documentation/migration-guides/migration-2.3.rst b/poky/documentation/migration-guides/migration-2.3.rst
new file mode 100644
index 000000000..886d579f9
--- /dev/null
+++ b/poky/documentation/migration-guides/migration-2.3.rst
@@ -0,0 +1,517 @@
+Release 2.3 (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 :term:`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 :term:`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 :term:`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 :term:`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"
+ :term:`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
+ :term:`DISTRO_FEATURES` value instead of sharing the value used by
+ recipes for the target, in order to avoid unnecessary rebuilds.
+
+ The :term:`DISTRO_FEATURES` for ``native`` recipes is
+ :term:`DISTRO_FEATURES_NATIVE` added to
+ an intersection of :term:`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.
+
+