FutureMigrationGuide

From Yocto Project
Revision as of 23:14, 15 October 2017 by PaulEggleton (talk | contribs)
Jump to navigationJump to search
This page should be used to keep track of items which should be added to the migration guide in the YP Reference Manual. It's a living document for the life of a development cycle and by M4 should represent a significant proportion of items that are worthy of note in the migration guide.

Once the migration guide for a release has been completed the contents of this page should be cleared out.

2.4 Migration Guide items

  • ROOTFS_PKGMANAGE_BOOTSTRAP is gone, and any references to it should be removed.
  • The meta-yocto directory has been removed - since the 2.1 release when meta-yocto was renamed to meta-poky, the meta-yocto subdirectory remained to avoid breaking existing configurations.
  • maintainers.inc, the file which tracks maintainers with primary responsibility 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.

Memory resident mode

Bitbake's previous "memory resident mode" has been replaced by a persistent mode which is available in bitbake's default operation. As such, you only need to set BB_SERVER_TIMEOUT to a timeout (in seconds) and BitBake's server will stay resident for that amount of time between bitbake invocations. The oe-init-build-env-memres script has been removed as a separate environment setup script is no longer needed.

Packaging changes

  • python3: the main "python3" package now brings in all of the standard Python 3 distribution rather than just a subset, matching the typical expected behaviour 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: bz2.py, lzma.py and _compression.py have beem moved from the python3-misc package to the python3-compression package.
  • binutils: libbfd is now packaged in a separate "libbfd" package in order to save space when some tools (notably perf) are installed, since they only need libbfd rather than all of binutils.
  • util-linux: su is now packaged in a separate "util-linux-su" package (only built when "pam" is in DISTRO_FEATURES), since su is normally provided by shadow and thus the util-linux version shouldn't be installed unless it is needed. The main util-linux package RDEPENDS on this package when "pam" is in DISTRO_FEATURES.
  • util-linux: switch_root is now packaged in a separate "util-linux-switch-root" package for small initramfs images which don't need the whole util-linux package (nor the busybox binary which is much larger than switch_root). The main util-linux package RRECOMMENDS this package.
  • util-linux: ionice is now packaged in a separate "util-linux-ionice" package for convenience. The main util-linux package RRECOMMENDS this package.
  • initscripts: sushell is now package in a separate "initscripts-sushell" package to allow systemd to pull it in when selinux is enabled without needing to pull in the entire initscripts package. The main initscripts package RDEPENDS on this package when "selinux" is in DISTRO_FEATURES.
  • glib-2.0 now RRECOMMENDS shared-mime-info, as large portions of GIO are not that useful without the MIME database. This can be removed using BAD_RECOMMENDATIONS if shared-mime-info is too large and isn't required.
  • 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 in the 2.4 release:

  • acpitests: recipe not being maintained
  • autogen-native: with grub no longer requiring it, there's nothing else in oe-core or meta-oe that does.
  • bdwgc: moved to meta-oe as nothing in OpenEmbedded-Core needs it in any longer.
  • byacc - was only needed by rpm 5.x and has been moved to meta-oe
  • gcc (5.4): drop 5.4 series in favour of 6.3 / 7.2
  • gnome-common: deprecated upstream and no longer needed
  • go-bootstrap-native: remove recipe as go 1.9 can do its own bootstrapping
  • guile: was only needed by autogen-native and remake, so no longer needed
  • libclass-isa-perl: was previously needed for LSB 4, no longer needed
  • libdumpvalue-perl: was previously needed for LSB 4, no longer needed
  • libenv-perl: was previously needed for LSB 4, no longer needed
  • libfile-checktree-perl: was previously needed for LSB 4, no longer needed
  • libi18n-collate-perl: was previously needed for LSB 4, no longer needed
  • libiconv: this was only needed for uclibc which was removed in the previous release - glibc and musl have their own implementations. meta-mingw still needs it so it has been moved there.
  • libpng12: only previously needed for LSB; current libpng is 1.6.x.
  • libpod-plainer-perl: was previously needed for LSB 4, no longer needed
  • linux-yocto (4.1): removed in favour of 4.4, 4.9, 4.10 and 4.12
  • mailx: only previously needed for LSB compatibility, with upstream being defunct now for a long time.
  • mesa (git version only) - has gone stale with respect to the release version
  • ofono (git version only) - has gone stale with respect to the release version
  • portmap: obsolete - superseded by rpcbind.
  • python3-pygpgme: old and unmaintained; was previously required only by dnf but that has now switched to official gpgme python bindings.
  • python-async: removed in favour of python 3 version
  • python-gitdb: removed in favour of python 3 version
  • python-git: removed in favour of python 3 version
  • python-mako: removed in favour of python 3 version
  • python-pexpect: removed in favour of python 3 version
  • python-ptyprocess: removed in favour of python 3 version
  • python-pycurl: nothing is using this in OpenEmbedded-Core (or meta-oe)
  • python-six: removed in favour of python 3 version
  • python-smmap: removed in favour of python 3 version
  • remake: using remake as the provider of virtual/make has been broken for some time. No longer needed in OpenEmbedded-Core.

Other changes (yet to be categorised / completed)

  • The buildhistory class now makes a single commit per build rather than one per subdirectory in the repository (assuming commits are enabled with BUILDHISTORY_COMMIT = "1" as is typical). The earlier behaviour was intended to make it easier to see just the changes for a particular subdirectory, but git can filter that itself when viewing - just specify that subdirectory as the last parameter on the git show / git diff command line and that's all you will see.
  • x86-base.inc: Don't add live to IMAGE_FSTYPES, default instead
  • image_types.bbclass: get rid of IMAGE_DEPENDS
  • bitbake: cooker: Use multiple BuildStarted events for multiconfig
  • security_flags.inc: Delete pinnings for SECURITY_NO_PIE_CFLAGS
  • bitbake: tinfoil: add a parse_recipes() function
  • bsp/help: include a warning showing deprecation of create-layer plugin
  • image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types
  • insane: remove unsafe-references-in-scripts check
  • OpenSSL 1.1 has been introduced, but the default is still 1.0.x via PREFERRED_VERSION due to remaining compatibility issues with other software. "openssl10" has been added to PROVIDES as a marker for recipes that still definitely depend on OpenSSL 1.0.
  • bitbake: cooker: Change to consistent prefile/postfile handling
  • insane.bbclass: Warn if ${COREBASE}/LICENSE is used
  • kernel: Move Device Tree support to kernel.bbclass
  • README.qemu: Add from meta-yocto as it belongs in core
  • meta-yocto: Restructure and tidy up READMEs