git: 48578fbefa66 - stable/15 - release: Add images for almost all packages, with & without toolchain

From: Dave Cottlehuber <dch_at_FreeBSD.org>
Date: Fri, 19 Sep 2025 11:50:54 UTC
The branch stable/15 has been updated by dch:

URL: https://cgit.FreeBSD.org/src/commit/?id=48578fbefa666abfcfe3a47269343febefae94f9

commit 48578fbefa666abfcfe3a47269343febefae94f9
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2025-09-19 11:44:23 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2025-09-19 11:47:10 +0000

    release: Add images for almost all packages, with & without toolchain
    
    Contains almost everything of use in a container except:
    
    - *lib32
    - *dev
    - *dbg
    - *src
    - anything expecting hardware such as device config tools
    
    Differential Revision:  https://reviews.freebsd.org/D51471
    
    Reviewed by:    dfr, emaste
    Approved by:    cperciva
    MFC after:      1 day
    Sponsored by:   SkunkWerks, GmbH
    
    (cherry picked from commit 7295620108834090187cb9b429dbd664a7ab953d)
---
 release/Makefile.oci                     |  8 ++--
 release/scripts/make-oci-image.sh        |  2 +-
 release/tools/oci-image-notoolchain.conf | 68 ++++++++++++++++++++++++++++++++
 release/tools/oci-image-toolchain.conf   | 16 ++++++++
 4 files changed, 90 insertions(+), 4 deletions(-)

diff --git a/release/Makefile.oci b/release/Makefile.oci
index a6f998002f92..16c475937d15 100644
--- a/release/Makefile.oci
+++ b/release/Makefile.oci
@@ -3,7 +3,7 @@
 #
 
 .if defined(WITH_OCIIMAGES) && !empty(WITH_OCIIMAGES)
-OCI_IMAGES= static dynamic runtime
+OCI_IMAGES= static dynamic runtime notoolchain toolchain
 .endif
 
 oci-install:
@@ -16,8 +16,10 @@ oci-install:
 
 OCI_TARGETS=
 OCI_DEPS_static=
-OCI_DEPS_dynamic= container-image-static.txz
-OCI_DEPS_runtime= container-image-dynamic.txz
+OCI_DEPS_dynamic=container-image-static.txz
+OCI_DEPS_runtime=container-image-dynamic.txz
+OCI_DEPS_notoolchain=container-image-runtime.txz
+OCI_DEPS_toolchain=container-image-notoolchain.txz
 
 .for _IMG in ${OCI_IMAGES}
 OCI_TARGETS+= container-image-${_IMG}.txz
diff --git a/release/scripts/make-oci-image.sh b/release/scripts/make-oci-image.sh
index 8a620e9d8973..6e5ad69741f7 100644
--- a/release/scripts/make-oci-image.sh
+++ b/release/scripts/make-oci-image.sh
@@ -47,7 +47,7 @@ install_packages() {
 	# metadata for what was installed). This trims more than 40Mb from the
 	# resulting image.
 	env IGNORE_OSVERSION=yes ABI=${abi} pkg --rootdir ${rootdir} --repo-conf-dir ${workdir}/repos \
-		install -yq "$@" || exit $?
+		install -yq -g "$@" || exit $?
 	rm -rf ${rootdir}/var/db/pkg/repos
 }
 
diff --git a/release/tools/oci-image-notoolchain.conf b/release/tools/oci-image-notoolchain.conf
new file mode 100644
index 000000000000..e251281a7357
--- /dev/null
+++ b/release/tools/oci-image-notoolchain.conf
@@ -0,0 +1,68 @@
+#! /bin/sh
+
+# Build OCI container image with almost all packages suitable for jails, excluding compiler
+
+OCI_BASE_IMAGE=runtime
+
+oci_image_build() {
+	set_cmd ${workdir} /bin/sh
+	install_packages ${abi} ${workdir} \
+		FreeBSD-acct \
+		FreeBSD-at \
+		FreeBSD-audit \
+		FreeBSD-autofs \
+		FreeBSD-blocklist \
+		FreeBSD-bsnmp \
+		FreeBSD-caroot \
+		FreeBSD-certctl \
+		FreeBSD-clibs \
+		FreeBSD-console-tools \
+		FreeBSD-cron \
+		FreeBSD-csh \
+		FreeBSD-dma \
+		FreeBSD-ee \
+		FreeBSD-fd \
+		FreeBSD-fetch \
+		FreeBSD-ftp \
+		FreeBSD-ftpd \
+		FreeBSD-inetd \
+		FreeBSD-ipf \
+		FreeBSD-ipfw \
+		FreeBSD-iscsi \
+		FreeBSD-jail \
+		FreeBSD-kerberos \
+		FreeBSD-kerberos-lib \
+		FreeBSD-libarchive \
+		FreeBSD-libcompiler_rt-dev \
+		FreeBSD-libexecinfo \
+		FreeBSD-libucl \
+		FreeBSD-locales \
+		FreeBSD-lp \
+		FreeBSD-mtree \
+		FreeBSD-natd \
+		FreeBSD-netmap \
+		FreeBSD-newsyslog \
+		FreeBSD-nfs \
+		FreeBSD-nuageinit \
+		FreeBSD-openssl \
+		FreeBSD-periodic \
+		FreeBSD-pf \
+		FreeBSD-pkg-bootstrap \
+		FreeBSD-quotacheck \
+		FreeBSD-rc \
+		FreeBSD-rcmds \
+		FreeBSD-rescue \
+		FreeBSD-resolvconf \
+		FreeBSD-runtime \
+		FreeBSD-ssh \
+		FreeBSD-syslogd \
+		FreeBSD-tcpd \
+		FreeBSD-telnet \
+		FreeBSD-ufs \
+		FreeBSD-unbound \
+		FreeBSD-utilities \
+		FreeBSD-vi \
+		FreeBSD-yp \
+		FreeBSD-zfs \
+		FreeBSD-zoneinfo
+}
diff --git a/release/tools/oci-image-toolchain.conf b/release/tools/oci-image-toolchain.conf
new file mode 100644
index 000000000000..b3b7eed8e8d1
--- /dev/null
+++ b/release/tools/oci-image-toolchain.conf
@@ -0,0 +1,16 @@
+#! /bin/sh
+
+# Build Open Container Initiative (OCI) container image with almost all of FreeBSD base.txz
+
+OCI_BASE_IMAGE=notoolchain
+
+oci_image_build() {
+	set_cmd ${workdir} /bin/sh
+	install_packages ${abi} ${workdir} \
+		FreeBSD-clang \
+		FreeBSD-ctf-tools \
+		FreeBSD-lld \
+		FreeBSD-lldb \
+		FreeBSD-toolchain \
+		FreeBSD-*-dev
+}