coreos/layers/meta-belden-coreos/classes/coreos-sanity.bbclass

59 lines
2.2 KiB
Plaintext

# This class add some sanity checks to ensure that distribution based on
# CoreOS only use the subset of openembedded-core that is supported by the
# CoreOS team.
#
# This is also used to add some warnings to ensure to ensure a more common
# CoreOS developer Experience, by ensuring that some default distro and machine
# are set correctly
SANITY_COREOS_COMPATIBLE ??= "0"
addhandler check_coreos_sanity_eventhandler
check_coreos_sanity_eventhandler[eventmask] = "bb.event.SanityCheck"
python check_coreos_sanity_eventhandler() {
# Checks related to the distribution configuration files
# ==========================================================================
if e.data.getVar('SANITY_COREOS_COMPATIBLE') != "1":
bb.fatal(
"The CoreOS layer is only compatible with distribution based on "
"conf/distro/belden-coreos.conf.\n"
"Please ensure that your distribution configuration file contains "
" `require conf/distro/belden-coreos.conf`"
)
if e.data.getVar('INIT_MANAGER') != "systemd":
bb.fatal(
"systemd is not set as `INIT_MANAGER`. "
"Using SystemD is mandatory on CoreOS based distribution"
)
if e.data.getVar("TCLIBC") != "glibc":
bb.fatal(
"glibc is not set as `TCLIBC`. "
"Using glibc is mandatory on CoreOS based distribution"
)
# Checks related to the machine configuration files
# ==========================================================================
# Ensure that compressed image and bmap file are generated if wic is used
fs_types = e.data.getVar("IMAGE_FSTYPES").split()
if any(map(lambda x: x.startswith("wic"), fs_types)):
if not "wic.xz" in fs_types:
bb.warn(
"CoreOS recommands to use compressed wic image, please add "
"`wic.xz` to your machine `IMAGE_FSTYPES` variables"
)
if not "wic.bmap":
bb.warn(
"wic image should be flashed with bmaptools, but this require "
"to add `wic.bmap` to your machine `IMAGE_FSTYPES` variables"
)
return
}