release: Build UFS and ZFS VM images
A new option 'VMFSLIST' controls the list of filesystems for which VM images will be built; the default is to build both UFS and ZFS. The vm-install target installs these as ${OSRELEASE}-${FS}.${FORMAT}, e.g. FreeBSD-14.0-CURRENT-amd64-zfs.vmdk. For backwards compatibility, the ${VMFS} image is linked to the previously used ${OSRELEASE}.${FORMAT} name. Cloudware building will be updated in a later commit. Reviewed by: gjb Reviewed by: emaste, markj (previous version) Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D41340
This commit is contained in:
parent
cbf845052f
commit
32ae9a6b39
@ -9,6 +9,7 @@ VMTARGETS= vm-image
|
||||
VMFORMATS?= vhd vmdk qcow2 raw
|
||||
VMSIZE?= 5120m
|
||||
VMFS?= ufs
|
||||
VMFSLIST?= ufs zfs
|
||||
SWAPSIZE?= 1g
|
||||
VMBASE?= vm
|
||||
|
||||
@ -112,8 +113,10 @@ cw${_CW:tl}-package:
|
||||
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
||||
CLEANDIRS+= ${VMTARGETS}
|
||||
. for FORMAT in ${VMFORMATS}
|
||||
CLEANFILES+= ${FORMAT}.img
|
||||
CLEANFILES+= ${VMBASE}.${FORMAT}
|
||||
. for FS in ${VMFSLIST}
|
||||
CLEANFILES+= ${FORMAT}.${FS}.img
|
||||
CLEANFILES+= ${VMBASE}.${FS}.${FORMAT}
|
||||
. endfor
|
||||
. endfor
|
||||
.endif
|
||||
|
||||
@ -122,12 +125,14 @@ vm-base: vm-image
|
||||
vm-image:
|
||||
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
||||
. for FORMAT in ${VMFORMATS}
|
||||
. for FS in ${VMFSLIST}
|
||||
mkdir -p ${.OBJDIR}/${.TARGET}
|
||||
env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \
|
||||
${.CURDIR}/scripts/mk-vmimage.sh \
|
||||
-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${VMFS} \
|
||||
-i ${.OBJDIR}/${FORMAT}.img -s ${VMSIZE} -f ${FORMAT} \
|
||||
-S ${WORLDDIR} -o ${.OBJDIR}/${VMBASE}.${FORMAT}
|
||||
-C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${FS} \
|
||||
-i ${.OBJDIR}/${FORMAT}.${FS}.img -s ${VMSIZE} -f ${FORMAT} \
|
||||
-S ${WORLDDIR} -o ${.OBJDIR}/${VMBASE}.${FS}.${FORMAT}
|
||||
. endfor
|
||||
. endfor
|
||||
.endif
|
||||
touch ${.TARGET}
|
||||
@ -154,15 +159,27 @@ vm-install:
|
||||
.if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
|
||||
mkdir -p ${DESTDIR}/vmimages
|
||||
. for FORMAT in ${VMFORMATS}
|
||||
cp -p ${VMBASE}.${FORMAT} \
|
||||
${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
|
||||
. for FS in ${VMFSLIST}
|
||||
cp -p ${VMBASE}.${FS}.${FORMAT} \
|
||||
${DESTDIR}/vmimages/${OSRELEASE}-${FS}.${FORMAT}
|
||||
. endfor
|
||||
. endfor
|
||||
. if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES)
|
||||
. for FORMAT in ${VMFORMATS}
|
||||
. for FS in ${VMFSLIST}
|
||||
# Don't keep the originals. There is a copy in ${.OBJDIR} if needed.
|
||||
${XZ_CMD} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
|
||||
${XZ_CMD} ${DESTDIR}/vmimages/${OSRELEASE}-${FS}.${FORMAT}
|
||||
. endfor
|
||||
. endfor
|
||||
. endif
|
||||
# Compatibility hardlinks from "foo.bar" to "foo-${VMFS}.bar".
|
||||
. for FORMAT in ${VMFORMATS}
|
||||
. if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES)
|
||||
ln -f ${DESTDIR}/vmimages/${OSRELEASE}-${VMFS}.${FORMAT}.xz ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}.xz
|
||||
. else
|
||||
ln -f ${DESTDIR}/vmimages/${OSRELEASE}-${VMFS}.${FORMAT} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
|
||||
. endif
|
||||
. endfor
|
||||
cd ${DESTDIR}/vmimages && sha512 ${OSRELEASE}* > \
|
||||
${DESTDIR}/vmimages/CHECKSUM.SHA512
|
||||
cd ${DESTDIR}/vmimages && sha256 ${OSRELEASE}* > \
|
||||
|
@ -366,13 +366,24 @@ is used, the resulting files compressed with
|
||||
compress to roughly the same size, regardless of the specified disk image
|
||||
size.
|
||||
.It Va VMFS
|
||||
Set to specify the file system type to use.
|
||||
(Deprecated.)
|
||||
Set to specify which of the filesystem(s) listed in
|
||||
.Va VMFSLIST
|
||||
is linked to the historical non-filesystem-labelled file name.
|
||||
Valid values are
|
||||
.Va ufs
|
||||
and
|
||||
.Va zfs .
|
||||
The default value is
|
||||
.Va ufs .
|
||||
.It Va VMFSLIST
|
||||
Set to specify the list of file system types to build images for.
|
||||
Valid values are one or both of
|
||||
.Va ufs
|
||||
and
|
||||
.Va zfs .
|
||||
The default value is
|
||||
.Va ufs zfs .
|
||||
.It Va VMFORMATS
|
||||
Set to the target virtual disk image format(s) to create.
|
||||
By default, the
|
||||
|
Loading…
Reference in New Issue
Block a user