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