diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-09 19:21:30 +0000 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-09 20:03:27 +0000 |
| commit | 9ba68c94cec4959e20700183f1b1b57cb5151989 (patch) | |
| tree | 0668a570e1d9e50a4221b2d2fa11b0625534d280 | |
| parent | d79d3d2a449054b700f66fe04532f11c1c72c65a (diff) | |
| download | meta-virtualization-9ba68c94cec4959e20700183f1b1b57cb5151989.tar.gz | |
vruntime: add BBMASK to reduce multiconfig parse time
The vruntime multiconfigs (vruntime-aarch64, vruntime-x86-64) trigger
a full BitBake parse of all layers, but only need ~318 recipes to build
the vdkr/vpdmn container runtime stacks. BBMASK set in the vruntime
distro conf only affects parsing for those multiconfigs; the main build
is unaffected.
Add three .inc files, each independently disableable, that mask unused
recipes:
- vruntime-bbmask.inc: meta-virtualization layer (~88 masks covering
virtualization platforms, unused container orchestration/tooling,
and individual go libraries)
- vruntime-bbmask-oe-core.inc: oe-core graphics subdirs, multimedia,
sato, and rt categories
- vruntime-bbmask-meta-oe.inc: meta-oe, meta-networking categories,
plus entire meta-python, meta-filesystems, and meta-webserver layers
Mask patterns were generated from bitbake -g dependency graph analysis
of both aarch64 and x86-64 targets, with all 318 needed PNs (including
-native variants) cross-checked against the patterns. Orphaned bbappend
files in other layers are also masked to prevent parse errors.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
| -rw-r--r-- | conf/distro/include/vruntime-bbmask-meta-oe.inc | 53 | ||||
| -rw-r--r-- | conf/distro/include/vruntime-bbmask-oe-core.inc | 41 | ||||
| -rw-r--r-- | conf/distro/include/vruntime-bbmask.inc | 143 | ||||
| -rw-r--r-- | conf/distro/vruntime.conf | 7 |
4 files changed, 244 insertions, 0 deletions
diff --git a/conf/distro/include/vruntime-bbmask-meta-oe.inc b/conf/distro/include/vruntime-bbmask-meta-oe.inc new file mode 100644 index 00000000..a2e2e77f --- /dev/null +++ b/conf/distro/include/vruntime-bbmask-meta-oe.inc | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # BBMASK for meta-openembedded sublayers in vruntime multiconfig builds. | ||
| 6 | # | ||
| 7 | # Masks recipe categories with zero recipes in the vruntime dependency | ||
| 8 | # graph (verified via bitbake -g). | ||
| 9 | # | ||
| 10 | # KEPT from meta-oe: | ||
| 11 | # recipes-devtools (abseil-cpp, jsoncpp, protobuf, yajl) | ||
| 12 | # recipes-extended (jansson) | ||
| 13 | # recipes-support (lvm2) | ||
| 14 | # KEPT from meta-networking: | ||
| 15 | # recipes-filter (nftables, libnftnl) | ||
| 16 | # recipes-support (bridge-utils) | ||
| 17 | # KEPT from meta-filesystems: NONE (entire layer masked) | ||
| 18 | # KEPT from meta-python: NONE (entire layer masked) | ||
| 19 | # KEPT from meta-webserver: NONE (entire layer masked) | ||
| 20 | |||
| 21 | # --------------------------------------------------------------------------- | ||
| 22 | # meta-oe: mask all categories except devtools, extended, support | ||
| 23 | # Uses negative lookahead to keep the three needed categories | ||
| 24 | # --------------------------------------------------------------------------- | ||
| 25 | BBMASK += "meta-oe/recipes-(?!devtools|extended|support)" | ||
| 26 | |||
| 27 | # --------------------------------------------------------------------------- | ||
| 28 | # meta-networking: mask all categories except filter, support | ||
| 29 | # --------------------------------------------------------------------------- | ||
| 30 | BBMASK += "meta-networking/recipes-(?!filter|support)" | ||
| 31 | |||
| 32 | # --------------------------------------------------------------------------- | ||
| 33 | # meta-filesystems: entire layer (0 recipes in dependency graph) | ||
| 34 | # --------------------------------------------------------------------------- | ||
| 35 | BBMASK += "meta-filesystems/" | ||
| 36 | |||
| 37 | # --------------------------------------------------------------------------- | ||
| 38 | # meta-python: entire layer (0 recipes in dependency graph) | ||
| 39 | # --------------------------------------------------------------------------- | ||
| 40 | BBMASK += "meta-python/" | ||
| 41 | |||
| 42 | # --------------------------------------------------------------------------- | ||
| 43 | # meta-webserver: entire layer (0 recipes in dependency graph) | ||
| 44 | # --------------------------------------------------------------------------- | ||
| 45 | BBMASK += "meta-webserver/" | ||
| 46 | |||
| 47 | # --------------------------------------------------------------------------- | ||
| 48 | # Orphaned bbappends in other layers (base recipes masked above) | ||
| 49 | # --------------------------------------------------------------------------- | ||
| 50 | # meta-openstack bbappend for meta-oe postgresql (recipes-dbs masked) | ||
| 51 | BBMASK += "meta-openstack/recipes-dbs/postgresql/" | ||
| 52 | # meta-oe dynamic-layers bbappend for meta-networking packagegroup (recipes-core masked) | ||
| 53 | BBMASK += "meta-oe/dynamic-layers/networking-layer/recipes-core/" | ||
diff --git a/conf/distro/include/vruntime-bbmask-oe-core.inc b/conf/distro/include/vruntime-bbmask-oe-core.inc new file mode 100644 index 00000000..34db8dd2 --- /dev/null +++ b/conf/distro/include/vruntime-bbmask-oe-core.inc | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # BBMASK for oe-core (meta) layer in vruntime multiconfig builds. | ||
| 6 | # | ||
| 7 | # Masks entire recipe categories with zero recipes in the vruntime | ||
| 8 | # dependency graph (verified via bitbake -g and PN-level cross-check). | ||
| 9 | # | ||
| 10 | # KEPT: recipes-bsp, recipes-connectivity, recipes-core, recipes-devtools, | ||
| 11 | # recipes-extended, recipes-gnome, recipes-kernel, recipes-support | ||
| 12 | |||
| 13 | # --------------------------------------------------------------------------- | ||
| 14 | # Graphics - mask only subdirs with zero needed recipes (39 of 49 subdirs) | ||
| 15 | # Keep: wayland, libsdl2, virglrenderer, libepoxy, drm, mesa, spir, | ||
| 16 | # xorg-lib, xorg-proto, xorg-app, xorg-util (qemu-system-native deps) | ||
| 17 | # --------------------------------------------------------------------------- | ||
| 18 | BBMASK += "/meta/recipes-graphics/(?!wayland|libsdl2|virglrenderer|libepoxy|drm|mesa|spir|xorg-lib|xorg-proto|xorg-app|xorg-util)" | ||
| 19 | |||
| 20 | # --------------------------------------------------------------------------- | ||
| 21 | # Multimedia - mask all except alsa/ and libpng/ (qemu-system-native deps) | ||
| 22 | # --------------------------------------------------------------------------- | ||
| 23 | BBMASK += "/meta/recipes-multimedia/(?!alsa|libpng)" | ||
| 24 | |||
| 25 | # --------------------------------------------------------------------------- | ||
| 26 | # Sato desktop (~25 recipes) - Matchbox, webkit, desktop UI | ||
| 27 | # --------------------------------------------------------------------------- | ||
| 28 | BBMASK += "/meta/recipes-sato/" | ||
| 29 | |||
| 30 | # --------------------------------------------------------------------------- | ||
| 31 | # RT kernel (~4 recipes) - Real-time kernel, not needed for containers | ||
| 32 | # --------------------------------------------------------------------------- | ||
| 33 | BBMASK += "/meta/recipes-rt/" | ||
| 34 | |||
| 35 | # --------------------------------------------------------------------------- | ||
| 36 | # Orphaned bbappends in other layers (base recipes masked above) | ||
| 37 | # --------------------------------------------------------------------------- | ||
| 38 | # meta-yocto-bsp bbappend for masked oe-core graphics | ||
| 39 | BBMASK += "meta-yocto-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config" | ||
| 40 | # meta-erlang bbappend for oe-core mesa (mesa is kept, but libglu not needed) | ||
| 41 | BBMASK += "meta-erlang/recipes-graphics/mesa/libglu" | ||
diff --git a/conf/distro/include/vruntime-bbmask.inc b/conf/distro/include/vruntime-bbmask.inc new file mode 100644 index 00000000..8eaf44df --- /dev/null +++ b/conf/distro/include/vruntime-bbmask.inc | |||
| @@ -0,0 +1,143 @@ | |||
| 1 | # SPDX-FileCopyrightText: Copyright (C) 2025 Bruce Ashfield | ||
| 2 | # | ||
| 3 | # SPDX-License-Identifier: MIT | ||
| 4 | # | ||
| 5 | # BBMASK for meta-virtualization layer in vruntime multiconfig builds. | ||
| 6 | # | ||
| 7 | # Masks recipes not needed by vdkr (docker) or vpdmn (podman) container | ||
| 8 | # runtime images. Only affects vruntime multiconfig parsing; main build | ||
| 9 | # is unaffected. | ||
| 10 | # | ||
| 11 | # Generated from bitbake -g dependency graph analysis. | ||
| 12 | # | ||
| 13 | # KEPT (.bb recipes): aardvark-dns, catatonit, conmon, containerd, | ||
| 14 | # container-host-config, crun, docker-moby, netavark, podman, runc, | ||
| 15 | # skopeo, tini, vcontainer/*, cni, slirp4netns | ||
| 16 | # KEPT (bbappends only): busybox, initscripts, libxcrypt, sysvinit, | ||
| 17 | # go-md2man, qemu, yajl, iptables, libseccomp, linux/linux-yocto, bind | ||
| 18 | |||
| 19 | # --------------------------------------------------------------------------- | ||
| 20 | # Virtualization platforms (not containers) | ||
| 21 | # --------------------------------------------------------------------------- | ||
| 22 | BBMASK += "meta-virtualization/recipes-extended/xen/" | ||
| 23 | BBMASK += "meta-virtualization/recipes-extended/xvisor/" | ||
| 24 | BBMASK += "meta-virtualization/recipes-extended/kvmtool/" | ||
| 25 | BBMASK += "meta-virtualization/recipes-extended/libvirt/" | ||
| 26 | BBMASK += "meta-virtualization/recipes-extended/libvmi/" | ||
| 27 | BBMASK += "meta-virtualization/recipes-extended/virt-manager/" | ||
| 28 | BBMASK += "meta-virtualization/recipes-extended/virt-viewer/" | ||
| 29 | BBMASK += "meta-virtualization/recipes-extended/virt-what/" | ||
| 30 | BBMASK += "meta-virtualization/recipes-extended/vhost-device/" | ||
| 31 | BBMASK += "meta-virtualization/recipes-extended/dev86/" | ||
| 32 | BBMASK += "meta-virtualization/recipes-extended/seabios/" | ||
| 33 | BBMASK += "meta-virtualization/recipes-extended/vgabios/" | ||
| 34 | BBMASK += "meta-virtualization/recipes-extended/upx/" | ||
| 35 | BBMASK += "meta-virtualization/recipes-extended/uxen/" | ||
| 36 | BBMASK += "meta-virtualization/recipes-extended/ipxe/" | ||
| 37 | BBMASK += "meta-virtualization/recipes-extended/diod/" | ||
| 38 | BBMASK += "meta-virtualization/recipes-extended/libibverbs/" | ||
| 39 | BBMASK += "meta-virtualization/recipes-extended/virtiofsd/" | ||
| 40 | |||
| 41 | # --------------------------------------------------------------------------- | ||
| 42 | # Infrastructure / monitoring | ||
| 43 | # --------------------------------------------------------------------------- | ||
| 44 | BBMASK += "meta-virtualization/recipes-extended/ceph/" | ||
| 45 | BBMASK += "meta-virtualization/recipes-extended/cloud-init/" | ||
| 46 | BBMASK += "meta-virtualization/recipes-extended/cockpit-machines/" | ||
| 47 | BBMASK += "meta-virtualization/recipes-extended/nagios/" | ||
| 48 | BBMASK += "meta-virtualization/recipes-extended/oath/" | ||
| 49 | BBMASK += "meta-virtualization/recipes-extended/irqbalance/" | ||
| 50 | |||
| 51 | # --------------------------------------------------------------------------- | ||
| 52 | # Container images / bundles / cross-deploy (main build only) | ||
| 53 | # --------------------------------------------------------------------------- | ||
| 54 | BBMASK += "meta-virtualization/recipes-extended/images/" | ||
| 55 | BBMASK += "meta-virtualization/recipes-extended/container-bundles/" | ||
| 56 | BBMASK += "meta-virtualization/recipes-extended/container-cross-deploy/" | ||
| 57 | |||
| 58 | # --------------------------------------------------------------------------- | ||
| 59 | # Not in dependency graph (rootless/overlay helpers not RDEPENDS) | ||
| 60 | # --------------------------------------------------------------------------- | ||
| 61 | BBMASK += "meta-virtualization/recipes-extended/fuse-overlayfs/" | ||
| 62 | BBMASK += "meta-virtualization/recipes-extended/rootlesskit/" | ||
| 63 | |||
| 64 | # --------------------------------------------------------------------------- | ||
| 65 | # Container orchestration / tools not in vruntime | ||
| 66 | # --------------------------------------------------------------------------- | ||
| 67 | BBMASK += "meta-virtualization/recipes-containers/kubernetes/" | ||
| 68 | BBMASK += "meta-virtualization/recipes-containers/k3s/" | ||
| 69 | BBMASK += "meta-virtualization/recipes-containers/cri-o/" | ||
| 70 | BBMASK += "meta-virtualization/recipes-containers/cri-tools/" | ||
| 71 | BBMASK += "meta-virtualization/recipes-containers/docker-compose/" | ||
| 72 | BBMASK += "meta-virtualization/recipes-containers/podman-compose/" | ||
| 73 | BBMASK += "meta-virtualization/recipes-containers/podman-tui/" | ||
| 74 | BBMASK += "meta-virtualization/recipes-containers/nerdctl/" | ||
| 75 | BBMASK += "meta-virtualization/recipes-containers/buildah/" | ||
| 76 | BBMASK += "meta-virtualization/recipes-containers/singularity/" | ||
| 77 | BBMASK += "meta-virtualization/recipes-containers/lxc/" | ||
| 78 | BBMASK += "meta-virtualization/recipes-containers/lxcfs/" | ||
| 79 | BBMASK += "meta-virtualization/recipes-containers/criu/" | ||
| 80 | BBMASK += "meta-virtualization/recipes-containers/docker-distribution/" | ||
| 81 | |||
| 82 | # --------------------------------------------------------------------------- | ||
| 83 | # Container tooling not used by vdkr/vpdmn | ||
| 84 | # --------------------------------------------------------------------------- | ||
| 85 | BBMASK += "meta-virtualization/recipes-containers/cgroup-lite/" | ||
| 86 | BBMASK += "meta-virtualization/recipes-containers/riddler/" | ||
| 87 | BBMASK += "meta-virtualization/recipes-containers/umoci/" | ||
| 88 | BBMASK += "meta-virtualization/recipes-containers/sloci-image/" | ||
| 89 | BBMASK += "meta-virtualization/recipes-containers/oci-image-tools/" | ||
| 90 | BBMASK += "meta-virtualization/recipes-containers/oci-runtime-spec/" | ||
| 91 | BBMASK += "meta-virtualization/recipes-containers/oci-runtime-tools/" | ||
| 92 | BBMASK += "meta-virtualization/recipes-containers/oci-systemd-hook/" | ||
| 93 | BBMASK += "meta-virtualization/recipes-containers/oci-image-spec/" | ||
| 94 | BBMASK += "meta-virtualization/recipes-containers/oci-base-images/" | ||
| 95 | BBMASK += "meta-virtualization/recipes-containers/container-registry/" | ||
| 96 | BBMASK += "meta-virtualization/recipes-containers/go-digest/" | ||
| 97 | BBMASK += "meta-virtualization/recipes-containers/go-errors/" | ||
| 98 | BBMASK += "meta-virtualization/recipes-containers/go-spf13-cobra/" | ||
| 99 | BBMASK += "meta-virtualization/recipes-containers/go-spf13-pflag/" | ||
| 100 | |||
| 101 | # --------------------------------------------------------------------------- | ||
| 102 | # Other categories not needed | ||
| 103 | # --------------------------------------------------------------------------- | ||
| 104 | BBMASK += "meta-virtualization/recipes-demo/" | ||
| 105 | BBMASK += "meta-virtualization/recipes-graphics/" | ||
| 106 | BBMASK += "meta-virtualization/recipes-core/kata-containers/" | ||
| 107 | BBMASK += "meta-virtualization/recipes-core/runx/" | ||
| 108 | BBMASK += "meta-virtualization/recipes-networking/openvswitch/" | ||
| 109 | BBMASK += "meta-virtualization/recipes-networking/netns/" | ||
| 110 | BBMASK += "meta-virtualization/recipes-networking/passt/" | ||
| 111 | |||
| 112 | # --------------------------------------------------------------------------- | ||
| 113 | # Dev recipes not needed (keep qemu & yajl bbappends, keep linux bbappends) | ||
| 114 | # --------------------------------------------------------------------------- | ||
| 115 | BBMASK += "meta-virtualization/recipes-devtools/python/" | ||
| 116 | BBMASK += "meta-virtualization/recipes-devtools/go-dirhash-native/" | ||
| 117 | BBMASK += "meta-virtualization/recipes-devtools/yq/" | ||
| 118 | BBMASK += "meta-virtualization/recipes-kernel/lopper/" | ||
| 119 | |||
| 120 | # Individual go libraries not needed by vruntime builds | ||
| 121 | BBMASK += "meta-virtualization/recipes-devtools/go/go-connections" | ||
| 122 | BBMASK += "meta-virtualization/recipes-devtools/go/go-capability" | ||
| 123 | BBMASK += "meta-virtualization/recipes-devtools/go/go-build" | ||
| 124 | BBMASK += "meta-virtualization/recipes-devtools/go/compose-file" | ||
| 125 | BBMASK += "meta-virtualization/recipes-devtools/go/go-cli" | ||
| 126 | BBMASK += "meta-virtualization/recipes-devtools/go/go-context" | ||
| 127 | BBMASK += "meta-virtualization/recipes-devtools/go/go-logrus" | ||
| 128 | BBMASK += "meta-virtualization/recipes-devtools/go/go-libtrust" | ||
| 129 | BBMASK += "meta-virtualization/recipes-devtools/go/go-patricia" | ||
| 130 | BBMASK += "meta-virtualization/recipes-devtools/go/go-systemd" | ||
| 131 | BBMASK += "meta-virtualization/recipes-devtools/go/go-pty" | ||
| 132 | BBMASK += "meta-virtualization/recipes-devtools/go/go-dbus" | ||
| 133 | BBMASK += "meta-virtualization/recipes-devtools/go/go-distribution" | ||
| 134 | BBMASK += "meta-virtualization/recipes-devtools/go/go-metalinter" | ||
| 135 | BBMASK += "meta-virtualization/recipes-devtools/go/go-mux" | ||
| 136 | BBMASK += "meta-virtualization/recipes-devtools/go/grpc-go" | ||
| 137 | BBMASK += "meta-virtualization/recipes-devtools/go/go-fsnotify" | ||
| 138 | # go-md2man KEPT (crun, conmon DEPENDS on go-md2man-native) | ||
| 139 | |||
| 140 | # --------------------------------------------------------------------------- | ||
| 141 | # Orphaned bbappends in other layers (base recipes masked above) | ||
| 142 | # --------------------------------------------------------------------------- | ||
| 143 | BBMASK += "meta-openstack/recipes-extended/libvirt/" | ||
diff --git a/conf/distro/vruntime.conf b/conf/distro/vruntime.conf index a489a7a2..17355361 100644 --- a/conf/distro/vruntime.conf +++ b/conf/distro/vruntime.conf | |||
| @@ -14,6 +14,13 @@ | |||
| 14 | 14 | ||
| 15 | require conf/distro/poky.conf | 15 | require conf/distro/poky.conf |
| 16 | 16 | ||
| 17 | # Mask recipes not needed by vruntime container runtime builds. | ||
| 18 | # Generated from bitbake -g dependency graph analysis. | ||
| 19 | # Each file can be commented out independently to disable masking for that layer. | ||
| 20 | require conf/distro/include/vruntime-bbmask.inc | ||
| 21 | require conf/distro/include/vruntime-bbmask-oe-core.inc | ||
| 22 | require conf/distro/include/vruntime-bbmask-meta-oe.inc | ||
| 23 | |||
| 17 | DISTRO = "vruntime" | 24 | DISTRO = "vruntime" |
| 18 | DISTRO_NAME = "VRuntime Minimal" | 25 | DISTRO_NAME = "VRuntime Minimal" |
| 19 | DISTRO_VERSION = "1.0" | 26 | DISTRO_VERSION = "1.0" |
