From 97bd53ef4d20b7d15e0b0976e885af9438f5637e Mon Sep 17 00:00:00 2001 From: Colin Percival Date: Mon, 27 Nov 2023 13:29:05 -0800 Subject: [PATCH] Makefile.vm: Fix duplicate rc.conf files Two bugs in Makefile.vm resulted in disk images being "built" multiple times, resulting in lines added to /etc/rc.conf being duplicated: 1. The vm-image target reused the same "staging tree" directory for all of its builds (multiple disk image types and multiple filesystem types). 2. The cw-type-flavour-fs target depends on emulator-portinstall, which did not have a 'touch ${.TARGET}' and thus re-ran every time -- and caused the cw-type-flavour-fs target to be re-run. This was triggered by release builds running `make cloudware-release` (creating the disk images) followed by `make ec2amis` (which re-created the disk images prior to uploading them). MFC After: 1 week Sponsored by: https://www.patreon.com/cperciva --- release/Makefile.vm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/release/Makefile.vm b/release/Makefile.vm index 1a58a548b9f..a7624775d48 100644 --- a/release/Makefile.vm +++ b/release/Makefile.vm @@ -81,6 +81,7 @@ emulator-portinstall: env ASSUME_ALWAYS_YES=yes pkg install -y emulators/qemu-user-static .endif .endif + touch ${.TARGET} QEMUSTATIC=/usr/local/bin/qemu-${TARGET_ARCH}-static .endif @@ -137,10 +138,11 @@ vm-image: .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES) . for FORMAT in ${VMFORMATS} . for FS in ${VMFSLIST} - mkdir -p ${.OBJDIR}/${.TARGET} + mkdir -p ${.OBJDIR}/${.TARGET}-${FORMAT}-${FS} env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} SWAPSIZE=${SWAPSIZE} \ ${.CURDIR}/scripts/mk-vmimage.sh \ - -C ${.CURDIR}/tools/vmimage.subr -d ${.OBJDIR}/${.TARGET} -F ${FS} \ + -C ${.CURDIR}/tools/vmimage.subr \ + -d ${.OBJDIR}/${.TARGET}-${FORMAT}-${FS} -F ${FS} \ -i ${.OBJDIR}/${FORMAT}.${FS}.img -s ${VMSIZE} -f ${FORMAT} \ -S ${WORLDDIR} -o ${.OBJDIR}/${VMBASE}.${FS}.${FORMAT} . endfor