[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 5/5] make: Make "src-tarball" target actually make a source tarball
At the moment, making a release tarball is an annoyingly manual process that involves running "git archive" into a temporary directory. Script this process up and make a target, so that the release manager can simply type "make src-tarball-release" and have everything show up nice and neat in dist/xen-$version.tar.gz. "make src-tarball" will make a version number based on git describe, which will typically have the most recent tag, number of commits since that tag, and the git commit id of the current HEAD. Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> --- v2: * Put quotes around assignments with variables in them * Avoid pushd/popd * Get rid of unnecessary error checks (since set -e will take care of it) * Make a function to do the git archive * Add "src-tarball-release" to do a clean version (e.g., 4.4.1) * "src-tarball" will name it based on "git describe" (includes a short commit hash). * Add mkdir -p $xen_root/dist/ to the script so that it works on a freshly cloned tree CC: Ian Campbell <ian.campbell@xxxxxxxxxx> CC: Ian Jackson <ian.jackson@xxxxxxxxxx> CC: Jan Beulich <jbeulich@xxxxxxxx> CC: Anthony Perard <anthony.perard@xxxxxxxxxx> --- Makefile | 27 ++++++++++++++++++++------- tools/misc/mktarball | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 7 deletions(-) create mode 100755 tools/misc/mktarball diff --git a/Makefile b/Makefile index b804bcf..28fecab 100644 --- a/Makefile +++ b/Makefile @@ -139,6 +139,23 @@ rpmball: dist subtree-update: $(MAKE) -C tools subtree-update +# Make a source tarball, including qemu sub-trees. +# +# src-tarball will use "git describe" for the version number. This +# will have the most recent tag, number of commits since that tag, and +# git commit id of the head. This is suitable for a "snapshot" +# tarball of an unreleased tree. +# +# src-tarball-release will use "make xenversion" as the version +# number. This is suitable for release tarballs. +.PHONY: src-tarball-release +src-tarball-release: subtree-update + bash ./tools/misc/mktarball $(XEN_ROOT) $$($(MAKE) -C xen xenversion --no-print-directory) + +.PHONY: src-tarball +src-tarball: subtree-update + bash ./tools/misc/mktarball $(XEN_ROOT) $$(git describe) + .PHONY: clean clean:: $(MAKE) -C xen clean @@ -167,13 +184,6 @@ endif .PHONY: mrproper mrproper: distclean -# Prepare for source tarball -.PHONY: src-tarball -src-tarball: distclean - $(MAKE) -C xen .banner - rm -rf xen/tools/figlet .[a-z]* - $(MAKE) -C xen distclean - .PHONY: help help: @echo 'Installation targets:' @@ -206,6 +216,9 @@ help: @echo ' install-tboot - download, build, and install the tboot module' @echo ' clean-tboot - clean the tboot module if it exists' @echo + @echo 'Tarball targets:' + @echo ' src-tarball - make a source tarball with xen and qemu suitable for a release' + @echo @echo 'Environment:' @echo ' [ this documentation is sadly not complete ]' diff --git a/tools/misc/mktarball b/tools/misc/mktarball new file mode 100755 index 0000000..06102eb --- /dev/null +++ b/tools/misc/mktarball @@ -0,0 +1,42 @@ +#!/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 -e + +function finish { + [[ -n "$tdir" ]] && rm -rf $tdir +} +trap finish EXIT + +function git_archive_into { + mkdir "$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" + +mkdir -p $xen_root/dist/ + +tdir="$(mktemp -d $xen_root/dist/xen.XXXXXXXX)" + +git_archive_into $xen_root $tdir/xen-$desc + +git_archive_into $xen_root/tools/qemu-xen-dir-remote $tdir/xen-$desc/tools/qemu-xen + +git_archive_into $xen_root/tools/qemu-xen-traditional-dir-remote $tdir/xen-$desc/tools/qemu-xen-traditional + +GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc + +echo "Source tarball in $xen_root/dist/xen-$desc.tar.gz" \ No newline at end of file -- 1.7.9.5 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |