git: 1c9953bea952 - stable/14 - cloudware: allow disk format to be a list
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Apr 2024 05:44:01 UTC
The branch stable/14 has been updated by cperciva:
URL: https://cgit.FreeBSD.org/src/commit/?id=1c9953bea952e1805dd44705d5e1566c3fb7181b
commit 1c9953bea952e1805dd44705d5e1566c3fb7181b
Author: Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2024-04-14 17:44:07 +0000
Commit: Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2024-04-17 05:43:27 +0000
cloudware: allow disk format to be a list
Make basic-cloudinit available both in qcow2 and raw formats
MFC After: 3 days
Co-Authored-By: bapt
Sponsored by: OVHCloud (original patch from bapt)
Differential Revision: https://reviews.freebsd.org/D44747
(cherry picked from commit 5c213bf01a5dca7c4030efd2ad9c9f84852e7b32)
---
release/Makefile.vm | 48 ++++++++++++++++++++++++++++++------------------
1 file changed, 30 insertions(+), 18 deletions(-)
diff --git a/release/Makefile.vm b/release/Makefile.vm
index 54fee60b2e22..136e58e1aded 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
@@ -103,32 +103,44 @@ QEMUTGT?=
${_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}
-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-${_CW:tl}-${_FS}: ${QEMUTGT}
+. for _FMT in ${${_CW:tu}_FORMAT}
+CLOUDTARGETS+= cw-${_CW:tl}-${_FS}-${_FMT}
+CLEANDIRS+= cw-${_CW:tl}-${_FS}-${_FMT}
+CLEANFILES+= ${_CW:tl}.${_FS}.${_FMT}.img \
+ ${_CW:tl}.${_FS}.${_FMT} \
+ ${_CW:tl}.${_FS}.${_FMT}.raw
+${_CW:tu}${_FS:tu}${_FMT:tu}IMAGE= ${_CW:tl}.${_FS}.${_FMT}
+
+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} \
- -S ${WORLDDIR} -o ${.OBJDIR}/${${_CW:tu}${_FS:tu}IMAGE} -c ${${_CW:tu}CONF}
+ -i ${.OBJDIR}/${_CW:tl}.${_FS}.${_FMT}.img -s ${VMSIZE} -f ${_FMT} \
+ -S ${WORLDDIR} -o ${.OBJDIR}/${${_CW:tu}${_FS:tu}${_FMT: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
+# Hardlinks from "foo.${FMT}" to "foo-${VMFS}.${FMT}". 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}
- ln -f ${${_CW:tu}${VMFS:tu}IMAGE} ${${_CW:tu}IMAGE}
+. for _FMT in ${${_CW:tu}_FORMAT}
+CLOUDTARGETS+= cw-${_CW:tl}-${_FMT}
+CLEANFILES+= ${_CW:tl}.${_FMT}
+${_CW:tu}${_FMT:tu}IMAGE= ${_CW:tl}.${_FMT}
+cw-${_CW:tl}-${_FMT}: cw-${_CW:tl}-${VMFS}-${_FMT}
+ ln -f ${${_CW:tu}${VMFS:tu}${_FMT:tu}IMAGE} ${${_CW:tu}${_FMT:tu}IMAGE}
+. endfor
+
+# Targets without a disk format listed are the first disk format on the list
+. for _FS in ${${_CW:tu}_FSLIST}
+${_CW:tu}${_FS:tu}IMAGE= ${_CW:tl}.${_FS}.${${_CW:tu}_FORMAT:[1]}
+cw-${_CW:tl}-${_FS}: cw-${_CW:tl}-${_FS}-${${_CW:tu}_FORMAT:[1]}
+. endfor
+${_CW:tu}IMAGE= ${_CW:tl}.${${_CW:tu}_FORMAT:[1]}
+cw-${_CW:tl}: cw-${_CW:tl}-${${_CW:tu}_FORMAT:[1]}
. endfor
.endif