From a3e9e7f89e1059ae09296177f147346c7eda4cf3 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Wed, 16 Oct 2019 15:56:18 +1100 Subject: [PATCH] Drop vhdutil dependency, use qemu-img The vhdutil utility is completely dead; the whole subsystem it relies on was removed with [1] so it's not even vaguely possible to keep it up-to-date. I took the .raw images on a nb and used the qemu-img there (so Xenial) and generated some VPC images; uploaded them to rackspace and the all seemed to boot fine. If there was a problem, maybe it's been fixed on either the qemu or RAX side in the previous few years. Thus swith to qemu-img to generate the vhd images too. [1] https://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=5c883cf036cf5ab8b1b79390549e2475f7a568dd Change-Id: I3099d2ebb958370fcec623087a093b2c8dbdc6c4 --- diskimage_builder/lib/disk-image-create | 8 ++------ diskimage_builder/lib/img-functions | 7 +------ releasenotes/notes/qemu-img-for-vhd-90141590b5dbf77c.yaml | 6 ++++++ 3 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 releasenotes/notes/qemu-img-for-vhd-90141590b5dbf77c.yaml diff --git a/diskimage_builder/lib/disk-image-create b/diskimage_builder/lib/disk-image-create index 1de310cb..1a9b8392 100644 --- a/diskimage_builder/lib/disk-image-create +++ b/diskimage_builder/lib/disk-image-create @@ -100,10 +100,6 @@ function show_options () { echo echo "NOTE: At least one distribution root element must be specified." echo - echo "NOTE: If using the VHD output format you need to have a patched version of vhd-util installed for the image" - echo " to be bootable. The patch is available here: https://github.com/emonty/vhd-util/blob/master/debian/patches/citrix" - echo " and a PPA with the patched tool is available here: https://launchpad.net/~openstack-ci-core/+archive/ubuntu/vhd-util" - echo echo "Examples:" if [ "$IS_RAMDISK" == "0" ]; then echo " ${SCRIPTNAME} -a amd64 -o ubuntu-amd64 vm ubuntu" @@ -269,8 +265,8 @@ for X in ${!IMAGE_TYPES[@]}; do IMAGE_TYPES+=('tar') ;; vhd) - if ! type vhd-util > /dev/null 2>&1; then - echo "vhd output format specified but no vhd-util executable found." + if ! type qemu-img > /dev/null 2>&1; then + echo "vhd output format specified but no qemu-img executable found." exit 1 fi ;; diff --git a/diskimage_builder/lib/img-functions b/diskimage_builder/lib/img-functions index fa75d7c9..5f38926d 100644 --- a/diskimage_builder/lib/img-functions +++ b/diskimage_builder/lib/img-functions @@ -147,12 +147,7 @@ function compress_and_save_image () { $DIB_GZIP_BIN -9 < $IMAGE_NAME.tar > $1-new rm $IMAGE_NAME.tar elif [ "$IMAGE_TYPE" == "vhd" ]; then - cp $TMP_IMAGE_PATH $1-intermediate - vhd-util convert -s 0 -t 1 -i $1-intermediate -o $1-intermediate - vhd-util convert -s 1 -t 2 -i $1-intermediate -o $1-new - # The previous command creates a .bak file - rm $1-intermediate.bak - OUT_IMAGE_PATH=$1-new + qemu-img convert $TMP_IMAGE_PATH -O vpc -o subformat=dynamic $1-new else echo "Converting image using qemu-img convert" qemu-img convert ${COMPRESS_IMAGE:+-c} -f raw -O $IMAGE_TYPE $EXTRA_OPTIONS $TMP_IMAGE_PATH $1-new diff --git a/releasenotes/notes/qemu-img-for-vhd-90141590b5dbf77c.yaml b/releasenotes/notes/qemu-img-for-vhd-90141590b5dbf77c.yaml new file mode 100644 index 00000000..65f869a5 --- /dev/null +++ b/releasenotes/notes/qemu-img-for-vhd-90141590b5dbf77c.yaml @@ -0,0 +1,6 @@ +--- +upgrade: + - | + Generation of VHD (VPC/Microsoft Virtual PC/Rackspace) images is + now done via qemu-img, rather than the externally patched + ``vhdutil`` package which is no longer maintained.