All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] raisin: introduce qemu and qemu-traditional
@ 2015-04-15 15:14 Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 1/9] raisin: do not clean before build Stefano Stabellini
                   ` (9 more replies)
  0 siblings, 10 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, Stefano Stabellini

Hi all,

this patch series introduces two new components to raisin: qemu and
qemu-traditional:  the following patches disable building qemu and
qemu-traditional from xen-unstable and build them separately.

The series also contains a few bug fixes.


Stefano Stabellini (9):
      raisin: do not clean before build
      raisin: use timestamps for dpkg Version to avoid versions that start with letters
      raisin: add QEMU upstream component
      raisin: add a component to build qemu_traditional
      raisin: remove UPSTREAM_ for URL and REVISION variables
      raisin: add some debugging output for VERBOSE=1
      raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog
      raisin: rename MAKE to RAISIN_MAKE
      raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt

 README                      |    6 ++---
 components/grub             |   10 ++++-----
 components/libvirt          |   13 ++++++-----
 components/qemu             |   51 +++++++++++++++++++++++++++++++++++++++++++
 components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++
 components/series           |    2 ++
 components/xen              |   14 +++++-------
 defconfig                   |   24 +++++++++++---------
 lib/commands.sh             |    1 -
 lib/common-functions.sh     |   11 ++++++++--
 scripts/mkdeb               |    2 +-
 11 files changed, 147 insertions(+), 36 deletions(-)
 create mode 100644 components/qemu
 create mode 100644 components/qemu_traditional


Cheers,

Stefano

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [PATCH 1/9] raisin: do not clean before build
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:26   ` George Dunlap
  2015-04-15 15:14 ` [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters Stefano Stabellini
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Do not force a clean rebuild every time

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 lib/commands.sh |    1 -
 1 file changed, 1 deletion(-)

diff --git a/lib/commands.sh b/lib/commands.sh
index b330209..c47ba1f 100755
--- a/lib/commands.sh
+++ b/lib/commands.sh
@@ -51,7 +51,6 @@ function build() {
     mkdir -p "$INST_DIR" &>/dev/null
 
     # build and install under $DESTDIR
-    for_each_component clean
     for_each_component build
     
     build_package xen-system
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 1/9] raisin: do not clean before build Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:34   ` Olaf Hering
  2015-04-15 15:14 ` [PATCH 3/9] raisin: add QEMU upstream component Stefano Stabellini
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 scripts/mkdeb |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/mkdeb b/scripts/mkdeb
index 2a4e387..34616f1 100755
--- a/scripts/mkdeb
+++ b/scripts/mkdeb
@@ -51,7 +51,7 @@ mkdir -p deb/DEBIAN
 cat >deb/DEBIAN/control <<EOF
 Package: $name
 Source: raisin
-Version: $(git show --oneline | head -1 | cut -d " " -f 1)
+Version: $(date +"%s")
 Architecture: $arch
 Maintainer: Unmaintained snapshot
 Section: admin
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 1/9] raisin: do not clean before build Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 19:05   ` Julien Grall
  2015-04-15 15:14 ` [PATCH 4/9] raisin: add a component to build qemu_traditional Stefano Stabellini
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Add a component to build upstream QEMU.
Do not build upstream QEMU from xen-unstable.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 components/qemu   |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 components/series |    1 +
 components/xen    |    2 +-
 defconfig         |    2 ++
 4 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 components/qemu

diff --git a/components/qemu b/components/qemu
new file mode 100644
index 0000000..3633417
--- /dev/null
+++ b/components/qemu
@@ -0,0 +1,50 @@
+#!/usr/bin/env bash
+
+function qemu_check_package() {
+    local DEP_Debian_common="build-essential libglib2.0-dev libpixman-1-dev"
+    local DEP_Debian_x86_32="$DEP_Debian_common"
+    local DEP_Debian_x86_64="$DEP_Debian_common"
+    local DEP_Debian_arm32="$DEP_Debian_common"
+    local DEP_Debian_arm64="$DEP_Debian_common"
+
+    local DEP_Fedora_common="make gcc glib2-devel pixman-devel zlib-devel"
+    local DEP_Fedora_x86_32="$DEP_Fedora_common"
+    local DEP_Fedora_x86_64="$DEP_Fedora_common"
+
+    echo Checking QEMU dependencies
+    eval check-package \$DEP_"$DISTRO"_"$ARCH"
+}
+
+function qemu_build() {
+    cd "$BASEDIR"
+    git-checkout $QEMU_UPSTREAM_URL $QEMU_UPSTREAM_REVISION qemu-dir
+    cd qemu-dir
+    ./configure --enable-xen --target-list=i386-softmmu,x86_64-softmmu --prefix=$PREFIX \
+        --extra-cflags="-I$INST_DIR/$PREFIX/include" \
+        --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib" \
+        --disable-kvm \
+        --disable-docs \
+        --disable-guest-agent
+    $MAKE all
+    $MAKE install DESTDIR="$INST_DIR"
+    cd "$BASEDIR"
+}
+
+function qemu_clean() {
+    cd "$BASEDIR"
+    if [[ -d qemu-dir ]]
+    then
+        cd qemu-dir
+        $MAKE distclean
+        cd ..
+        rm -rf qemu-dir
+    fi
+}
+
+function qemu_configure() {
+    echo Nothing to configure for qemu
+}
+
+function qemu_unconfigure() {
+    echo Nothing to unconfigure for qemu
+}
diff --git a/components/series b/components/series
index 3c3124d..8f614f0 100644
--- a/components/series
+++ b/components/series
@@ -1,3 +1,4 @@
 xen
+qemu
 grub
 libvirt
diff --git a/components/xen b/components/xen
index 2d345a8..dcf2f92 100644
--- a/components/xen
+++ b/components/xen
@@ -23,7 +23,7 @@ function xen_build() {
     cd "$BASEDIR"
     git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
     cd xen-dir
-    ./configure --prefix=$PREFIX
+    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
     $MAKE
     $MAKE install DESTDIR="$INST_DIR"
     chmod +x "$INST_DIR"/etc/init.d/xencommons
diff --git a/defconfig b/defconfig
index 2b37acc..b409fea 100644
--- a/defconfig
+++ b/defconfig
@@ -14,6 +14,7 @@ DESTDIR=dist
 #GRUB_UPSTREAM_URL="http://git.savannah.gnu.org/r/grub.git"
 #LIBVIRT_UPSTREAM_URL="https://gitorious.org/libvirt/libvirt.git"
 XEN_UPSTREAM_URL="git://xenbits.xen.org/xen.git"
+QEMU_UPSTREAM_URL="git://git.qemu.org/qemu.git"
 GRUB_UPSTREAM_URL="git://git.savannah.gnu.org/grub.git"
 LIBVIRT_UPSTREAM_URL="git://libvirt.org/libvirt.git"
 
@@ -21,5 +22,6 @@ LIBVIRT_UPSTREAM_URL="git://libvirt.org/libvirt.git"
 # this: GRUB_UPSTREAM_REVISION=
 # Grub and Libvirt needs Xen to build and run.
 XEN_UPSTREAM_REVISION="master"
+QEMU_UPSTREAM_REVISION="master"
 GRUB_UPSTREAM_REVISION="master"
 LIBVIRT_UPSTREAM_REVISION="master"
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (2 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 3/9] raisin: add QEMU upstream component Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:26   ` Andrew Cooper
  2015-04-15 15:14 ` [PATCH 5/9] raisin: remove UPSTREAM_ for URL and REVISION variables Stefano Stabellini
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Introduce a component to build qemu-traditional out of xen-unstable.
Do not compile qemu-traditional from xen-unstable by passing the right
command line option to configure.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
 components/series           |    1 +
 components/xen              |    3 ++-
 defconfig                   |    2 ++
 4 files changed, 54 insertions(+), 1 deletion(-)
 create mode 100644 components/qemu_traditional

diff --git a/components/qemu_traditional b/components/qemu_traditional
new file mode 100644
index 0000000..cb71c94
--- /dev/null
+++ b/components/qemu_traditional
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+function qemu_traditional_check_package() {
+    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
+              libncurses5-dev"
+    local DEP_Debian_x86_32="$DEP_Debian_common"
+    local DEP_Debian_x86_64="$DEP_Debian_common"
+    local DEP_Debian_arm32="$DEP_Debian_common"
+    local DEP_Debian_arm64="$DEP_Debian_common"
+
+    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
+    local DEP_Fedora_x86_32="$DEP_Fedora_common"
+    local DEP_Fedora_x86_64="$DEP_Fedora_common"
+
+    echo Checking QEMU dependencies
+    eval check-package \$DEP_"$DISTRO"_"$ARCH"
+}
+
+function qemu_traditional_build() {
+    cd "$BASEDIR"
+    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
+    cd qemu_traditional-dir
+
+    export CONFIG_BLKTAP1=n
+    export XEN_ROOT="$BASEDIR"/xen-dir
+    ./xen-setup
+    $MAKE all
+    $MAKE install DESTDIR="$INST_DIR"
+    cd "$BASEDIR"
+}
+
+function qemu_traditional_clean() {
+    cd "$BASEDIR"
+    if [[ -d qemu_traditional-dir ]]
+    then
+        cd qemu_traditional-dir
+        $MAKE distclean
+        cd ..
+        rm -rf qemu_traditional-dir
+    fi
+}
+
+function qemu_traditional_configure() {
+    echo Nothing to configure for qemu_traditional
+}
+
+function qemu_traditional_unconfigure() {
+    echo Nothing to unconfigure for qemu_traditional
+}
diff --git a/components/series b/components/series
index 8f614f0..d21243a 100644
--- a/components/series
+++ b/components/series
@@ -1,4 +1,5 @@
 xen
 qemu
+qemu_traditional
 grub
 libvirt
diff --git a/components/xen b/components/xen
index dcf2f92..9fdf37f 100644
--- a/components/xen
+++ b/components/xen
@@ -23,7 +23,8 @@ function xen_build() {
     cd "$BASEDIR"
     git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
     cd xen-dir
-    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
+    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
+        --disable-qemu-traditional
     $MAKE
     $MAKE install DESTDIR="$INST_DIR"
     chmod +x "$INST_DIR"/etc/init.d/xencommons
diff --git a/defconfig b/defconfig
index b409fea..5fd4e54 100644
--- a/defconfig
+++ b/defconfig
@@ -15,6 +15,7 @@ DESTDIR=dist
 #LIBVIRT_UPSTREAM_URL="https://gitorious.org/libvirt/libvirt.git"
 XEN_UPSTREAM_URL="git://xenbits.xen.org/xen.git"
 QEMU_UPSTREAM_URL="git://git.qemu.org/qemu.git"
+QEMU_TRADITIONAL_UPSTREAM_URL="git://xenbits.xen.org/qemu-xen-unstable.git"
 GRUB_UPSTREAM_URL="git://git.savannah.gnu.org/grub.git"
 LIBVIRT_UPSTREAM_URL="git://libvirt.org/libvirt.git"
 
@@ -23,5 +24,6 @@ LIBVIRT_UPSTREAM_URL="git://libvirt.org/libvirt.git"
 # Grub and Libvirt needs Xen to build and run.
 XEN_UPSTREAM_REVISION="master"
 QEMU_UPSTREAM_REVISION="master"
+QEMU_TRADITIONAL_UPSTREAM_REVISION="master"
 GRUB_UPSTREAM_REVISION="master"
 LIBVIRT_UPSTREAM_REVISION="master"
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 5/9] raisin: remove UPSTREAM_ for URL and REVISION variables
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (3 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 4/9] raisin: add a component to build qemu_traditional Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 6/9] raisin: add some debugging output for VERBOSE=1 Stefano Stabellini
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

It doesn't add any info and just makes the variable names longer.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 README                      |    4 ++--
 components/grub             |    2 +-
 components/libvirt          |    2 +-
 components/qemu             |    2 +-
 components/qemu_traditional |    4 ++--
 components/xen              |    2 +-
 defconfig                   |   28 ++++++++++++++--------------
 lib/common-functions.sh     |    2 +-
 8 files changed, 23 insertions(+), 23 deletions(-)

diff --git a/README b/README
index 7c46660..20cde32 100644
--- a/README
+++ b/README
@@ -84,8 +84,8 @@ ARCH: which architecture we are running on, x86_64, arm32, etc.
 BASEDIR: absolute path of the raisin directory
 PREFIX: installation PREFIX
 INST_DIR: absolute path of the installation directory
-COMPONENT_UPSTREAM_URL: git url to clone, set by config
-COMPONENT_UPSTREAM_REVISION: branch or tag to checkout, set by config
+COMPONENT_URL: git url to clone, set by config
+COMPONENT_REVISION: branch or tag to checkout, set by config
 
 You can also rely on any utility functions in common-functions.sh, in
 particular:
diff --git a/components/grub b/components/grub
index b538fb1..6c3fde4 100644
--- a/components/grub
+++ b/components/grub
@@ -27,7 +27,7 @@ function grub_build() {
     cd "$BASEDIR"
     rm -f memdisk.tar
     tar cf memdisk.tar -C data grub.cfg
-    git-checkout $GRUB_UPSTREAM_URL $GRUB_UPSTREAM_REVISION grub-dir
+    git-checkout $GRUB_URL $GRUB_REVISION grub-dir
     cd grub-dir
     ./autogen.sh
     ## GRUB32
diff --git a/components/libvirt b/components/libvirt
index 430d651..1cc7811 100644
--- a/components/libvirt
+++ b/components/libvirt
@@ -24,7 +24,7 @@ function libvirt_check_package() {
 
 function libvirt_build() {
     cd "$BASEDIR"
-    git-checkout $LIBVIRT_UPSTREAM_URL $LIBVIRT_UPSTREAM_REVISION libvirt-dir
+    git-checkout $LIBVIRT_URL $LIBVIRT_REVISION libvirt-dir
     cd libvirt-dir
     CFLAGS="-I$INST_DIR/$PREFIX/include" \
     LDFLAGS="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib" \
diff --git a/components/qemu b/components/qemu
index 3633417..e2f6be2 100644
--- a/components/qemu
+++ b/components/qemu
@@ -17,7 +17,7 @@ function qemu_check_package() {
 
 function qemu_build() {
     cd "$BASEDIR"
-    git-checkout $QEMU_UPSTREAM_URL $QEMU_UPSTREAM_REVISION qemu-dir
+    git-checkout $QEMU_URL $QEMU_REVISION qemu-dir
     cd qemu-dir
     ./configure --enable-xen --target-list=i386-softmmu,x86_64-softmmu --prefix=$PREFIX \
         --extra-cflags="-I$INST_DIR/$PREFIX/include" \
diff --git a/components/qemu_traditional b/components/qemu_traditional
index cb71c94..473538a 100644
--- a/components/qemu_traditional
+++ b/components/qemu_traditional
@@ -12,13 +12,13 @@ function qemu_traditional_check_package() {
     local DEP_Fedora_x86_32="$DEP_Fedora_common"
     local DEP_Fedora_x86_64="$DEP_Fedora_common"
 
-    echo Checking QEMU dependencies
+    echo Checking qemu-traditional dependencies
     eval check-package \$DEP_"$DISTRO"_"$ARCH"
 }
 
 function qemu_traditional_build() {
     cd "$BASEDIR"
-    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
+    git-checkout $QEMU_TRADITIONAL_URL $QEMU_TRADITIONAL_REVISION qemu_traditional-dir
     cd qemu_traditional-dir
 
     export CONFIG_BLKTAP1=n
diff --git a/components/xen b/components/xen
index 9fdf37f..e283688 100644
--- a/components/xen
+++ b/components/xen
@@ -21,7 +21,7 @@ function xen_check_package() {
 
 function xen_build() {
     cd "$BASEDIR"
-    git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
+    git-checkout $XEN_URL $XEN_REVISION xen-dir
     cd xen-dir
     ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
         --disable-qemu-traditional
diff --git a/defconfig b/defconfig
index 5fd4e54..d45e2df 100644
--- a/defconfig
+++ b/defconfig
@@ -10,20 +10,20 @@ PREFIX="/usr"
 DESTDIR=dist
 
 # Git urls. Use the http urls if you are behind a firewall.
-#XEN_UPSTREAM_URL="http://xenbits.xen.org/git-http/xen.git"
-#GRUB_UPSTREAM_URL="http://git.savannah.gnu.org/r/grub.git"
-#LIBVIRT_UPSTREAM_URL="https://gitorious.org/libvirt/libvirt.git"
-XEN_UPSTREAM_URL="git://xenbits.xen.org/xen.git"
-QEMU_UPSTREAM_URL="git://git.qemu.org/qemu.git"
-QEMU_TRADITIONAL_UPSTREAM_URL="git://xenbits.xen.org/qemu-xen-unstable.git"
-GRUB_UPSTREAM_URL="git://git.savannah.gnu.org/grub.git"
-LIBVIRT_UPSTREAM_URL="git://libvirt.org/libvirt.git"
+#XEN_URL="http://xenbits.xen.org/git-http/xen.git"
+#GRUB_URL="http://git.savannah.gnu.org/r/grub.git"
+#LIBVIRT_URL="https://gitorious.org/libvirt/libvirt.git"
+XEN_URL="git://xenbits.xen.org/xen.git"
+QEMU_URL="git://git.qemu.org/qemu.git"
+QEMU_TRADITIONAL_URL="git://xenbits.xen.org/qemu-xen-unstable.git"
+GRUB_URL="git://git.savannah.gnu.org/grub.git"
+LIBVIRT_URL="git://libvirt.org/libvirt.git"
 
 # Software versions. Leave blank if you want to avoid the build, like
-# this: GRUB_UPSTREAM_REVISION=
+# this: GRUB_REVISION=
 # Grub and Libvirt needs Xen to build and run.
-XEN_UPSTREAM_REVISION="master"
-QEMU_UPSTREAM_REVISION="master"
-QEMU_TRADITIONAL_UPSTREAM_REVISION="master"
-GRUB_UPSTREAM_REVISION="master"
-LIBVIRT_UPSTREAM_REVISION="master"
+XEN_REVISION="master"
+QEMU_REVISION="master"
+QEMU_TRADITIONAL_REVISION="master"
+GRUB_REVISION="master"
+LIBVIRT_REVISION="master"
diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index a523f5d..31eec73 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -225,7 +225,7 @@ function for_each_component () {
     for component in `cat "$BASEDIR"/components/series`
     do
         capital=`echo $component | tr '[:lower:]' '[:upper:]'`
-        if eval [[ ! -z \$"$capital"_UPSTREAM_REVISION ]]
+        if eval [[ ! -z \$"$capital"_REVISION ]]
         then
             "$component"_"$1"
         fi
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 6/9] raisin: add some debugging output for VERBOSE=1
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (4 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 5/9] raisin: remove UPSTREAM_ for URL and REVISION variables Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:14 ` [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog Stefano Stabellini
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 lib/common-functions.sh |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index 31eec73..c72856a 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -225,9 +225,16 @@ function for_each_component () {
     for component in `cat "$BASEDIR"/components/series`
     do
         capital=`echo $component | tr '[:lower:]' '[:upper:]'`
+        if [[ $VERBOSE -eq 1 ]]
+        then
+            echo -n "$capital"_REVISION =" "
+            eval echo \$"$capital"_REVISION
+        fi
         if eval [[ ! -z \$"$capital"_REVISION ]]
         then
+            [[ $VERBOSE -eq 1 ]] && echo calling "$component"_"$1"
             "$component"_"$1"
+            [[ $VERBOSE -eq 1 ]] && echo "$component"_"$1" done
         fi
     done
 }
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (5 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 6/9] raisin: add some debugging output for VERBOSE=1 Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:31   ` George Dunlap
  2015-04-15 15:14 ` [PATCH 8/9] raisin: rename MAKE to RAISIN_MAKE Stefano Stabellini
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

It is actually wrong on Fedora as the init.d paths are different.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 components/xen |    3 ---
 1 file changed, 3 deletions(-)

diff --git a/components/xen b/components/xen
index e283688..83fb77c 100644
--- a/components/xen
+++ b/components/xen
@@ -27,9 +27,6 @@ function xen_build() {
         --disable-qemu-traditional
     $MAKE
     $MAKE install DESTDIR="$INST_DIR"
-    chmod +x "$INST_DIR"/etc/init.d/xencommons
-    chmod +x "$INST_DIR"/etc/init.d/xendomains
-    chmod +x "$INST_DIR"/etc/init.d/xen-watchdog
     cd "$BASEDIR"
 }
 
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 8/9] raisin: rename MAKE to RAISIN_MAKE
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (6 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog Stefano Stabellini
@ 2015-04-15 15:14 ` Stefano Stabellini
  2015-04-15 15:15 ` [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt Stefano Stabellini
  2015-04-15 15:43 ` [PATCH 0/9] raisin: introduce qemu and qemu-traditional George Dunlap
  9 siblings, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:14 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

The MAKE environmental variable is used by make for its own purposes. Do
not export it, use RAISIN_MAKE instead.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 README                      |    2 +-
 components/grub             |    8 ++++----
 components/libvirt          |    8 ++++----
 components/qemu             |    6 +++---
 components/qemu_traditional |    6 +++---
 components/xen              |    6 +++---
 lib/common-functions.sh     |    2 +-
 7 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/README b/README
index 20cde32..e9a2413 100644
--- a/README
+++ b/README
@@ -77,7 +77,7 @@ You can/should rely on the following global variables in your component
 script file:
 
 GIT: git command to run, but prefer the git-checkout.sh script
-MAKE: make command to run
+RAISIN_MAKE: make command to run
 SUDO: sudo command to run
 DISTRO: which Linux distribution we are running on, Debian, Fedora, etc
 ARCH: which architecture we are running on, x86_64, arm32, etc.
diff --git a/components/grub b/components/grub
index 6c3fde4..563a28c 100644
--- a/components/grub
+++ b/components/grub
@@ -32,16 +32,16 @@ function grub_build() {
     ./autogen.sh
     ## GRUB32
     ./configure --target=i386 --with-platform=xen
-    $MAKE CPPFLAGS="-I$INST_DIR/$PREFIX/include"
+    $RAISIN_MAKE CPPFLAGS="-I$INST_DIR/$PREFIX/include"
     ./grub-mkimage -d grub-core -O i386-xen -c "$BASEDIR"/data/grub-bootstrap.cfg \
       -m ../memdisk.tar -o grub-i386-xen grub-core/*mod
     cp grub-i386-xen "$INST_DIR"/$PREFIX/lib/xen/boot
     ## GRUB64
     if [[ $ARCH = "x86_64" ]]
     then
-        $MAKE clean
+        $RAISIN_MAKE clean
         ./configure --target=amd64 --with-platform=xen
-        $MAKE CPPFLAGS="-I$INST_DIR/$PREFIX/include"
+        $RAISIN_MAKE CPPFLAGS="-I$INST_DIR/$PREFIX/include"
         ./grub-mkimage -d grub-core -O x86_64-xen -c "$BASEDIR"/data/grub-bootstrap.cfg \
           -m ../memdisk.tar -o grub-x86_64-xen grub-core/*mod
         cp grub-x86_64-xen "$INST_DIR"/$PREFIX/lib/xen/boot
@@ -55,7 +55,7 @@ function grub_clean() {
     if [[ -d grub-dir ]]
     then
         cd grub-dir
-        $MAKE distclean
+        $RAISIN_MAKE distclean
         cd ..
         rm -rf grub-dir
     fi
diff --git a/components/libvirt b/components/libvirt
index 1cc7811..1702fb9 100644
--- a/components/libvirt
+++ b/components/libvirt
@@ -33,8 +33,8 @@ function libvirt_build() {
         --without-vbox --without-lxc --without-esx --without-hyperv       \
         --without-parallels --without-test --with-libvirtd --without-sasl \
         --with-yajl --without-macvtap --without-avahi  --prefix=$PREFIX
-    $MAKE
-    $MAKE --ignore-errors install DESTDIR="$INST_DIR" || true
+    $RAISIN_MAKE
+    $RAISIN_MAKE --ignore-errors install DESTDIR="$INST_DIR" || true
     if [[ $DISTRO = "Debian" ]]
     then
         mkdir -p "$INST_DIR"/etc/init.d
@@ -42,7 +42,7 @@ function libvirt_build() {
         chmod +x "$INST_DIR"/etc/init.d/libvirtd
     elif [[ $DISTRO = "Fedora" || $DISTRO = "CentOS" ]]
     then
-        $MAKE -C daemon libvirtd.init
+        $RAISIN_MAKE -C daemon libvirtd.init
         mkdir -p "$INST_DIR"/etc/rc.d/init.d
         cp daemon/libvirtd.init "$INST_DIR"/etc/rc.d/init.d/libvirtd
         chmod +x "$INST_DIR"/etc/rc.d/init.d/libvirtd
@@ -57,7 +57,7 @@ function libvirt_clean() {
     if [[ -d libvirt-dir ]]
     then
         cd libvirt-dir
-        $MAKE distclean
+        $RAISIN_MAKE distclean
         cd ..
         rm -rf libvirt-dir
     fi
diff --git a/components/qemu b/components/qemu
index e2f6be2..8689a18 100644
--- a/components/qemu
+++ b/components/qemu
@@ -25,8 +25,8 @@ function qemu_build() {
         --disable-kvm \
         --disable-docs \
         --disable-guest-agent
-    $MAKE all
-    $MAKE install DESTDIR="$INST_DIR"
+    $RAISIN_MAKE all
+    $RAISIN_MAKE install DESTDIR="$INST_DIR"
     cd "$BASEDIR"
 }
 
@@ -35,7 +35,7 @@ function qemu_clean() {
     if [[ -d qemu-dir ]]
     then
         cd qemu-dir
-        $MAKE distclean
+        $RAISIN_MAKE distclean
         cd ..
         rm -rf qemu-dir
     fi
diff --git a/components/qemu_traditional b/components/qemu_traditional
index 473538a..d27bb89 100644
--- a/components/qemu_traditional
+++ b/components/qemu_traditional
@@ -24,8 +24,8 @@ function qemu_traditional_build() {
     export CONFIG_BLKTAP1=n
     export XEN_ROOT="$BASEDIR"/xen-dir
     ./xen-setup
-    $MAKE all
-    $MAKE install DESTDIR="$INST_DIR"
+    $RAISIN_MAKE all
+    $RAISIN_MAKE install DESTDIR="$INST_DIR"
     cd "$BASEDIR"
 }
 
@@ -34,7 +34,7 @@ function qemu_traditional_clean() {
     if [[ -d qemu_traditional-dir ]]
     then
         cd qemu_traditional-dir
-        $MAKE distclean
+        $RAISIN_MAKE distclean
         cd ..
         rm -rf qemu_traditional-dir
     fi
diff --git a/components/xen b/components/xen
index 83fb77c..e68e3bf 100644
--- a/components/xen
+++ b/components/xen
@@ -25,8 +25,8 @@ function xen_build() {
     cd xen-dir
     ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
         --disable-qemu-traditional
-    $MAKE
-    $MAKE install DESTDIR="$INST_DIR"
+    $RAISIN_MAKE
+    $RAISIN_MAKE install DESTDIR="$INST_DIR"
     cd "$BASEDIR"
 }
 
@@ -35,7 +35,7 @@ function xen_clean() {
     if [[ -d xen-dir ]]
     then
         cd xen-dir
-        $MAKE distclean
+        $RAISIN_MAKE distclean
         cd "$BASEDIR"
         rm -rf xen-dir
     fi
diff --git a/lib/common-functions.sh b/lib/common-functions.sh
index c72856a..36e1766 100644
--- a/lib/common-functions.sh
+++ b/lib/common-functions.sh
@@ -5,7 +5,7 @@ function common_init() {
     export BASEDIR=`pwd`
     export GIT=${GIT-git}
     export SUDO=${SUDO-sudo}
-    export MAKE=${MAKE-make}
+    export RAISIN_MAKE=${MAKE-make}
     export PREFIX=${PREFIX-/usr}
     export INST_DIR=${DESTDIR-dist}
     
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (7 preceding siblings ...)
  2015-04-15 15:14 ` [PATCH 8/9] raisin: rename MAKE to RAISIN_MAKE Stefano Stabellini
@ 2015-04-15 15:15 ` Stefano Stabellini
  2015-04-15 15:42   ` George Dunlap
  2015-04-15 15:43 ` [PATCH 0/9] raisin: introduce qemu and qemu-traditional George Dunlap
  9 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:15 UTC (permalink / raw)
  To: xen-devel; +Cc: george.dunlap, stefano.stabellini

Fedora install the Xen libraries under /usr/lib64, so add usr/lib64 to
LDFLAGS for QEMU and Libvirt, that need those libraries.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 components/libvirt |    3 ++-
 components/qemu    |    3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/components/libvirt b/components/libvirt
index 1702fb9..5853950 100644
--- a/components/libvirt
+++ b/components/libvirt
@@ -27,7 +27,8 @@ function libvirt_build() {
     git-checkout $LIBVIRT_URL $LIBVIRT_REVISION libvirt-dir
     cd libvirt-dir
     CFLAGS="-I$INST_DIR/$PREFIX/include" \
-    LDFLAGS="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib" \
+    LDFLAGS="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib \
+             -L$INST_DIR/$PREFIX/lib64 -Wl,-rpath-link=$INST_DIR/$PREFIX/lib64" \
     ./autogen.sh --with-xen --without-qemu --without-uml --without-openvz \
         --without-vmware --without-phyp --without-xenapi --with-libxl     \
         --without-vbox --without-lxc --without-esx --without-hyperv       \
diff --git a/components/qemu b/components/qemu
index 8689a18..85db58e 100644
--- a/components/qemu
+++ b/components/qemu
@@ -21,7 +21,8 @@ function qemu_build() {
     cd qemu-dir
     ./configure --enable-xen --target-list=i386-softmmu,x86_64-softmmu --prefix=$PREFIX \
         --extra-cflags="-I$INST_DIR/$PREFIX/include" \
-        --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib" \
+        --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib \
+                         -L$INST_DIR/$PREFIX/lib64 -Wl,-rpath-link=$INST_DIR/$PREFIX/lib64" \
         --disable-kvm \
         --disable-docs \
         --disable-guest-agent
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH 1/9] raisin: do not clean before build
  2015-04-15 15:14 ` [PATCH 1/9] raisin: do not clean before build Stefano Stabellini
@ 2015-04-15 15:26   ` George Dunlap
  0 siblings, 0 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-15 15:26 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel

On 04/15/2015 04:14 PM, Stefano Stabellini wrote:
> Do not force a clean rebuild every time
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

Thanks. I didn't really like this, but I wasn't going to argue about it. :-)

Acked-by: George Dunlap <george.dunlap@eu.citrix.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:14 ` [PATCH 4/9] raisin: add a component to build qemu_traditional Stefano Stabellini
@ 2015-04-15 15:26   ` Andrew Cooper
  2015-04-15 15:44     ` Stefano Stabellini
  2015-04-16 16:03     ` Stefano Stabellini
  0 siblings, 2 replies; 48+ messages in thread
From: Andrew Cooper @ 2015-04-15 15:26 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel; +Cc: george.dunlap

On 15/04/15 16:14, Stefano Stabellini wrote:
> Introduce a component to build qemu-traditional out of xen-unstable.
> Do not compile qemu-traditional from xen-unstable by passing the right
> command line option to configure.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> ---
>  components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
>  components/series           |    1 +
>  components/xen              |    3 ++-
>  defconfig                   |    2 ++
>  4 files changed, 54 insertions(+), 1 deletion(-)
>  create mode 100644 components/qemu_traditional
>
> diff --git a/components/qemu_traditional b/components/qemu_traditional
> new file mode 100644
> index 0000000..cb71c94
> --- /dev/null
> +++ b/components/qemu_traditional
> @@ -0,0 +1,49 @@
> +#!/usr/bin/env bash
> +
> +function qemu_traditional_check_package() {
> +    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
> +              libncurses5-dev"
> +    local DEP_Debian_x86_32="$DEP_Debian_common"
> +    local DEP_Debian_x86_64="$DEP_Debian_common"
> +    local DEP_Debian_arm32="$DEP_Debian_common"
> +    local DEP_Debian_arm64="$DEP_Debian_common"
> +
> +    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
> +    local DEP_Fedora_x86_32="$DEP_Fedora_common"
> +    local DEP_Fedora_x86_64="$DEP_Fedora_common"
> +
> +    echo Checking QEMU dependencies
> +    eval check-package \$DEP_"$DISTRO"_"$ARCH"
> +}
> +
> +function qemu_traditional_build() {
> +    cd "$BASEDIR"
> +    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
> +    cd qemu_traditional-dir
> +
> +    export CONFIG_BLKTAP1=n
> +    export XEN_ROOT="$BASEDIR"/xen-dir
> +    ./xen-setup
> +    $MAKE all
> +    $MAKE install DESTDIR="$INST_DIR"
> +    cd "$BASEDIR"
> +}
> +
> +function qemu_traditional_clean() {
> +    cd "$BASEDIR"
> +    if [[ -d qemu_traditional-dir ]]
> +    then
> +        cd qemu_traditional-dir
> +        $MAKE distclean
> +        cd ..
> +        rm -rf qemu_traditional-dir
> +    fi
> +}
> +
> +function qemu_traditional_configure() {
> +    echo Nothing to configure for qemu_traditional
> +}
> +
> +function qemu_traditional_unconfigure() {
> +    echo Nothing to unconfigure for qemu_traditional
> +}
> diff --git a/components/series b/components/series
> index 8f614f0..d21243a 100644
> --- a/components/series
> +++ b/components/series
> @@ -1,4 +1,5 @@
>  xen
>  qemu
> +qemu_traditional
>  grub
>  libvirt
> diff --git a/components/xen b/components/xen
> index dcf2f92..9fdf37f 100644
> --- a/components/xen
> +++ b/components/xen
> @@ -23,7 +23,8 @@ function xen_build() {
>      cd "$BASEDIR"
>      git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
>      cd xen-dir
> -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
> +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
> +        --disable-qemu-traditional

This does more than just what you want.

It also tells libxl that qemu-trad does not exist which compiles out any
ability to use qemu-trad as a device model.

This is how XenServer managed to build qemu-trad externally while still
retaining libxl support:

https://github.com/xenserver/xen-4.5.pg/blob/master/master/build-disable-qemu-trad.patch

It would be nice if there was a --wtih-system-qemu-trad= option, but
that has been looked upon unfavourably by the maintainers.

~Andrew

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog
  2015-04-15 15:14 ` [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog Stefano Stabellini
@ 2015-04-15 15:31   ` George Dunlap
  0 siblings, 0 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-15 15:31 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel

On 04/15/2015 04:14 PM, Stefano Stabellini wrote:
> It is actually wrong on Fedora as the init.d paths are different.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

Ah, right!  That's probably why it was failing on CentOS too.

Acked-by: George Dunlap <george.dunlap@eu.citrix.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters
  2015-04-15 15:14 ` [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters Stefano Stabellini
@ 2015-04-15 15:34   ` Olaf Hering
  2015-04-15 15:40     ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Olaf Hering @ 2015-04-15 15:34 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, xen-devel

On Wed, Apr 15, Stefano Stabellini wrote:

> -Version: $(git show --oneline | head -1 | cut -d " " -f 1)
> +Version: $(date +"%s")

Maybe this should be for humans, like 'date +%Y%m%d.%H%M%S'?

Olaf

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters
  2015-04-15 15:34   ` Olaf Hering
@ 2015-04-15 15:40     ` Stefano Stabellini
  0 siblings, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:40 UTC (permalink / raw)
  To: Olaf Hering; +Cc: george.dunlap, xen-devel, Stefano Stabellini

On Wed, 15 Apr 2015, Olaf Hering wrote:
> On Wed, Apr 15, Stefano Stabellini wrote:
> 
> > -Version: $(git show --oneline | head -1 | cut -d " " -f 1)
> > +Version: $(date +"%s")
> 
> Maybe this should be for humans, like 'date +%Y%m%d.%H%M%S'?

Sure. I'll make the change.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt
  2015-04-15 15:15 ` [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt Stefano Stabellini
@ 2015-04-15 15:42   ` George Dunlap
  0 siblings, 0 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-15 15:42 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel

On 04/15/2015 04:15 PM, Stefano Stabellini wrote:
> Fedora install the Xen libraries under /usr/lib64, so add usr/lib64 to
> LDFLAGS for QEMU and Libvirt, that need those libraries.
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

So ./configure will place the libraries in the right place for Fedora
automatically?  Sw33t.

 -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 0/9] raisin: introduce qemu and qemu-traditional
  2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
                   ` (8 preceding siblings ...)
  2015-04-15 15:15 ` [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt Stefano Stabellini
@ 2015-04-15 15:43 ` George Dunlap
  2015-04-15 15:57   ` Stefano Stabellini
  9 siblings, 1 reply; 48+ messages in thread
From: George Dunlap @ 2015-04-15 15:43 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel

On 04/15/2015 04:14 PM, Stefano Stabellini wrote:
> Hi all,
> 
> this patch series introduces two new components to raisin: qemu and
> qemu-traditional:  the following patches disable building qemu and
> qemu-traditional from xen-unstable and build them separately.
> 
> The series also contains a few bug fixes.

Everything but the qemu one Andrew commented on:

Acked-by: George Dunlap <george.dunlap@eu.citrix.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:26   ` Andrew Cooper
@ 2015-04-15 15:44     ` Stefano Stabellini
  2015-04-15 15:49       ` Andrew Cooper
  2015-04-16 16:03     ` Stefano Stabellini
  1 sibling, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:44 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: george.dunlap, xen-devel, Stefano Stabellini

On Wed, 15 Apr 2015, Andrew Cooper wrote:
> On 15/04/15 16:14, Stefano Stabellini wrote:
> > Introduce a component to build qemu-traditional out of xen-unstable.
> > Do not compile qemu-traditional from xen-unstable by passing the right
> > command line option to configure.
> >
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > ---
> >  components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
> >  components/series           |    1 +
> >  components/xen              |    3 ++-
> >  defconfig                   |    2 ++
> >  4 files changed, 54 insertions(+), 1 deletion(-)
> >  create mode 100644 components/qemu_traditional
> >
> > diff --git a/components/qemu_traditional b/components/qemu_traditional
> > new file mode 100644
> > index 0000000..cb71c94
> > --- /dev/null
> > +++ b/components/qemu_traditional
> > @@ -0,0 +1,49 @@
> > +#!/usr/bin/env bash
> > +
> > +function qemu_traditional_check_package() {
> > +    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
> > +              libncurses5-dev"
> > +    local DEP_Debian_x86_32="$DEP_Debian_common"
> > +    local DEP_Debian_x86_64="$DEP_Debian_common"
> > +    local DEP_Debian_arm32="$DEP_Debian_common"
> > +    local DEP_Debian_arm64="$DEP_Debian_common"
> > +
> > +    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
> > +    local DEP_Fedora_x86_32="$DEP_Fedora_common"
> > +    local DEP_Fedora_x86_64="$DEP_Fedora_common"
> > +
> > +    echo Checking QEMU dependencies
> > +    eval check-package \$DEP_"$DISTRO"_"$ARCH"
> > +}
> > +
> > +function qemu_traditional_build() {
> > +    cd "$BASEDIR"
> > +    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
> > +    cd qemu_traditional-dir
> > +
> > +    export CONFIG_BLKTAP1=n
> > +    export XEN_ROOT="$BASEDIR"/xen-dir
> > +    ./xen-setup
> > +    $MAKE all
> > +    $MAKE install DESTDIR="$INST_DIR"
> > +    cd "$BASEDIR"
> > +}
> > +
> > +function qemu_traditional_clean() {
> > +    cd "$BASEDIR"
> > +    if [[ -d qemu_traditional-dir ]]
> > +    then
> > +        cd qemu_traditional-dir
> > +        $MAKE distclean
> > +        cd ..
> > +        rm -rf qemu_traditional-dir
> > +    fi
> > +}
> > +
> > +function qemu_traditional_configure() {
> > +    echo Nothing to configure for qemu_traditional
> > +}
> > +
> > +function qemu_traditional_unconfigure() {
> > +    echo Nothing to unconfigure for qemu_traditional
> > +}
> > diff --git a/components/series b/components/series
> > index 8f614f0..d21243a 100644
> > --- a/components/series
> > +++ b/components/series
> > @@ -1,4 +1,5 @@
> >  xen
> >  qemu
> > +qemu_traditional
> >  grub
> >  libvirt
> > diff --git a/components/xen b/components/xen
> > index dcf2f92..9fdf37f 100644
> > --- a/components/xen
> > +++ b/components/xen
> > @@ -23,7 +23,8 @@ function xen_build() {
> >      cd "$BASEDIR"
> >      git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
> >      cd xen-dir
> > -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
> > +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
> > +        --disable-qemu-traditional
> 
> This does more than just what you want.
> 
> It also tells libxl that qemu-trad does not exist which compiles out any
> ability to use qemu-trad as a device model.
> 
> This is how XenServer managed to build qemu-trad externally while still
> retaining libxl support:
> 
> https://github.com/xenserver/xen-4.5.pg/blob/master/master/build-disable-qemu-trad.patch
> 
> It would be nice if there was a --wtih-system-qemu-trad= option, but
> that has been looked upon unfavourably by the maintainers.

Thanks for feedback!!
I think Raisin needs something like --with-system-qemu-trad=, so if Xen
doesn't provide it, we'll have to carry a patch in Raisin to do it.

Do you have a link to the discussion or previously rejected patch?

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:44     ` Stefano Stabellini
@ 2015-04-15 15:49       ` Andrew Cooper
  2015-04-15 15:51         ` George Dunlap
  2015-04-15 15:58         ` Ian Campbell
  0 siblings, 2 replies; 48+ messages in thread
From: Andrew Cooper @ 2015-04-15 15:49 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, xen-devel

On 15/04/15 16:44, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, Andrew Cooper wrote:
>> On 15/04/15 16:14, Stefano Stabellini wrote:
>>> Introduce a component to build qemu-traditional out of xen-unstable.
>>> Do not compile qemu-traditional from xen-unstable by passing the right
>>> command line option to configure.
>>>
>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>>> ---
>>>  components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
>>>  components/series           |    1 +
>>>  components/xen              |    3 ++-
>>>  defconfig                   |    2 ++
>>>  4 files changed, 54 insertions(+), 1 deletion(-)
>>>  create mode 100644 components/qemu_traditional
>>>
>>> diff --git a/components/qemu_traditional b/components/qemu_traditional
>>> new file mode 100644
>>> index 0000000..cb71c94
>>> --- /dev/null
>>> +++ b/components/qemu_traditional
>>> @@ -0,0 +1,49 @@
>>> +#!/usr/bin/env bash
>>> +
>>> +function qemu_traditional_check_package() {
>>> +    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
>>> +              libncurses5-dev"
>>> +    local DEP_Debian_x86_32="$DEP_Debian_common"
>>> +    local DEP_Debian_x86_64="$DEP_Debian_common"
>>> +    local DEP_Debian_arm32="$DEP_Debian_common"
>>> +    local DEP_Debian_arm64="$DEP_Debian_common"
>>> +
>>> +    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
>>> +    local DEP_Fedora_x86_32="$DEP_Fedora_common"
>>> +    local DEP_Fedora_x86_64="$DEP_Fedora_common"
>>> +
>>> +    echo Checking QEMU dependencies
>>> +    eval check-package \$DEP_"$DISTRO"_"$ARCH"
>>> +}
>>> +
>>> +function qemu_traditional_build() {
>>> +    cd "$BASEDIR"
>>> +    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
>>> +    cd qemu_traditional-dir
>>> +
>>> +    export CONFIG_BLKTAP1=n
>>> +    export XEN_ROOT="$BASEDIR"/xen-dir
>>> +    ./xen-setup
>>> +    $MAKE all
>>> +    $MAKE install DESTDIR="$INST_DIR"
>>> +    cd "$BASEDIR"
>>> +}
>>> +
>>> +function qemu_traditional_clean() {
>>> +    cd "$BASEDIR"
>>> +    if [[ -d qemu_traditional-dir ]]
>>> +    then
>>> +        cd qemu_traditional-dir
>>> +        $MAKE distclean
>>> +        cd ..
>>> +        rm -rf qemu_traditional-dir
>>> +    fi
>>> +}
>>> +
>>> +function qemu_traditional_configure() {
>>> +    echo Nothing to configure for qemu_traditional
>>> +}
>>> +
>>> +function qemu_traditional_unconfigure() {
>>> +    echo Nothing to unconfigure for qemu_traditional
>>> +}
>>> diff --git a/components/series b/components/series
>>> index 8f614f0..d21243a 100644
>>> --- a/components/series
>>> +++ b/components/series
>>> @@ -1,4 +1,5 @@
>>>  xen
>>>  qemu
>>> +qemu_traditional
>>>  grub
>>>  libvirt
>>> diff --git a/components/xen b/components/xen
>>> index dcf2f92..9fdf37f 100644
>>> --- a/components/xen
>>> +++ b/components/xen
>>> @@ -23,7 +23,8 @@ function xen_build() {
>>>      cd "$BASEDIR"
>>>      git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
>>>      cd xen-dir
>>> -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
>>> +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
>>> +        --disable-qemu-traditional
>> This does more than just what you want.
>>
>> It also tells libxl that qemu-trad does not exist which compiles out any
>> ability to use qemu-trad as a device model.
>>
>> This is how XenServer managed to build qemu-trad externally while still
>> retaining libxl support:
>>
>> https://github.com/xenserver/xen-4.5.pg/blob/master/master/build-disable-qemu-trad.patch
>>
>> It would be nice if there was a --wtih-system-qemu-trad= option, but
>> that has been looked upon unfavourably by the maintainers.
> Thanks for feedback!!
> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> doesn't provide it, we'll have to carry a patch in Raisin to do it.
>
> Do you have a link to the discussion or previously rejected patch?

I am not sure that there was ever a patch - it may have been a
discussion I had with ijc in person.

I would be +1 for a --with-system-qemu-trad= option to mirror the
--with-system-qemu, especially as I am now not the only advocate of one.

~Andrew

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:49       ` Andrew Cooper
@ 2015-04-15 15:51         ` George Dunlap
  2015-04-15 15:58         ` Ian Campbell
  1 sibling, 0 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-15 15:51 UTC (permalink / raw)
  To: Andrew Cooper, Stefano Stabellini; +Cc: xen-devel

On 04/15/2015 04:49 PM, Andrew Cooper wrote:
> On 15/04/15 16:44, Stefano Stabellini wrote:
>> On Wed, 15 Apr 2015, Andrew Cooper wrote:
>>> On 15/04/15 16:14, Stefano Stabellini wrote:
>>>> Introduce a component to build qemu-traditional out of xen-unstable.
>>>> Do not compile qemu-traditional from xen-unstable by passing the right
>>>> command line option to configure.
>>>>
>>>> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>>>> ---
>>>>  components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
>>>>  components/series           |    1 +
>>>>  components/xen              |    3 ++-
>>>>  defconfig                   |    2 ++
>>>>  4 files changed, 54 insertions(+), 1 deletion(-)
>>>>  create mode 100644 components/qemu_traditional
>>>>
>>>> diff --git a/components/qemu_traditional b/components/qemu_traditional
>>>> new file mode 100644
>>>> index 0000000..cb71c94
>>>> --- /dev/null
>>>> +++ b/components/qemu_traditional
>>>> @@ -0,0 +1,49 @@
>>>> +#!/usr/bin/env bash
>>>> +
>>>> +function qemu_traditional_check_package() {
>>>> +    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
>>>> +              libncurses5-dev"
>>>> +    local DEP_Debian_x86_32="$DEP_Debian_common"
>>>> +    local DEP_Debian_x86_64="$DEP_Debian_common"
>>>> +    local DEP_Debian_arm32="$DEP_Debian_common"
>>>> +    local DEP_Debian_arm64="$DEP_Debian_common"
>>>> +
>>>> +    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
>>>> +    local DEP_Fedora_x86_32="$DEP_Fedora_common"
>>>> +    local DEP_Fedora_x86_64="$DEP_Fedora_common"
>>>> +
>>>> +    echo Checking QEMU dependencies
>>>> +    eval check-package \$DEP_"$DISTRO"_"$ARCH"
>>>> +}
>>>> +
>>>> +function qemu_traditional_build() {
>>>> +    cd "$BASEDIR"
>>>> +    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
>>>> +    cd qemu_traditional-dir
>>>> +
>>>> +    export CONFIG_BLKTAP1=n
>>>> +    export XEN_ROOT="$BASEDIR"/xen-dir
>>>> +    ./xen-setup
>>>> +    $MAKE all
>>>> +    $MAKE install DESTDIR="$INST_DIR"
>>>> +    cd "$BASEDIR"
>>>> +}
>>>> +
>>>> +function qemu_traditional_clean() {
>>>> +    cd "$BASEDIR"
>>>> +    if [[ -d qemu_traditional-dir ]]
>>>> +    then
>>>> +        cd qemu_traditional-dir
>>>> +        $MAKE distclean
>>>> +        cd ..
>>>> +        rm -rf qemu_traditional-dir
>>>> +    fi
>>>> +}
>>>> +
>>>> +function qemu_traditional_configure() {
>>>> +    echo Nothing to configure for qemu_traditional
>>>> +}
>>>> +
>>>> +function qemu_traditional_unconfigure() {
>>>> +    echo Nothing to unconfigure for qemu_traditional
>>>> +}
>>>> diff --git a/components/series b/components/series
>>>> index 8f614f0..d21243a 100644
>>>> --- a/components/series
>>>> +++ b/components/series
>>>> @@ -1,4 +1,5 @@
>>>>  xen
>>>>  qemu
>>>> +qemu_traditional
>>>>  grub
>>>>  libvirt
>>>> diff --git a/components/xen b/components/xen
>>>> index dcf2f92..9fdf37f 100644
>>>> --- a/components/xen
>>>> +++ b/components/xen
>>>> @@ -23,7 +23,8 @@ function xen_build() {
>>>>      cd "$BASEDIR"
>>>>      git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
>>>>      cd xen-dir
>>>> -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
>>>> +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
>>>> +        --disable-qemu-traditional
>>> This does more than just what you want.
>>>
>>> It also tells libxl that qemu-trad does not exist which compiles out any
>>> ability to use qemu-trad as a device model.
>>>
>>> This is how XenServer managed to build qemu-trad externally while still
>>> retaining libxl support:
>>>
>>> https://github.com/xenserver/xen-4.5.pg/blob/master/master/build-disable-qemu-trad.patch
>>>
>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
>>> that has been looked upon unfavourably by the maintainers.
>> Thanks for feedback!!
>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
>>
>> Do you have a link to the discussion or previously rejected patch?
> 
> I am not sure that there was ever a patch - it may have been a
> discussion I had with ijc in person.
> 
> I would be +1 for a --with-system-qemu-trad= option to mirror the
> --with-system-qemu, especially as I am now not the only advocate of one.

Well in this case our goal is to get all the external clones out of the
xen tree at all; in which case --with-system-qemu-trad is basically the
way to do it.

  -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 0/9] raisin: introduce qemu and qemu-traditional
  2015-04-15 15:43 ` [PATCH 0/9] raisin: introduce qemu and qemu-traditional George Dunlap
@ 2015-04-15 15:57   ` Stefano Stabellini
  0 siblings, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 15:57 UTC (permalink / raw)
  To: George Dunlap; +Cc: xen-devel, Stefano Stabellini

On Wed, 15 Apr 2015, George Dunlap wrote:
> On 04/15/2015 04:14 PM, Stefano Stabellini wrote:
> > Hi all,
> > 
> > this patch series introduces two new components to raisin: qemu and
> > qemu-traditional:  the following patches disable building qemu and
> > qemu-traditional from xen-unstable and build them separately.
> > 
> > The series also contains a few bug fixes.
> 
> Everything but the qemu one Andrew commented on:
> 
> Acked-by: George Dunlap <george.dunlap@eu.citrix.com>

Committed all of them except for the qemu-traditional patch.
I made the small change suggested by Olaf to patch #2. 

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:49       ` Andrew Cooper
  2015-04-15 15:51         ` George Dunlap
@ 2015-04-15 15:58         ` Ian Campbell
  2015-04-15 16:11           ` Stefano Stabellini
  1 sibling, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-15 15:58 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: george.dunlap, xen-devel, Stefano Stabellini

On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> >> It would be nice if there was a --wtih-system-qemu-trad= option, but
> >> that has been looked upon unfavourably by the maintainers.
> > Thanks for feedback!!
> > I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> > doesn't provide it, we'll have to carry a patch in Raisin to do it.
> >
> > Do you have a link to the discussion or previously rejected patch?
> 
> I am not sure that there was ever a patch - it may have been a
> discussion I had with ijc in person.

Possibly I can't remember myself either.

> I would be +1 for a --with-system-qemu-trad= option to mirror the
> --with-system-qemu, especially as I am now not the only advocate of one.

In a pre-raisin world I suppose I thought it didn't make too much sense
to go through that churn if we weren't going to stop _all_
cloning/downloading from within xen.git.

Personally I would have considered qemu-trad very much part of the long
tail wrt moving things out of xen.git, but anyway.

I'd like to see raisin used/supported by osstest before we start
accepting thoe sorts of xen.git patches being suggested here.

(I also think osstest support is a prerequisite for saying it is an
officially support XenProject thing, but that's offtopic in this
context)

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:58         ` Ian Campbell
@ 2015-04-15 16:11           ` Stefano Stabellini
  2015-04-15 16:15             ` Ian Jackson
                               ` (2 more replies)
  0 siblings, 3 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 16:11 UTC (permalink / raw)
  To: Ian Campbell
  Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Wed, 15 Apr 2015, Ian Campbell wrote:
> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> > >> It would be nice if there was a --wtih-system-qemu-trad= option, but
> > >> that has been looked upon unfavourably by the maintainers.
> > > Thanks for feedback!!
> > > I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> > > doesn't provide it, we'll have to carry a patch in Raisin to do it.
> > >
> > > Do you have a link to the discussion or previously rejected patch?
> > 
> > I am not sure that there was ever a patch - it may have been a
> > discussion I had with ijc in person.
> 
> Possibly I can't remember myself either.
> 
> > I would be +1 for a --with-system-qemu-trad= option to mirror the
> > --with-system-qemu, especially as I am now not the only advocate of one.
> 
> In a pre-raisin world I suppose I thought it didn't make too much sense
> to go through that churn if we weren't going to stop _all_
> cloning/downloading from within xen.git.
> 
> Personally I would have considered qemu-trad very much part of the long
> tail wrt moving things out of xen.git, but anyway.
> 
> I'd like to see raisin used/supported by osstest before we start
> accepting thoe sorts of xen.git patches being suggested here.

I think we'll have to carry those patches in Raisin anyway, otherwise
how are we supposed to be able to build xen 4.5? I don't think is
reasonable to be able to build only 4.6 onward.


> (I also think osstest support is a prerequisite for saying it is an
> officially support XenProject thing, but that's offtopic in this
> context)

I spoke with IanJ and he didn't seem too keen on adding raisin support
to osstest before raisin could build everything out of tree. That's way
I started tackling qemu and qemu-traditional.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:11           ` Stefano Stabellini
@ 2015-04-15 16:15             ` Ian Jackson
  2015-04-15 16:26               ` Ian Campbell
  2015-04-15 16:21             ` George Dunlap
  2015-04-15 16:24             ` Ian Campbell
  2 siblings, 1 reply; 48+ messages in thread
From: Ian Jackson @ 2015-04-15 16:15 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Campbell

Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> On Wed, 15 Apr 2015, Ian Campbell wrote:
> > (I also think osstest support is a prerequisite for saying it is an
> > officially support XenProject thing, but that's offtopic in this
> > context)
> 
> I spoke with IanJ and he didn't seem too keen on adding raisin support
> to osstest before raisin could build everything out of tree. That's way
> I started tackling qemu and qemu-traditional.

I don't mind a hybrid approach.  What I would like is for each
subproject to _either_ do the existing thing, or be able to ask raisin
about it in advance.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:11           ` Stefano Stabellini
  2015-04-15 16:15             ` Ian Jackson
@ 2015-04-15 16:21             ` George Dunlap
  2015-04-15 17:42               ` Stefano Stabellini
  2015-04-15 16:24             ` Ian Campbell
  2 siblings, 1 reply; 48+ messages in thread
From: George Dunlap @ 2015-04-15 16:21 UTC (permalink / raw)
  To: Stefano Stabellini, Ian Campbell; +Cc: Andrew Cooper, xen-devel, Ian Jackson

On 04/15/2015 05:11 PM, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, Ian Campbell wrote:
>> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
>>>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
>>>>> that has been looked upon unfavourably by the maintainers.
>>>> Thanks for feedback!!
>>>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
>>>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
>>>>
>>>> Do you have a link to the discussion or previously rejected patch?
>>>
>>> I am not sure that there was ever a patch - it may have been a
>>> discussion I had with ijc in person.
>>
>> Possibly I can't remember myself either.
>>
>>> I would be +1 for a --with-system-qemu-trad= option to mirror the
>>> --with-system-qemu, especially as I am now not the only advocate of one.
>>
>> In a pre-raisin world I suppose I thought it didn't make too much sense
>> to go through that churn if we weren't going to stop _all_
>> cloning/downloading from within xen.git.
>>
>> Personally I would have considered qemu-trad very much part of the long
>> tail wrt moving things out of xen.git, but anyway.
>>
>> I'd like to see raisin used/supported by osstest before we start
>> accepting thoe sorts of xen.git patches being suggested here.
> 
> I think we'll have to carry those patches in Raisin anyway, otherwise
> how are we supposed to be able to build xen 4.5? I don't think is
> reasonable to be able to build only 4.6 onward.

Why isn't that reasonable?  It's a completely new tool.

Speaking of which -- are we going to try to make any version of raisin
build any random version of Xen, or are we going to have "releases" of
raisin (and subsequent branches and tags in the raisin.git tree) for
each version we want to support?

 -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:11           ` Stefano Stabellini
  2015-04-15 16:15             ` Ian Jackson
  2015-04-15 16:21             ` George Dunlap
@ 2015-04-15 16:24             ` Ian Campbell
  2 siblings, 0 replies; 48+ messages in thread
From: Ian Campbell @ 2015-04-15 16:24 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson

On Wed, 2015-04-15 at 17:11 +0100, Stefano Stabellini wrote:

> I think we'll have to carry those patches in Raisin anyway, otherwise
> how are we supposed to be able to build xen 4.5?

Like we do today, i.e. with xen.git doing the cloning.

>  I don't think is
> reasonable to be able to build only 4.6 onward.

Agreed, but I don't think it needs to be a goal that when building 4.5
none of the existing cloning is used, that's reasonable as a goal to be
achieved with 4.6 onwards.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:15             ` Ian Jackson
@ 2015-04-15 16:26               ` Ian Campbell
  2015-04-15 17:41                 ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-15 16:26 UTC (permalink / raw)
  To: Ian Jackson; +Cc: george.dunlap, Andrew Cooper, xen-devel, Stefano Stabellini

On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > (I also think osstest support is a prerequisite for saying it is an
> > > officially support XenProject thing, but that's offtopic in this
> > > context)
> > 
> > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > to osstest before raisin could build everything out of tree. That's way
> > I started tackling qemu and qemu-traditional.

I see, I had imagined we would prefer a more piecemeal process.

> I don't mind a hybrid approach.  What I would like is for each
> subproject to _either_ do the existing thing, or be able to ask raisin
> about it in advance.

Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
completely new, not moving from xen.git) stuff is added and desirable to
support.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:26               ` Ian Campbell
@ 2015-04-15 17:41                 ` Stefano Stabellini
  2015-04-16  8:45                   ` Ian Campbell
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 17:41 UTC (permalink / raw)
  To: Ian Campbell
  Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Wed, 15 Apr 2015, Ian Campbell wrote:
> On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > (I also think osstest support is a prerequisite for saying it is an
> > > > officially support XenProject thing, but that's offtopic in this
> > > > context)
> > > 
> > > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > > to osstest before raisin could build everything out of tree. That's way
> > > I started tackling qemu and qemu-traditional.
> 
> I see, I had imagined we would prefer a more piecemeal process.
> 
> > I don't mind a hybrid approach.  What I would like is for each
> > subproject to _either_ do the existing thing, or be able to ask raisin
> > about it in advance.
> 
> Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
> completely new, not moving from xen.git) stuff is added and desirable to
> support.

The integration process that I envisioned is something like the
following:

- Add any missing options to the xen-unstable build system to avoid
cloning and building sub-components, such as qemu, seabios, etc. Many of
these configure options are already there, like --with-system-qemu and
--with-system-ovmf.

- build all these components separately in raisin

- introduce raisin in osstest

- disable by default cloning and building sub-components from xen-unstable

/ time passes /

- remove options to clone and build sub-components from xen-unstable

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 16:21             ` George Dunlap
@ 2015-04-15 17:42               ` Stefano Stabellini
  2015-04-16  8:47                 ` Ian Campbell
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-15 17:42 UTC (permalink / raw)
  To: George Dunlap
  Cc: Andrew Cooper, xen-devel, Ian Jackson, Ian Campbell, Stefano Stabellini

On Wed, 15 Apr 2015, George Dunlap wrote:
> On 04/15/2015 05:11 PM, Stefano Stabellini wrote:
> > On Wed, 15 Apr 2015, Ian Campbell wrote:
> >> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> >>>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
> >>>>> that has been looked upon unfavourably by the maintainers.
> >>>> Thanks for feedback!!
> >>>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> >>>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
> >>>>
> >>>> Do you have a link to the discussion or previously rejected patch?
> >>>
> >>> I am not sure that there was ever a patch - it may have been a
> >>> discussion I had with ijc in person.
> >>
> >> Possibly I can't remember myself either.
> >>
> >>> I would be +1 for a --with-system-qemu-trad= option to mirror the
> >>> --with-system-qemu, especially as I am now not the only advocate of one.
> >>
> >> In a pre-raisin world I suppose I thought it didn't make too much sense
> >> to go through that churn if we weren't going to stop _all_
> >> cloning/downloading from within xen.git.
> >>
> >> Personally I would have considered qemu-trad very much part of the long
> >> tail wrt moving things out of xen.git, but anyway.
> >>
> >> I'd like to see raisin used/supported by osstest before we start
> >> accepting thoe sorts of xen.git patches being suggested here.
> > 
> > I think we'll have to carry those patches in Raisin anyway, otherwise
> > how are we supposed to be able to build xen 4.5? I don't think is
> > reasonable to be able to build only 4.6 onward.
> 
> Why isn't that reasonable?  It's a completely new tool.
> 
> Speaking of which -- are we going to try to make any version of raisin
> build any random version of Xen, or are we going to have "releases" of
> raisin (and subsequent branches and tags in the raisin.git tree) for
> each version we want to support?

If we cannot do any better, we can resort to that, but as a user I like
the fact that I can use raisin to build any relatively modern xen
version by simply specifying a tag.

We can figure out a way to detect whether we need to patch Xen and only
in that case do it.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-15 15:14 ` [PATCH 3/9] raisin: add QEMU upstream component Stefano Stabellini
@ 2015-04-15 19:05   ` Julien Grall
  2015-04-16  9:51     ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Julien Grall @ 2015-04-15 19:05 UTC (permalink / raw)
  To: Stefano Stabellini, xen-devel; +Cc: george.dunlap

Hi Stefano,

On 15/04/2015 16:14, Stefano Stabellini wrote:
> diff --git a/components/series b/components/series
> index 3c3124d..8f614f0 100644
> --- a/components/series
> +++ b/components/series
> @@ -1,3 +1,4 @@
>   xen
> +qemu
>   grub
>   libvirt
> diff --git a/components/xen b/components/xen
> index 2d345a8..dcf2f92 100644
> --- a/components/xen
> +++ b/components/xen
> @@ -23,7 +23,7 @@ function xen_build() {
>       cd "$BASEDIR"
>       git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
>       cd xen-dir
> -    ./configure --prefix=$PREFIX
> +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386

Currently the QEMU built by Xen is installed in a Xen directory (IIRC 
/usr/lib/xen/bin). Should not you use a similar path for raisin? 
Otherwise you would override the QEMU installed via the distrib package
manager.

I guess this could be done by $INST_DIR?

Regards,

-- 
Julien Grall

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 17:41                 ` Stefano Stabellini
@ 2015-04-16  8:45                   ` Ian Campbell
  2015-04-16  9:54                     ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-16  8:45 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson

On Wed, 2015-04-15 at 18:41 +0100, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, Ian Campbell wrote:
> > On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > > (I also think osstest support is a prerequisite for saying it is an
> > > > > officially support XenProject thing, but that's offtopic in this
> > > > > context)
> > > > 
> > > > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > > > to osstest before raisin could build everything out of tree. That's way
> > > > I started tackling qemu and qemu-traditional.
> > 
> > I see, I had imagined we would prefer a more piecemeal process.
> > 
> > > I don't mind a hybrid approach.  What I would like is for each
> > > subproject to _either_ do the existing thing, or be able to ask raisin
> > > about it in advance.
> > 
> > Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
> > completely new, not moving from xen.git) stuff is added and desirable to
> > support.
> 
> The integration process that I envisioned is something like the
> following:
> 
> - Add any missing options to the xen-unstable build system to avoid
> cloning and building sub-components, such as qemu, seabios, etc. Many of
> these configure options are already there, like --with-system-qemu and
> --with-system-ovmf.
> 
> - build all these components separately in raisin
> 
> - introduce raisin in osstest
> 
> - disable by default cloning and building sub-components from xen-unstable
> 
> / time passes /
> 
> - remove options to clone and build sub-components from xen-unstable

That makes sense. My final paragraph was asking about the next step,
which is adding a completely new component to raisin and integrating it
with osstest, wouldn't osstest then need some way to query raisin about
what it would clone etc?

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 17:42               ` Stefano Stabellini
@ 2015-04-16  8:47                 ` Ian Campbell
  2015-04-16  9:53                   ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-16  8:47 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: George Dunlap, Andrew Cooper, xen-devel, Ian Jackson

On Wed, 2015-04-15 at 18:42 +0100, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, George Dunlap wrote:
> > On 04/15/2015 05:11 PM, Stefano Stabellini wrote:
> > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > >> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> > >>>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
> > >>>>> that has been looked upon unfavourably by the maintainers.
> > >>>> Thanks for feedback!!
> > >>>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> > >>>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
> > >>>>
> > >>>> Do you have a link to the discussion or previously rejected patch?
> > >>>
> > >>> I am not sure that there was ever a patch - it may have been a
> > >>> discussion I had with ijc in person.
> > >>
> > >> Possibly I can't remember myself either.
> > >>
> > >>> I would be +1 for a --with-system-qemu-trad= option to mirror the
> > >>> --with-system-qemu, especially as I am now not the only advocate of one.
> > >>
> > >> In a pre-raisin world I suppose I thought it didn't make too much sense
> > >> to go through that churn if we weren't going to stop _all_
> > >> cloning/downloading from within xen.git.
> > >>
> > >> Personally I would have considered qemu-trad very much part of the long
> > >> tail wrt moving things out of xen.git, but anyway.
> > >>
> > >> I'd like to see raisin used/supported by osstest before we start
> > >> accepting thoe sorts of xen.git patches being suggested here.
> > > 
> > > I think we'll have to carry those patches in Raisin anyway, otherwise
> > > how are we supposed to be able to build xen 4.5? I don't think is
> > > reasonable to be able to build only 4.6 onward.
> > 
> > Why isn't that reasonable?  It's a completely new tool.
> > 
> > Speaking of which -- are we going to try to make any version of raisin
> > build any random version of Xen, or are we going to have "releases" of
> > raisin (and subsequent branches and tags in the raisin.git tree) for
> > each version we want to support?
> 
> If we cannot do any better, we can resort to that, but as a user I like
> the fact that I can use raisin to build any relatively modern xen
> version by simply specifying a tag.
> 
> We can figure out a way to detect whether we need to patch Xen and only
> in that case do it.

When Raisin is building Xen 4.5 or earlier it should just let xen.git
take care of cloning and building qemu-trad (and anything else which is
in xen 4.5 by default). Thinking about patching xen 4.5 on the fly for
this is just madness.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-15 19:05   ` Julien Grall
@ 2015-04-16  9:51     ` Stefano Stabellini
  2015-04-16  9:54       ` George Dunlap
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16  9:51 UTC (permalink / raw)
  To: Julien Grall; +Cc: george.dunlap, xen-devel, Stefano Stabellini

On Wed, 15 Apr 2015, Julien Grall wrote:
> Hi Stefano,
> 
> On 15/04/2015 16:14, Stefano Stabellini wrote:
> > diff --git a/components/series b/components/series
> > index 3c3124d..8f614f0 100644
> > --- a/components/series
> > +++ b/components/series
> > @@ -1,3 +1,4 @@
> >   xen
> > +qemu
> >   grub
> >   libvirt
> > diff --git a/components/xen b/components/xen
> > index 2d345a8..dcf2f92 100644
> > --- a/components/xen
> > +++ b/components/xen
> > @@ -23,7 +23,7 @@ function xen_build() {
> >       cd "$BASEDIR"
> >       git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
> >       cd xen-dir
> > -    ./configure --prefix=$PREFIX
> > +    ./configure --prefix=$PREFIX
> > --with-system-qemu=/usr/bin/qemu-system-i386
> 
> Currently the QEMU built by Xen is installed in a Xen directory (IIRC
> /usr/lib/xen/bin). Should not you use a similar path for raisin? Otherwise you
> would override the QEMU installed via the distrib package
> manager.

This was done on purpose because the QEMU component built by Raisin
should be generally usable, even without Xen.


> I guess this could be done by $INST_DIR?

We could move the QEMU binary to /usr/lib/xen/bin if we wanted to and
things would be back to "normal".

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16  8:47                 ` Ian Campbell
@ 2015-04-16  9:53                   ` Stefano Stabellini
  2015-04-16 10:09                     ` Ian Campbell
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16  9:53 UTC (permalink / raw)
  To: Ian Campbell
  Cc: George Dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Thu, 16 Apr 2015, Ian Campbell wrote:
> On Wed, 2015-04-15 at 18:42 +0100, Stefano Stabellini wrote:
> > On Wed, 15 Apr 2015, George Dunlap wrote:
> > > On 04/15/2015 05:11 PM, Stefano Stabellini wrote:
> > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > >> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> > > >>>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
> > > >>>>> that has been looked upon unfavourably by the maintainers.
> > > >>>> Thanks for feedback!!
> > > >>>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> > > >>>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
> > > >>>>
> > > >>>> Do you have a link to the discussion or previously rejected patch?
> > > >>>
> > > >>> I am not sure that there was ever a patch - it may have been a
> > > >>> discussion I had with ijc in person.
> > > >>
> > > >> Possibly I can't remember myself either.
> > > >>
> > > >>> I would be +1 for a --with-system-qemu-trad= option to mirror the
> > > >>> --with-system-qemu, especially as I am now not the only advocate of one.
> > > >>
> > > >> In a pre-raisin world I suppose I thought it didn't make too much sense
> > > >> to go through that churn if we weren't going to stop _all_
> > > >> cloning/downloading from within xen.git.
> > > >>
> > > >> Personally I would have considered qemu-trad very much part of the long
> > > >> tail wrt moving things out of xen.git, but anyway.
> > > >>
> > > >> I'd like to see raisin used/supported by osstest before we start
> > > >> accepting thoe sorts of xen.git patches being suggested here.
> > > > 
> > > > I think we'll have to carry those patches in Raisin anyway, otherwise
> > > > how are we supposed to be able to build xen 4.5? I don't think is
> > > > reasonable to be able to build only 4.6 onward.
> > > 
> > > Why isn't that reasonable?  It's a completely new tool.
> > > 
> > > Speaking of which -- are we going to try to make any version of raisin
> > > build any random version of Xen, or are we going to have "releases" of
> > > raisin (and subsequent branches and tags in the raisin.git tree) for
> > > each version we want to support?
> > 
> > If we cannot do any better, we can resort to that, but as a user I like
> > the fact that I can use raisin to build any relatively modern xen
> > version by simply specifying a tag.
> > 
> > We can figure out a way to detect whether we need to patch Xen and only
> > in that case do it.
> 
> When Raisin is building Xen 4.5 or earlier it should just let xen.git
> take care of cloning and building qemu-trad (and anything else which is
> in xen 4.5 by default). Thinking about patching xen 4.5 on the fly for
> this is just madness.

But then the external qemu-traditional build would silently overwrite
the qemu-traditional binary produced by xen-unstable or fail during
installation. Both options are not very nice.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16  8:45                   ` Ian Campbell
@ 2015-04-16  9:54                     ` Stefano Stabellini
  2015-04-16 10:10                       ` Ian Campbell
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16  9:54 UTC (permalink / raw)
  To: Ian Campbell
  Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Thu, 16 Apr 2015, Ian Campbell wrote:
> On Wed, 2015-04-15 at 18:41 +0100, Stefano Stabellini wrote:
> > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> > > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > > > (I also think osstest support is a prerequisite for saying it is an
> > > > > > officially support XenProject thing, but that's offtopic in this
> > > > > > context)
> > > > > 
> > > > > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > > > > to osstest before raisin could build everything out of tree. That's way
> > > > > I started tackling qemu and qemu-traditional.
> > > 
> > > I see, I had imagined we would prefer a more piecemeal process.
> > > 
> > > > I don't mind a hybrid approach.  What I would like is for each
> > > > subproject to _either_ do the existing thing, or be able to ask raisin
> > > > about it in advance.
> > > 
> > > Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
> > > completely new, not moving from xen.git) stuff is added and desirable to
> > > support.
> > 
> > The integration process that I envisioned is something like the
> > following:
> > 
> > - Add any missing options to the xen-unstable build system to avoid
> > cloning and building sub-components, such as qemu, seabios, etc. Many of
> > these configure options are already there, like --with-system-qemu and
> > --with-system-ovmf.
> > 
> > - build all these components separately in raisin
> > 
> > - introduce raisin in osstest
> > 
> > - disable by default cloning and building sub-components from xen-unstable
> > 
> > / time passes /
> > 
> > - remove options to clone and build sub-components from xen-unstable
> 
> That makes sense. My final paragraph was asking about the next step,
> which is adding a completely new component to raisin and integrating it
> with osstest, wouldn't osstest then need some way to query raisin about
> what it would clone etc?

Raisin has a config file to specify what to clone from where and what
revision it should use:

http://xenbits.xen.org/gitweb/?p=people/sstabellini/raisin.git;a=blob_plain;f=defconfig;hb=HEAD

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-16  9:51     ` Stefano Stabellini
@ 2015-04-16  9:54       ` George Dunlap
  2015-04-16 10:29         ` Stefano Stabellini
  2015-04-16 10:49         ` Julien Grall
  0 siblings, 2 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-16  9:54 UTC (permalink / raw)
  To: Stefano Stabellini, Julien Grall; +Cc: xen-devel

On 04/16/2015 10:51 AM, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, Julien Grall wrote:
>> Hi Stefano,
>>
>> On 15/04/2015 16:14, Stefano Stabellini wrote:
>>> diff --git a/components/series b/components/series
>>> index 3c3124d..8f614f0 100644
>>> --- a/components/series
>>> +++ b/components/series
>>> @@ -1,3 +1,4 @@
>>>   xen
>>> +qemu
>>>   grub
>>>   libvirt
>>> diff --git a/components/xen b/components/xen
>>> index 2d345a8..dcf2f92 100644
>>> --- a/components/xen
>>> +++ b/components/xen
>>> @@ -23,7 +23,7 @@ function xen_build() {
>>>       cd "$BASEDIR"
>>>       git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
>>>       cd xen-dir
>>> -    ./configure --prefix=$PREFIX
>>> +    ./configure --prefix=$PREFIX
>>> --with-system-qemu=/usr/bin/qemu-system-i386
>>
>> Currently the QEMU built by Xen is installed in a Xen directory (IIRC
>> /usr/lib/xen/bin). Should not you use a similar path for raisin? Otherwise you
>> would override the QEMU installed via the distrib package
>> manager.
> 
> This was done on purpose because the QEMU component built by Raisin
> should be generally usable, even without Xen.

Do we want raisin to clobber / conflict with a system qemu by befault?

I think if our goal is, "A Xen-focused configuration that Just Works",
putting it in /usr/lib/xen/bin is probably better.

 -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16  9:53                   ` Stefano Stabellini
@ 2015-04-16 10:09                     ` Ian Campbell
  0 siblings, 0 replies; 48+ messages in thread
From: Ian Campbell @ 2015-04-16 10:09 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: George Dunlap, Andrew Cooper, xen-devel, Ian Jackson

On Thu, 2015-04-16 at 10:53 +0100, Stefano Stabellini wrote:
> On Thu, 16 Apr 2015, Ian Campbell wrote:
> > On Wed, 2015-04-15 at 18:42 +0100, Stefano Stabellini wrote:
> > > On Wed, 15 Apr 2015, George Dunlap wrote:
> > > > On 04/15/2015 05:11 PM, Stefano Stabellini wrote:
> > > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > >> On Wed, 2015-04-15 at 16:49 +0100, Andrew Cooper wrote:
> > > > >>>>> It would be nice if there was a --wtih-system-qemu-trad= option, but
> > > > >>>>> that has been looked upon unfavourably by the maintainers.
> > > > >>>> Thanks for feedback!!
> > > > >>>> I think Raisin needs something like --with-system-qemu-trad=, so if Xen
> > > > >>>> doesn't provide it, we'll have to carry a patch in Raisin to do it.
> > > > >>>>
> > > > >>>> Do you have a link to the discussion or previously rejected patch?
> > > > >>>
> > > > >>> I am not sure that there was ever a patch - it may have been a
> > > > >>> discussion I had with ijc in person.
> > > > >>
> > > > >> Possibly I can't remember myself either.
> > > > >>
> > > > >>> I would be +1 for a --with-system-qemu-trad= option to mirror the
> > > > >>> --with-system-qemu, especially as I am now not the only advocate of one.
> > > > >>
> > > > >> In a pre-raisin world I suppose I thought it didn't make too much sense
> > > > >> to go through that churn if we weren't going to stop _all_
> > > > >> cloning/downloading from within xen.git.
> > > > >>
> > > > >> Personally I would have considered qemu-trad very much part of the long
> > > > >> tail wrt moving things out of xen.git, but anyway.
> > > > >>
> > > > >> I'd like to see raisin used/supported by osstest before we start
> > > > >> accepting thoe sorts of xen.git patches being suggested here.
> > > > > 
> > > > > I think we'll have to carry those patches in Raisin anyway, otherwise
> > > > > how are we supposed to be able to build xen 4.5? I don't think is
> > > > > reasonable to be able to build only 4.6 onward.
> > > > 
> > > > Why isn't that reasonable?  It's a completely new tool.
> > > > 
> > > > Speaking of which -- are we going to try to make any version of raisin
> > > > build any random version of Xen, or are we going to have "releases" of
> > > > raisin (and subsequent branches and tags in the raisin.git tree) for
> > > > each version we want to support?
> > > 
> > > If we cannot do any better, we can resort to that, but as a user I like
> > > the fact that I can use raisin to build any relatively modern xen
> > > version by simply specifying a tag.
> > > 
> > > We can figure out a way to detect whether we need to patch Xen and only
> > > in that case do it.
> > 
> > When Raisin is building Xen 4.5 or earlier it should just let xen.git
> > take care of cloning and building qemu-trad (and anything else which is
> > in xen 4.5 by default). Thinking about patching xen 4.5 on the fly for
> > this is just madness.
> 
> But then the external qemu-traditional build would silently overwrite
> the qemu-traditional binary produced by xen-unstable or fail during
> installation. Both options are not very nice.

No, because if it is building Xen 4.5 then raisin shouldn't be building
qemu-trad at all, it should let xen.git do it.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16  9:54                     ` Stefano Stabellini
@ 2015-04-16 10:10                       ` Ian Campbell
  2015-04-16 10:25                         ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-16 10:10 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson

On Thu, 2015-04-16 at 10:54 +0100, Stefano Stabellini wrote:
> On Thu, 16 Apr 2015, Ian Campbell wrote:
> > On Wed, 2015-04-15 at 18:41 +0100, Stefano Stabellini wrote:
> > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> > > > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > > > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > > > > (I also think osstest support is a prerequisite for saying it is an
> > > > > > > officially support XenProject thing, but that's offtopic in this
> > > > > > > context)
> > > > > > 
> > > > > > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > > > > > to osstest before raisin could build everything out of tree. That's way
> > > > > > I started tackling qemu and qemu-traditional.
> > > > 
> > > > I see, I had imagined we would prefer a more piecemeal process.
> > > > 
> > > > > I don't mind a hybrid approach.  What I would like is for each
> > > > > subproject to _either_ do the existing thing, or be able to ask raisin
> > > > > about it in advance.
> > > > 
> > > > Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
> > > > completely new, not moving from xen.git) stuff is added and desirable to
> > > > support.
> > > 
> > > The integration process that I envisioned is something like the
> > > following:
> > > 
> > > - Add any missing options to the xen-unstable build system to avoid
> > > cloning and building sub-components, such as qemu, seabios, etc. Many of
> > > these configure options are already there, like --with-system-qemu and
> > > --with-system-ovmf.
> > > 
> > > - build all these components separately in raisin
> > > 
> > > - introduce raisin in osstest
> > > 
> > > - disable by default cloning and building sub-components from xen-unstable
> > > 
> > > / time passes /
> > > 
> > > - remove options to clone and build sub-components from xen-unstable
> > 
> > That makes sense. My final paragraph was asking about the next step,
> > which is adding a completely new component to raisin and integrating it
> > with osstest, wouldn't osstest then need some way to query raisin about
> > what it would clone etc?
> 
> Raisin has a config file to specify what to clone from where and what
> revision it should use:
> 
> http://xenbits.xen.org/gitweb/?p=people/sstabellini/raisin.git;a=blob_plain;f=defconfig;hb=HEAD

But can I _query_ what it is able to build (i.e. the components the
current version supports) and/or what it would actually build if asked
(i.e. the revisions of things).

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:10                       ` Ian Campbell
@ 2015-04-16 10:25                         ` Stefano Stabellini
  2015-04-16 10:39                           ` George Dunlap
  2015-04-16 11:15                           ` Ian Jackson
  0 siblings, 2 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16 10:25 UTC (permalink / raw)
  To: Ian Campbell
  Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Thu, 16 Apr 2015, Ian Campbell wrote:
> On Thu, 2015-04-16 at 10:54 +0100, Stefano Stabellini wrote:
> > On Thu, 16 Apr 2015, Ian Campbell wrote:
> > > On Wed, 2015-04-15 at 18:41 +0100, Stefano Stabellini wrote:
> > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > > On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
> > > > > > Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> > > > > > > On Wed, 15 Apr 2015, Ian Campbell wrote:
> > > > > > > > (I also think osstest support is a prerequisite for saying it is an
> > > > > > > > officially support XenProject thing, but that's offtopic in this
> > > > > > > > context)
> > > > > > > 
> > > > > > > I spoke with IanJ and he didn't seem too keen on adding raisin support
> > > > > > > to osstest before raisin could build everything out of tree. That's way
> > > > > > > I started tackling qemu and qemu-traditional.
> > > > > 
> > > > > I see, I had imagined we would prefer a more piecemeal process.
> > > > > 
> > > > > > I don't mind a hybrid approach.  What I would like is for each
> > > > > > subproject to _either_ do the existing thing, or be able to ask raisin
> > > > > > about it in advance.
> > > > > 
> > > > > Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
> > > > > completely new, not moving from xen.git) stuff is added and desirable to
> > > > > support.
> > > > 
> > > > The integration process that I envisioned is something like the
> > > > following:
> > > > 
> > > > - Add any missing options to the xen-unstable build system to avoid
> > > > cloning and building sub-components, such as qemu, seabios, etc. Many of
> > > > these configure options are already there, like --with-system-qemu and
> > > > --with-system-ovmf.
> > > > 
> > > > - build all these components separately in raisin
> > > > 
> > > > - introduce raisin in osstest
> > > > 
> > > > - disable by default cloning and building sub-components from xen-unstable
> > > > 
> > > > / time passes /
> > > > 
> > > > - remove options to clone and build sub-components from xen-unstable
> > > 
> > > That makes sense. My final paragraph was asking about the next step,
> > > which is adding a completely new component to raisin and integrating it
> > > with osstest, wouldn't osstest then need some way to query raisin about
> > > what it would clone etc?
> > 
> > Raisin has a config file to specify what to clone from where and what
> > revision it should use:
> > 
> > http://xenbits.xen.org/gitweb/?p=people/sstabellini/raisin.git;a=blob_plain;f=defconfig;hb=HEAD
> 
> But can I _query_ what it is able to build (i.e. the components the
> current version supports) and/or what it would actually build if asked
> (i.e. the revisions of things).

If by query you mean issuing an XML-RPC request, the answer is no :-)

All the components are listed in the config file as URLs and REVISIONs,
they also have a component script each, so a single "ls components" will
tell you which components raisin can build. grep _REVISION config will
tell you which versions are going to be built. Nothing will be
automatically built unless it has a _REVISION entry in the config file.
Commenting out a _REVISION entry is a good way to disable the build of
a component.

Each component is independent and there is no knowledge about versions
of one component (xen 4.5 and earlier) needing one or more versions of
another component (qemu-traditional).  The main idea was that the
versions or tags would be supplied by the user. Maybe there should be?
That would increase the complexity though.

I am starting to agree with George that supporting only 4.6+ would be a
decent place to start :-)

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-16  9:54       ` George Dunlap
@ 2015-04-16 10:29         ` Stefano Stabellini
  2015-04-16 10:49         ` Julien Grall
  1 sibling, 0 replies; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16 10:29 UTC (permalink / raw)
  To: George Dunlap; +Cc: Julien Grall, xen-devel, Stefano Stabellini

On Thu, 16 Apr 2015, George Dunlap wrote:
> On 04/16/2015 10:51 AM, Stefano Stabellini wrote:
> > On Wed, 15 Apr 2015, Julien Grall wrote:
> >> Hi Stefano,
> >>
> >> On 15/04/2015 16:14, Stefano Stabellini wrote:
> >>> diff --git a/components/series b/components/series
> >>> index 3c3124d..8f614f0 100644
> >>> --- a/components/series
> >>> +++ b/components/series
> >>> @@ -1,3 +1,4 @@
> >>>   xen
> >>> +qemu
> >>>   grub
> >>>   libvirt
> >>> diff --git a/components/xen b/components/xen
> >>> index 2d345a8..dcf2f92 100644
> >>> --- a/components/xen
> >>> +++ b/components/xen
> >>> @@ -23,7 +23,7 @@ function xen_build() {
> >>>       cd "$BASEDIR"
> >>>       git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
> >>>       cd xen-dir
> >>> -    ./configure --prefix=$PREFIX
> >>> +    ./configure --prefix=$PREFIX
> >>> --with-system-qemu=/usr/bin/qemu-system-i386
> >>
> >> Currently the QEMU built by Xen is installed in a Xen directory (IIRC
> >> /usr/lib/xen/bin). Should not you use a similar path for raisin? Otherwise you
> >> would override the QEMU installed via the distrib package
> >> manager.
> > 
> > This was done on purpose because the QEMU component built by Raisin
> > should be generally usable, even without Xen.
> 
> Do we want raisin to clobber / conflict with a system qemu by befault?
> 
> I think if our goal is, "A Xen-focused configuration that Just Works",
> putting it in /usr/lib/xen/bin is probably better.

I don't have a strong opinion on this, so here is the patch:

---

raisin: build QEMU more specifically for Xen and install under /usr/lib/xen/bin

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>

diff --git a/components/qemu b/components/qemu
index 85db58e..6ba03c8 100644
--- a/components/qemu
+++ b/components/qemu
@@ -19,12 +19,14 @@ function qemu_build() {
     cd "$BASEDIR"
     git-checkout $QEMU_URL $QEMU_REVISION qemu-dir
     cd qemu-dir
-    ./configure --enable-xen --target-list=i386-softmmu,x86_64-softmmu --prefix=$PREFIX \
+    ./configure --enable-xen --target-list=i386-softmmu --prefix=$PREFIX \
         --extra-cflags="-I$INST_DIR/$PREFIX/include" \
         --extra-ldflags="-L$INST_DIR/$PREFIX/lib -Wl,-rpath-link=$INST_DIR/$PREFIX/lib \
                          -L$INST_DIR/$PREFIX/lib64 -Wl,-rpath-link=$INST_DIR/$PREFIX/lib64" \
         --disable-kvm \
         --disable-docs \
+        --bindir=$PREFIX/lib/xen/bin \
+        --datadir=$PREFIX/share/qemu-xen \
         --disable-guest-agent
     $RAISIN_MAKE all
     $RAISIN_MAKE install DESTDIR="$INST_DIR"
diff --git a/components/xen b/components/xen
index a0c0034..f8959be 100644
--- a/components/xen
+++ b/components/xen
@@ -23,7 +23,7 @@ function xen_build() {
     cd "$BASEDIR"
     git-checkout $XEN_URL $XEN_REVISION xen-dir
     cd xen-dir
-    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
+    ./configure --prefix=$PREFIX --with-system-qemu=$PREFIX/lib/xen/bin/qemu-system-i386
     $RAISIN_MAKE
     $RAISIN_MAKE install DESTDIR="$INST_DIR"
     cd "$BASEDIR"

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:25                         ` Stefano Stabellini
@ 2015-04-16 10:39                           ` George Dunlap
  2015-04-16 10:48                             ` Ian Campbell
  2015-04-16 11:15                           ` Ian Jackson
  1 sibling, 1 reply; 48+ messages in thread
From: George Dunlap @ 2015-04-16 10:39 UTC (permalink / raw)
  To: Stefano Stabellini, Ian Campbell; +Cc: Andrew Cooper, xen-devel, Ian Jackson

On 04/16/2015 11:25 AM, Stefano Stabellini wrote:
> On Thu, 16 Apr 2015, Ian Campbell wrote:
>> On Thu, 2015-04-16 at 10:54 +0100, Stefano Stabellini wrote:
>>> On Thu, 16 Apr 2015, Ian Campbell wrote:
>>>> On Wed, 2015-04-15 at 18:41 +0100, Stefano Stabellini wrote:
>>>>> On Wed, 15 Apr 2015, Ian Campbell wrote:
>>>>>> On Wed, 2015-04-15 at 17:15 +0100, Ian Jackson wrote:
>>>>>>> Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
>>>>>>>> On Wed, 15 Apr 2015, Ian Campbell wrote:
>>>>>>>>> (I also think osstest support is a prerequisite for saying it is an
>>>>>>>>> officially support XenProject thing, but that's offtopic in this
>>>>>>>>> context)
>>>>>>>>
>>>>>>>> I spoke with IanJ and he didn't seem too keen on adding raisin support
>>>>>>>> to osstest before raisin could build everything out of tree. That's way
>>>>>>>> I started tackling qemu and qemu-traditional.
>>>>>>
>>>>>> I see, I had imagined we would prefer a more piecemeal process.
>>>>>>
>>>>>>> I don't mind a hybrid approach.  What I would like is for each
>>>>>>> subproject to _either_ do the existing thing, or be able to ask raisin
>>>>>>> about it in advance.
>>>>>>
>>>>>> Isn't that going to be useful/necessary anyway? e.g. as new (i.e.
>>>>>> completely new, not moving from xen.git) stuff is added and desirable to
>>>>>> support.
>>>>>
>>>>> The integration process that I envisioned is something like the
>>>>> following:
>>>>>
>>>>> - Add any missing options to the xen-unstable build system to avoid
>>>>> cloning and building sub-components, such as qemu, seabios, etc. Many of
>>>>> these configure options are already there, like --with-system-qemu and
>>>>> --with-system-ovmf.
>>>>>
>>>>> - build all these components separately in raisin
>>>>>
>>>>> - introduce raisin in osstest
>>>>>
>>>>> - disable by default cloning and building sub-components from xen-unstable
>>>>>
>>>>> / time passes /
>>>>>
>>>>> - remove options to clone and build sub-components from xen-unstable
>>>>
>>>> That makes sense. My final paragraph was asking about the next step,
>>>> which is adding a completely new component to raisin and integrating it
>>>> with osstest, wouldn't osstest then need some way to query raisin about
>>>> what it would clone etc?
>>>
>>> Raisin has a config file to specify what to clone from where and what
>>> revision it should use:
>>>
>>> http://xenbits.xen.org/gitweb/?p=people/sstabellini/raisin.git;a=blob_plain;f=defconfig;hb=HEAD
>>
>> But can I _query_ what it is able to build (i.e. the components the
>> current version supports) and/or what it would actually build if asked
>> (i.e. the revisions of things).
> 
> If by query you mean issuing an XML-RPC request, the answer is no :-)
> 
> All the components are listed in the config file as URLs and REVISIONs,
> they also have a component script each, so a single "ls components" will
> tell you which components raisin can build. grep _REVISION config will
> tell you which versions are going to be built. Nothing will be
> automatically built unless it has a _REVISION entry in the config file.
> Commenting out a _REVISION entry is a good way to disable the build of
> a component.
> 
> Each component is independent and there is no knowledge about versions
> of one component (xen 4.5 and earlier) needing one or more versions of
> another component (qemu-traditional).  The main idea was that the
> versions or tags would be supplied by the user. Maybe there should be?
> That would increase the complexity though.

Well I thought the main idea actually was that the user just tweaks a
few settings, types "./raise fullauto" and everything Just Works? :-)

In which case, having a RELEASE macro (or RELEASE_DEFAULTS?) you could
set to 4.5, 4.6, or unstable seems like the best interface, and which
you could then override with your own branches if you wanted to, would
be the best interface.

That is, unless we want to have something like "git checkout
release/4.5". :-)

> I am starting to agree with George that supporting only 4.6+ would be a
> decent place to start :-)

I think focusing on getting raise and the various Xen trees the way we
want them ideally is a good start.  We can't make major changes to 4.5,
so there's no real time constraint to adding the functionality into
raisin.  (But we should make sure the interface isn't too difficult to
integrate with.)

 -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:39                           ` George Dunlap
@ 2015-04-16 10:48                             ` Ian Campbell
  2015-04-16 10:55                               ` Stefano Stabellini
  0 siblings, 1 reply; 48+ messages in thread
From: Ian Campbell @ 2015-04-16 10:48 UTC (permalink / raw)
  To: George Dunlap; +Cc: Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Thu, 2015-04-16 at 11:39 +0100, George Dunlap wrote:
> On 04/16/2015 11:25 AM, Stefano Stabellini wrote:
> > Each component is independent and there is no knowledge about versions
> > of one component (xen 4.5 and earlier) needing one or more versions of
> > another component (qemu-traditional).  The main idea was that the
> > versions or tags would be supplied by the user. Maybe there should be?
> > That would increase the complexity though.
> 
> Well I thought the main idea actually was that the user just tweaks a
> few settings, types "./raise fullauto" and everything Just Works? :-)
> 
> In which case, having a RELEASE macro (or RELEASE_DEFAULTS?) you could
> set to 4.5, 4.6, or unstable seems like the best interface, and which
> you could then override with your own branches if you wanted to, would
> be the best interface.
> 
> That is, unless we want to have something like "git checkout
> release/4.5". :-)

I had been assuming it was either that or "cp 4.5_defconfig config"
or ./raise 4.5_defconfig etc.

> 
> > I am starting to agree with George that supporting only 4.6+ would be a
> > decent place to start :-)
> 
> I think focusing on getting raise and the various Xen trees the way we
> want them ideally is a good start.  We can't make major changes to 4.5,
> so there's no real time constraint to adding the functionality into
> raisin.  (But we should make sure the interface isn't too difficult to
> integrate with.)
> 
>  -George
> 

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 3/9] raisin: add QEMU upstream component
  2015-04-16  9:54       ` George Dunlap
  2015-04-16 10:29         ` Stefano Stabellini
@ 2015-04-16 10:49         ` Julien Grall
  1 sibling, 0 replies; 48+ messages in thread
From: Julien Grall @ 2015-04-16 10:49 UTC (permalink / raw)
  To: George Dunlap, Stefano Stabellini; +Cc: xen-devel

On 16/04/2015 10:54, George Dunlap wrote:
>>> Currently the QEMU built by Xen is installed in a Xen directory (IIRC
>>> /usr/lib/xen/bin). Should not you use a similar path for raisin? Otherwise you
>>> would override the QEMU installed via the distrib package
>>> manager.
>>
>> This was done on purpose because the QEMU component built by Raisin
>> should be generally usable, even without Xen.
>
> Do we want raisin to clobber / conflict with a system qemu by befault?
>
> I think if our goal is, "A Xen-focused configuration that Just Works",
> putting it in /usr/lib/xen/bin is probably better.

I agree, the system QEMU may use a different configuration that the user 
wants to use.

Cheers,

-- 
Julien Grall

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:48                             ` Ian Campbell
@ 2015-04-16 10:55                               ` Stefano Stabellini
  2015-04-16 10:59                                 ` George Dunlap
  0 siblings, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16 10:55 UTC (permalink / raw)
  To: Ian Campbell
  Cc: George Dunlap, Andrew Cooper, xen-devel, Ian Jackson, Stefano Stabellini

On Thu, 16 Apr 2015, Ian Campbell wrote:
> On Thu, 2015-04-16 at 11:39 +0100, George Dunlap wrote:
> > On 04/16/2015 11:25 AM, Stefano Stabellini wrote:
> > > Each component is independent and there is no knowledge about versions
> > > of one component (xen 4.5 and earlier) needing one or more versions of
> > > another component (qemu-traditional).  The main idea was that the
> > > versions or tags would be supplied by the user. Maybe there should be?
> > > That would increase the complexity though.
> > 
> > Well I thought the main idea actually was that the user just tweaks a
> > few settings, types "./raise fullauto" and everything Just Works? :-)
> > 
> > In which case, having a RELEASE macro (or RELEASE_DEFAULTS?) you could
> > set to 4.5, 4.6, or unstable seems like the best interface, and which
> > you could then override with your own branches if you wanted to, would
> > be the best interface.
> > 
> > That is, unless we want to have something like "git checkout
> > release/4.5". :-)
> 
> I had been assuming it was either that or "cp 4.5_defconfig config"
> or ./raise 4.5_defconfig etc.

That would also work, very simple solution to the problem.


> > > I am starting to agree with George that supporting only 4.6+ would be a
> > > decent place to start :-)
> > 
> > I think focusing on getting raise and the various Xen trees the way we
> > want them ideally is a good start.  We can't make major changes to 4.5,
> > so there's no real time constraint to adding the functionality into
> > raisin.  (But we should make sure the interface isn't too difficult to
> > integrate with.)
> > 
> >  -George
> > 
> 
> 

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:55                               ` Stefano Stabellini
@ 2015-04-16 10:59                                 ` George Dunlap
  0 siblings, 0 replies; 48+ messages in thread
From: George Dunlap @ 2015-04-16 10:59 UTC (permalink / raw)
  To: Stefano Stabellini, Ian Campbell; +Cc: Andrew Cooper, xen-devel, Ian Jackson

On 04/16/2015 11:55 AM, Stefano Stabellini wrote:
> On Thu, 16 Apr 2015, Ian Campbell wrote:
>> On Thu, 2015-04-16 at 11:39 +0100, George Dunlap wrote:
>>> On 04/16/2015 11:25 AM, Stefano Stabellini wrote:
>>>> Each component is independent and there is no knowledge about versions
>>>> of one component (xen 4.5 and earlier) needing one or more versions of
>>>> another component (qemu-traditional).  The main idea was that the
>>>> versions or tags would be supplied by the user. Maybe there should be?
>>>> That would increase the complexity though.
>>>
>>> Well I thought the main idea actually was that the user just tweaks a
>>> few settings, types "./raise fullauto" and everything Just Works? :-)
>>>
>>> In which case, having a RELEASE macro (or RELEASE_DEFAULTS?) you could
>>> set to 4.5, 4.6, or unstable seems like the best interface, and which
>>> you could then override with your own branches if you wanted to, would
>>> be the best interface.
>>>
>>> That is, unless we want to have something like "git checkout
>>> release/4.5". :-)
>>
>> I had been assuming it was either that or "cp 4.5_defconfig config"
>> or ./raise 4.5_defconfig etc.
> 
> That would also work, very simple solution to the problem.

Or:

"source defconfigs/4.5" in the main config file?

 -George

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 10:25                         ` Stefano Stabellini
  2015-04-16 10:39                           ` George Dunlap
@ 2015-04-16 11:15                           ` Ian Jackson
  1 sibling, 0 replies; 48+ messages in thread
From: Ian Jackson @ 2015-04-16 11:15 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel, Ian Campbell

Stefano Stabellini writes ("Re: [Xen-devel] [PATCH 4/9] raisin: add a component to build qemu_traditional"):
> On Thu, 16 Apr 2015, Ian Campbell wrote:
> > But can I _query_ what it is able to build (i.e. the components the
> > current version supports) and/or what it would actually build if asked
> > (i.e. the revisions of things).
> 
> If by query you mean issuing an XML-RPC request, the answer is no :-)

Obviously that would be a stupid syntax to use.

> All the components are listed in the config file as URLs and REVISIONs,
> they also have a component script each, so a single "ls components" will
> tell you which components raisin can build. grep _REVISION config will
> tell you which versions are going to be built. Nothing will be
> automatically built unless it has a _REVISION entry in the config file.
> Commenting out a _REVISION entry is a good way to disable the build of
> a component.
> 
> Each component is independent and there is no knowledge about versions
> of one component (xen 4.5 and earlier) needing one or more versions of
> another component (qemu-traditional).  The main idea was that the
> versions or tags would be supplied by the user. Maybe there should be?
> That would increase the complexity though.

Perhaps we should have some `user stories'.

 Alice wants to build Xen mainline.  She reads the wiki and reads
 about raisin.  She does git clone git://somewhere/raisin.git, cd
 raisin, ./raise xen unstable.  `raise' automatically arranges to
 clone and build everything needed.

And a more complicated one:

 Bob is running Xen 4.5 as supplied by Debian.  He reports a bug which
 gets forwarded upstream.  Carol, the upstream maintainer, asks Bob to
 try to reproduce the bug with vanilla 4.5 with a patch applied.
 Carol points Bob at raisin and at her patched xen.git.  Bob does git
 clone git://somewhere/raisin.git, cd raisin, edits the raisin
 configuration for Xen 4.5 to specify Carol's url, and runs ./raise
 xen 4.5.  `raise' automatically arranges to clone and build
 everything needed.  Bob takes feeds the generated hypervisor .deb to
 dpkg -i, reboots, and collects the data requested by Carol.

New subtrees:

 David is adding a feature to Xen which depends on an external project
 `wombat'.  After David's changes, the Xen toolstack will need
 wombat to be installed on the dom0.  David creates a suitable wombat
 branch and tree, and sends patches as follows:
    - raisin: determine somehow (from the xen version? from
       the contents of xen.git? statically?) whether wombat is
       needed
    - xen.git: toolstack code to run installed version of wombat
    - osstest: introduce a push gate for wombat, and plumb its
       git url and git revision through cr-daily-branch and make-flight
 After David's patches are applied, Alice's builds pick up wombat
 automatically, and osstest knows how to specify and record the
 version of wombat to use whenever necessary.  Bob's build of 4.5
 is unaffected.

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-15 15:26   ` Andrew Cooper
  2015-04-15 15:44     ` Stefano Stabellini
@ 2015-04-16 16:03     ` Stefano Stabellini
  2015-04-17  8:41       ` Ian Campbell
  1 sibling, 1 reply; 48+ messages in thread
From: Stefano Stabellini @ 2015-04-16 16:03 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: george.dunlap, xen-devel, Stefano Stabellini

On Wed, 15 Apr 2015, Andrew Cooper wrote:
# 
> On 15/04/15 16:14, Stefano Stabellini wrote:
> > Introduce a component to build qemu-traditional out of xen-unstable.
> > Do not compile qemu-traditional from xen-unstable by passing the right
> > command line option to configure.
> >
> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> > ---
> >  components/qemu_traditional |   49 +++++++++++++++++++++++++++++++++++++++++++
> >  components/series           |    1 +
> >  components/xen              |    3 ++-
> >  defconfig                   |    2 ++
> >  4 files changed, 54 insertions(+), 1 deletion(-)
> >  create mode 100644 components/qemu_traditional
> >
> > diff --git a/components/qemu_traditional b/components/qemu_traditional
> > new file mode 100644
> > index 0000000..cb71c94
> > --- /dev/null
> > +++ b/components/qemu_traditional
> > @@ -0,0 +1,49 @@
> > +#!/usr/bin/env bash
> > +
> > +function qemu_traditional_check_package() {
> > +    local DEP_Debian_common="build-essential zlib1g-dev pciutils-dev pkg-config \
> > +              libncurses5-dev"
> > +    local DEP_Debian_x86_32="$DEP_Debian_common"
> > +    local DEP_Debian_x86_64="$DEP_Debian_common"
> > +    local DEP_Debian_arm32="$DEP_Debian_common"
> > +    local DEP_Debian_arm64="$DEP_Debian_common"
> > +
> > +    local DEP_Fedora_common="make gcc zlib-devel ncurses-devel pciutils-devel"
> > +    local DEP_Fedora_x86_32="$DEP_Fedora_common"
> > +    local DEP_Fedora_x86_64="$DEP_Fedora_common"
> > +
> > +    echo Checking QEMU dependencies
> > +    eval check-package \$DEP_"$DISTRO"_"$ARCH"
> > +}
> > +
> > +function qemu_traditional_build() {
> > +    cd "$BASEDIR"
> > +    git-checkout $QEMU_TRADITIONAL_UPSTREAM_URL $QEMU_TRADITIONAL_UPSTREAM_REVISION qemu_traditional-dir
> > +    cd qemu_traditional-dir
> > +
> > +    export CONFIG_BLKTAP1=n
> > +    export XEN_ROOT="$BASEDIR"/xen-dir
> > +    ./xen-setup
> > +    $MAKE all
> > +    $MAKE install DESTDIR="$INST_DIR"
> > +    cd "$BASEDIR"
> > +}
> > +
> > +function qemu_traditional_clean() {
> > +    cd "$BASEDIR"
> > +    if [[ -d qemu_traditional-dir ]]
> > +    then
> > +        cd qemu_traditional-dir
> > +        $MAKE distclean
> > +        cd ..
> > +        rm -rf qemu_traditional-dir
> > +    fi
> > +}
> > +
> > +function qemu_traditional_configure() {
> > +    echo Nothing to configure for qemu_traditional
> > +}
> > +
> > +function qemu_traditional_unconfigure() {
> > +    echo Nothing to unconfigure for qemu_traditional
> > +}
> > diff --git a/components/series b/components/series
> > index 8f614f0..d21243a 100644
> > --- a/components/series
> > +++ b/components/series
> > @@ -1,4 +1,5 @@
> >  xen
> >  qemu
> > +qemu_traditional
> >  grub
> >  libvirt
> > diff --git a/components/xen b/components/xen
> > index dcf2f92..9fdf37f 100644
> > --- a/components/xen
> > +++ b/components/xen
> > @@ -23,7 +23,8 @@ function xen_build() {
> >      cd "$BASEDIR"
> >      git-checkout $XEN_UPSTREAM_URL $XEN_UPSTREAM_REVISION xen-dir
> >      cd xen-dir
> > -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
> > +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
> > +        --disable-qemu-traditional
> 
> This does more than just what you want.
> 
> It also tells libxl that qemu-trad does not exist which compiles out any
> ability to use qemu-trad as a device model.

Actually that is not true: it is not possible to specify where your
separately built qemu-traditional binary is with
--disable-qemu-traditional, but if you place it under /usr/lib/xen/bin,
libxl will pick it up automatically.

^ permalink raw reply	[flat|nested] 48+ messages in thread

* Re: [PATCH 4/9] raisin: add a component to build qemu_traditional
  2015-04-16 16:03     ` Stefano Stabellini
@ 2015-04-17  8:41       ` Ian Campbell
  0 siblings, 0 replies; 48+ messages in thread
From: Ian Campbell @ 2015-04-17  8:41 UTC (permalink / raw)
  To: Stefano Stabellini; +Cc: george.dunlap, Andrew Cooper, xen-devel

On Thu, 2015-04-16 at 17:03 +0100, Stefano Stabellini wrote:
> On Wed, 15 Apr 2015, Andrew Cooper wrote:
> > > -    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386
> > > +    ./configure --prefix=$PREFIX --with-system-qemu=/usr/bin/qemu-system-i386 \
> > > +        --disable-qemu-traditional
> > 
> > This does more than just what you want.
> > 
> > It also tells libxl that qemu-trad does not exist which compiles out any
> > ability to use qemu-trad as a device model.
> 
> Actually that is not true: it is not possible to specify where your
> separately built qemu-traditional binary is with
> --disable-qemu-traditional, but if you place it under /usr/lib/xen/bin,
> libxl will pick it up automatically.

Probably a bug in the patch which added the option, but lets retcon it
into being the expected behaviour ;-)

Ian.

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2015-04-17  8:41 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-15 15:14 [PATCH 0/9] raisin: introduce qemu and qemu-traditional Stefano Stabellini
2015-04-15 15:14 ` [PATCH 1/9] raisin: do not clean before build Stefano Stabellini
2015-04-15 15:26   ` George Dunlap
2015-04-15 15:14 ` [PATCH 2/9] raisin: use timestamps for dpkg Version to avoid versions that start with letters Stefano Stabellini
2015-04-15 15:34   ` Olaf Hering
2015-04-15 15:40     ` Stefano Stabellini
2015-04-15 15:14 ` [PATCH 3/9] raisin: add QEMU upstream component Stefano Stabellini
2015-04-15 19:05   ` Julien Grall
2015-04-16  9:51     ` Stefano Stabellini
2015-04-16  9:54       ` George Dunlap
2015-04-16 10:29         ` Stefano Stabellini
2015-04-16 10:49         ` Julien Grall
2015-04-15 15:14 ` [PATCH 4/9] raisin: add a component to build qemu_traditional Stefano Stabellini
2015-04-15 15:26   ` Andrew Cooper
2015-04-15 15:44     ` Stefano Stabellini
2015-04-15 15:49       ` Andrew Cooper
2015-04-15 15:51         ` George Dunlap
2015-04-15 15:58         ` Ian Campbell
2015-04-15 16:11           ` Stefano Stabellini
2015-04-15 16:15             ` Ian Jackson
2015-04-15 16:26               ` Ian Campbell
2015-04-15 17:41                 ` Stefano Stabellini
2015-04-16  8:45                   ` Ian Campbell
2015-04-16  9:54                     ` Stefano Stabellini
2015-04-16 10:10                       ` Ian Campbell
2015-04-16 10:25                         ` Stefano Stabellini
2015-04-16 10:39                           ` George Dunlap
2015-04-16 10:48                             ` Ian Campbell
2015-04-16 10:55                               ` Stefano Stabellini
2015-04-16 10:59                                 ` George Dunlap
2015-04-16 11:15                           ` Ian Jackson
2015-04-15 16:21             ` George Dunlap
2015-04-15 17:42               ` Stefano Stabellini
2015-04-16  8:47                 ` Ian Campbell
2015-04-16  9:53                   ` Stefano Stabellini
2015-04-16 10:09                     ` Ian Campbell
2015-04-15 16:24             ` Ian Campbell
2015-04-16 16:03     ` Stefano Stabellini
2015-04-17  8:41       ` Ian Campbell
2015-04-15 15:14 ` [PATCH 5/9] raisin: remove UPSTREAM_ for URL and REVISION variables Stefano Stabellini
2015-04-15 15:14 ` [PATCH 6/9] raisin: add some debugging output for VERBOSE=1 Stefano Stabellini
2015-04-15 15:14 ` [PATCH 7/9] raisin: remove unneeded chmod +x xencommons xendomains xen-watchdog Stefano Stabellini
2015-04-15 15:31   ` George Dunlap
2015-04-15 15:14 ` [PATCH 8/9] raisin: rename MAKE to RAISIN_MAKE Stefano Stabellini
2015-04-15 15:15 ` [PATCH 9/9] raisin: add $INST_DIR/usr/lib64 to LDFLAGS for QEMU and Libvirt Stefano Stabellini
2015-04-15 15:42   ` George Dunlap
2015-04-15 15:43 ` [PATCH 0/9] raisin: introduce qemu and qemu-traditional George Dunlap
2015-04-15 15:57   ` Stefano Stabellini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.