Module Name:    src
Committed By:   apb
Date:           Sun Dec  2 19:19:37 UTC 2012

Modified Files:
        src: build.sh

Log Message:
Move some tests from validatemakeparams() to sanitycheck(), so the
related error messages can be printed before build.sh builds
a new version of make.

Also make some sanity tests unconditional, instead of conditional on
${do_build} || ${do_distribution} || ${do_release} || ${do_install}.


To generate a diff of this commit:
cvs rdiff -u -r1.259 -r1.260 src/build.sh

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/build.sh
diff -u src/build.sh:1.259 src/build.sh:1.260
--- src/build.sh:1.259	Thu Nov 15 23:51:53 2012
+++ src/build.sh	Sun Dec  2 19:19:36 2012
@@ -1,5 +1,5 @@
 #! /usr/bin/env sh
-#	$NetBSD: build.sh,v 1.259 2012/11/15 23:51:53 joerg Exp $
+#	$NetBSD: build.sh,v 1.260 2012/12/02 19:19:36 apb Exp $
 #
 # Copyright (c) 2001-2011 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -1253,6 +1253,24 @@ parseoptions()
 #
 sanitycheck()
 {
+	# Non-root should always use either the -U or -E flag.
+	#
+	if ! ${do_expertmode} && \
+	    [ "$id_u" -ne 0 ] && \
+	    [ "${MKUNPRIVED}" = "no" ] ; then
+		bomb "-U or -E must be set for build as an unprivileged user."
+	fi
+
+	# Install as non-root is a bad idea.
+	#
+	if ${do_install} && [ "$id_u" -ne 0 ] ; then
+		if ${do_expertmode}; then
+			warning "Will install as an unprivileged user."
+		else
+			bomb "-E must be set for install as an unprivileged user."
+		fi
+	fi
+
 	# If the PATH contains any non-absolute components (including,
 	# but not limited to, "." or ""), then complain.  As an exception,
 	# allow "" or "." as the last component of the PATH.  This is fatal
@@ -1580,45 +1598,26 @@ validatemakeparams()
 	removedirs="${TOOLDIR}"
 
 	if [ -z "${DESTDIR}" ] || [ "${DESTDIR}" = "/" ]; then
-		if ${do_build} || ${do_distribution} || ${do_release}; then
-			if ! ${do_build} || \
-			   [ "${uname_s}" != "NetBSD" ] || \
-			   [ "${uname_m}" != "${MACHINE}" ]; then
-				bomb "DESTDIR must != / for cross builds, or ${progname} 'distribution' or 'release'."
-			fi
-			if ! ${do_expertmode}; then
-				bomb "DESTDIR must != / for non -E (expert) builds"
-			fi
-			statusmsg "WARNING: Building to /, in expert mode."
-			statusmsg "         This may cause your system to break!  Reasons include:"
-			statusmsg "            - your kernel is not up to date"
-			statusmsg "            - the libraries or toolchain have changed"
-			statusmsg "         YOU HAVE BEEN WARNED!"
+		if ${do_distribution} || ${do_release} || \
+		   [ "${uname_s}" != "NetBSD" ] || \
+		   [ "${uname_m}" != "${MACHINE}" ]; then
+			bomb "DESTDIR must != / for cross builds, or ${progname} 'distribution' or 'release'."
+		fi
+		if ! ${do_expertmode}; then
+			bomb "DESTDIR must != / for non -E (expert) builds"
 		fi
+		statusmsg "WARNING: Building to /, in expert mode."
+		statusmsg "         This may cause your system to break!  Reasons include:"
+		statusmsg "            - your kernel is not up to date"
+		statusmsg "            - the libraries or toolchain have changed"
+		statusmsg "         YOU HAVE BEEN WARNED!"
 	else
 		removedirs="${removedirs} ${DESTDIR}"
 	fi
-	if ${do_build} || ${do_distribution} || ${do_release}; then
-		if ! ${do_expertmode} && \
-		    [ "$id_u" -ne 0 ] && \
-		    [ "${MKUNPRIVED}" = "no" ] ; then
-			bomb "-U or -E must be set for build as an unprivileged user."
-		fi
-	fi
 	if ${do_releasekernel} && [ -z "${RELEASEDIR}" ]; then
 		bomb "Must set RELEASEDIR with \`releasekernel=...'"
 	fi
 
-	# Install as non-root is a bad idea.
-	#
-	if ${do_install} && [ "$id_u" -ne 0 ] ; then
-		if ${do_expertmode}; then
-			warning "Will install as an unprivileged user."
-		else
-			bomb "-E must be set for install as an unprivileged user."
-		fi
-	fi
-
 	# If a previous build.sh run used -U (and therefore created a
 	# METALOG file), then most subsequent build.sh runs must also
 	# use -U.  If DESTDIR is about to be removed, then don't perform
@@ -1629,9 +1628,7 @@ validatemakeparams()
 		# DESTDIR is about to be removed
 		;;
 	*)
-		if ( ${do_build} || ${do_distribution} || ${do_release} || \
-		    ${do_install} ) && \
-		    [ -e "${DESTDIR}/METALOG" ] && \
+		if [ -e "${DESTDIR}/METALOG" ] && \
 		    [ "${MKUNPRIVED}" = "no" ] ; then
 			if $do_expertmode; then
 				warning "A previous build.sh run specified -U."
@@ -1718,7 +1715,7 @@ createmakewrapper()
 	eval cat <<EOF ${makewrapout}
 #! ${HOST_SH}
 # Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from:  \$NetBSD: build.sh,v 1.259 2012/11/15 23:51:53 joerg Exp $
+# Generated from:  \$NetBSD: build.sh,v 1.260 2012/12/02 19:19:36 apb Exp $
 # with these arguments: ${_args}
 #
 

Reply via email to