diff --git a/documentation/ref-manual/migration.xml b/documentation/ref-manual/migration.xml
index f7b22d7cb6..b0e8eae1e0 100644
--- a/documentation/ref-manual/migration.xml
+++ b/documentation/ref-manual/migration.xml
@@ -3057,8 +3057,7 @@
and the
extensible SDK.
For information on these SDKs and how to build and use them, see the
- Yocto Project Application Development and the Extensible Software Development Kit (eSDK)
- manual.
+ Yocto Project Software Development Kit (SDK) Developer's Guide.
The Yocto Project Eclipse IDE Plug-in is still supported and
is not affected by this change.
@@ -4722,6 +4721,530 @@ id=f4d4f99cfbc2396e49c1613a7d237b9e57f06f81'>commit message.
+
+
+ Moving to the Yocto Project 2.4 Release
+
+
+ This section provides migration information for moving to the
+ Yocto Project 2.4 Release from the prior release.
+
+
+
+ Memory Resident Mode
+
+
+ A persistent mode is now available in BitBake's default operation,
+ replacing its previous "memory resident mode" (i.e.
+ oe-init-build-env-memres).
+ Now you only need to set
+ BB_SERVER_TIMEOUT to a timeout
+ (in seconds) and BitBake's server stays resident for that
+ amount of time between invocations.
+ The oe-init-build-env-memres script has been
+ removed which means a separate environment setup script is no longer
+ needed.
+
+
+
+
+ Packaging Changes
+
+
+ This section provides information about packaging changes that have
+ ocurred:
+
+
+ python3 Changes:
+
+
+ The main "python3" package now brings in all of the
+ standard Python 3 distributions rather than a subset.
+ This behavior matches what is expected based on
+ traditional Linux distributions.
+ If you wish to install a subset of Python 3, specify
+ python-core plus one or more of
+ the individual packages that are still produced.
+
+
+ python3:
+ The bz2.py,
+ lzma.py, and
+ _compression.py scripts have
+ been moved from the
+ python3-misc package to
+ the python3-compression package.
+
+
+
+
+ binutils:
+ The libbfd package is now packaged in
+ a separate "libbfd" package.
+ This packaging saves space when certain tools
+ (e.g. perf) are installed.
+ In such cases, the tools only need
+ libbfd rather than all the packages in
+ binutils.
+
+
+ util-linux Changes:
+
+
+ The su package is now packaged
+ in a separate "util-linux-su" package, which is only
+ built when "pam" is listed in the
+ DISTRO_FEATURES
+ variable.
+ util-linux should not be
+ installed unless it is needed because
+ su is normally provided through
+ the shadow file format.
+ The main util-linux package has
+ runtime dependencies (i.e.
+ RDEPENDS)
+ on the util-linux package when
+ "pam" is in
+ DISTRO_FEATURES.
+
+
+ The switch_root package is now
+ packaged in a separate "util-linux-switch-root"
+ package for small initramfs images that do not need
+ the whole util-linux package or
+ the busybox binary, which are both much larger than
+ switch_root.
+ The main util-linux package has
+ a recommended runtime dependency (i.e.
+ RRECOMMENDS)
+ on the switch_root package.
+
+
+ The ionice package is now
+ packaged in a separate "util-linux-ionice" package.
+ The main util-linux package has
+ a recommended runtime dependency (i.e.
+ RRECOMMENDS)
+ on the ionice package.
+
+
+
+
+ initscripts:
+ The sushell package is now packaged in
+ a separate "initscripts-sushell" package.
+ This packaging change allows systems to pull
+ sushell in when
+ selinux is enabled.
+ The change also eliminates needing to pull in the entire
+ initscripts package.
+ The main initscripts package has a
+ runtime dependency (i.e.
+ RDEPENDS)
+ on the sushell package when
+ "selinux" is in
+ DISTRO_FEATURES.
+
+
+ glib-2.0:
+ The glib-2.0 package now has a
+ recommended runtime dependency (i.e.
+ RRECOMMENDS)
+ on the
+ shared-mime-info package, since large
+ portions of GIO are not useful without the MIME database.
+ You can remove the dependency by using the
+ BAD_RECOMMENDATIONS
+ variable if shared-mime-info is too
+ large and is not required.
+
+
+ Go Standard Runtime:
+ The Go standard runtime has been split out from the main
+ go recipe into a separate
+ go-runtime recipe.
+
+
+
+
+
+
+ Removed Recipes
+
+
+ The following recipes have been removed:
+
+
+ acpitests:
+ This recipe is not maintained.
+
+
+ autogen-native:
+ No longer required by Grub, oe-core, or
+ meta-oe.
+
+
+ bdwgc:
+ Nothing in OpenEmbedded-Core requires this recipe.
+ It has moved to meta-oe
+
+
+ byacc:
+ This recipe was only needed by rpm 5.x and has moved to
+ meta-oe.
+
+
+ gcc (5.4):
+ The 5.4 series dropped the recipe in favor of 6.3 / 7.2.
+
+
+ gnome-common:
+ Deprecated upstream and no longer needed.
+
+
+ go-bootstrap-native:
+ Go 1.9 does its own bootstrapping so this recipe has been
+ removed.
+
+
+ guile:
+ This recipe was only needed by
+ autogen-native and
+ remake.
+ It is no longer needed by either of these programs.
+
+
+ libclass-isa-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ libdumpvalue-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ libenv-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ libfile-checktree-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ libi18n-collate-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ libiconv:
+ This recipe was only needed for uclibc,
+ which was removed in the previous release.
+ glibc and musl
+ have their own implementations.
+ meta-mingw still needs
+ libiconv, so it has
+ been moved to meta-mingw.
+
+
+ libpng12:
+ This recipe was previously needed for LSB. The current
+ libpng is 1.6.x.
+
+
+ libpod-plainer-perl:
+ This recipe was previously needed for LSB 4, which no longer
+ requires the recipe.
+
+
+ linux-yocto (4.1):
+ This recipe was removed in favor of 4.4, 4.9, 4.10 and 4.12.
+
+
+ mailx:
+ This recipe was previously only needed for LSB
+ compatibility, and upstream is defunct.
+
+
+ mesa (git version only):
+ This recipe is stale with respect to the release version.
+
+
+ ofono (git version only):
+ This recipe is stale with respect to the release version.
+
+
+ portmap:
+ This recipe is obsolete and is superseded by
+ rpcbind.
+
+
+ python3-pygpgme:
+ This recipe is old and unmaintained. It was previously
+ required by dnf, which has switched
+ to official gpgme Python bindings.
+
+
+ python-async:
+ This recipe has been removed in favor of the Python 3
+ version.
+
+
+ python-gitdb:
+ This recipe has been removed in favor of the Python 3
+ version.
+
+
+ python-git:
+ This recipe was removed in favor of the Python 3
+ version.
+
+
+ python-mako:
+ This recipe was removed in favor of the Python 3
+ version.
+
+
+ python-pexpect:
+ This recipe was removed in favor of the Python 3 version.
+
+
+ python-ptyprocess:
+ This recipe was removed in favor of Python the 3 version.
+
+
+ python-pycurl:
+ Nothing is using this recipe in OpenEmbedded-Core
+ (i.e. meta-oe).
+
+
+ python-six:
+ This recipe was removed in favor of the Python 3 version.
+
+
+ python-smmap:
+ This recipe was removed in favor of the Python 3 version.
+
+
+ remake:
+ Using remake as the provider of
+ virtual/make is broken.
+ Consequently, this recipe is not needed in OpenEmbedded-Core.
+
+
+
+
+
+
+ Kernel Device Tree Move
+
+
+ Kernel Device Tree support is easy to enable in a kernel
+ recipe.
+ The Device Tree code has moved to a
+ kernel-devicetree class.
+ Functionality is automatically enabled for any recipe that inherits
+ the
+ kernel
+ class and sets the
+ KERNEL_DEVICETREE
+ variable.
+ The previous mechanism for doing this,
+ meta/recipes-kernel/linux/linux-dtb.inc,
+ is still available to avoid breakage, but triggers a
+ deprecation warning.
+ Future releases of the Yocto Project will remove
+ meta/recipes-kernel/linux/linux-dtb.inc.
+ It is advisable to remove any require
+ statements that request
+ meta/recipes-kernel/linux/linux-dtb.inc
+ from any custom kernel recipes you might have.
+ This will avoid breakage in post 2.4 releases.
+
+
+
+
+ Package QA Changes
+
+
+ The following package QA changes took place:
+
+
+ The "unsafe-references-in-scripts" QA check has been
+ removed.
+ Previously, this check ensured
+ that the backslash character (i.e.
+ /) and /usr
+ could be on different filesystems and that
+ /usr is no longer actively supported.
+
+
+ If you refer to ${COREBASE}/LICENSE
+ within
+ LIC_FILES_CHKSUM
+ you receive a warning because this file is a description of
+ the license for OE-Core.
+ Use ${COMMON_LICENSE_DIR}/MIT
+ if your recipe is MIT-licensed and you cannot use the
+ preferred method of referring to a file within the source
+ tree.
+
+
+
+
+
+
+ README File Changes
+
+
+ The following are changes to README files:
+
+
+ The main Poky README file has been
+ moved to the meta-poky layer and
+ has been renamed README.poky.
+ A symlink has been created so that references to the old
+ location work.
+
+
+ The README.hardware file has been moved
+ to meta-yocto-bsp.
+ A symlink has been created so that references to the old
+ location work.
+
+
+ A README.qemu file has been created
+ with coverage of the qemu* machines.
+
+
+
+
+
+
+ Miscellaneous Changes
+
+
+ The following are additional changes:
+
+
+ The ROOTFS_PKGMANAGE_BOOTSTRAP
+ variable and any references to it have been removed.
+ You should remove this variable from any custom recipes.
+
+
+ The meta-yocto directory has been
+ removed.
+
+ In the Yocto Project 2.1 release
+ meta-yocto was renamed to
+ meta-poky and the
+ meta-yocto subdirectory remained
+ to avoid breaking existing configurations.
+
+
+
+ The maintainers.inc file, which tracks
+ maintainers by listing a primary person responsible for each
+ recipe in OE-Core, has been moved from
+ meta-poky to OE-Core (i.e. from
+ meta-poky/conf/distro/include to
+ meta/conf/distro/include).
+
+
+ The
+ buildhistory
+ class now makes a single commit per build rather than one
+ commit per subdirectory in the repository.
+ This behavior assumes the commits are enabled with
+ BUILDHISTORY_COMMIT
+ = "1", which is typical.
+ Previously, the buildhistory class made
+ one commit per subdirectory in the repository in order to
+ make it easier to see the changes for a particular
+ subdirectory.
+ Now Git can filter these changes itself when viewed.
+ To view a particular change, specify that subdirectory as
+ the last parameter on the git show
+ or git diff commands.
+
+
+ The x86-base.inc file, which is
+ included by all x86-based machine configurations, now sets
+ IMAGE_FSTYPES
+ using ?= to "live" rather than
+ appending with +=.
+ This change makes the default easier to override.
+
+
+ BitBake fires multiple "BuildStarted" events when
+ multiconfig is enabled.
+ This is limited to one per configuration.
+ For more information, see the
+ "Events"
+ in the BitBake User Manual.
+
+
+ By default, the security_flags.inc file
+ sets a GCCPIE variable with an option
+ to enable Position Independent Executables (PIE) within
+ gcc.
+ Enabling PIE in the GNU C Compiler (GCC), makes Return
+ Oriented Programming (ROP) attacks much more difficult to
+ execute.
+
+
+ OE-Core now provides a
+ bitbake-layers plugin that implements
+ a "create-layer" subcommand.
+ The implementation of this subcommand has resulted in the
+ yocto-layer script being deprecated and
+ will likely be removed in the next Yocto Project release.
+
+
+ The vmdk, vdi,
+ and qcow2 image file types are now
+ used in conjunction with the "wic" image type through
+ CONVERSION_CMD.
+ Consequently, the equivalent image types are now
+ wic.vmdk, wic.vdi,
+ and wic.qcow2, respectively.
+
+
+ do_image_<type>[depends] has
+ replaced IMAGE_DEPENDS_<type>.
+ If you have your own classes that implement custom image
+ types, then you need to update them.
+
+
+ OpenSSL 1.1 has been introduced.
+ However, the default is still 1.0.x through the
+ PREFERRED_VERSION
+ variable.
+ This change is due to the remaining compatibility issues
+ with other software.
+ The
+ PROVIDES
+ variable includes "openssl10" as a marker for recipes that
+ still depend on OpenSSL 1.0.
+
+
+ To ensure consistent behavior, BitBake's "-r" and "-R"
+ options (i.e. prefile and postfile), which are used to
+ read or post-read
+ additional configuration files from the command line, now
+ only affect the current BitBake command.
+ Before this change these options would "stick" for
+ future executions.
+
+ BitBake server changes necessitated this change.
+
+
+
+
+
+