From owner-svn-src-user@FreeBSD.ORG  Sat Sep 27 14:24:44 2014
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115])
 (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by hub.freebsd.org (Postfix) with ESMTPS id 4338078;
 Sat, 27 Sep 2014 14:24:44 +0000 (UTC)
Received: from svn.freebsd.org (svn.freebsd.org
 [IPv6:2001:1900:2254:2068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2EFA733C;
 Sat, 27 Sep 2014 14:24:44 +0000 (UTC)
Received: from svn.freebsd.org ([127.0.1.70])
 by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id s8REOiWh086376;
 Sat, 27 Sep 2014 14:24:44 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by svn.freebsd.org (8.14.9/8.14.9/Submit) id s8REOiTD086375;
 Sat, 27 Sep 2014 14:24:44 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201409271424.s8REOiTD086375@svn.freebsd.org>
X-Authentication-Warning: svn.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Sat, 27 Sep 2014 14:24:44 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
Subject: svn commit: r272212 - user/gjb/thermite
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.18-1
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
 src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/options/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user/>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
 <mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Sep 2014 14:24:44 -0000

Author: gjb
Date: Sat Sep 27 14:24:43 2014
New Revision: 272212
URL: http://svnweb.freebsd.org/changeset/base/272212

Log:
  Check if mkimg(1) reports back a version which can be used
  to determine which disk formats can be created.  If the
  version is not empty, use create_vmimage_mkimg() to create
  the qcow2 format.
  
  While here, use mkimg(1) instead of qemu-img to create the
  raw disk format.
  
  Many thanks to marcel@ for adding VHD and QCOW2 formats.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  user/gjb/thermite/mk-vmimage.sh

Modified: user/gjb/thermite/mk-vmimage.sh
==============================================================================
--- user/gjb/thermite/mk-vmimage.sh	Sat Sep 27 13:57:48 2014	(r272211)
+++ user/gjb/thermite/mk-vmimage.sh	Sat Sep 27 14:24:43 2014	(r272212)
@@ -77,6 +77,8 @@ create_etc() {
 }
 
 create_vmimage_qemu() {
+	# mkimg(1) supports the formats being created.
+	[ ! -z "${no_qemu}" ] && return 0
 	diskformats="qcow2"
 	if [ ! -x /usr/local/bin/qemu-img ]; then
 		echo "qemu-img not found, skipping qcow2 format."
@@ -131,19 +133,25 @@ create_vmimage_qemu() {
 		xz ${CHROOTDIR}/vmimage/${VM_IMAGE_NAME}.${_f}
 	done
 	mdconfig -d -u ${mddev}
-	mv ${CHROOTDIR}/vmimage/${VM_IMAGE_NAME}.rawdisk \
-		${CHROOTDIR}/vmimage/${VM_IMAGE_NAME}.raw
-	xz ${CHROOTDIR}/vmimage/${VM_IMAGE_NAME}.raw
+	rm ${CHROOTDIR}/vmimage/${VM_IMAGE_NAME}.rawdisk
 	return 0
 }
 
 create_vmimage_mkimg() {
-	diskformats="vmdk vhdf"
+	no_qemu=
+	diskformats="vmdk vhdf raw"
 
 	if [ ! -x /usr/bin/mkimg ]; then
 		return 0
 	fi
 
+	mkimg_version=$(/usr/bin/mkimg --version 2>/dev/null | awk '{print $2}')
+
+	if [ ! -z "${mkimg_version}" ]; then
+		diskformats="${diskformats} qcow2"
+		no_qemu=1
+	fi
+
 	if [ ! -d ${CHROOTDIR}/R/ftp ]; then
 		echo "Error: Cannot find the ftp/*.txz files."
 		exit 1