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

[Xen-devel] [PATCH RFC 2/4] build: Download and build extnernal blktap2.5 repo



Download and build XenServer's blktap as an external tree, similar to
qemu-xen.

As of this patch we just download and build it, but don't install or
use it.

Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
---

FIXME: Directly use the XenServer github repo for now, while we're
discussing things.  If we decide to take this series, we'll have to
clone the tree on xenbits and remove the FIXME line.

CC: Ian Campbell <ian.campbell@xxxxxxxxxx>
CC: Ian Jackson <ian.jackson@xxxxxxxxxx>
CC: Wei Liu <wei.liu2@xxxxxxxxxx>
CC: Dave Scott <Dave.Scott@xxxxxxxxxxxxx>
CC: Jonathan Ludlam <Jonathan.Ludlam@xxxxxxxxxxxxx>
CC: Wen Congyang <wency@xxxxxxxxxxxxxx>
CC: Yang Hongyang <yanghy@xxxxxxxxxxxxxx>
---
 .gitignore           |  3 +++
 Config.mk            |  9 +++++++++
 tools/Makefile       | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 tools/misc/mktarball |  2 ++
 4 files changed, 63 insertions(+)

diff --git a/.gitignore b/.gitignore
index c6185a0..1bc9602 100644
--- a/.gitignore
+++ b/.gitignore
@@ -261,6 +261,9 @@ tools/qemu-xen-dir
 tools/qemu-xen-traditional-dir-remote
 tools/qemu-xen-traditional-dir
 
+tools/blktap-dir-remote
+tools/blktap-dir
+
 tools/firmware/seabios-dir-remote
 tools/firmware/seabios-dir
 
diff --git a/Config.mk b/Config.mk
index b243fac..7359763 100644
--- a/Config.mk
+++ b/Config.mk
@@ -224,6 +224,7 @@ XEN_EXTFILES_URL ?= http://xenbits.xen.org/xen-extfiles
 # Where to look for inlined subtrees (for example, from a tarball)
 QEMU_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/qemu-xen
 QEMU_TRADITIONAL_INTREE ?= $(XEN_ROOT)/tools/qemu-xen-traditional
+BLKTAP_UPSTREAM_INTREE ?= $(XEN_ROOT)/tools/blktap
 
 
 # Handle legacy options
@@ -240,19 +241,24 @@ ifneq (,$(QEMU_TAG))
 QEMU_TRADITIONAL_REVISION ?= $(QEMU_TAG)
 endif
 
+# FIXME
+BLKTAP_UPSTREAM_URL ?= https://github.com/xapi-project/blktap.git
 ifeq ($(GIT_HTTP),y)
 OVMF_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/ovmf.git
 QEMU_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/qemu-upstream-unstable.git
 QEMU_TRADITIONAL_URL ?= http://xenbits.xen.org/git-http/qemu-xen-unstable.git
 SEABIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/seabios.git
 MINIOS_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/mini-os.git
+BLKTAP_UPSTREAM_URL ?= http://xenbits.xen.org/git-http/blktap.git
 else
 OVMF_UPSTREAM_URL ?= git://xenbits.xen.org/ovmf.git
 QEMU_UPSTREAM_URL ?= git://xenbits.xen.org/qemu-upstream-unstable.git
 QEMU_TRADITIONAL_URL ?= git://xenbits.xen.org/qemu-xen-unstable.git
 SEABIOS_UPSTREAM_URL ?= git://xenbits.xen.org/seabios.git
 MINIOS_UPSTREAM_URL ?= git://xenbits.xen.org/mini-os.git
+BLKTAP_UPSTREAM_URL ?= git://xenbits.xen.org/blktap.git
 endif
+BLKTAP_UPSTREAM_REVISION ?= d73c74874a449c18dc1528076e5c0671cc5ed409
 OVMF_UPSTREAM_REVISION ?= a065efc7c7ce8bb3e5cb3e463099d023d4a92927
 QEMU_UPSTREAM_REVISION ?= master
 MINIOS_UPSTREAM_REVISION ?= edfd5aae6ec5ba7d0a8834a3e9dfe5e69424150a
@@ -281,6 +287,9 @@ QEMU_TRADITIONAL_LOC ?= $(call or,$(wildcard 
$(QEMU_TRADITIONAL_INTREE)),\
 QEMU_UPSTREAM_LOC ?= $(call or,$(wildcard $(QEMU_UPSTREAM_INTREE)),\
                                $(QEMU_UPSTREAM_URL))
 
+BLKTAP_UPSTREAM_LOC ?= $(call or,$(wildcard $(BLKTAP_UPSTREAM_INTREE)),\
+                               $(BLKTAP_UPSTREAM_URL))
+
 # Short answer -- do not enable this unless you know what you are
 # doing and are prepared for some pain.
 
diff --git a/tools/Makefile b/tools/Makefile
index 966354a..b0b2a02 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -25,6 +25,7 @@ SUBDIRS-$(CONFIG_Linux) += libvchan
 ifneq "$(MAKECMDGOALS)" "distclean"
 SUBDIRS-$(CONFIG_QEMU_TRAD) += qemu-xen-traditional-dir
 SUBDIRS-$(CONFIG_QEMU_XEN) += qemu-xen-dir
+SUBDIRS-$(CONFIG_BLKTAP2) += blktap-dir
 endif
 
 SUBDIRS-y += xenpmd
@@ -108,6 +109,7 @@ clean: subdirs-clean
 distclean: subdirs-distclean
        rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
        rm -rf qemu-xen-dir qemu-xen-dir-remote
+       rm -rf blktap-dir blktap-dir-remote
        rm -rf ../config/Tools.mk config.h config.log config.status \
                config.cache autom4te.cache
 
@@ -276,6 +278,49 @@ subdir-clean-qemu-xen-dir:
                $(MAKE) -C qemu-xen-dir clean; \
        fi
 
+# External target: blktap
+blktap-dir-find:
+       if test -d $(BLKTAP_UPSTREAM_LOC) ; then \
+               mkdir -p blktap-dir; \
+       else \
+               export GIT=$(GIT); \
+               $(XEN_ROOT)/scripts/git-checkout.sh $(BLKTAP_UPSTREAM_LOC) 
$(BLKTAP_UPSTREAM_REVISION) blktap-dir ; \
+       fi
+
+.PHONY: blktap-dir-force-update
+blktap-dir-force-update: blktap-dir-find
+       set -ex; \
+       if [ "$(BLKTAP_UPSTREAM_REVISION)" ]; then \
+               cd blktap-dir-remote; \
+               $(GIT) fetch origin; \
+               $(GIT) reset --hard $(BLKTAP_UPSTREAM_REVISION); \
+       fi
+
+subdir-all-blktap-dir: blktap-dir-find
+       if test -d $(BLKTAP_UPSTREAM_LOC) ; then \
+               source=$(BLKTAP_UPSTREAM_LOC); \
+       else \
+               source=.; \
+       fi; \
+       cd blktap-dir; \
+       $$source/autogen.sh ; \
+       $$source/configure --prefix=$(PREFIX) \
+               --libdir=$(LIBDIR) \
+               --libexecdir=$(LIBEXEC) ; \
+       $(MAKE) all
+
+# Don't install upstream blktap for now.
+subdir-install-blktap-dir: subdir-all-blktap-dir
+       if false ; do cd blktap-dir; \
+       $(MAKE) install \
+       fi
+
+subdir-clean-blktap-dir:
+       set -e; if test -d blktap-dir/.; then \
+               $(MAKE) -C blktap-dir clean; \
+       fi
+
+
 subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony
        $(MAKE) -C debugger/gdbsx clean
 
@@ -305,9 +350,13 @@ endif
 ifeq ($(CONFIG_QEMU_TRAD),y)
        $(MAKE) qemu-xen-traditional-dir-force-update
 endif
+ifeq ($(CONFIG_BLKTAP2),y)
+       $(MAKE) blktap-dir-force-update
+endif
        $(MAKE) -C firmware subtree-force-update
 
 subtree-force-update-all:
        $(MAKE) qemu-xen-dir-force-update
        $(MAKE) qemu-xen-traditional-dir-force-update
+       $(MAKE) blktap-dir-force-update
        $(MAKE) -C firmware subtree-force-update-all
diff --git a/tools/misc/mktarball b/tools/misc/mktarball
index 73282b5..6506f63 100755
--- a/tools/misc/mktarball
+++ b/tools/misc/mktarball
@@ -33,6 +33,8 @@ git_archive_into $xen_root/tools/qemu-xen-dir-remote 
$tdir/xen-$desc/tools/qemu-
 
 git_archive_into $xen_root/tools/qemu-xen-traditional-dir-remote 
$tdir/xen-$desc/tools/qemu-xen-traditional
 
+git_archive_into $xen_root/tools/blktap-dir-remote $tdir/xen-$desc/tools/blktap
+
 git_archive_into $xen_root/extras/mini-os-remote $tdir/xen-$desc/extras/mini-os
 
 GZIP=-9v tar cz -f $xen_root/dist/xen-$desc.tar.gz -C $tdir xen-$desc
-- 
1.9.1


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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