[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] Build target to wrap dist/install in a .deb archive.



# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxx>
# Date 1305549265 -3600
# Node ID e5757cc64c8f3d924acb2310b695605b7c18e6e1
# Parent  792928bd905a27daeaaae4efc44649c1546316ca
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@xxxxxxxxxx>
---


diff -r 792928bd905a -r e5757cc64c8f Makefile
--- a/Makefile  Mon May 16 13:33:10 2011 +0100
+++ b/Makefile  Mon May 16 13:34:25 2011 +0100
@@ -118,6 +118,11 @@
        $(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 -r 792928bd905a -r e5757cc64c8f tools/misc/mkdeb
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/misc/mkdeb  Mon May 16 13:34:25 2011 +0100
@@ -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 -r 792928bd905a -r e5757cc64c8f xen/Makefile
--- a/xen/Makefile      Mon May 16 13:33:10 2011 +0100
+++ b/xen/Makefile      Mon May 16 13:34:25 2011 +0100
@@ -129,6 +129,10 @@
            --extra=+f --c-kinds=+px") || true` 
 endef
 
+.PHONY: xenversion
+xenversion:
+       @echo $(XEN_FULLVERSION)
+
 .PHONY: _TAGS
 _TAGS: 
        set -e; rm -f TAGS; \

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.