aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Percival <cperciva@FreeBSD.org>2023-11-27 21:29:05 +0000
committerColin Percival <cperciva@FreeBSD.org>2023-12-05 23:40:05 +0000
commit9b92ce7bd3a3cd4f127628a09bd4a9e9fdffe18a (patch)
tree84c87dc20d4fd9e32c8ffa2464ce1385d4dd67d4
parenta47a44c0d69ce82f302b02da940538a99b47037f (diff)
downloadsrc-9b92ce7bd3a3cd4f127628a09bd4a9e9fdffe18a.tar.gz
src-9b92ce7bd3a3cd4f127628a09bd4a9e9fdffe18a.zip
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 (cherry picked from commit 97bd53ef4d20b7d15e0b0976e885af9438f5637e)
-rw-r--r--release/Makefile.vm6
1 files changed, 4 insertions, 2 deletions
diff --git a/release/Makefile.vm b/release/Makefile.vm
index 1a58a548b9f4..a7624775d48c 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