diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-05-16 13:34:25 +0100 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-05-16 13:34:25 +0100 |
commit | ad06dc009b0e1aee8f1ce7530d5f285d5bf3310b (patch) | |
tree | c556eaf8340e07ad9dc6d82a26f2d55d4b82f668 | |
parent | e91a676bbabdef7484616755a3895c64268df8e4 (diff) | |
download | xen-ad06dc009b0e1aee8f1ce7530d5f285d5bf3310b.tar.gz xen-ad06dc009b0e1aee8f1ce7530d5f285d5bf3310b.tar.bz2 xen-ad06dc009b0e1aee8f1ce7530d5f285d5bf3310b.zip |
Build target to wrap dist/install in a .deb archive.
Adds "make deb", which does a "make dist" build and wraps the
resulting dist/install files in dist/xen-<version>.deb
This is _not_ a "packaged" version of Xen for Debian users, nor is it
intended to compete with anyone else's packaging efforts. In
particular it doesn't do any of the boot-time or fstab fixups needed
to actually start the xen tools. It's just a quick hack for
developers to be able to quickly install and uninstall a Xen build on
a test box.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | tools/misc/mkdeb | 56 | ||||
-rw-r--r-- | xen/Makefile | 4 |
3 files changed, 65 insertions, 0 deletions
@@ -118,6 +118,11 @@ world: $(MAKE) kdelete $(MAKE) dist +# Package a build in a .deb file +.PHONY: deb +deb: dist + fakeroot sh ./tools/misc/mkdeb $(XEN_ROOT) $$($(MAKE) -C xen xenversion | grep -v :) + # clean doesn't do a kclean .PHONY: clean clean:: diff --git a/tools/misc/mkdeb b/tools/misc/mkdeb new file mode 100644 index 0000000000..603cd6baa8 --- /dev/null +++ b/tools/misc/mkdeb @@ -0,0 +1,56 @@ +#!/bin/sh +# +# mkdeb: package the dist/install output of a Xen build in a .deb +# +# Takes 2 arguments, the path to the dist directory and the version + +set -e + +if test -z "$1" -o -z "$2" ; then + echo "usage: $0 path-to-XEN_ROOT xen-version" + exit 1 +fi + +cd $1 +version=$2 +if test "$XEN_TARGET_ARCH" = "x86_32"; then + arch=i386 +else + arch=amd64 +fi + +# Prepare the directory to package +cd dist +rm -rf deb +cp -a install deb + +# Debian doesn't use /usr/lib64 for 64-bit libraries +if test -d deb/usr/lib64 ; then + cp -a deb/usr/lib64/* deb/usr/lib/ + rm -rf deb/usr/lib64 +fi + +# Fill in the debian boilerplate +mkdir -p deb/DEBIAN +cat >deb/DEBIAN/control <<EOF +Package: xen-upstream-$version +Source: xen-upstream +Version: $version +Architecture: $arch +Maintainer: Unmaintained snapshot +Section: admin +Priority: optional +Installed-Size: $(du -ks deb | cut -f1) +Description: Xen hypervisor and tools, version $version + This package contains the Xen hypervisor and associated tools, built + from a source tree. It is not a fully packaged and supported Xen, just + the output of a xen "make dist" wrapped in a .deb to make it easy to + uninstall. +EOF + +# Package it up +chown -R root:root deb +dpkg --build deb $xen-upstream-$version.deb + +# Tidy up after ourselves +rm -rf deb diff --git a/xen/Makefile b/xen/Makefile index dcaab5cbf2..19ada7ef54 100644 --- a/xen/Makefile +++ b/xen/Makefile @@ -129,6 +129,10 @@ define set_exuberant_flags --extra=+f --c-kinds=+px") || true` endef +.PHONY: xenversion +xenversion: + @echo $(XEN_FULLVERSION) + .PHONY: _TAGS _TAGS: set -e; rm -f TAGS; \ |