# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"

# We have a recipes directory, add to BBFILES
BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"

BBFILE_COLLECTIONS += "virtualization-layer"
BBFILE_PATTERN_virtualization-layer := "^${LAYERDIR}/"
BBFILE_PRIORITY_virtualization-layer = "8"

# Custom licenses used by some packages in this layer
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"

BBFILES_DYNAMIC += " \
    raspberrypi:${LAYERDIR}/dynamic-layers/raspberrypi/*/*/*.bb \
    raspberrypi:${LAYERDIR}/dynamic-layers/raspberrypi/*/*/*.bbappend \
    xilinx:${LAYERDIR}/dynamic-layers/xilinx/*/*/*.bb \
    xilinx:${LAYERDIR}/dynamic-layers/xilinx/*/*/*.bbappend \
"

# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_virtualization-layer = "1"
LAYERSERIES_COMPAT_virtualization-layer = "wrynose"
LAYERDEPENDS_virtualization-layer = " \
    core \
    openembedded-layer \
    networking-layer \
    filesystems-layer \
    meta-python \
"

# webserver:
# - naigos requires apache2
# - cockpit-machines requires cockpit
LAYERRECOMMENDS_virtualization-layer = " \
    webserver \
    selinux \
"

# Override security flags
require conf/distro/include/virt_security_flags.inc

PREFERRED_PROVIDER_virtual/runc ?= "runc"
PREFERRED_PROVIDER_virtual/containerd ?= "containerd"
PREFERRED_PROVIDER_virtual/docker ?= "docker-moby"

# profile can be: docker, podman, containerd, k3s, k8s, runc
CONTAINER_PROFILE ?= "default"
# virt profile can be: kvm, xen, runx
VIRTUALIZATION_PROFILE ?= "default"

# Sanity check for meta-virtualization layer.
# Setting SKIP_META_VIRT_SANITY_CHECK to "1" would skip the bbappend files check.
INHERIT += "sanity-meta-virt"

# We need to load the meta-virt config components, only if "virtualization"
# is in the distro features.  Since we don't know the distro flags during
# layer.conf load time, we delay using a special bbclass that simply includes
# the META_VIRT_CONFIG_PATH file, and likewise for the Xen and k8s configs
META_VIRT_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-default-versions.inc"
META_VIRT_CONTAINER_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-container-${CONTAINER_PROFILE}.inc"
META_VIRT_XEN_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/meta-virt-xen.inc"
K8S_CONFIG_PATH = "${LAYERDIR}/conf/distro/include/k8s-versions.inc"
USER_CLASSES:append = " meta-virt-cfg"
USER_CLASSES:append = " meta-virt-container-cfg"
USER_CLASSES:append = " meta-virt-k8s-cfg"
USER_CLASSES:append = " meta-virt-xen-cfg"
USER_CLASSES:append = " meta-virt-hosts"

HOSTTOOLS_NONFATAL += "getent"

# Propagate virtualization/vcontainer to native DISTRO_FEATURES for qemu virtfs support
# This enables virtio-9p in qemu-system-native for container-cross-install batch imports
DISTRO_FEATURES_FILTER_NATIVE:append = " vcontainer virtualization"

NON_MULTILIB_RECIPES:append:x86-64 = " kubernetes"

DUMMY_PACKAGE_ARCHS_TARGET += "container-dummy-provides"
