# SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield # # SPDX-License-Identifier: MIT # # VRuntime - Minimal distro for vdkr/vpdmn container runtime environments # # This distro is used by multiconfig builds (vruntime-aarch64, vruntime-x86-64) # to create minimal rootfs images for QEMU-based container processing. # # IMPORTANT: This distro does NOT participate in CONTAINER_PROFILE. # The vdkr/vpdmn rootfs images explicitly specify their container stacks # to avoid conflicts between docker (runc) and podman (crun) requirements. # This allows both to be built in the same multiconfig. require conf/distro/poky.conf # Mask recipes not needed by vruntime container runtime builds. # Generated from bitbake -g dependency graph analysis. # Each file can be commented out independently to disable masking for that layer. require conf/distro/include/vruntime-bbmask.inc require conf/distro/include/vruntime-bbmask-oe-core.inc require conf/distro/include/vruntime-bbmask-meta-oe.inc DISTRO = "vruntime" DISTRO_NAME = "VRuntime Minimal" DISTRO_VERSION = "1.0" # Minimal distro features for container runtime environment # - acl: Access control lists (containers need this) # - ext2: Filesystem support # - ipv4/ipv6: Network support for container networking # - seccomp: Security for container isolation # - vfat: For potential boot partition support # - pci: PCI device support (virtio devices) # - vcontainer: Enable vdkr/vpdmn kernel config fragments (9p, squashfs, overlayfs) # # Explicitly NOT included: x11, wayland, pulseaudio, bluetooth, wifi, nfc, 3g, pcmcia DISTRO_FEATURES = "acl ext2 ipv4 ipv6 seccomp vfat pci vcontainer vxn" # Block backfill features not needed by container runtime environments. # OE-core's DISTRO_FEATURES_BACKFILL auto-appends these to DISTRO_FEATURES # unless explicitly listed here. Without this, gobject-introspection-data # enables python3-pygobject (which DEPENDS on cairo), and wayland enables # pygobject's cairo PACKAGECONFIG — both are masked in vruntime builds. DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio gobject-introspection-data opengl ptest multiarch wayland vulkan" # Native and nativesdk classes need full features for build tools DISTRO_FEATURES:class-native = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" DISTRO_FEATURES:class-nativesdk = "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}" # Default to ext4, but image recipes may override to squashfs IMAGE_FSTYPES = "ext4" # Use busybox init for minimal footprint # The vdkr/vpdmn images use custom /init scripts anyway VIRTUAL-RUNTIME_init_manager = "busybox" VIRTUAL-RUNTIME_initscripts = "initscripts" # Disable unnecessary features VIRTUAL-RUNTIME_login_manager = "" # Keep images small - no documentation or debug EXTRA_IMAGE_FEATURES = "" # ============================================================================= # Container runtime: NOT SET # ============================================================================= # Unlike normal container distros, vruntime does NOT set CONTAINER_PROFILE # or VIRTUAL-RUNTIME_container_runtime. This prevents containerd/podman from # pulling a specific runtime via RDEPENDS, avoiding conflicts when both # vdkr (runc) and vpdmn (crun) are built in the same multiconfig. # # The vdkr-rootfs-image and vpdmn-rootfs-image recipes explicitly install # their required runtimes in IMAGE_INSTALL. # ============================================================================= VIRTUAL-RUNTIME_container_runtime = ""