aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2016-04-18 18:14:05 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2016-04-18 18:14:05 +0000
commitd7698c0722d5341ef8778c33f039107a4e0e770e (patch)
tree1cef21bb433f1a238566fb29c6866d370c5e8c14
parent29fbb8071fd99dd8f90a29538e30c16a89c2dfd2 (diff)
downloadsrc-d7698c0722d5341ef8778c33f039107a4e0e770e.tar.gz
src-d7698c0722d5341ef8778c33f039107a4e0e770e.zip
META_MODE: Disable during installworld and similar.
META_MODE may create cookies during staging of files to WORLDTMP that would also prevent installation of the files to the final DESTDIR, since the cookie already exists. This is not yet the case but will be soon. Prevent other similar issues by disabling META_MODE for any top-level install targets. Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=298220
-rw-r--r--Makefile8
1 files changed, 8 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a45706fe5108..fcc8f6d35e49 100644
--- a/Makefile
+++ b/Makefile
@@ -183,6 +183,14 @@ SUB_MAKE= ${MAKE} -m ${.CURDIR}/share/mk
_MAKE= PATH=${PATH} ${SUB_MAKE} -f Makefile.inc1 TARGET=${_TARGET} TARGET_ARCH=${_TARGET_ARCH}
+# Must disable META_MODE when installing to avoid missing anything. The
+# main problem is that buildworld will create cookies for install targets
+# since they are being installed into WORLDTMP. This avoids unneeded and
+# redundant restaging but is dangerous for user install targets.
+.if make(distrib*) || make(*install*)
+_MAKE+= MK_META_MODE=no
+.endif
+
# Guess machine architecture from machine type, and vice versa.
.if !defined(TARGET_ARCH) && defined(TARGET)
_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/arm64/aarch64/}