#!/bin/bash # # mktarball: Make a release tarball (including xen, qemu, and qemu-traditional) # # Takes 2 arguments, the path to the dist directory and the version set -ex function git_archive_into { mkdir -p "$2" git --git-dir="$1"/.git \ archive --format=tar HEAD | \ tar Cxf "$2" - } if [[ -z "$1" || -z "$2" ]] ; then echo "usage: $0 path-to-XEN_ROOT xen-version" exit 1 fi xen_root="$1" desc="$2" tdir="$xen_root/dist/tmp.src-tarball" rm -rf $tdir mkdir -p $tdir git_archive_into $xen_root $tdir/xen-$desc # We can't use git_archive_into with qemu upstream because it uses # git-submodules. git-submodules are an inherently broken git feature # which should never be used in any circumstance. Unfortunately, qemu # upstream uses them. Relevantly for us, git archive does not work # properly when there are submodules. ( cd $xen_root/tools/qemu-xen-dir-remote # if it's not clean, the qemu script will call `git stash' ! git --no-pager diff --stat HEAD scripts/archive-source.sh $tdir/xen-$desc/tools/qemu-xen.tar cd $tdir/xen-$desc/tools mkdir qemu-xen tar