diff options
| author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-10 04:33:48 +0000 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2026-02-10 21:04:20 +0000 |
| commit | 6f53d7763906f24d86e89da4da744421c52d591c (patch) | |
| tree | f37ff082e424b1e4aaa820c8e2db07b31146f091 /recipes-core | |
| parent | a71e7b0499c51c74686e41e7810e2f202d851ce6 (diff) | |
| download | meta-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.bb | 124 |
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 @@ | |||
| 1 | SUMMARY = "Packages for a self-hosting Yocto build container" | ||
| 2 | DESCRIPTION = "Build tools required to compile the Yocto Project. \ | ||
| 3 | Based on packagegroup-self-hosted but without x11/opengl requirements." | ||
| 4 | LICENSE = "MIT" | ||
| 5 | LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" | ||
| 6 | |||
| 7 | PACKAGE_ARCH = "${TUNE_PKGARCH}" | ||
| 8 | |||
| 9 | inherit packagegroup | ||
| 10 | |||
| 11 | PACKAGES = "\ | ||
| 12 | packagegroup-yocto-builder \ | ||
| 13 | packagegroup-yocto-builder-base \ | ||
| 14 | packagegroup-yocto-builder-toolchain \ | ||
| 15 | packagegroup-yocto-builder-extras \ | ||
| 16 | " | ||
| 17 | |||
| 18 | RDEPENDS: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 | ||
| 25 | RDEPENDS: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 | ||
| 42 | RDEPENDS: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 | ||
| 90 | RDEPENDS: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 | " | ||
