Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Oct 2014 15:03:06 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r273093 - in head/release: amd64 i386
Message-ID:  <201410141503.s9EF36ZG080734@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Tue Oct 14 15:03:06 2014
New Revision: 273093
URL: https://svnweb.freebsd.org/changeset/base/273093

Log:
  Merge the following from ^/projects/release-vmimage:
  r272436, r272437, r272792:
  
  r272436:
    Remove the first argument to panic(), which was initially
    intended to be the exit code, however when a non-zero exit
    code was returned to release/Makefile, this would prevent
    any remaining (and possibly successful) stages from being
    attempted.
  
  r272437:
  
    If the vm-base target fails, prevent the vm-image target
    from being run since it cannot possibly succeed.
  
  r272792:
  
    Add /usr/local/bin and /usr/local/sbin to PATH, needed
    if third-party software needs to use utilities outside
    of the base system during post-install stages (indexinfo
    is one culprit).
  
  MFC after:	3 days
  X-MFC-10.1:	yes
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/release/amd64/mk-vmimage.sh
  head/release/i386/mk-vmimage.sh

Modified: head/release/amd64/mk-vmimage.sh
==============================================================================
--- head/release/amd64/mk-vmimage.sh	Tue Oct 14 14:52:39 2014	(r273092)
+++ head/release/amd64/mk-vmimage.sh	Tue Oct 14 15:03:06 2014	(r273093)
@@ -32,7 +32,7 @@
 # $FreeBSD$
 #
 
-PATH="/bin:/usr/bin:/sbin:/usr/sbin"
+PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
 export PATH
 
 usage_vm_base() {
@@ -58,16 +58,25 @@ usage() {
 }
 
 panic() {
-	rc="${1}"
-	shift 1
 	msg="${@}"
 	printf "${msg}\n"
 	if [ ! -z "${mddev}" ]; then
 		mdconfig -d -u ${mddev}
 	fi
+	case ${cmd} in
+		vm-base)
+			# If the vm-base target fails, the vm-image target
+			# cannot possibly succeed.  Touch the .TARGET file
+			# so it is not attempted.
+			touch vm-image
+			;;
+		*)
+			# FALLTHROUGH
+			;;
+	esac
 	# Do not allow one failure case to chain through any remaining image
 	# builds.
-	exit 0
+	return 1
 }
 
 vm_create_baseimage() {
@@ -96,7 +105,7 @@ vm_create_baseimage() {
 	cd ${WORLDDIR} && \
 		make DESTDIR=${DESTDIR} \
 		installworld installkernel distribution || \
-		panic 1 "\n\nCannot install the base system to ${DESTDIR}."
+		panic "\n\nCannot install the base system to ${DESTDIR}."
 	chroot ${DESTDIR} /usr/bin/newaliases
 	echo '# Custom /etc/fstab for FreeBSD VM images' \
 		> ${DESTDIR}/etc/fstab
@@ -111,7 +120,7 @@ vm_create_baseimage() {
 			# This should never happen.  But, it has happened.
 			msg="Cannot umount(8) ${DESTDIR}\n"
 			msg="${msg}Something has gone horribly wrong."
-			panic 1 "${msg}"
+			panic "${msg}"
 		fi
 		sleep 1
 	done
@@ -141,11 +150,11 @@ vm_create_vmdisk() {
 	if [ -z "${mkimg_version}" ]; then
 		msg="Cannot determine mkimg(1) version.\n"
 		msg="${msg}Cannot continue without a known mkimg(1) version."
-		panic 0 "${msg}"
+		panic "${msg}"
 	fi
 
 	if ! mkimg --formats 2>/dev/null | grep -q ${FORMAT}; then
-		panic 0 "'${FORMAT}' is not supported by this mkimg(1).\n"
+		panic "'${FORMAT}' is not supported by this mkimg(1).\n"
 	fi
 
 	case ${FORMAT} in

Modified: head/release/i386/mk-vmimage.sh
==============================================================================
--- head/release/i386/mk-vmimage.sh	Tue Oct 14 14:52:39 2014	(r273092)
+++ head/release/i386/mk-vmimage.sh	Tue Oct 14 15:03:06 2014	(r273093)
@@ -32,7 +32,7 @@
 # $FreeBSD$
 #
 
-PATH="/bin:/usr/bin:/sbin:/usr/sbin"
+PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
 export PATH
 
 usage_vm_base() {
@@ -58,16 +58,25 @@ usage() {
 }
 
 panic() {
-	rc="${1}"
-	shift 1
 	msg="${@}"
 	printf "${msg}\n"
 	if [ ! -z "${mddev}" ]; then
 		mdconfig -d -u ${mddev}
 	fi
+	case ${cmd} in
+		vm-base)
+			# If the vm-base target fails, the vm-image target
+			# cannot possibly succeed.  Touch the .TARGET file
+			# so it is not attempted.
+			touch vm-image
+			;;
+		*)
+			# FALLTHROUGH
+			;;
+	esac
 	# Do not allow one failure case to chain through any remaining image
 	# builds.
-	exit 0
+	return 1
 }
 
 vm_create_baseimage() {
@@ -96,7 +105,7 @@ vm_create_baseimage() {
 	cd ${WORLDDIR} && \
 		make DESTDIR=${DESTDIR} \
 		installworld installkernel distribution || \
-		panic 1 "\n\nCannot install the base system to ${DESTDIR}."
+		panic "\n\nCannot install the base system to ${DESTDIR}."
 	chroot ${DESTDIR} /usr/bin/newaliases
 	echo '# Custom /etc/fstab for FreeBSD VM images' \
 		> ${DESTDIR}/etc/fstab
@@ -111,7 +120,7 @@ vm_create_baseimage() {
 			# This should never happen.  But, it has happened.
 			msg="Cannot umount(8) ${DESTDIR}\n"
 			msg="${msg}Something has gone horribly wrong."
-			panic 1 "${msg}"
+			panic "${msg}"
 		fi
 		sleep 1
 	done
@@ -141,11 +150,11 @@ vm_create_vmdisk() {
 	if [ -z "${mkimg_version}" ]; then
 		msg="Cannot determine mkimg(1) version.\n"
 		msg="${msg}Cannot continue without a known mkimg(1) version."
-		panic 0 "${msg}"
+		panic "${msg}"
 	fi
 
 	if ! mkimg --formats 2>/dev/null | grep -q ${FORMAT}; then
-		panic 0 "'${FORMAT}' is not supported by this mkimg(1).\n"
+		panic "'${FORMAT}' is not supported by this mkimg(1).\n"
 	fi
 
 	case ${FORMAT} in



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410141503.s9EF36ZG080734>