svn commit: r272380 - in projects/release-vmimage/release: . amd64 i386
Glen Barber
gjb at FreeBSD.org
Wed Oct 1 19:13:44 UTC 2014
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)
More information about the svn-src-projects
mailing list