The following are additional changes:
The kernel
class supports building
packages for multiple kernels.
If your kernel recipe or .bbappend
file
mentions packaging at all, you should replace references to
the kernel in package names with
${KERNEL_PACKAGE_NAME}
.
For example, if you disable automatic installation of the
kernel image using
RDEPENDS_kernel-base = ""
you can avoid
warnings using
RDEPENDS_${KERNEL_PACKAGE_NAME}-base = ""
instead.
The buildhistory
class commits changes
to the repository by default so you no longer need to set
BUILDHISTORY_COMMIT = "1"
.
If you want to disable commits you need to set
BUILDHISTORY_COMMIT = "0"
in your
configuration.
The beaglebone
reference machine has
been renamed to beaglebone-yocto
.
The beaglebone-yocto
BSP is a reference
implementation using only mainline components available in
OpenEmbedded-Core and meta-yocto-bsp
,
whereas Texas Instruments maintains a full-featured BSP in
the meta-ti
layer.
This rename avoids the previous name clash that existed
between the two BSPs.
The update-alternatives
class no longer
works with SysV init
scripts because
this usage has been problematic.
Also, the sysklogd
recipe no longer
uses update-alternatives
because it is
incompatible with other implementations.
By default, the
cmake
class uses ninja
instead of
make
for building.
This improves build performance.
If a recipe is broken with ninja
, then
the recipe can set
OECMAKE_GENERATOR = "Unix Makefiles"
to change back to make
.
The previously deprecated base_*
functions have been removed in favor of their replacements
in meta/lib/oe
and
bitbake/lib/bb
.
These are typically used from recipes and classes.
Any references to the old functions must be updated.
The following table shows the removed functions and their
replacements:
Removed Replacement ============================ ============================ base_path_join() oe.path.join() base_path_relative() oe.path.relative() base_path_out() oe.path.format_display() base_read_file() oe.utils.read_file() base_ifelse() oe.utils.ifelse() base_conditional() oe.utils.conditional() base_less_or_equal() oe.utils.less_or_equal() base_version_less_or_equal() oe.utils.version_less_or_equal() base_contains() bb.utils.contains() base_both_contain() oe.utils.both_contain() base_prune_suffix() oe.utils.prune_suffix() oe_filter() oe.utils.str_filter() oe_filter_out() oe.utils.str_filter_out() (or use the _remove operator).
Using exit 1
to explicitly defer a
postinstall script until first boot is now deprecated since
it is not an obvious mechanism and can mask actual errors.
If you want to explicitly defer a postinstall to first boot
on the target rather than at rootfs
creation time, use
pkg_postinst_ontarget()
or call
postinst-intercepts defer_to_first_boot
from pkg_postinst()
.
Any failure of a pkg_postinst()
script (including exit 1
)
will trigger a warning during
do_rootfs
.
For more information, see the "Post-Installation Scripts" section in the Yocto Project Development Tasks Manual.
The elf
image type has been removed.
This image type was removed because the
mkelfimage
tool
that was required to create it is no longer provided by
coreboot upstream and required updating every time
binutils
updated.
Support for .iso image compression (previously enabled
through COMPRESSISO = "1"
) has been
removed.
The userspace tools (zisofs-tools
) are
unmaintained and squashfs
provides
better performance and compression.
In order to build a live image with squashfs+lz4 compression
enabled you should now set
LIVE_ROOTFS_TYPE = "squashfs-lz4"
and ensure that live
is in IMAGE_FSTYPES
.
Recipes with an unconditional dependency on
libpam
are only buildable with
pam
in
DISTRO_FEATURES
.
If the dependency is truly optional then it is recommended
that the dependency be conditional upon
pam
being in
DISTRO_FEATURES
.
For EFI-based machines, the bootloader
(grub-efi
by default) is installed into
the image at /boot.
Wic can be used to split the bootloader into separate boot
and rootfs partitions if necessary.
Patches whose context does not match exactly (i.e. where patch reports "fuzz" when applying) will generate a warning. For an example of this see this commit.
Layers are expected to set
LAYERSERIES_COMPAT_layername
to match the version(s) of OpenEmbedded-Core they are
compatible with.
This is specified as codenames using spaces to separate
multiple values (e.g. "rocko sumo").
If a layer does not set
LAYERSERIES_COMPAT_layername
, a warning
will is shown.
If a layer sets a value that does not include the current
version ("sumo" for the 2.5 release), then an error will be
produced.
The TZ
environment variable is set to
"UTC" within the build environment in order to fix
reproducibility problems in some recipes.