Add WITH_COMPRESSED_VMIMAGES variable, which when set enables

xz(1) compression of the virtual machine images.

This is intentionally separate to allow more fine-grained
tuning over which images are compressed, especially in cases
where compressing 20GB sparse images can take hours.

Sponsored by:	The FreeBSD Foundation
This commit is contained in:
Glen Barber 2014-10-02 00:34:03 +00:00
parent a2950cc4e3
commit a9278c16be
3 changed files with 14 additions and 2 deletions

View File

@ -24,6 +24,8 @@
# WITH_COMPRESSED_IMAGES: if set, compress installation images with xz(1) # WITH_COMPRESSED_IMAGES: if set, compress installation images with xz(1)
# (uncompressed images are not removed) # (uncompressed images are not removed)
# WITH_VMIMAGES: if set, build virtual machine images with the release # WITH_VMIMAGES: if set, build virtual machine images with the release
# WITH_COMPRESSED_VMIMAGES: if set, compress virtual machine disk images
# with xz(1) (extremely time consuming)
# TARGET/TARGET_ARCH: architecture of built release # TARGET/TARGET_ARCH: architecture of built release
# #
@ -301,7 +303,7 @@ install:
cp -p ${VMBASE}.${FORMAT} \ cp -p ${VMBASE}.${FORMAT} \
${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT} ${DESTDIR}/vmimages/${OSRELEASE}.${FORMAT}
. endfor . endfor
. if defined(WITH_COMPRESSED_IMAGES) && !empty(WITH_COMPRESSED_IMAGES) . if defined(WITH_COMPRESSED_VMIMAGES) && !empty(WITH_COMPRESSED_VMIMAGES)
# This is very time consuming, so defer it after the images are moved to # This is very time consuming, so defer it after the images are moved to
# the DESTDIR. # the DESTDIR.
. for FORMAT in ${VMFORMATS} . for FORMAT in ${VMFORMATS}

View File

@ -81,6 +81,10 @@ PORTBRANCH="ports/head@rHEAD"
## release build. ## release build.
#WITH_VMIMAGES= #WITH_VMIMAGES=
## Set to a non-empty value to compress virtual machine images with xz(1)
## as part of the release build.
#WITH_COMPRESSED_VMIMAGES=
## If WITH_VMIMAGES is set to a non-empty value, this is the name of the ## If WITH_VMIMAGES is set to a non-empty value, this is the name of the
## file to use for the installed userland/kernel. ## file to use for the installed userland/kernel.
#VMBASE="vm" #VMBASE="vm"

View File

@ -89,6 +89,11 @@ NOPORTS=
WITH_DVD= WITH_DVD=
WITH_COMPRESSED_IMAGES= WITH_COMPRESSED_IMAGES=
# Set to non-empty value to build virtual machine images as part of
# the release.
WITH_VMIMAGES=
WITH_COMPRESSED_VMIMAGES=
usage() { usage() {
echo "Usage: $0 [-c release.conf]" echo "Usage: $0 [-c release.conf]"
exit 1 exit 1
@ -274,4 +279,5 @@ eval chroot ${CHROOTDIR} make -C /usr/src ${RELEASE_KMAKEFLAGS} buildkernel
eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \
release release
eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \ eval chroot ${CHROOTDIR} make -C /usr/src/release ${RELEASE_RMAKEFLAGS} \
install DESTDIR=/R WITH_COMPRESSED_IMAGES=${WITH_COMPRESSED_IMAGES} install DESTDIR=/R WITH_COMPRESSED_IMAGES=${WITH_COMPRESSED_IMAGES} \
WITH_COMPRESSED_VMIMAGES=${WITH_COMPRESSED_VMIMAGES}