FutureMigrationGuide: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
No edit summary
Line 7: Line 7:
=2.4 Migration Guide items=
=2.4 Migration Guide items=
* ROOTFS_PKGMANAGE_BOOTSTRAP is gone, and any references to it should be removed.
* 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 ==
== 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.
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 ==
== Removed recipes ==
Line 51: Line 65:
== Other changes (yet to be categorised / completed) ==
== Other changes (yet to be categorised / completed) ==


* python3: add python3 metapackage
* 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.
* binutils: package libbfd seperately
* classes/buildhistory: make a single commit per build
* python-3.5: Move bz2.py, lzma.py and _compression.py from python3-misc to python3-compression
* x86-base.inc: Don't add live to IMAGE_FSTYPES, default instead
* x86-base.inc: Don't add live to IMAGE_FSTYPES, default instead
* image_types.bbclass: get rid of IMAGE_DEPENDS
* image_types.bbclass: get rid of IMAGE_DEPENDS
* bitbake: cooker: Use multiple BuildStarted events for multiconfig
* bitbake: cooker: Use multiple BuildStarted events for multiconfig
* security_flags.inc: Delete pinnings for SECURITY_NO_PIE_CFLAGS
* security_flags.inc: Delete pinnings for SECURITY_NO_PIE_CFLAGS
* util-linux: fix "su -" and package su separately
* bitbake: tinfoil: add a parse_recipes() function
* bitbake: tinfoil: add a parse_recipes() function
* bsp/help: include a warning showing deprecation of create-layer plugin
* bsp/help: include a warning showing deprecation of create-layer plugin
* image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types
* image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types
* insane: remove unsafe-references-in-scripts check
* insane: remove unsafe-references-in-scripts check
* openssl10: rename back to openssl and make it the default via PREFERRED_VERSION
* 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.
* initscripts: split sushell into sub package
* bitbake: cooker: Change to consistent prefile/postfile handling
* bitbake: cooker: Change to consistent prefile/postfile handling
* insane.bbclass: Warn if ${COREBASE}/LICENSE is used
* insane.bbclass: Warn if ${COREBASE}/LICENSE is used
* util-linux: split out ionice into its own package
* glib-2.0: recommend shared-mime-info
* go: split out go-runtime into separate recipe
* kernel: Move Device Tree support to kernel.bbclass
* kernel: Move Device Tree support to kernel.bbclass
* README.qemu: Add from meta-yocto as it belongs in core
* README.qemu: Add from meta-yocto as it belongs in core
* meta-yocto: Drop meta-yocto directory
* meta-yocto: Restructure and tidy up READMEs
* meta-yocto: Restructure and tidy up READMEs
* conf: add maintainers.inc from meta-poky
* conf: remove maintainers.inc, now in oe-core
* util-linux: package switch_root separately

Revision as of 23:14, 15 October 2017

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