git: 6ec9aaf63c81 - main - cloudware: allow disk format to be a list

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Thu, 11 Apr 2024 14:08:02 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/src/commit/?id=6ec9aaf63c81a68881cb6312f777349a0ac82ad5

commit 6ec9aaf63c81a68881cb6312f777349a0ac82ad5
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2024-04-11 07:33:49 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2024-04-11 14:07:50 +0000

    cloudware: allow disk format to be a list
    
    Make basic-cloudinit available both in qcow2 and raw formats
    
    MFC After:      1 week
    Reviewed by:    Allanjude
    Sponsored by:   OVHCloud
    Differential Revision:  https://reviews.freebsd.org/D44747
---
 release/Makefile.vm | 30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/release/Makefile.vm b/release/Makefile.vm
index a52e3b9bac81..f403928ed78a 100644
--- a/release/Makefile.vm
+++ b/release/Makefile.vm
@@ -30,7 +30,7 @@ AZURE_DESC=	Microsoft Azure platform image
 BASIC-CI_FORMAT=	raw
 BASIC-CI_FSLIST?=	ufs
 BASIC-CI_DESC=		Image for CI
-BASIC-CLOUDINIT_FORMAT=	raw
+BASIC-CLOUDINIT_FORMAT=	raw qcow2
 BASIC-CLOUDINIT_FSLIST?=	ufs zfs
 BASIC-CLOUDINIT_DESC?=	Images for VM with cloudinit disk config support
 EC2_FORMAT=	raw
@@ -99,33 +99,37 @@ QEMUTGT?=
 .  if exists(${.CURDIR}/tools/${_CW:tl}.conf) && !defined(${_CW:tu}CONF)
 ${_CW:tu}CONF?=	${.CURDIR}/tools/${_CW:tl}.conf
 .  endif
-.  for _FS in ${${_CW:tu}_FSLIST}
-CLOUDTARGETS+=	cw-${_CW:tl}-${_FS}
-CLEANDIRS+=	cw-${_CW:tl}-${_FS}
+.  for _FMT in ${${_CW:tu}_FORMAT}
+.   for _FS in ${${_CW:tu}_FSLIST}
+CLOUDTARGETS+=	cw-${_CW:tl}-${_FS}-${_FMT}
+CLEANDIRS+=	cw-${_CW:tl}-${_FS}-${_FMT}
 CLEANFILES+=	${_CW:tl}.${_FS}.img \
-		${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT} \
-		${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT}.raw
-${_CW:tu}${_FS:tu}IMAGE=	${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT}
+		${_CW:tl}.${_FS}.${_FMT} \
+		${_CW:tl}.${_FS}.${_FMT}.raw
+${_CW:tu}${_FS:tu}IMAGE=	${_CW:tl}.${_FS}.${_FMT}
 
-cw-${_CW:tl}-${_FS}: ${QEMUTGT}
+cw-${_CW:tl}-${_FS}-${_FMT}: ${QEMUTGT}
 	mkdir -p ${.OBJDIR}/${.TARGET}
 	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
 		QEMUSTATIC=${QEMUSTATIC} \
 		${.CURDIR}/scripts/mk-vmimage.sh \
 		-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${_FS} \
-		-i ${.OBJDIR}/${_CW:tl}.${_FS}.img -s ${VMSIZE} -f ${${_CW:tu}_FORMAT} \
+		-i ${.OBJDIR}/${_CW:tl}.${_FS}.img -s ${VMSIZE} -f ${_FMT} \
 		-S ${WORLDDIR} -o ${.OBJDIR}/${${_CW:tu}${_FS:tu}IMAGE} -c ${${_CW:tu}CONF}
 	touch ${.TARGET}
+.   endfor
 .  endfor
 
 # Hardlinks from "foo.bar" to "foo-${VMFS}.bar".  These can go away once all
 # of the cloudware code knows how to handle multiple filesystem images (or
 # at least knows the name of the UFS image).
-CLOUDTARGETS+=	cw-${_CW:tl}
-CLEANFILES+=	${_CW:tl}.${${_CW:tu}_FORMAT}
-${_CW:tu}IMAGE=	${_CW:tl}.${${_CW:tu}_FORMAT}
-cw-${_CW:tl}: cw-${_CW:tl}-${VMFS}
+.  for _FMT in ${${_CW:tu}_FORMAT}
+CLOUDTARGETS+=	cw-${_CW:tl}-${_FMT}
+CLEANFILES+=	${_CW:tl}.${_FMT}
+${_CW:tu}IMAGE=	${_CW:tl}.${${_FMT}
+cw-${_CW:tl}-${_FMT}: cw-${_CW:tl}-${VMFS}-${_FMT}
 	ln -f ${${_CW:tu}${VMFS:tu}IMAGE} ${${_CW:tu}IMAGE}
+.  endfor
 . endfor
 .endif