summaryrefslogtreecommitdiffstats
path: root/recipes-core
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2026-02-10 04:33:48 +0000
committerBruce Ashfield <bruce.ashfield@gmail.com>2026-02-10 21:04:20 +0000
commit6f53d7763906f24d86e89da4da744421c52d591c (patch)
treef37ff082e424b1e4aaa820c8e2db07b31146f091 /recipes-core
parenta71e7b0499c51c74686e41e7810e2f202d851ce6 (diff)
downloadmeta-virtualization-6f53d7763906f24d86e89da4da744421c52d591c.tar.gz
container-yocto-builder: add Yocto build container with systemd
Multi-layer OCI container image that can compile the Yocto Project. Three layers: systemd-base, build-tools, yocto-extras. Features CROPS-style dynamic user creation matching /workdir volume owner UID/GID. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Diffstat (limited to 'recipes-core')
-rw-r--r--recipes-core/packagegroups/packagegroup-yocto-builder.bb124
1 files changed, 124 insertions, 0 deletions
diff --git a/recipes-core/packagegroups/packagegroup-yocto-builder.bb b/recipes-core/packagegroups/packagegroup-yocto-builder.bb
new file mode 100644
index 00000000..f9cf8992
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-yocto-builder.bb
@@ -0,0 +1,124 @@
1SUMMARY = "Packages for a self-hosting Yocto build container"
2DESCRIPTION = "Build tools required to compile the Yocto Project. \
3 Based on packagegroup-self-hosted but without x11/opengl requirements."
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
6
7PACKAGE_ARCH = "${TUNE_PKGARCH}"
8
9inherit packagegroup
10
11PACKAGES = "\
12 packagegroup-yocto-builder \
13 packagegroup-yocto-builder-base \
14 packagegroup-yocto-builder-toolchain \
15 packagegroup-yocto-builder-extras \
16"
17
18RDEPENDS:packagegroup-yocto-builder = "\
19 packagegroup-yocto-builder-base \
20 packagegroup-yocto-builder-toolchain \
21 packagegroup-yocto-builder-extras \
22"
23
24# Layer 1: systemd core + container basics
25RDEPENDS:packagegroup-yocto-builder-base = "\
26 base-files \
27 base-passwd \
28 netbase \
29 systemd \
30 dbus \
31 bash \
32 coreutils \
33 packagegroup-core-base-utils \
34 packagegroup-core-ssh-openssh \
35 container-systemd-config \
36 builder-container-config \
37 iproute2 \
38 iputils-ping \
39"
40
41# Layer 2: compiler toolchain + dev tools
42RDEPENDS:packagegroup-yocto-builder-toolchain = "\
43 autoconf \
44 automake \
45 binutils \
46 binutils-symlinks \
47 ccache \
48 cpp \
49 cpp-symlinks \
50 gcc \
51 gcc-symlinks \
52 g++ \
53 g++-symlinks \
54 make \
55 libtool \
56 pkgconfig \
57 ldd \
58 less \
59 file \
60 findutils \
61 quilt \
62 sed \
63 libstdc++ \
64 libstdc++-dev \
65 diffutils \
66 git \
67 git-perltools \
68 python3 \
69 python3-modules \
70 perl \
71 perl-modules \
72 perl-dev \
73 perl-misc \
74 perl-pod \
75 perl-module-re \
76 perl-module-text-wrap \
77 patch \
78 gawk \
79 grep \
80 tar \
81 gzip \
82 bzip2 \
83 xz \
84 zstd \
85 rpcsvc-proto \
86 ${@bb.utils.contains('TCLIBC', 'glibc', 'glibc-utils', '', d)} \
87"
88
89# Layer 3: Yocto-specific tools + utilities
90RDEPENDS:packagegroup-yocto-builder-extras = "\
91 python3-jinja2 \
92 python3-pexpect \
93 python3-pip \
94 python3-git \
95 lz4 \
96 chrpath \
97 diffstat \
98 texinfo \
99 socat \
100 cpio \
101 unzip \
102 zip \
103 wget \
104 curl \
105 tmux \
106 screen \
107 sudo \
108 ${@bb.utils.contains('TCLIBC', 'glibc', 'pseudo', '', d)} \
109 gdb \
110 rsync \
111 strace \
112 openssl \
113 openssh-scp \
114 openssh-sftp-server \
115 ${@bb.utils.contains('TCLIBC', 'glibc', 'glibc-localedata-en-us glibc-gconv-ibm850', '', d)} \
116 rpm \
117 opkg \
118 opkg-utils \
119 elfutils \
120 readline \
121 ncurses \
122 ncurses-terminfo-base \
123 subversion \
124"