Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Oct 2014 19:13:43 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r272380 - in projects/release-vmimage/release: . amd64 i386
Message-ID:  <201410011913.s91JDhj0055846@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gjb
Date: Wed Oct  1 19:13:42 2014
New Revision: 272380
URL: https://svnweb.freebsd.org/changeset/base/272380

Log:
  Avoid using env(1) to set values passed to mk-vmimage.sh,
  and instead pass the values as arguments to the script,
  making it easier to run this by hand, without 'make release'.
  
  Add usage_vm_base() and usage_vm_image() usage helpers.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  projects/release-vmimage/release/Makefile
  projects/release-vmimage/release/amd64/mk-vmimage.sh
  projects/release-vmimage/release/i386/mk-vmimage.sh

Modified: projects/release-vmimage/release/Makefile
==============================================================================
--- projects/release-vmimage/release/Makefile	Wed Oct  1 18:59:57 2014	(r272379)
+++ projects/release-vmimage/release/Makefile	Wed Oct  1 19:13:42 2014	(r272380)
@@ -317,20 +317,18 @@ install:
 
 vm-base:
 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
-	env IMAKE=${IMAKE} WORLDDIR=${WORLDDIR} \
-		VMBASE=${VMBASE}.img VMSIZE=${VMSIZE} \
-		DESTDIR=${.OBJDIR}/${.TARGET} \
-		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET}
+	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
+		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
+		${VMBASE}.img ${WORLDDIR} ${.OBJDIR}/${.TARGET} ${VMSIZE}
 .endif
 	touch ${.TARGET}
 
 vm-image: vm-base
 .if defined(WITH_VMIMAGES) && !empty(WITH_VMIMAGES)
 . for FORMAT in ${VMFORMATS}
-	env FORMAT=${FORMAT} VMIMAGE=${VMBASE}.${FORMAT} VMBASE=${VMBASE}.img \
-		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET}
+	env TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
+		${.CURDIR}/${TARGET}/mk-vmimage.sh ${.TARGET} \
+		${VMBASE}.img ${FORMAT} ${VMBASE}.${FORMAT}
 . endfor
 .endif
 	touch ${.TARGET}

Modified: projects/release-vmimage/release/amd64/mk-vmimage.sh
==============================================================================
--- projects/release-vmimage/release/amd64/mk-vmimage.sh	Wed Oct  1 18:59:57 2014	(r272379)
+++ projects/release-vmimage/release/amd64/mk-vmimage.sh	Wed Oct  1 19:13:42 2014	(r272380)
@@ -35,8 +35,25 @@
 PATH="/bin:/usr/bin:/sbin:/usr/sbin"
 export PATH
 
+usage_vm_base() {
+	echo -n "$(basename ${0}) vm-base <base image> <source tree>"
+	echo	" <dest dir> <disk image size>"
+	return 0
+}
+
+usage_vm_image() {
+	echo -n "$(basename ${0}) vm-image <base image> <image format>"
+	echo	" <output image>"
+	return 0
+}
+
 usage() {
-	echo "$(basename ${0}) <command> <target> [...]"
+	echo "Usage:"
+	echo "$(basename ${0}) [vm-base|vm-image] [...]"
+	echo
+	usage_vm_base
+	echo
+	usage_vm_image
 	exit 1
 }
 
@@ -56,6 +73,20 @@ panic() {
 vm_create_baseimage() {
 	# Creates the UFS root filesystem for the virtual machine disk,
 	# written to the formatted disk image with mkimg(1).
+	#
+	# Arguments:
+	# vm-base <base image> <source tree> <dest dir> <disk image size>
+
+	VMBASE="${1}"
+	WORLDDIR="${2}"
+	DESTDIR="${3}"
+	VMSIZE="${4}"
+
+	if [ -z "${VMBASE}" -o -z "${WORLDDIR}" -o -z "${DESTDIR}" \
+		-o -z "${VMSIZE}" ]; then
+			usage
+	fi
+
 	i=0
 	mkdir -p ${DESTDIR}
 	truncate -s ${VMSIZE} ${VMBASE}
@@ -63,7 +94,7 @@ vm_create_baseimage() {
 	newfs -j /dev/${mddev}
 	mount /dev/${mddev} ${DESTDIR}
 	cd ${WORLDDIR} && \
-		${IMAKE} DESTDIR=${DESTDIR} \
+		make DESTDIR=${DESTDIR} \
 		installworld installkernel distribution || \
 		panic 1 "\n\nCannot install the base system to ${DESTDIR}."
 	chroot ${DESTDIR} /usr/bin/newaliases
@@ -89,6 +120,19 @@ vm_create_baseimage() {
 }
 
 vm_create_vmdisk() {
+	# Creates the virtual machine disk image from the raw disk image.
+	#
+	# Arguments:
+	# vm-image <base image> <image format> <output image>"
+
+	VMBASE="${1}"
+	FORMAT="${2}"
+	VMIMAGE="${3}"
+
+	if [ -z "${VMBASE}" -o -z "${FORMAT}" -o -z "${VMIMAGE}" ]; then
+		usage
+	fi
+
 	mkimg_version=$(mkimg --version 2>/dev/null | awk '{print $2}')
 
 	# We need mkimg(1) '--version' output, at minimum, to be able to
@@ -124,10 +168,7 @@ vm_create_vmdisk() {
 
 main() {
 	cmd="${1}"
-
-	if [ -z "${MAKEFLAGS}" ]; then
-		echo "It is probably not safe to run this by hand yet..."
-	fi
+	shift 1
 
 	case ${cmd} in
 		vm-base)

Modified: projects/release-vmimage/release/i386/mk-vmimage.sh
==============================================================================
--- projects/release-vmimage/release/i386/mk-vmimage.sh	Wed Oct  1 18:59:57 2014	(r272379)
+++ projects/release-vmimage/release/i386/mk-vmimage.sh	Wed Oct  1 19:13:42 2014	(r272380)
@@ -35,8 +35,25 @@
 PATH="/bin:/usr/bin:/sbin:/usr/sbin"
 export PATH
 
+usage_vm_base() {
+	echo -n "$(basename ${0}) vm-base <base image> <source tree>"
+	echo	" <dest dir> <disk image size>"
+	return 0
+}
+
+usage_vm_image() {
+	echo -n "$(basename ${0}) vm-image <base image> <image format>"
+	echo	" <output image>"
+	return 0
+}
+
 usage() {
-	echo "$(basename ${0}) <command> <target> [...]"
+	echo "Usage:"
+	echo "$(basename ${0}) [vm-base|vm-image] [...]"
+	echo
+	usage_vm_base
+	echo
+	usage_vm_image
 	exit 1
 }
 
@@ -56,6 +73,20 @@ panic() {
 vm_create_baseimage() {
 	# Creates the UFS root filesystem for the virtual machine disk,
 	# written to the formatted disk image with mkimg(1).
+	#
+	# Arguments:
+	# vm-base <base image> <source tree> <dest dir> <disk image size>
+
+	VMBASE="${1}"
+	WORLDDIR="${2}"
+	DESTDIR="${3}"
+	VMSIZE="${4}"
+
+	if [ -z "${VMBASE}" -o -z "${WORLDDIR}" -o -z "${DESTDIR}" \
+		-o -z "${VMSIZE}" ]; then
+			usage
+	fi
+
 	i=0
 	mkdir -p ${DESTDIR}
 	truncate -s ${VMSIZE} ${VMBASE}
@@ -63,7 +94,7 @@ vm_create_baseimage() {
 	newfs -j /dev/${mddev}
 	mount /dev/${mddev} ${DESTDIR}
 	cd ${WORLDDIR} && \
-		${IMAKE} DESTDIR=${DESTDIR} \
+		make DESTDIR=${DESTDIR} \
 		installworld installkernel distribution || \
 		panic 1 "\n\nCannot install the base system to ${DESTDIR}."
 	chroot ${DESTDIR} /usr/bin/newaliases
@@ -89,6 +120,19 @@ vm_create_baseimage() {
 }
 
 vm_create_vmdisk() {
+	# Creates the virtual machine disk image from the raw disk image.
+	#
+	# Arguments:
+	# vm-image <base image> <image format> <output image>"
+
+	VMBASE="${1}"
+	FORMAT="${2}"
+	VMIMAGE="${3}"
+
+	if [ -z "${VMBASE}" -o -z "${FORMAT}" -o -z "${VMIMAGE}" ]; then
+		usage
+	fi
+
 	mkimg_version=$(mkimg --version 2>/dev/null | awk '{print $2}')
 
 	# We need mkimg(1) '--version' output, at minimum, to be able to
@@ -124,10 +168,7 @@ vm_create_vmdisk() {
 
 main() {
 	cmd="${1}"
-
-	if [ -z "${MAKEFLAGS}" ]; then
-		echo "It is probably not safe to run this by hand yet..."
-	fi
+	shift 1
 
 	case ${cmd} in
 		vm-base)



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