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>