git: 92d399a3be0e - main - release/vm: add a WITHOUT_QEMU option
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 12 Mar 2025 21:07:03 UTC
The branch main has been updated by brooks:
URL: https://cgit.FreeBSD.org/src/commit/?id=92d399a3be0e53622b9af16a82f9b7c7b62b34f7
commit 92d399a3be0e53622b9af16a82f9b7c7b62b34f7
Author: Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2025-03-12 21:05:33 +0000
Commit: Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2025-03-12 21:05:33 +0000
release/vm: add a WITHOUT_QEMU option
This option disables trying to build a qemu-<target>-static and simply
doesn't do any of the operations that rely on it. This disables package
installation which is required by most, but not all image types.
Disable all CLOUDWARE variants that require pkg when WITHOUT_QEMU is set
to avoid broken images.
Reviewed by: emaste
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D49310
---
release/Makefile.vm | 9 ++++++++-
release/tools/vmimage.subr | 11 +++++++++++
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/release/Makefile.vm b/release/Makefile.vm
index ec3e734285ce..b711d7891f11 100644
--- a/release/Makefile.vm
+++ b/release/Makefile.vm
@@ -21,6 +21,10 @@ VMDK_DESC= VMWare, VirtualBox disk image
QCOW2_DESC= Qemu, KVM disk image
RAW_DESC= Unformatted raw disk image
+.if defined(WITHOUT_QEMU)
+CLOUDWARE_TYPES?= \
+ BASIC-CI
+.else
CLOUDWARE_TYPES?= AZURE \
BASIC-CI \
BASIC-CLOUDINIT \
@@ -28,6 +32,7 @@ CLOUDWARE_TYPES?= AZURE \
GCE \
ORACLE \
VAGRANT
+.endif
AZURE_FORMAT= vhdf
AZURE_FSLIST?= ufs zfs
AZURE_DESC= Microsoft Azure platform image
@@ -94,7 +99,7 @@ emulator-portinstall:
.endif
touch ${.TARGET}
-.if ${TARGET_ARCH} != ${MACHINE_ARCH}
+.if ${TARGET_ARCH} != ${MACHINE_ARCH} && !defined(WITHOUT_QEMU)
.if ( ${TARGET_ARCH} != "i386" ) || ( ${MACHINE_ARCH} != "amd64" )
QEMUSTATIC=/usr/local/bin/qemu-${TARGET_ARCH}-static
QEMUTGT=emulator-portinstall
@@ -120,6 +125,7 @@ cw-${_CW:tl}-${_FS}-${_FMT}: ${QEMUTGT}
mkdir -p ${.OBJDIR}/${.TARGET}
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
QEMUSTATIC=${QEMUSTATIC} \
+ WITHOUT_QEMU=${WITHOUT_QEMU:Dtrue} \
${.CURDIR}/scripts/mk-vmimage.sh \
-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${_FS} \
-i ${.OBJDIR}/${_CW:tl}.${_FS}.${_FMT}.img -s ${VMSIZE} -f ${_FMT} \
@@ -169,6 +175,7 @@ vm-image: ${QEMUTGT}
mkdir -p ${.OBJDIR}/${.TARGET}-${FORMAT}-${FS}
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
QEMUSTATIC=${QEMUSTATIC} \
+ WITHOUT_QEMU=${WITHOUT_QEMU:Dtrue} \
${.CURDIR}/scripts/mk-vmimage.sh \
-C ${.CURDIR}/tools/vmimage.subr \
-d ${.OBJDIR}/${.TARGET}-${FORMAT}-${FS} -F ${FS} \
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
index 7ebf2144efe4..e7bd351c035c 100644
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -89,6 +89,9 @@ vm_install_base() {
}
vm_emulation_setup() {
+ if [ -n "${WITHOUT_QEMU}" ]; then
+ return 0
+ fi
if ! [ -z "${QEMUSTATIC}" ]; then
export EMULATOR=/qemu
cp ${QEMUSTATIC} ${DESTDIR}/${EMULATOR}
@@ -130,6 +133,10 @@ vm_extra_enable_services() {
}
vm_extra_install_packages() {
+ if [ -n "${WITHOUT_QEMU}" ]; then
+ return 0
+ fi
+
if [ -z "${VM_EXTRA_PACKAGES}" ]; then
return 0
fi
@@ -158,6 +165,10 @@ vm_extra_pre_umount() {
}
vm_emulation_cleanup() {
+ if [ -n "${WITHOUT_QEMU}" ]; then
+ return 0
+ fi
+
if ! [ -z "${QEMUSTATIC}" ]; then
rm -f ${DESTDIR}/${EMULATOR}
fi