* [PATCH v9 1/6] Introduce git-checkout.sh
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
@ 2011-11-23 13:51 ` stefano.stabellini
2011-11-23 13:58 ` Christoph Egger
2011-11-23 13:51 ` [PATCH v9 2/6] Rename ioemu-dir as qemu-xen-traditional-dir stefano.stabellini
` (4 subsequent siblings)
5 siblings, 1 reply; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:51 UTC (permalink / raw)
To: xen-devel
Cc: keir, Ian.Jackson, Ian.Campbell, stefano.stabellini@eu.citrix.com
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>
Introduce a script to perform git checkout on an external git tree; use
git-checkout.sh in ioemu-dir-find.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
.hgignore | 2 +-
scripts/git-checkout.sh | 27 +++++++++++++++++++++++++++
tools/Makefile | 20 ++++----------------
3 files changed, 32 insertions(+), 17 deletions(-)
create mode 100755 scripts/git-checkout.sh
diff --git a/.hgignore b/.hgignore
index e62fb2d..067d83d 100644
--- a/.hgignore
+++ b/.hgignore
@@ -295,7 +295,7 @@
^tools/xm-test/lib/XmTestLib/config.py$
^tools/xm-test/lib/XmTestReport/xmtest.py$
^tools/xm-test/tests/.*\.test$
-^tools/ioemu-remote
+^tools/ioemu-dir-remote
^tools/ioemu-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
diff --git a/scripts/git-checkout.sh b/scripts/git-checkout.sh
new file mode 100755
index 0000000..15b3ce9
--- /dev/null
+++ b/scripts/git-checkout.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+if test $# -lt 3; then
+ echo "Usage: $0 <tree> <tag> <dir>"
+ exit 1
+fi
+
+TREE=$1
+TAG=$2
+DIR=$3
+
+set -e
+
+if test \! -d $DIR-remote; then
+ rm -rf $DIR-remote $DIR-remote.tmp
+ mkdir $DIR-remote.tmp; rmdir $DIR-remote.tmp
+ $GIT clone $TREE $DIR-remote.tmp
+ if test "$TAG" ; then
+ cd $DIR-remote.tmp
+ $GIT branch -D dummy >/dev/null 2>&1 ||:
+ $GIT checkout -b dummy $TAG
+ cd ..
+ fi
+ mv $DIR-remote.tmp $DIR-remote
+fi
+rm -f $DIR
+ln -sf $DIR-remote $DIR
diff --git a/tools/Makefile b/tools/Makefile
index 9389e1f..beccad2 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -71,7 +71,7 @@ clean: subdirs-clean
.PHONY: distclean
distclean: subdirs-distclean
- rm -rf ioemu-dir ioemu-remote
+ rm -rf ioemu-dir ioemu-dir-remote
ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -89,20 +89,8 @@ ioemu-dir-find:
if test -d $(CONFIG_QEMU); then \
mkdir -p ioemu-dir; \
else \
- if [ ! -d ioemu-remote ]; then \
- rm -rf ioemu-remote ioemu-remote.tmp; \
- mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
- $(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
- if [ "$(QEMU_TAG)" ]; then \
- cd ioemu-remote.tmp; \
- $(GIT) branch -D dummy >/dev/null 2>&1 ||:; \
- $(GIT) checkout -b dummy $(QEMU_TAG); \
- cd ..; \
- fi; \
- mv ioemu-remote.tmp ioemu-remote; \
- fi; \
- rm -f ioemu-dir; \
- ln -sf ioemu-remote ioemu-dir; \
+ export GIT=$(GIT); \
+ $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
fi
set -e; \
$(buildmakevars2shellvars); \
@@ -113,7 +101,7 @@ ioemu-dir-find:
ioemu-dir-force-update:
set -ex; \
if [ "$(QEMU_TAG)" ]; then \
- cd ioemu-remote; \
+ cd ioemu-dir-remote; \
$(GIT) fetch origin; \
$(GIT) reset --hard $(QEMU_TAG); \
fi
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [PATCH v9 1/6] Introduce git-checkout.sh
2011-11-23 13:51 ` [PATCH v9 1/6] Introduce git-checkout.sh stefano.stabellini
@ 2011-11-23 13:58 ` Christoph Egger
2011-11-24 18:53 ` Ian Jackson
0 siblings, 1 reply; 21+ messages in thread
From: Christoph Egger @ 2011-11-23 13:58 UTC (permalink / raw)
To: stefano.stabellini; +Cc: Ian.Jackson, xen-devel, keir, Ian.Campbell
On 11/23/11 14:51, stefano.stabellini@eu.citrix.com wrote:
> From: stefano.stabellini@eu.citrix.com<stefano.stabellini@eu.citrix.com>
>
> Introduce a script to perform git checkout on an external git tree; use
> git-checkout.sh in ioemu-dir-find.
>
> Signed-off-by: Stefano Stabellini<stefano.stabellini@eu.citrix.com>
[...]
> diff --git a/tools/Makefile b/tools/Makefile
> index 9389e1f..beccad2 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -71,7 +71,7 @@ clean: subdirs-clean
>
> .PHONY: distclean
> distclean: subdirs-distclean
> - rm -rf ioemu-dir ioemu-remote
> + rm -rf ioemu-dir ioemu-dir-remote
>
> ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
> IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
> @@ -89,20 +89,8 @@ ioemu-dir-find:
> if test -d $(CONFIG_QEMU); then \
> mkdir -p ioemu-dir; \
> else \
> - if [ ! -d ioemu-remote ]; then \
> - rm -rf ioemu-remote ioemu-remote.tmp; \
> - mkdir ioemu-remote.tmp; rmdir ioemu-remote.tmp; \
> - $(GIT) clone $(CONFIG_QEMU) ioemu-remote.tmp; \
> - if [ "$(QEMU_TAG)" ]; then \
> - cd ioemu-remote.tmp; \
> - $(GIT) branch -D dummy>/dev/null 2>&1 ||:; \
> - $(GIT) checkout -b dummy $(QEMU_TAG); \
> - cd ..; \
> - fi; \
> - mv ioemu-remote.tmp ioemu-remote; \
> - fi; \
> - rm -f ioemu-dir; \
> - ln -sf ioemu-remote ioemu-dir; \
> + export GIT=$(GIT); \
> + $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
When you use $(SHELL) then we do not need to care about the execute bit:
+ $(SHELL) $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU)
$(QEMU_TAG) ioemu-dir; \
Christoph
> fi
> set -e; \
> $(buildmakevars2shellvars); \
> @@ -113,7 +101,7 @@ ioemu-dir-find:
> ioemu-dir-force-update:
> set -ex; \
> if [ "$(QEMU_TAG)" ]; then \
> - cd ioemu-remote; \
> + cd ioemu-dir-remote; \
> $(GIT) fetch origin; \
> $(GIT) reset --hard $(QEMU_TAG); \
> fi
--
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH v9 1/6] Introduce git-checkout.sh
2011-11-23 13:58 ` Christoph Egger
@ 2011-11-24 18:53 ` Ian Jackson
0 siblings, 0 replies; 21+ messages in thread
From: Ian Jackson @ 2011-11-24 18:53 UTC (permalink / raw)
To: Christoph Egger; +Cc: xen-devel, keir, Ian.Campbell, stefano.stabellini
Christoph Egger writes ("Re: [Xen-devel] [PATCH v9 1/6] Introduce git-checkout.sh"):
> On 11/23/11 14:51, stefano.stabellini@eu.citrix.com wrote:
> > + $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
>
> When you use $(SHELL) then we do not need to care about the execute bit:
>
> + $(SHELL) $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU)
> $(QEMU_TAG) ioemu-dir; \
I'm afraid I don't agree with this.
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v9 2/6] Rename ioemu-dir as qemu-xen-traditional-dir
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
2011-11-23 13:51 ` [PATCH v9 1/6] Introduce git-checkout.sh stefano.stabellini
@ 2011-11-23 13:51 ` stefano.stabellini
2011-11-23 13:51 ` [PATCH v9 3/6] move the call to xen-setup after libxc and xenstore are built stefano.stabellini
` (3 subsequent siblings)
5 siblings, 0 replies; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:51 UTC (permalink / raw)
To: xen-devel
Cc: keir, Ian.Jackson, Ian.Campbell, stefano.stabellini@eu.citrix.com
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
.hgignore | 4 ++--
Makefile | 14 +++++++-------
stubdom/Makefile | 8 ++++----
tools/Makefile | 26 +++++++++++++-------------
4 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/.hgignore b/.hgignore
index 067d83d..c1486a6 100644
--- a/.hgignore
+++ b/.hgignore
@@ -295,8 +295,8 @@
^tools/xm-test/lib/XmTestLib/config.py$
^tools/xm-test/lib/XmTestReport/xmtest.py$
^tools/xm-test/tests/.*\.test$
-^tools/ioemu-dir-remote
-^tools/ioemu-dir$
+^tools/qemu-xen-traditional-dir-remote
+^tools/qemu-xen-traditional-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
^tools/ocaml/.*/META$
diff --git a/Makefile b/Makefile
index 31e8795..c0197a5 100644
--- a/Makefile
+++ b/Makefile
@@ -70,7 +70,7 @@ install-tools:
$(MAKE) -C tools install
ifeq ($(CONFIG_IOEMU),y)
-install-tools: tools/ioemu-dir
+install-tools: tools/qemu-xen-traditional-dir
endif
.PHONY: install-kernels
@@ -78,18 +78,18 @@ install-kernels:
for i in $(XKERNELS) ; do $(MAKE) $$i-install || exit 1; done
.PHONY: install-stubdom
-install-stubdom: tools/ioemu-dir install-tools
+install-stubdom: tools/qemu-xen-traditional-dir install-tools
$(MAKE) -C stubdom install
ifeq (x86_64,$(XEN_TARGET_ARCH))
XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom install-grub
endif
-tools/ioemu-dir:
- $(MAKE) -C tools ioemu-dir-find
+tools/qemu-xen-traditional-dir:
+ $(MAKE) -C tools qemu-xen-traditional-dir-find
-.PHONY: tools/ioemu-dir-force-update
-tools/ioemu-dir-force-update:
- $(MAKE) -C tools ioemu-dir-force-update
+.PHONY: tools/qemu-xen-traditional-dir-force-update
+tools/qemu-xen-traditional-dir-force-update:
+ $(MAKE) -C tools qemu-xen-traditional-dir-force-update
.PHONY: install-docs
install-docs:
diff --git a/stubdom/Makefile b/stubdom/Makefile
index 938fc0a..d03ccba 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -218,15 +218,15 @@ $(CROSS_ROOT): cross-newlib cross-zlib cross-libpci
QEMU_ROOT := $(shell if [ -d "$(CONFIG_QEMU)" ]; then echo "$(CONFIG_QEMU)"; else echo .; fi)
ifeq ($(QEMU_ROOT),.)
-$(XEN_ROOT)/tools/ioemu-dir:
- $(CROSS_MAKE) -C $(XEN_ROOT)/tools ioemu-dir-find
+$(XEN_ROOT)/tools/qemu-xen-traditional-dir:
+ $(CROSS_MAKE) -C $(XEN_ROOT)/tools qemu-xen-traditional-dir-find
-ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/ioemu-dir
+ioemu/linkfarm.stamp: $(XEN_ROOT)/tools/qemu-xen-traditional-dir
mkdir -p ioemu
set -e; \
$(buildmakevars2shellvars); \
cd ioemu; \
- src="$$XEN_ROOT/tools/ioemu-dir"; export src; \
+ src="$$XEN_ROOT/tools/qemu-xen-traditional-dir"; export src; \
(cd $$src && find * -type d -print) | xargs mkdir -p; \
(cd $$src && find * ! -type l -type f $(addprefix ! -name , \
'*.[oda1]' 'config-*' config.mak qemu-dm qemu-img-xen \
diff --git a/tools/Makefile b/tools/Makefile
index beccad2..c19d3c9 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -31,7 +31,7 @@ SUBDIRS-y += libvchan
# do not recurse in to a dir we are about to delete
ifneq "$(MAKECMDGOALS)" "distclean"
-SUBDIRS-$(CONFIG_IOEMU) += ioemu-dir
+SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir
endif
SUBDIRS-y += xenpmd
@@ -71,7 +71,7 @@ clean: subdirs-clean
.PHONY: distclean
distclean: subdirs-distclean
- rm -rf ioemu-dir ioemu-dir-remote
+ rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -84,34 +84,34 @@ ifneq ($(QEMU_ROOT),.)
export QEMU_ROOT
endif
-ioemu-dir-find:
+qemu-xen-traditional-dir-find:
set -ex; \
if test -d $(CONFIG_QEMU); then \
- mkdir -p ioemu-dir; \
+ mkdir -p qemu-xen-traditional-dir; \
else \
export GIT=$(GIT); \
- $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) ioemu-dir; \
+ $(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir; \
fi
set -e; \
$(buildmakevars2shellvars); \
- cd ioemu-dir; \
+ cd qemu-xen-traditional-dir; \
$(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS)
-.PHONY: ioemu-dir-force-update
-ioemu-dir-force-update:
+.PHONY: qemu-xen-traditional-dir-force-update
+qemu-xen-traditional-dir-force-update:
set -ex; \
if [ "$(QEMU_TAG)" ]; then \
- cd ioemu-dir-remote; \
+ cd qemu-xen-traditional-dir-remote; \
$(GIT) fetch origin; \
$(GIT) reset --hard $(QEMU_TAG); \
fi
-subdir-all-ioemu-dir subdir-install-ioemu-dir: ioemu-dir-find
+subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
-subdir-clean-ioemu-dir:
- set -e; if test -d ioemu-dir/.; then \
+subdir-clean-qemu-xen-traditional-dir:
+ set -e; if test -d qemu-xen-traditional-dir/.; then \
$(buildmakevars2shellvars); \
- $(MAKE) -C ioemu-dir clean; \
+ $(MAKE) -C qemu-xen-traditional-dir clean; \
fi
subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v9 3/6] move the call to xen-setup after libxc and xenstore are built
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
2011-11-23 13:51 ` [PATCH v9 1/6] Introduce git-checkout.sh stefano.stabellini
2011-11-23 13:51 ` [PATCH v9 2/6] Rename ioemu-dir as qemu-xen-traditional-dir stefano.stabellini
@ 2011-11-23 13:51 ` stefano.stabellini
2011-11-23 13:51 ` [PATCH v9 4/6] Clone and build upstream Qemu by default stefano.stabellini
` (2 subsequent siblings)
5 siblings, 0 replies; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:51 UTC (permalink / raw)
To: xen-devel
Cc: keir, Ian.Jackson, Ian.Campbell, stefano.stabellini@eu.citrix.com
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>
Move the call to xen-setup, the wrapper script to configure
qemu-xen-traditional, right before building qemu-xen-traditional and
after libxc and xenstore are already built.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
tools/Makefile | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile
index c19d3c9..20bee85 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -92,10 +92,6 @@ qemu-xen-traditional-dir-find:
export GIT=$(GIT); \
$(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir; \
fi
- set -e; \
- $(buildmakevars2shellvars); \
- cd qemu-xen-traditional-dir; \
- $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS)
.PHONY: qemu-xen-traditional-dir-force-update
qemu-xen-traditional-dir-force-update:
@@ -107,6 +103,11 @@ qemu-xen-traditional-dir-force-update:
fi
subdir-all-qemu-xen-traditional-dir subdir-install-qemu-xen-traditional-dir: qemu-xen-traditional-dir-find
+ set -e; \
+ $(buildmakevars2shellvars); \
+ cd qemu-xen-traditional-dir; \
+ $(QEMU_ROOT)/xen-setup $(IOEMU_CONFIGURE_CROSS); \
+ $(MAKE) install
subdir-clean-qemu-xen-traditional-dir:
set -e; if test -d qemu-xen-traditional-dir/.; then \
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v9 4/6] Clone and build upstream Qemu by default
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
` (2 preceding siblings ...)
2011-11-23 13:51 ` [PATCH v9 3/6] move the call to xen-setup after libxc and xenstore are built stefano.stabellini
@ 2011-11-23 13:51 ` stefano.stabellini
2011-11-23 13:51 ` [PATCH v9 5/6] Clone and build Seabios " stefano.stabellini
2011-11-23 13:52 ` [PATCH v9 6/6] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
5 siblings, 0 replies; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:51 UTC (permalink / raw)
To: xen-devel
Cc: keir, Ian.Jackson, Ian.Campbell, stefano.stabellini@eu.citrix.com
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
.hgignore | 2 ++
Config.mk | 7 +++++++
Makefile | 9 ++++++++-
tools/Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 61 insertions(+), 1 deletions(-)
diff --git a/.hgignore b/.hgignore
index c1486a6..efbb5ed 100644
--- a/.hgignore
+++ b/.hgignore
@@ -297,6 +297,8 @@
^tools/xm-test/tests/.*\.test$
^tools/qemu-xen-traditional-dir-remote
^tools/qemu-xen-traditional-dir$
+^tools/qemu-xen-dir-remote
+^tools/qemu-xen-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
^tools/ocaml/.*/META$
diff --git a/Config.mk b/Config.mk
index b2c6ba2..e72324f 100644
--- a/Config.mk
+++ b/Config.mk
@@ -203,6 +203,13 @@ else
QEMU_REMOTE=git://xenbits.xensource.com/qemu-xen-unstable.git
endif
+ifeq ($(GIT_HTTP),y)
+QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
+else
+QEMU_UPSTREAM_URL ?= git://xenbits.xensource.com/qemu-upstream-unstable.git
+endif
+QEMU_UPSTREAM_TAG ?= 30f93db54875e1f2836e1f3d21672c33191f883f
+
# Specify which qemu-dm to use. This may be `ioemu' to use the old
# Mercurial in-tree version, or a local directory, or a git URL.
# CONFIG_QEMU ?= `pwd`/$(XEN_ROOT)/../qemu-xen.git
diff --git a/Makefile b/Makefile
index c0197a5..edc5e3d 100644
--- a/Makefile
+++ b/Makefile
@@ -70,7 +70,7 @@ install-tools:
$(MAKE) -C tools install
ifeq ($(CONFIG_IOEMU),y)
-install-tools: tools/qemu-xen-traditional-dir
+install-tools: tools/qemu-xen-traditional-dir tools/qemu-xen-dir
endif
.PHONY: install-kernels
@@ -91,6 +91,13 @@ tools/qemu-xen-traditional-dir:
tools/qemu-xen-traditional-dir-force-update:
$(MAKE) -C tools qemu-xen-traditional-dir-force-update
+tools/qemu-xen-dir:
+ $(MAKE) -C tools qemu-xen-dir-find
+
+.PHONY: tools/qemu-xen-dir-force-update
+tools/qemu-xen-dir-force-update:
+ $(MAKE) -C tools qemu-xen-dir-force-update
+
.PHONY: install-docs
install-docs:
sh ./docs/check_pkgs && $(MAKE) -C docs install || true
diff --git a/tools/Makefile b/tools/Makefile
index 20bee85..f9a07d2 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -32,6 +32,7 @@ SUBDIRS-y += libvchan
# do not recurse in to a dir we are about to delete
ifneq "$(MAKECMDGOALS)" "distclean"
SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-traditional-dir
+SUBDIRS-$(CONFIG_IOEMU) += qemu-xen-dir
endif
SUBDIRS-y += xenpmd
@@ -72,6 +73,7 @@ clean: subdirs-clean
.PHONY: distclean
distclean: subdirs-distclean
rm -rf qemu-xen-traditional-dir qemu-xen-traditional-dir-remote
+ rm -rf qemu-xen-dir qemu-xen-dir-remote
ifneq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
IOEMU_CONFIGURE_CROSS ?= --cpu=$(XEN_TARGET_ARCH) \
@@ -93,6 +95,14 @@ qemu-xen-traditional-dir-find:
$(XEN_ROOT)/scripts/git-checkout.sh $(CONFIG_QEMU) $(QEMU_TAG) qemu-xen-traditional-dir; \
fi
+qemu-xen-dir-find:
+ if test -d $(QEMU_UPSTREAM_URL) ; then \
+ mkdir -p qemu-xen-dir; \
+ else \
+ export GIT=$(GIT); \
+ $(XEN_ROOT)/scripts/git-checkout.sh $(QEMU_UPSTREAM_URL) $(QEMU_UPSTREAM_TAG) qemu-xen-dir ; \
+ fi
+
.PHONY: qemu-xen-traditional-dir-force-update
qemu-xen-traditional-dir-force-update:
set -ex; \
@@ -115,6 +125,40 @@ subdir-clean-qemu-xen-traditional-dir:
$(MAKE) -C qemu-xen-traditional-dir clean; \
fi
+.PHONY: qemu-xen-dir-force-update
+qemu-xen-dir-force-update:
+ set -ex; \
+ if [ "$(QEMU_UPSTREAM_TAG)" ]; then \
+ cd qemu-xen-dir-remote; \
+ $(GIT) fetch origin; \
+ $(GIT) reset --hard $(QEMU_UPSTREAM_TAG); \
+ fi
+
+subdir-all-qemu-xen-dir subdir-install-qemu-xen-dir: qemu-xen-dir-find
+ if test -d $(QEMU_UPSTREAM_URL) ; then \
+ source=$(QEMU_UPSTREAM_URL); \
+ else \
+ source=.; \
+ fi; \
+ cd qemu-xen-dir; \
+ $$source/configure --enable-xen --target-list=i386-softmmu \
+ --source-path=$$source \
+ --extra-cflags="-I$(XEN_ROOT)/tools/include \
+ -I$(XEN_ROOT)/tools/libxc \
+ -I$(XEN_ROOT)/tools/xenstore" \
+ --extra-ldflags="-L$(XEN_ROOT)/tools/libxc \
+ -L$(XEN_ROOT)/tools/xenstore" \
+ --bindir=$(LIBEXEC) \
+ --disable-kvm \
+ $(IOEMU_CONFIGURE_CROSS); \
+ $(MAKE) install
+
+subdir-clean-qemu-xen-dir:
+ set -e; if test -d qemu-xen-dir/.; then \
+ $(buildmakevars2shellvars); \
+ $(MAKE) -C qemu-xen-dir clean; \
+ fi
+
subdir-clean-debugger/gdbsx subdir-distclean-debugger/gdbsx: .phony
$(MAKE) -C debugger/gdbsx clean
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread* [PATCH v9 5/6] Clone and build Seabios by default
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
` (3 preceding siblings ...)
2011-11-23 13:51 ` [PATCH v9 4/6] Clone and build upstream Qemu by default stefano.stabellini
@ 2011-11-23 13:51 ` stefano.stabellini
2011-12-12 17:39 ` Ian Jackson
2011-11-23 13:52 ` [PATCH v9 6/6] libxl: use new qemu at the location where xen-unstable installs it stefano.stabellini
5 siblings, 1 reply; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:51 UTC (permalink / raw)
To: xen-devel
Cc: keir, Ian.Jackson, Ian.Campbell, stefano.stabellini@eu.citrix.com
From: stefano.stabellini@eu.citrix.com <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
.hgignore | 2 +
Config.mk | 12 ++-----
Makefile | 4 ++
tools/firmware/Makefile | 21 ++++++++++-
tools/firmware/hvmloader/Makefile | 1 +
tools/firmware/seabios-config | 73 +++++++++++++++++++++++++++++++++++++
6 files changed, 102 insertions(+), 11 deletions(-)
create mode 100644 tools/firmware/seabios-config
diff --git a/.hgignore b/.hgignore
index efbb5ed..c2023ec 100644
--- a/.hgignore
+++ b/.hgignore
@@ -299,6 +299,8 @@
^tools/qemu-xen-traditional-dir$
^tools/qemu-xen-dir-remote
^tools/qemu-xen-dir$
+^tools/firmware/seabios-dir-remote
+^tools/firmware/seabios-dir$
^tools/ocaml/.*/.*\.annot$
^tools/ocaml/.*/.*\.cmx?a$
^tools/ocaml/.*/META$
diff --git a/Config.mk b/Config.mk
index e72324f..30e0ab5 100644
--- a/Config.mk
+++ b/Config.mk
@@ -205,10 +205,13 @@ endif
ifeq ($(GIT_HTTP),y)
QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= http://git.qemu.org/git/seabios.git
else
QEMU_UPSTREAM_URL ?= git://xenbits.xensource.com/qemu-upstream-unstable.git
+SEABIOS_UPSTREAM_URL ?= git://git.qemu.org/seabios.git
endif
QEMU_UPSTREAM_TAG ?= 30f93db54875e1f2836e1f3d21672c33191f883f
+SEABIOS_UPSTREAM_TAG ?= 7fc039e9c262b4199fab497f3e12f4e425c37560
# Specify which qemu-dm to use. This may be `ioemu' to use the old
# Mercurial in-tree version, or a local directory, or a git URL.
@@ -222,15 +225,6 @@ QEMU_TAG ?= 52834188eedfbbca5636fd869d4c86b3b3044439
# Short answer -- do not enable this unless you know what you are
# doing and are prepared for some pain.
-# SeaBIOS integration is a work in progress. Before enabling this
-# option you must clone git://git.qemu.org/seabios.git/, possibly add
-# some development patches and then build it yourself before pointing
-# this variable to it (using an absolute path).
-#
-# Note that using SeaBIOS requires the use the upstream qemu as the
-# device model.
-SEABIOS_DIR ?=
-
# Optional components
XENSTAT_XENTOP ?= y
VTPM_TOOLS ?= n
diff --git a/Makefile b/Makefile
index edc5e3d..8edea0d 100644
--- a/Makefile
+++ b/Makefile
@@ -98,6 +98,10 @@ tools/qemu-xen-dir:
tools/qemu-xen-dir-force-update:
$(MAKE) -C tools qemu-xen-dir-force-update
+.PHONY: tools/firmware/seabios-dir-force-update
+tools/firmware/seabios-dir-force-update:
+ $(MAKE) -C tools/firmware seabios-dir-force-update
+
.PHONY: install-docs
install-docs:
sh ./docs/check_pkgs && $(MAKE) -C docs install || true
diff --git a/tools/firmware/Makefile b/tools/firmware/Makefile
index 4b6d144..c3ec9a0 100644
--- a/tools/firmware/Makefile
+++ b/tools/firmware/Makefile
@@ -6,13 +6,18 @@ TARGET := hvmloader/hvmloader
INST_DIR := $(DESTDIR)$(XENFIRMWAREDIR)
SUBDIRS :=
+SUBDIRS += seabios-dir
SUBDIRS += rombios
SUBDIRS += vgabios
SUBDIRS += etherboot
SUBDIRS += hvmloader
+seabios-dir:
+ GIT=$(GIT) $(XEN_ROOT)/scripts/git-checkout.sh $(SEABIOS_UPSTREAM_URL) $(SEABIOS_UPSTREAM_TAG) seabios-dir
+ cp seabios-config seabios-dir/.config;
+
.PHONY: all
-all:
+all: seabios-dir
@set -e; if [ $$((`( bcc -v 2>&1 | grep version || echo 0.0.0 ) | cut -d' ' -f 3 | awk -F. '{ printf "0x%02x%02x%02x", $$1, $$2, $$3}'`)) -lt $$((0x00100e)) ] ; then \
echo "==========================================================================="; \
echo "Require dev86 rpm or bin86 & bcc debs version >= 0.16.14 to build firmware!"; \
@@ -35,4 +40,16 @@ clean: subdirs-clean
distclean: subdirs-distclean
subdir-distclean-etherboot: .phony
- $(MAKE) -C etherboot distclean
\ No newline at end of file
+ $(MAKE) -C etherboot distclean
+
+subdir-distclean-seabios-dir: .phony
+ rm -rf seabios-dir seabios-dir-remote
+
+.PHONY: seabios-dir-force-update
+seabios-dir-force-update:
+ set -ex; \
+ if [ "$(SEABIOS_UPSTREAM_TAG)" ]; then \
+ cd seabios-dir-remote; \
+ $(GIT) fetch origin; \
+ $(GIT) reset --hard $(SEABIOS_UPSTREAM_TAG); \
+ fi
diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile
index 11e8f1c..ae8a1e2 100644
--- a/tools/firmware/hvmloader/Makefile
+++ b/tools/firmware/hvmloader/Makefile
@@ -44,6 +44,7 @@ CFLAGS += -DENABLE_ROMBIOS
ROMBIOS_ROM := $(ROMBIOS_DIR)/BIOS-bochs-latest
endif
+SEABIOS_DIR := ../seabios-dir
ifneq ($(SEABIOS_DIR),)
OBJS += seabios.o
CFLAGS += -DENABLE_SEABIOS
diff --git a/tools/firmware/seabios-config b/tools/firmware/seabios-config
new file mode 100644
index 0000000..202d15f
--- /dev/null
+++ b/tools/firmware/seabios-config
@@ -0,0 +1,73 @@
+#
+# Automatically generated make config: don't edit
+# SeaBIOS Configuration
+# Wed Sep 7 13:03:21 2011
+#
+
+#
+# General Features
+#
+# CONFIG_COREBOOT is not set
+CONFIG_XEN=y
+CONFIG_THREADS=y
+# CONFIG_THREAD_OPTIONROMS is not set
+CONFIG_RELOCATE_INIT=y
+CONFIG_BOOTMENU=y
+# CONFIG_BOOTSPLASH is not set
+CONFIG_BOOTORDER=y
+
+#
+# Hardware support
+#
+CONFIG_ATA=y
+CONFIG_ATA_DMA=y
+CONFIG_ATA_PIO32=y
+CONFIG_AHCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_FLOPPY=y
+CONFIG_PS2PORT=y
+CONFIG_USB=y
+CONFIG_USB_UHCI=y
+CONFIG_USB_OHCI=y
+CONFIG_USB_EHCI=y
+CONFIG_USB_MSC=y
+CONFIG_USB_HUB=y
+CONFIG_USB_KEYBOARD=y
+CONFIG_USB_MOUSE=y
+CONFIG_SERIAL=y
+CONFIG_LPT=y
+# CONFIG_USE_SMM is not set
+CONFIG_MTRR_INIT=y
+
+#
+# BIOS interfaces
+#
+CONFIG_DRIVES=y
+CONFIG_CDROM_BOOT=y
+CONFIG_CDROM_EMU=y
+CONFIG_PCIBIOS=y
+CONFIG_APMBIOS=y
+CONFIG_PNPBIOS=y
+CONFIG_OPTIONROMS=y
+# CONFIG_OPTIONROMS_DEPLOYED is not set
+CONFIG_PMM=y
+CONFIG_BOOT=y
+CONFIG_KEYBOARD=y
+CONFIG_KBD_CALL_INT15_4F=y
+CONFIG_MOUSE=y
+CONFIG_S3_RESUME=y
+# CONFIG_DISABLE_A20 is not set
+
+#
+# BIOS Tables
+#
+CONFIG_PIRTABLE=y
+CONFIG_MPTABLE=y
+CONFIG_SMBIOS=y
+CONFIG_ACPI=y
+
+#
+# Debugging
+#
+CONFIG_DEBUG_LEVEL=1
+# CONFIG_DEBUG_SERIAL is not set
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-11-23 13:51 ` [PATCH v9 5/6] Clone and build Seabios " stefano.stabellini
@ 2011-12-12 17:39 ` Ian Jackson
2011-12-12 17:46 ` Ian Campbell
0 siblings, 1 reply; 21+ messages in thread
From: Ian Jackson @ 2011-12-12 17:39 UTC (permalink / raw)
To: stefano.stabellini; +Cc: xen-devel, keir, Ian.Campbell
stefano.stabellini@eu.citrix.com writes ("[Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
> +SEABIOS_UPSTREAM_URL ?= http://git.qemu.org/git/seabios.git
Do we wanted push-gated versions of these trees too ?
I see you have included a lockstep changeset number in xen-unstable
but are we really able to force these to update in lockstep ?
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-12 17:39 ` Ian Jackson
@ 2011-12-12 17:46 ` Ian Campbell
2011-12-12 19:26 ` Stefano Stabellini
0 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-12-12 17:46 UTC (permalink / raw)
To: Ian Jackson
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Stefano Stabellini
On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> stefano.stabellini@eu.citrix.com writes ("[Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
> > +SEABIOS_UPSTREAM_URL ?= http://git.qemu.org/git/seabios.git
>
> Do we wanted push-gated versions of these trees too ?
>
> I see you have included a lockstep changeset number in xen-unstable
> but are we really able to force these to update in lockstep ?
We should have a mirror on xenbits, we generally avoid reliance on third
party resources in our builds. Not just source repositories but also for
things like tarball downloads.
Also the upstream for seabios is git://git.seabios.org/seabios.git I
don't think indirecting via qemu buys us anything.
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-12 17:46 ` Ian Campbell
@ 2011-12-12 19:26 ` Stefano Stabellini
2011-12-13 14:16 ` Ian Jackson
0 siblings, 1 reply; 21+ messages in thread
From: Stefano Stabellini @ 2011-12-12 19:26 UTC (permalink / raw)
To: Ian Campbell
Cc: Keir (Xen.org), xen-devel@lists.xensource.com, Ian Jackson,
Stefano Stabellini
On Mon, 12 Dec 2011, Ian Campbell wrote:
> On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > stefano.stabellini@eu.citrix.com writes ("[Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > QEMU_UPSTREAM_URL ?= http://xenbits.xensource.com/git-http/qemu-upstream-unstable.git
> > > +SEABIOS_UPSTREAM_URL ?= http://git.qemu.org/git/seabios.git
> >
> > Do we wanted push-gated versions of these trees too ?
> >
> > I see you have included a lockstep changeset number in xen-unstable
> > but are we really able to force these to update in lockstep ?
>
> We should have a mirror on xenbits, we generally avoid reliance on third
> party resources in our builds. Not just source repositories but also for
> things like tarball downloads.
>
> Also the upstream for seabios is git://git.seabios.org/seabios.git I
> don't think indirecting via qemu buys us anything.
I don't have a strong opinion on this, so if you'd like to change the
url to a xenbits tree, I am OK with that.
I guess you don't need me to send a patch for that, but let me know if
you want me to change something.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-12 19:26 ` Stefano Stabellini
@ 2011-12-13 14:16 ` Ian Jackson
2011-12-13 17:24 ` Stefano Stabellini
0 siblings, 1 reply; 21+ messages in thread
From: Ian Jackson @ 2011-12-13 14:16 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Ian Campbell
Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> On Mon, 12 Dec 2011, Ian Campbell wrote:
> > On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > > I see you have included a lockstep changeset number in xen-unstable
> > > but are we really able to force these to update in lockstep ?
Did you have an answer for this ?
> > We should have a mirror on xenbits, we generally avoid reliance on third
> > party resources in our builds. Not just source repositories but also for
> > things like tarball downloads.
> >
> > Also the upstream for seabios is git://git.seabios.org/seabios.git I
> > don't think indirecting via qemu buys us anything.
>
> I don't have a strong opinion on this, so if you'd like to change the
> url to a xenbits tree, I am OK with that.
> I guess you don't need me to send a patch for that, but let me know if
> you want me to change something.
I agree with Ian's comments about using xenbits.
But before you set up any trees there, please let's answer the
question about our update paradigm.
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-13 14:16 ` Ian Jackson
@ 2011-12-13 17:24 ` Stefano Stabellini
2011-12-13 17:53 ` Ian Jackson
0 siblings, 1 reply; 21+ messages in thread
From: Stefano Stabellini @ 2011-12-13 17:24 UTC (permalink / raw)
To: Ian Jackson
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Ian Campbell,
Stefano Stabellini
On Tue, 13 Dec 2011, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > On Mon, 12 Dec 2011, Ian Campbell wrote:
> > > On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > > > I see you have included a lockstep changeset number in xen-unstable
> > > > but are we really able to force these to update in lockstep ?
>
> Did you have an answer for this ?
The answer is yes. Unless there is a bug that I didn't manage to find of
course.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-13 17:24 ` Stefano Stabellini
@ 2011-12-13 17:53 ` Ian Jackson
2011-12-13 18:22 ` Stefano Stabellini
0 siblings, 1 reply; 21+ messages in thread
From: Ian Jackson @ 2011-12-13 17:53 UTC (permalink / raw)
To: Stefano Stabellini
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Ian Campbell
Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> On Tue, 13 Dec 2011, Ian Jackson wrote:
> > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > On Mon, 12 Dec 2011, Ian Campbell wrote:
> > > > On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > > > > I see you have included a lockstep changeset number in xen-unstable
> > > > > but are we really able to force these to update in lockstep ?
> >
> > Did you have an answer for this ?
>
> The answer is yes. Unless there is a bug that I didn't manage to find of
> course.
That doesn't sound like an answer to my question.
To put it another way: are we intending to permanently maintain a
branch of seabios and a branch of qemu upstream ? Are we going to
have one such branch for each branch of Xen ? Are we expecting our
downstreams to use our specific version of qemu and seabios, rather
than building from upstream ?
If the answer to any of these questions is "no" then attempting to
nominate a specific changeset won't work.
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-13 17:53 ` Ian Jackson
@ 2011-12-13 18:22 ` Stefano Stabellini
2011-12-14 9:42 ` Ian Campbell
0 siblings, 1 reply; 21+ messages in thread
From: Stefano Stabellini @ 2011-12-13 18:22 UTC (permalink / raw)
To: Ian Jackson
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Ian Campbell,
Stefano Stabellini
On Tue, 13 Dec 2011, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > On Tue, 13 Dec 2011, Ian Jackson wrote:
> > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > > On Mon, 12 Dec 2011, Ian Campbell wrote:
> > > > > On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > > > > > I see you have included a lockstep changeset number in xen-unstable
> > > > > > but are we really able to force these to update in lockstep ?
> > >
> > > Did you have an answer for this ?
> >
> > The answer is yes. Unless there is a bug that I didn't manage to find of
> > course.
>
> That doesn't sound like an answer to my question.
>
> To put it another way: are we intending to permanently maintain a
> branch of seabios and a branch of qemu upstream ? Are we going to
> have one such branch for each branch of Xen ? Are we expecting our
> downstreams to use our specific version of qemu and seabios, rather
> than building from upstream ?
I think "yes" in case of qemu, at the very least for the different
release times of the xen and qemu projects.
I don't have an opinion on seabios because I am nore sure how many
changes are we going to make to it. However I recall that you and/or
IanC were in favor of having or own branch of seabios as well.
BTW I think it is probably better if IanC maintains seabios if we decide
to have our own branch, given that he is the one that did most of the
work on it so far.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-13 18:22 ` Stefano Stabellini
@ 2011-12-14 9:42 ` Ian Campbell
2011-12-14 11:55 ` Ian Jackson
0 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-12-14 9:42 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Keir (Xen.org), xen-devel@lists.xensource.com, Ian Jackson
On Tue, 2011-12-13 at 18:22 +0000, Stefano Stabellini wrote:
> On Tue, 13 Dec 2011, Ian Jackson wrote:
> > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > On Tue, 13 Dec 2011, Ian Jackson wrote:
> > > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > > > On Mon, 12 Dec 2011, Ian Campbell wrote:
> > > > > > On Mon, 2011-12-12 at 17:39 +0000, Ian Jackson wrote:
> > > > > > > I see you have included a lockstep changeset number in xen-unstable
> > > > > > > but are we really able to force these to update in lockstep ?
> > > >
> > > > Did you have an answer for this ?
> > >
> > > The answer is yes. Unless there is a bug that I didn't manage to find of
> > > course.
> >
> > That doesn't sound like an answer to my question.
> >
> > To put it another way: are we intending to permanently maintain a
> > branch of seabios and a branch of qemu upstream ? Are we going to
> > have one such branch for each branch of Xen ? Are we expecting our
> > downstreams to use our specific version of qemu and seabios, rather
> > than building from upstream ?
>
> I think "yes" in case of qemu, at the very least for the different
> release times of the xen and qemu projects.
Unfortunately I expect that distros will want to package qemu once (from
upstream) with support for all the various options, including Xen,
enabled and depend on that in their Xen packaging rather than packaging
a slightly different qemu a second time.
I'm not sure how we can address this without exploding our test matrix.
It seems like we need to test at a minimum the current qemu stable and
development branches :-/
> I don't have an opinion on seabios because I am nore sure how many
> changes are we going to make to it. However I recall that you and/or
> IanC were in favor of having or own branch of seabios as well.
I think that even if we never diverge from upstream and irrespective of
whether we stick in lockstep or not we should host a tree to point our
users (and default build) at. This gives us flexibility if we ever do
need to diverge and also isolates our users from issues with 3rd party
servers.
> BTW I think it is probably better if IanC maintains seabios if we decide
> to have our own branch, given that he is the one that did most of the
> work on it so far.
I'm happy to do that.
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-14 9:42 ` Ian Campbell
@ 2011-12-14 11:55 ` Ian Jackson
2011-12-14 16:59 ` Stefano Stabellini
0 siblings, 1 reply; 21+ messages in thread
From: Ian Jackson @ 2011-12-14 11:55 UTC (permalink / raw)
To: Ian Campbell
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Stefano Stabellini
Ian Campbell writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> Unfortunately I expect that distros will want to package qemu once (from
> upstream) with support for all the various options, including Xen,
> enabled and depend on that in their Xen packaging rather than packaging
> a slightly different qemu a second time.
Quite.
> I'm not sure how we can address this without exploding our test matrix.
> It seems like we need to test at a minimum the current qemu stable and
> development branches :-/
This is no different to the kernel, of course. We don't do a very
good job of testing different upstream kernels but it's on my todo
list.
> > I don't have an opinion on seabios because I am nore sure how many
> > changes are we going to make to it. However I recall that you and/or
> > IanC were in favor of having or own branch of seabios as well.
>
> I think that even if we never diverge from upstream and irrespective of
> whether we stick in lockstep or not we should host a tree to point our
> users (and default build) at. This gives us flexibility if we ever do
> need to diverge and also isolates our users from issues with 3rd party
> servers.
Indeed so. But should it be one tree for each Xen branch, and does it
need a push gate ?
Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-14 11:55 ` Ian Jackson
@ 2011-12-14 16:59 ` Stefano Stabellini
2011-12-15 9:24 ` Ian Campbell
0 siblings, 1 reply; 21+ messages in thread
From: Stefano Stabellini @ 2011-12-14 16:59 UTC (permalink / raw)
To: Ian Jackson
Cc: xen-devel@lists.xensource.com, Keir (Xen.org), Ian Campbell,
Stefano Stabellini
On Wed, 14 Dec 2011, Ian Jackson wrote:
> Ian Campbell writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > Unfortunately I expect that distros will want to package qemu once (from
> > upstream) with support for all the various options, including Xen,
> > enabled and depend on that in their Xen packaging rather than packaging
> > a slightly different qemu a second time.
>
> Quite.
Considering that Qemu releases are not in sync with our releases, I
think that we should point xen-unstable to one of our own Qemu trees
rather than just a mirror of the Qemu stable branch on xenbits.
Otherwise we risk loosing important features, for example if there are
not going to be any new Qemu releases before Xen 4.2 is out, we are
going to miss pci passthrough and save/restore, while if we had our own
branch we would have them.
Of course it is still very important to keep Qemu stable branches stable
and functional, so that if distros decide to package a single upstream
Qemu, it still going to work fine, even though it is going to have fewer
features.
> > > I don't have an opinion on seabios because I am nore sure how many
> > > changes are we going to make to it. However I recall that you and/or
> > > IanC were in favor of having or own branch of seabios as well.
> >
> > I think that even if we never diverge from upstream and irrespective of
> > whether we stick in lockstep or not we should host a tree to point our
> > users (and default build) at. This gives us flexibility if we ever do
> > need to diverge and also isolates our users from issues with 3rd party
> > servers.
>
> Indeed so. But should it be one tree for each Xen branch, and does it
> need a push gate ?
I think we might do without a tree for each Xen branch because we need
to support building upstream Qemu against Xen 4.2+ anyway.
Let's say that we have released Xen 4.2, we are now in the Xen 4.3
release cycle and we want to introduce an incompatible change in Qemu:
we would need to add a compatibility layer to allow it to build and run
on Xen 4.2 anyway.
The difficulty having a single tree would be keeping track of the
changes only present in our own tree, and possibly revert them before
pulling new commits from upstream that implement the same features in a
different way.
Regarding the push-gate, I am OK with it.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-14 16:59 ` Stefano Stabellini
@ 2011-12-15 9:24 ` Ian Campbell
2011-12-15 11:13 ` Stefano Stabellini
0 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-12-15 9:24 UTC (permalink / raw)
To: Stefano Stabellini
Cc: Keir (Xen.org), xen-devel@lists.xensource.com, Ian Jackson
On Wed, 2011-12-14 at 16:59 +0000, Stefano Stabellini wrote:
> On Wed, 14 Dec 2011, Ian Jackson wrote:
> > Ian Campbell writes ("Re: [Xen-devel] [PATCH v9 5/6] Clone and build Seabios by default"):
> > > Unfortunately I expect that distros will want to package qemu once (from
> > > upstream) with support for all the various options, including Xen,
> > > enabled and depend on that in their Xen packaging rather than packaging
> > > a slightly different qemu a second time.
> >
> > Quite.
>
> Considering that Qemu releases are not in sync with our releases, I
> think that we should point xen-unstable to one of our own Qemu trees
> rather than just a mirror of the Qemu stable branch on xenbits.
> Otherwise we risk loosing important features, for example if there are
> not going to be any new Qemu releases before Xen 4.2 is out, we are
> going to miss pci passthrough and save/restore, while if we had our own
> branch we would have them.
> Of course it is still very important to keep Qemu stable branches stable
> and functional, so that if distros decide to package a single upstream
> Qemu, it still going to work fine, even though it is going to have fewer
> features.
Agreed, all these trees are very important and therefore we must test
all of them, although perhaps not in the same way as we currently test
things.
How about this:
We host a qemu tree including a staging branch and associated push gate.
This tree tracks the current qemu stable branch and contains backports
of patches which have been applied to the current qemu development
branch (using a policy similar to the Linux stable series policy, in
order to prevent accidental forking). We point xen-devel at this and it
is used by the regular testing machinery and forms part of the Xen
releases.
Then as a separate independent test we periodically (e.g. weekly or
twice-weekly) test the upstream qemu development branch against some
baseline version of Xen (e.g. the most recent pass of either unstable or
current stable branch). This test doesn't gate anything but is just to
keep tabs on the development branch and spot regressions earlier etc.
Lastly we also test any releases (rc and final, perhaps beta) on both
the qemu stable and development branches against current latest unstable
and stable Xen branches. Again this doesn't gate anything but just keeps
tabs on things.
BTW I think periodic test + rc&releases is how we should handle Linux
upstream too and indeed any other external dependency which runs on a
disconnected schedule.
Ian.
>
>
> > > > I don't have an opinion on seabios because I am nore sure how many
> > > > changes are we going to make to it. However I recall that you and/or
> > > > IanC were in favor of having or own branch of seabios as well.
> > >
> > > I think that even if we never diverge from upstream and irrespective of
> > > whether we stick in lockstep or not we should host a tree to point our
> > > users (and default build) at. This gives us flexibility if we ever do
> > > need to diverge and also isolates our users from issues with 3rd party
> > > servers.
> >
> > Indeed so. But should it be one tree for each Xen branch, and does it
> > need a push gate ?
>
> I think we might do without a tree for each Xen branch because we need
> to support building upstream Qemu against Xen 4.2+ anyway.
> Let's say that we have released Xen 4.2, we are now in the Xen 4.3
> release cycle and we want to introduce an incompatible change in Qemu:
> we would need to add a compatibility layer to allow it to build and run
> on Xen 4.2 anyway.
> The difficulty having a single tree would be keeping track of the
> changes only present in our own tree, and possibly revert them before
> pulling new commits from upstream that implement the same features in a
> different way.
>
> Regarding the push-gate, I am OK with it.
^ permalink raw reply [flat|nested] 21+ messages in thread* Re: [PATCH v9 5/6] Clone and build Seabios by default
2011-12-15 9:24 ` Ian Campbell
@ 2011-12-15 11:13 ` Stefano Stabellini
0 siblings, 0 replies; 21+ messages in thread
From: Stefano Stabellini @ 2011-12-15 11:13 UTC (permalink / raw)
To: Ian Campbell
Cc: Keir (Xen.org), xen-devel@lists.xensource.com, Ian Jackson,
Stefano Stabellini
On Thu, 15 Dec 2011, Ian Campbell wrote:
> > Considering that Qemu releases are not in sync with our releases, I
> > think that we should point xen-unstable to one of our own Qemu trees
> > rather than just a mirror of the Qemu stable branch on xenbits.
> > Otherwise we risk loosing important features, for example if there are
> > not going to be any new Qemu releases before Xen 4.2 is out, we are
> > going to miss pci passthrough and save/restore, while if we had our own
> > branch we would have them.
> > Of course it is still very important to keep Qemu stable branches stable
> > and functional, so that if distros decide to package a single upstream
> > Qemu, it still going to work fine, even though it is going to have fewer
> > features.
>
> Agreed, all these trees are very important and therefore we must test
> all of them, although perhaps not in the same way as we currently test
> things.
>
> How about this:
>
> We host a qemu tree including a staging branch and associated push gate.
> This tree tracks the current qemu stable branch and contains backports
> of patches which have been applied to the current qemu development
> branch (using a policy similar to the Linux stable series policy, in
> order to prevent accidental forking). We point xen-devel at this and it
> is used by the regular testing machinery and forms part of the Xen
> releases.
I am OK with this, if everything goes well we shouldn't need anything
else. It might happen that because of time constraints we have to apply
patches to this tree before they are applied upstream, but it should
only be the exception, not the rule.
> Then as a separate independent test we periodically (e.g. weekly or
> twice-weekly) test the upstream qemu development branch against some
> baseline version of Xen (e.g. the most recent pass of either unstable or
> current stable branch). This test doesn't gate anything but is just to
> keep tabs on the development branch and spot regressions earlier etc.
twice-weekly would be good
> Lastly we also test any releases (rc and final, perhaps beta) on both
> the qemu stable and development branches against current latest unstable
> and stable Xen branches. Again this doesn't gate anything but just keeps
> tabs on things.
>
> BTW I think periodic test + rc&releases is how we should handle Linux
> upstream too and indeed any other external dependency which runs on a
> disconnected schedule.
indeed
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH v9 6/6] libxl: use new qemu at the location where xen-unstable installs it
2011-11-23 13:50 [PATCH v9 0/6] build upstream qemu and seabios by default Stefano Stabellini
` (4 preceding siblings ...)
2011-11-23 13:51 ` [PATCH v9 5/6] Clone and build Seabios " stefano.stabellini
@ 2011-11-23 13:52 ` stefano.stabellini
5 siblings, 0 replies; 21+ messages in thread
From: stefano.stabellini @ 2011-11-23 13:52 UTC (permalink / raw)
To: xen-devel; +Cc: keir, Ian.Jackson, Ian Campbell
From: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
tools/libxl/libxl_dm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index bf38877..633123f 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -55,7 +55,7 @@ const char *libxl__domain_device_model(libxl__gc *gc,
dm = libxl__abs_path(gc, "qemu-dm", libxl_libexec_path());
break;
case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
- dm = libxl__strdup(gc, "/usr/bin/qemu");
+ dm = libxl__abs_path(gc, "qemu", libxl_libexec_path());
break;
default:
LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread