summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2026-02-09 19:21:30 +0000
committerBruce Ashfield <bruce.ashfield@gmail.com>2026-02-09 20:03:27 +0000
commit9ba68c94cec4959e20700183f1b1b57cb5151989 (patch)
tree0668a570e1d9e50a4221b2d2fa11b0625534d280 /conf
parentd79d3d2a449054b700f66fe04532f11c1c72c65a (diff)
downloadmeta-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>
Diffstat (limited to 'conf')
-rw-r--r--conf/distro/include/vruntime-bbmask-meta-oe.inc53
-rw-r--r--conf/distro/include/vruntime-bbmask-oe-core.inc41
-rw-r--r--conf/distro/include/vruntime-bbmask.inc143
-rw-r--r--conf/distro/vruntime.conf7
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# ---------------------------------------------------------------------------
25BBMASK += "meta-oe/recipes-(?!devtools|extended|support)"
26
27# ---------------------------------------------------------------------------
28# meta-networking: mask all categories except filter, support
29# ---------------------------------------------------------------------------
30BBMASK += "meta-networking/recipes-(?!filter|support)"
31
32# ---------------------------------------------------------------------------
33# meta-filesystems: entire layer (0 recipes in dependency graph)
34# ---------------------------------------------------------------------------
35BBMASK += "meta-filesystems/"
36
37# ---------------------------------------------------------------------------
38# meta-python: entire layer (0 recipes in dependency graph)
39# ---------------------------------------------------------------------------
40BBMASK += "meta-python/"
41
42# ---------------------------------------------------------------------------
43# meta-webserver: entire layer (0 recipes in dependency graph)
44# ---------------------------------------------------------------------------
45BBMASK += "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)
51BBMASK += "meta-openstack/recipes-dbs/postgresql/"
52# meta-oe dynamic-layers bbappend for meta-networking packagegroup (recipes-core masked)
53BBMASK += "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# ---------------------------------------------------------------------------
18BBMASK += "/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# ---------------------------------------------------------------------------
23BBMASK += "/meta/recipes-multimedia/(?!alsa|libpng)"
24
25# ---------------------------------------------------------------------------
26# Sato desktop (~25 recipes) - Matchbox, webkit, desktop UI
27# ---------------------------------------------------------------------------
28BBMASK += "/meta/recipes-sato/"
29
30# ---------------------------------------------------------------------------
31# RT kernel (~4 recipes) - Real-time kernel, not needed for containers
32# ---------------------------------------------------------------------------
33BBMASK += "/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
39BBMASK += "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)
41BBMASK += "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# ---------------------------------------------------------------------------
22BBMASK += "meta-virtualization/recipes-extended/xen/"
23BBMASK += "meta-virtualization/recipes-extended/xvisor/"
24BBMASK += "meta-virtualization/recipes-extended/kvmtool/"
25BBMASK += "meta-virtualization/recipes-extended/libvirt/"
26BBMASK += "meta-virtualization/recipes-extended/libvmi/"
27BBMASK += "meta-virtualization/recipes-extended/virt-manager/"
28BBMASK += "meta-virtualization/recipes-extended/virt-viewer/"
29BBMASK += "meta-virtualization/recipes-extended/virt-what/"
30BBMASK += "meta-virtualization/recipes-extended/vhost-device/"
31BBMASK += "meta-virtualization/recipes-extended/dev86/"
32BBMASK += "meta-virtualization/recipes-extended/seabios/"
33BBMASK += "meta-virtualization/recipes-extended/vgabios/"
34BBMASK += "meta-virtualization/recipes-extended/upx/"
35BBMASK += "meta-virtualization/recipes-extended/uxen/"
36BBMASK += "meta-virtualization/recipes-extended/ipxe/"
37BBMASK += "meta-virtualization/recipes-extended/diod/"
38BBMASK += "meta-virtualization/recipes-extended/libibverbs/"
39BBMASK += "meta-virtualization/recipes-extended/virtiofsd/"
40
41# ---------------------------------------------------------------------------
42# Infrastructure / monitoring
43# ---------------------------------------------------------------------------
44BBMASK += "meta-virtualization/recipes-extended/ceph/"
45BBMASK += "meta-virtualization/recipes-extended/cloud-init/"
46BBMASK += "meta-virtualization/recipes-extended/cockpit-machines/"
47BBMASK += "meta-virtualization/recipes-extended/nagios/"
48BBMASK += "meta-virtualization/recipes-extended/oath/"
49BBMASK += "meta-virtualization/recipes-extended/irqbalance/"
50
51# ---------------------------------------------------------------------------
52# Container images / bundles / cross-deploy (main build only)
53# ---------------------------------------------------------------------------
54BBMASK += "meta-virtualization/recipes-extended/images/"
55BBMASK += "meta-virtualization/recipes-extended/container-bundles/"
56BBMASK += "meta-virtualization/recipes-extended/container-cross-deploy/"
57
58# ---------------------------------------------------------------------------
59# Not in dependency graph (rootless/overlay helpers not RDEPENDS)
60# ---------------------------------------------------------------------------
61BBMASK += "meta-virtualization/recipes-extended/fuse-overlayfs/"
62BBMASK += "meta-virtualization/recipes-extended/rootlesskit/"
63
64# ---------------------------------------------------------------------------
65# Container orchestration / tools not in vruntime
66# ---------------------------------------------------------------------------
67BBMASK += "meta-virtualization/recipes-containers/kubernetes/"
68BBMASK += "meta-virtualization/recipes-containers/k3s/"
69BBMASK += "meta-virtualization/recipes-containers/cri-o/"
70BBMASK += "meta-virtualization/recipes-containers/cri-tools/"
71BBMASK += "meta-virtualization/recipes-containers/docker-compose/"
72BBMASK += "meta-virtualization/recipes-containers/podman-compose/"
73BBMASK += "meta-virtualization/recipes-containers/podman-tui/"
74BBMASK += "meta-virtualization/recipes-containers/nerdctl/"
75BBMASK += "meta-virtualization/recipes-containers/buildah/"
76BBMASK += "meta-virtualization/recipes-containers/singularity/"
77BBMASK += "meta-virtualization/recipes-containers/lxc/"
78BBMASK += "meta-virtualization/recipes-containers/lxcfs/"
79BBMASK += "meta-virtualization/recipes-containers/criu/"
80BBMASK += "meta-virtualization/recipes-containers/docker-distribution/"
81
82# ---------------------------------------------------------------------------
83# Container tooling not used by vdkr/vpdmn
84# ---------------------------------------------------------------------------
85BBMASK += "meta-virtualization/recipes-containers/cgroup-lite/"
86BBMASK += "meta-virtualization/recipes-containers/riddler/"
87BBMASK += "meta-virtualization/recipes-containers/umoci/"
88BBMASK += "meta-virtualization/recipes-containers/sloci-image/"
89BBMASK += "meta-virtualization/recipes-containers/oci-image-tools/"
90BBMASK += "meta-virtualization/recipes-containers/oci-runtime-spec/"
91BBMASK += "meta-virtualization/recipes-containers/oci-runtime-tools/"
92BBMASK += "meta-virtualization/recipes-containers/oci-systemd-hook/"
93BBMASK += "meta-virtualization/recipes-containers/oci-image-spec/"
94BBMASK += "meta-virtualization/recipes-containers/oci-base-images/"
95BBMASK += "meta-virtualization/recipes-containers/container-registry/"
96BBMASK += "meta-virtualization/recipes-containers/go-digest/"
97BBMASK += "meta-virtualization/recipes-containers/go-errors/"
98BBMASK += "meta-virtualization/recipes-containers/go-spf13-cobra/"
99BBMASK += "meta-virtualization/recipes-containers/go-spf13-pflag/"
100
101# ---------------------------------------------------------------------------
102# Other categories not needed
103# ---------------------------------------------------------------------------
104BBMASK += "meta-virtualization/recipes-demo/"
105BBMASK += "meta-virtualization/recipes-graphics/"
106BBMASK += "meta-virtualization/recipes-core/kata-containers/"
107BBMASK += "meta-virtualization/recipes-core/runx/"
108BBMASK += "meta-virtualization/recipes-networking/openvswitch/"
109BBMASK += "meta-virtualization/recipes-networking/netns/"
110BBMASK += "meta-virtualization/recipes-networking/passt/"
111
112# ---------------------------------------------------------------------------
113# Dev recipes not needed (keep qemu & yajl bbappends, keep linux bbappends)
114# ---------------------------------------------------------------------------
115BBMASK += "meta-virtualization/recipes-devtools/python/"
116BBMASK += "meta-virtualization/recipes-devtools/go-dirhash-native/"
117BBMASK += "meta-virtualization/recipes-devtools/yq/"
118BBMASK += "meta-virtualization/recipes-kernel/lopper/"
119
120# Individual go libraries not needed by vruntime builds
121BBMASK += "meta-virtualization/recipes-devtools/go/go-connections"
122BBMASK += "meta-virtualization/recipes-devtools/go/go-capability"
123BBMASK += "meta-virtualization/recipes-devtools/go/go-build"
124BBMASK += "meta-virtualization/recipes-devtools/go/compose-file"
125BBMASK += "meta-virtualization/recipes-devtools/go/go-cli"
126BBMASK += "meta-virtualization/recipes-devtools/go/go-context"
127BBMASK += "meta-virtualization/recipes-devtools/go/go-logrus"
128BBMASK += "meta-virtualization/recipes-devtools/go/go-libtrust"
129BBMASK += "meta-virtualization/recipes-devtools/go/go-patricia"
130BBMASK += "meta-virtualization/recipes-devtools/go/go-systemd"
131BBMASK += "meta-virtualization/recipes-devtools/go/go-pty"
132BBMASK += "meta-virtualization/recipes-devtools/go/go-dbus"
133BBMASK += "meta-virtualization/recipes-devtools/go/go-distribution"
134BBMASK += "meta-virtualization/recipes-devtools/go/go-metalinter"
135BBMASK += "meta-virtualization/recipes-devtools/go/go-mux"
136BBMASK += "meta-virtualization/recipes-devtools/go/grpc-go"
137BBMASK += "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# ---------------------------------------------------------------------------
143BBMASK += "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
15require conf/distro/poky.conf 15require 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.
20require conf/distro/include/vruntime-bbmask.inc
21require conf/distro/include/vruntime-bbmask-oe-core.inc
22require conf/distro/include/vruntime-bbmask-meta-oe.inc
23
17DISTRO = "vruntime" 24DISTRO = "vruntime"
18DISTRO_NAME = "VRuntime Minimal" 25DISTRO_NAME = "VRuntime Minimal"
19DISTRO_VERSION = "1.0" 26DISTRO_VERSION = "1.0"