diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-05-10 13:57:50 +0000 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-05-10 13:57:50 +0000 |
| commit | 84e81eea1a581e10528b2ba95f9c34ee67c8ad3c (patch) | |
| tree | df9e3b6405f0ebc9713a762481f86dc298d64aa3 /conf/distro/vcontainer.conf | |
| parent | 4ba5825ee16fcded87f4d555b4ed7a7615dc67ac (diff) | |
| download | meta-virtualization-84e81eea1a581e10528b2ba95f9c34ee67c8ad3c.tar.gz | |
vcontainer: add OCI builder distro with shared base
The oci-multiarch.bbclass was dead code because vruntime's BBMASK blocks
the OCI tooling (umoci, skopeo) needed to build container images. We
could not simply use the vruntime multiconfigs for OCI image builds
because the aggressive recipe masking that keeps vruntime rootfs minimal
also removes the packages needed for container image creation.
Rather than maintaining two independent distro configs with duplicated
DISTRO_FEATURES, extract the common configuration into a shared base
fragment and create a new distro that omits the BBMASK.
Changes:
- Extract vruntime-base.inc from vruntime.conf with shared settings:
stripped DISTRO_FEATURES, opted-out features, native class overrides
- Simplify vruntime.conf to require vruntime-base.inc, keeping only
VM-specific settings (BBMASK, busybox init, ptest disable)
- Add vcontainer.conf: requires the same shared base but without BBMASK,
giving OCI tooling full access to the package set
- Add container-aarch64 and container-x86-64 multiconfigs using the
vcontainer distro with separate TMPDIRs
- Add container multiconfigs to BBMULTICONFIG in meta-virt-host.conf
- Remove unused container.conf placeholder from 2022
IMAGE_FSTYPES is intentionally NOT set in vcontainer.conf because the
'oci' type requires image-oci.bbclass which only container image recipes
inherit. Setting it distro-wide breaks non-container images parsed under
this distro (e.g., core-image-multilib-example from meta-skeleton).
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'conf/distro/vcontainer.conf')
| -rw-r--r-- | conf/distro/vcontainer.conf | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/conf/distro/vcontainer.conf b/conf/distro/vcontainer.conf new file mode 100644 index 00000000..3b81a46c --- /dev/null +++ b/conf/distro/vcontainer.conf | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # VContainer - OCI container image builder distro | ||
| 6 | # | ||
| 7 | # Shares the same stripped DISTRO_FEATURES as vruntime but without BBMASK, | ||
| 8 | # so OCI tooling (umoci, jq, skopeo) and the full package set are available. | ||
| 9 | # | ||
| 10 | # Used by container-aarch64 / container-x86-64 multiconfigs to build | ||
| 11 | # single-arch OCI images that are then combined into multi-arch indexes. | ||
| 12 | |||
| 13 | require conf/distro/include/vruntime-base.inc | ||
| 14 | |||
| 15 | # No BBMASK -- OCI image building needs umoci, jq, and full package set. | ||
| 16 | |||
| 17 | DISTRO = "vcontainer" | ||
| 18 | DISTRO_NAME = "VContainer OCI Builder" | ||
| 19 | DISTRO_VERSION = "1.0" | ||
| 20 | |||
| 21 | # IMAGE_FSTYPES is NOT set here -- the 'oci' type requires image-oci.bbclass | ||
| 22 | # which only container image recipes inherit. Setting it distro-wide would | ||
| 23 | # break non-container images (e.g., core-image-*) parsed in this distro. | ||
| 24 | # Container recipes like container-base.bb set their own IMAGE_FSTYPES. | ||
